summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndreas Rottmann <a.rottmann@gmx.at>2009-09-14 12:32:44 +0200
committerAndreas Rottmann <a.rottmann@gmx.at>2009-09-14 12:32:44 +0200
commitfa095a4504cbe668e4244547e2c141597bea4ecf (patch)
tree06135820a286ffec47804e75fbf8a147e92acd2e /tests
Imported Upstream version 0.9.1upstream/0.9.1
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am39
-rw-r--r--tests/Makefile.gnulib3200
-rw-r--r--tests/Makefile.in6709
-rw-r--r--tests/error.c338
-rw-r--r--tests/error.h65
-rw-r--r--tests/exitfail.c24
-rw-r--r--tests/exitfail.h18
-rw-r--r--tests/gettext.h279
-rw-r--r--tests/intprops.h77
-rw-r--r--tests/locale.in.h36
-rw-r--r--tests/nan.h60
-rw-r--r--tests/progname.c63
-rw-r--r--tests/progname.h60
-rw-r--r--tests/setenv.c330
-rw-r--r--tests/strerror.c347
-rw-r--r--tests/test-alloca-opt.c62
-rw-r--r--tests/test-array-mergesort.c395
-rw-r--r--tests/test-c-ctype.c398
-rwxr-xr-xtests/test-c-strcase.sh21
-rw-r--r--tests/test-c-strcasecmp.c77
-rw-r--r--tests/test-c-strncasecmp.c91
-rw-r--r--tests/test-environ.c44
-rw-r--r--tests/test-errno.c117
-rw-r--r--tests/test-frexpl.c233
-rw-r--r--tests/test-fseterr.c44
-rw-r--r--tests/test-iconv.c149
-rw-r--r--tests/test-isnand-nolibm.c22
-rw-r--r--tests/test-isnand.h78
-rw-r--r--tests/test-isnanf-nolibm.c21
-rw-r--r--tests/test-isnanf.h80
-rw-r--r--tests/test-isnanl-nolibm.c23
-rw-r--r--tests/test-isnanl.h154
-rw-r--r--tests/test-locale.c44
-rw-r--r--tests/test-localename.c122
-rw-r--r--tests/test-malloca.c59
-rw-r--r--tests/test-math.c53
-rw-r--r--tests/test-mbrtowc.c330
-rwxr-xr-xtests/test-mbrtowc1.sh15
-rwxr-xr-xtests/test-mbrtowc2.sh15
-rwxr-xr-xtests/test-mbrtowc3.sh15
-rwxr-xr-xtests/test-mbrtowc4.sh15
-rw-r--r--tests/test-mbsinit.c62
-rwxr-xr-xtests/test-mbsinit.sh15
-rw-r--r--tests/test-memchr.c130
-rw-r--r--tests/test-printf-frexp.c131
-rw-r--r--tests/test-printf-frexpl.c147
-rw-r--r--tests/test-signbit.c204
-rw-r--r--tests/test-stdbool.c95
-rw-r--r--tests/test-stdint.c360
-rw-r--r--tests/test-stdlib.c43
-rw-r--r--tests/test-strerror.c65
-rw-r--r--tests/test-striconveh.c922
-rw-r--r--tests/test-striconveha.c609
-rw-r--r--tests/test-string.c33
-rw-r--r--tests/test-unistd.c56
-rw-r--r--tests/test-wchar.c31
-rw-r--r--tests/test-wctype.c46
-rw-r--r--tests/test-wcwidth.c91
-rw-r--r--tests/unicase/test-casecmp.h69
-rw-r--r--tests/unicase/test-cased.c135
-rw-r--r--tests/unicase/test-ignorable.c246
-rw-r--r--tests/unicase/test-is-cased.h58
-rw-r--r--tests/unicase/test-is-casefolded.h43
-rw-r--r--tests/unicase/test-is-lowercase.h95
-rw-r--r--tests/unicase/test-is-titlecase.h95
-rw-r--r--tests/unicase/test-is-uppercase.h95
-rw-r--r--tests/unicase/test-locale-language.c56
-rwxr-xr-xtests/unicase/test-locale-language.sh30
-rw-r--r--tests/unicase/test-mapping-part1.h45
-rw-r--r--tests/unicase/test-mapping-part2.h37
-rw-r--r--tests/unicase/test-predicate-part1.h45
-rw-r--r--tests/unicase/test-predicate-part2.h37
-rw-r--r--tests/unicase/test-u16-casecmp.c336
-rw-r--r--tests/unicase/test-u16-casecoll.c54
-rw-r--r--tests/unicase/test-u16-casefold.c214
-rw-r--r--tests/unicase/test-u16-is-cased.c51
-rw-r--r--tests/unicase/test-u16-is-casefolded.c65
-rw-r--r--tests/unicase/test-u16-is-lowercase.c93
-rw-r--r--tests/unicase/test-u16-is-titlecase.c51
-rw-r--r--tests/unicase/test-u16-is-uppercase.c93
-rw-r--r--tests/unicase/test-u16-tolower.c251
-rw-r--r--tests/unicase/test-u16-totitle.c211
-rw-r--r--tests/unicase/test-u16-toupper.c211
-rw-r--r--tests/unicase/test-u32-casecmp.c336
-rw-r--r--tests/unicase/test-u32-casecoll.c54
-rw-r--r--tests/unicase/test-u32-casefold.c214
-rw-r--r--tests/unicase/test-u32-is-cased.c51
-rw-r--r--tests/unicase/test-u32-is-casefolded.c65
-rw-r--r--tests/unicase/test-u32-is-lowercase.c93
-rw-r--r--tests/unicase/test-u32-is-titlecase.c51
-rw-r--r--tests/unicase/test-u32-is-uppercase.c93
-rw-r--r--tests/unicase/test-u32-tolower.c251
-rw-r--r--tests/unicase/test-u32-totitle.c211
-rw-r--r--tests/unicase/test-u32-toupper.c211
-rw-r--r--tests/unicase/test-u8-casecmp.c345
-rw-r--r--tests/unicase/test-u8-casecoll.c54
-rw-r--r--tests/unicase/test-u8-casefold.c220
-rw-r--r--tests/unicase/test-u8-is-cased.c51
-rw-r--r--tests/unicase/test-u8-is-casefolded.c65
-rw-r--r--tests/unicase/test-u8-is-lowercase.c93
-rw-r--r--tests/unicase/test-u8-is-titlecase.c51
-rw-r--r--tests/unicase/test-u8-is-uppercase.c93
-rw-r--r--tests/unicase/test-u8-tolower.c257
-rw-r--r--tests/unicase/test-u8-totitle.c217
-rw-r--r--tests/unicase/test-u8-toupper.c217
-rw-r--r--tests/unicase/test-uc_tolower.c1047
-rw-r--r--tests/unicase/test-uc_totitle.c1055
-rw-r--r--tests/unicase/test-uc_toupper.c1055
-rw-r--r--tests/unicase/test-ulc-casecmp.c408
-rwxr-xr-xtests/unicase/test-ulc-casecmp1.sh15
-rwxr-xr-xtests/unicase/test-ulc-casecmp2.sh15
-rw-r--r--tests/unicase/test-ulc-casecoll.c59
-rwxr-xr-xtests/unicase/test-ulc-casecoll1.sh15
-rwxr-xr-xtests/unicase/test-ulc-casecoll2.sh15
-rw-r--r--tests/uniconv/test-u16-conv-from-enc.c232
-rw-r--r--tests/uniconv/test-u16-conv-to-enc.c188
-rw-r--r--tests/uniconv/test-u16-strconv-from-enc.c132
-rw-r--r--tests/uniconv/test-u16-strconv-to-enc.c121
-rw-r--r--tests/uniconv/test-u32-conv-from-enc.c232
-rw-r--r--tests/uniconv/test-u32-conv-to-enc.c163
-rw-r--r--tests/uniconv/test-u32-strconv-from-enc.c132
-rw-r--r--tests/uniconv/test-u32-strconv-to-enc.c108
-rw-r--r--tests/uniconv/test-u8-conv-from-enc.c218
-rw-r--r--tests/uniconv/test-u8-conv-to-enc.c193
-rw-r--r--tests/uniconv/test-u8-strconv-from-enc.c114
-rw-r--r--tests/uniconv/test-u8-strconv-to-enc.c112
-rw-r--r--tests/unictype/test-bidi_byname.c44
-rw-r--r--tests/unictype/test-bidi_name.c44
-rw-r--r--tests/unictype/test-bidi_of.c45
-rw-r--r--tests/unictype/test-bidi_test.c60
-rw-r--r--tests/unictype/test-block_list.c62
-rw-r--r--tests/unictype/test-block_of.c79
-rw-r--r--tests/unictype/test-block_test.c54
-rw-r--r--tests/unictype/test-categ_C.c469
-rw-r--r--tests/unictype/test-categ_Cc.c24
-rw-r--r--tests/unictype/test-categ_Cf.c36
-rw-r--r--tests/unictype/test-categ_Cn.c467
-rw-r--r--tests/unictype/test-categ_Co.c25
-rw-r--r--tests/unictype/test-categ_Cs.c23
-rw-r--r--tests/unictype/test-categ_L.c412
-rw-r--r--tests/unictype/test-categ_Ll.c620
-rw-r--r--tests/unictype/test-categ_Lm.c61
-rw-r--r--tests/unictype/test-categ_Lo.c304
-rw-r--r--tests/unictype/test-categ_Lt.c32
-rw-r--r--tests/unictype/test-categ_Lu.c613
-rw-r--r--tests/unictype/test-categ_M.c183
-rw-r--r--tests/unictype/test-categ_Mc.c107
-rw-r--r--tests/unictype/test-categ_Me.c27
-rw-r--r--tests/unictype/test-categ_Mn.c182
-rw-r--r--tests/unictype/test-categ_N.c91
-rw-r--r--tests/unictype/test-categ_Nd.c55
-rw-r--r--tests/unictype/test-categ_Nl.c33
-rw-r--r--tests/unictype/test-categ_No.c52
-rw-r--r--tests/unictype/test-categ_P.c134
-rw-r--r--tests/unictype/test-categ_Pc.c28
-rw-r--r--tests/unictype/test-categ_Pd.c36
-rw-r--r--tests/unictype/test-categ_Pe.c92
-rw-r--r--tests/unictype/test-categ_Pf.c32
-rw-r--r--tests/unictype/test-categ_Pi.c33
-rw-r--r--tests/unictype/test-categ_Po.c130
-rw-r--r--tests/unictype/test-categ_Ps.c94
-rw-r--r--tests/unictype/test-categ_S.c201
-rw-r--r--tests/unictype/test-categ_Sc.c36
-rw-r--r--tests/unictype/test-categ_Sk.c48
-rw-r--r--tests/unictype/test-categ_Sm.c87
-rw-r--r--tests/unictype/test-categ_So.c156
-rw-r--r--tests/unictype/test-categ_Z.c31
-rw-r--r--tests/unictype/test-categ_Zl.c23
-rw-r--r--tests/unictype/test-categ_Zp.c23
-rw-r--r--tests/unictype/test-categ_Zs.c30
-rw-r--r--tests/unictype/test-categ_and.c51
-rw-r--r--tests/unictype/test-categ_and_not.c51
-rw-r--r--tests/unictype/test-categ_byname.c62
-rw-r--r--tests/unictype/test-categ_name.c45
-rw-r--r--tests/unictype/test-categ_none.c47
-rw-r--r--tests/unictype/test-categ_of.c67
-rw-r--r--tests/unictype/test-categ_or.c48
-rw-r--r--tests/unictype/test-categ_test_withtable.c50
-rw-r--r--tests/unictype/test-combining.c47
-rw-r--r--tests/unictype/test-ctype_alnum.c439
-rw-r--r--tests/unictype/test-ctype_alpha.c438
-rw-r--r--tests/unictype/test-ctype_blank.c30
-rw-r--r--tests/unictype/test-ctype_cntrl.c25
-rw-r--r--tests/unictype/test-ctype_digit.c23
-rw-r--r--tests/unictype/test-ctype_graph.c471
-rw-r--r--tests/unictype/test-ctype_lower.c592
-rw-r--r--tests/unictype/test-ctype_print.c469
-rw-r--r--tests/unictype/test-ctype_punct.c354
-rw-r--r--tests/unictype/test-ctype_space.c31
-rw-r--r--tests/unictype/test-ctype_upper.c576
-rw-r--r--tests/unictype/test-ctype_xdigit.c25
-rw-r--r--tests/unictype/test-decdigit.c62
-rw-r--r--tests/unictype/test-decdigit.h373
-rw-r--r--tests/unictype/test-digit.c62
-rw-r--r--tests/unictype/test-digit.h471
-rw-r--r--tests/unictype/test-mirror.c53
-rw-r--r--tests/unictype/test-numeric.c72
-rw-r--r--tests/unictype/test-numeric.h939
-rw-r--r--tests/unictype/test-pr_alphabetic.c465
-rw-r--r--tests/unictype/test-pr_ascii_hex_digit.c25
-rw-r--r--tests/unictype/test-pr_bidi_arabic_digit.c26
-rw-r--r--tests/unictype/test-pr_bidi_arabic_right_to_left.c47
-rw-r--r--tests/unictype/test-pr_bidi_block_separator.c27
-rw-r--r--tests/unictype/test-pr_bidi_boundary_neutral.c53
-rw-r--r--tests/unictype/test-pr_bidi_common_separator.c35
-rw-r--r--tests/unictype/test-pr_bidi_control.c24
-rw-r--r--tests/unictype/test-pr_bidi_embedding_or_override.c24
-rw-r--r--tests/unictype/test-pr_bidi_eur_num_separator.c31
-rw-r--r--tests/unictype/test-pr_bidi_eur_num_terminator.c41
-rw-r--r--tests/unictype/test-pr_bidi_european_digit.c32
-rw-r--r--tests/unictype/test-pr_bidi_hebrew_right_to_left.c42
-rw-r--r--tests/unictype/test-pr_bidi_left_to_right.c295
-rw-r--r--tests/unictype/test-pr_bidi_non_spacing_mark.c178
-rw-r--r--tests/unictype/test-pr_bidi_other_neutral.c175
-rw-r--r--tests/unictype/test-pr_bidi_pdf.c23
-rw-r--r--tests/unictype/test-pr_bidi_segment_separator.c25
-rw-r--r--tests/unictype/test-pr_bidi_whitespace.c30
-rw-r--r--tests/unictype/test-pr_byname.c54
-rw-r--r--tests/unictype/test-pr_combining.c183
-rw-r--r--tests/unictype/test-pr_composite.c291
-rw-r--r--tests/unictype/test-pr_currency_symbol.c36
-rw-r--r--tests/unictype/test-pr_dash.c40
-rw-r--r--tests/unictype/test-pr_decimal_digit.c55
-rw-r--r--tests/unictype/test-pr_default_ignorable_code_point.c37
-rw-r--r--tests/unictype/test-pr_deprecated.c28
-rw-r--r--tests/unictype/test-pr_diacritic.c124
-rw-r--r--tests/unictype/test-pr_extender.c38
-rw-r--r--tests/unictype/test-pr_format_control.c30
-rw-r--r--tests/unictype/test-pr_grapheme_base.c524
-rw-r--r--tests/unictype/test-pr_grapheme_extend.c194
-rw-r--r--tests/unictype/test-pr_grapheme_link.c44
-rw-r--r--tests/unictype/test-pr_hex_digit.c28
-rw-r--r--tests/unictype/test-pr_hyphen.c32
-rw-r--r--tests/unictype/test-pr_id_continue.c499
-rw-r--r--tests/unictype/test-pr_id_start.c414
-rw-r--r--tests/unictype/test-pr_ideographic.c32
-rw-r--r--tests/unictype/test-pr_ids_binary_operator.c24
-rw-r--r--tests/unictype/test-pr_ids_trinary_operator.c23
-rw-r--r--tests/unictype/test-pr_ignorable_control.c40
-rw-r--r--tests/unictype/test-pr_iso_control.c24
-rw-r--r--tests/unictype/test-pr_join_control.c23
-rw-r--r--tests/unictype/test-pr_left_of_pair.c63
-rw-r--r--tests/unictype/test-pr_line_separator.c23
-rw-r--r--tests/unictype/test-pr_logical_order_exception.c24
-rw-r--r--tests/unictype/test-pr_lowercase.c623
-rw-r--r--tests/unictype/test-pr_math.c127
-rw-r--r--tests/unictype/test-pr_non_break.c32
-rw-r--r--tests/unictype/test-pr_not_a_character.c40
-rw-r--r--tests/unictype/test-pr_numeric.c101
-rw-r--r--tests/unictype/test-pr_other_alphabetic.c144
-rw-r--r--tests/unictype/test-pr_other_default_ignorable_code_point.c32
-rw-r--r--tests/unictype/test-pr_other_grapheme_extend.c38
-rw-r--r--tests/unictype/test-pr_other_id_continue.c25
-rw-r--r--tests/unictype/test-pr_other_id_start.c25
-rw-r--r--tests/unictype/test-pr_other_lowercase.c35
-rw-r--r--tests/unictype/test-pr_other_math.c121
-rw-r--r--tests/unictype/test-pr_other_uppercase.c24
-rw-r--r--tests/unictype/test-pr_paired_punctuation.c49
-rw-r--r--tests/unictype/test-pr_paragraph_separator.c23
-rw-r--r--tests/unictype/test-pr_pattern_syntax.c50
-rw-r--r--tests/unictype/test-pr_pattern_white_space.c27
-rw-r--r--tests/unictype/test-pr_private_use.c25
-rw-r--r--tests/unictype/test-pr_punctuation.c134
-rw-r--r--tests/unictype/test-pr_quotation_mark.c34
-rw-r--r--tests/unictype/test-pr_radical.c25
-rw-r--r--tests/unictype/test-pr_sentence_terminal.c59
-rw-r--r--tests/unictype/test-pr_soft_dotted.c53
-rw-r--r--tests/unictype/test-pr_space.c30
-rw-r--r--tests/unictype/test-pr_terminal_punctuation.c77
-rw-r--r--tests/unictype/test-pr_test.c47
-rw-r--r--tests/unictype/test-pr_titlecase.c32
-rw-r--r--tests/unictype/test-pr_unassigned_code_value.c476
-rw-r--r--tests/unictype/test-pr_unified_ideograph.c32
-rw-r--r--tests/unictype/test-pr_uppercase.c615
-rw-r--r--tests/unictype/test-pr_variation_selector.c25
-rw-r--r--tests/unictype/test-pr_white_space.c33
-rw-r--r--tests/unictype/test-pr_xid_continue.c506
-rw-r--r--tests/unictype/test-pr_xid_start.c421
-rw-r--r--tests/unictype/test-pr_zero_width.c36
-rw-r--r--tests/unictype/test-predicate-part1.h45
-rw-r--r--tests/unictype/test-predicate-part2.h37
-rw-r--r--tests/unictype/test-scripts.c86
-rw-r--r--tests/unictype/test-sy_c_ident.c50
-rw-r--r--tests/unictype/test-sy_c_whitespace.c24
-rw-r--r--tests/unictype/test-sy_java_ident.c50
-rw-r--r--tests/unictype/test-sy_java_whitespace.c25
-rw-r--r--tests/unilbrk/test-u16-possible-linebreaks.c96
-rw-r--r--tests/unilbrk/test-u16-width-linebreaks.c86
-rw-r--r--tests/unilbrk/test-u32-possible-linebreaks.c96
-rw-r--r--tests/unilbrk/test-u32-width-linebreaks.c86
-rw-r--r--tests/unilbrk/test-u8-possible-linebreaks.c90
-rw-r--r--tests/unilbrk/test-u8-width-linebreaks.c80
-rw-r--r--tests/unilbrk/test-ulc-possible-linebreaks.c66
-rw-r--r--tests/unilbrk/test-ulc-width-linebreaks.c65
-rw-r--r--tests/uniname/UnicodeDataNames.txt30423
-rw-r--r--tests/uniname/test-uninames.c261
-rwxr-xr-xtests/uniname/test-uninames.sh2
-rw-r--r--tests/uninorm/NormalizationTest.txt17819
-rw-r--r--tests/uninorm/test-canonical-decomposition.c156
-rw-r--r--tests/uninorm/test-compat-decomposition.c198
-rw-r--r--tests/uninorm/test-composition.c66
-rw-r--r--tests/uninorm/test-decomposing-form.c47
-rw-r--r--tests/uninorm/test-decomposition.c220
-rw-r--r--tests/uninorm/test-nfc.c44
-rw-r--r--tests/uninorm/test-nfd.c44
-rw-r--r--tests/uninorm/test-nfkc.c44
-rw-r--r--tests/uninorm/test-nfkd.c44
-rw-r--r--tests/uninorm/test-u16-nfc.c345
-rw-r--r--tests/uninorm/test-u16-nfd.c329
-rw-r--r--tests/uninorm/test-u16-nfkc.c393
-rw-r--r--tests/uninorm/test-u16-nfkd.c349
-rw-r--r--tests/uninorm/test-u16-normcmp.c130
-rw-r--r--tests/uninorm/test-u16-normcmp.h69
-rw-r--r--tests/uninorm/test-u16-normcoll.c49
-rw-r--r--tests/uninorm/test-u32-nfc-big.c125
-rwxr-xr-xtests/uninorm/test-u32-nfc-big.sh2
-rw-r--r--tests/uninorm/test-u32-nfc.c345
-rw-r--r--tests/uninorm/test-u32-nfd-big.c125
-rwxr-xr-xtests/uninorm/test-u32-nfd-big.sh2
-rw-r--r--tests/uninorm/test-u32-nfd.c329
-rw-r--r--tests/uninorm/test-u32-nfkc-big.c122
-rwxr-xr-xtests/uninorm/test-u32-nfkc-big.sh2
-rw-r--r--tests/uninorm/test-u32-nfkc.c393
-rw-r--r--tests/uninorm/test-u32-nfkd-big.c122
-rwxr-xr-xtests/uninorm/test-u32-nfkd-big.sh2
-rw-r--r--tests/uninorm/test-u32-nfkd.c349
-rw-r--r--tests/uninorm/test-u32-normalize-big.c315
-rw-r--r--tests/uninorm/test-u32-normalize-big.h70
-rw-r--r--tests/uninorm/test-u32-normcmp.c130
-rw-r--r--tests/uninorm/test-u32-normcmp.h69
-rw-r--r--tests/uninorm/test-u32-normcoll.c49
-rw-r--r--tests/uninorm/test-u8-nfc.c375
-rw-r--r--tests/uninorm/test-u8-nfd.c358
-rw-r--r--tests/uninorm/test-u8-nfkc.c427
-rw-r--r--tests/uninorm/test-u8-nfkd.c379
-rw-r--r--tests/uninorm/test-u8-normcmp.c130
-rw-r--r--tests/uninorm/test-u8-normcmp.h69
-rw-r--r--tests/uninorm/test-u8-normcoll.c49
-rw-r--r--tests/uninorm/test-uninorm-filter-nfc.c122
-rw-r--r--tests/unistdio/test-u16-asnprintf1.c59
-rw-r--r--tests/unistdio/test-u16-asnprintf1.h60
-rw-r--r--tests/unistdio/test-u16-printf1.h941
-rw-r--r--tests/unistdio/test-u16-vasnprintf1.c88
-rw-r--r--tests/unistdio/test-u16-vasnprintf2.c132
-rwxr-xr-xtests/unistdio/test-u16-vasnprintf2.sh21
-rw-r--r--tests/unistdio/test-u16-vasnprintf3.c132
-rwxr-xr-xtests/unistdio/test-u16-vasnprintf3.sh21
-rw-r--r--tests/unistdio/test-u16-vasprintf1.c75
-rw-r--r--tests/unistdio/test-u16-vsnprintf1.c84
-rw-r--r--tests/unistdio/test-u16-vsprintf1.c84
-rw-r--r--tests/unistdio/test-u32-asnprintf1.c59
-rw-r--r--tests/unistdio/test-u32-asnprintf1.h60
-rw-r--r--tests/unistdio/test-u32-printf1.h941
-rw-r--r--tests/unistdio/test-u32-vasnprintf1.c88
-rw-r--r--tests/unistdio/test-u32-vasnprintf2.c132
-rwxr-xr-xtests/unistdio/test-u32-vasnprintf2.sh21
-rw-r--r--tests/unistdio/test-u32-vasnprintf3.c132
-rwxr-xr-xtests/unistdio/test-u32-vasnprintf3.sh21
-rw-r--r--tests/unistdio/test-u32-vasprintf1.c75
-rw-r--r--tests/unistdio/test-u32-vsnprintf1.c84
-rw-r--r--tests/unistdio/test-u32-vsprintf1.c84
-rw-r--r--tests/unistdio/test-u8-asnprintf1.c59
-rw-r--r--tests/unistdio/test-u8-asnprintf1.h57
-rw-r--r--tests/unistdio/test-u8-printf1.h704
-rw-r--r--tests/unistdio/test-u8-vasnprintf1.c88
-rw-r--r--tests/unistdio/test-u8-vasnprintf2.c122
-rwxr-xr-xtests/unistdio/test-u8-vasnprintf2.sh21
-rw-r--r--tests/unistdio/test-u8-vasnprintf3.c122
-rwxr-xr-xtests/unistdio/test-u8-vasnprintf3.sh21
-rw-r--r--tests/unistdio/test-u8-vasprintf1.c75
-rw-r--r--tests/unistdio/test-u8-vsnprintf1.c84
-rw-r--r--tests/unistdio/test-u8-vsprintf1.c84
-rw-r--r--tests/unistdio/test-ulc-asnprintf1.c56
-rw-r--r--tests/unistdio/test-ulc-asnprintf1.h54
-rw-r--r--tests/unistdio/test-ulc-printf1.h498
-rw-r--r--tests/unistdio/test-ulc-vasnprintf1.c85
-rw-r--r--tests/unistdio/test-ulc-vasnprintf2.c258
-rwxr-xr-xtests/unistdio/test-ulc-vasnprintf2.sh21
-rw-r--r--tests/unistdio/test-ulc-vasnprintf3.c246
-rwxr-xr-xtests/unistdio/test-ulc-vasnprintf3.sh21
-rw-r--r--tests/unistdio/test-ulc-vasprintf1.c72
-rw-r--r--tests/unistdio/test-ulc-vsnprintf1.c77
-rw-r--r--tests/unistdio/test-ulc-vsprintf1.c77
-rw-r--r--tests/uniwbrk/test-u16-wordbreaks.c106
-rw-r--r--tests/uniwbrk/test-u32-wordbreaks.c106
-rw-r--r--tests/uniwbrk/test-u8-wordbreaks.c97
-rw-r--r--tests/uniwbrk/test-ulc-wordbreaks.c74
-rwxr-xr-xtests/uniwbrk/test-ulc-wordbreaks.sh15
-rw-r--r--tests/uniwidth/test-u16-strwidth.c71
-rw-r--r--tests/uniwidth/test-u16-width.c77
-rw-r--r--tests/uniwidth/test-u32-strwidth.c71
-rw-r--r--tests/uniwidth/test-u32-width.c77
-rw-r--r--tests/uniwidth/test-u8-strwidth.c66
-rw-r--r--tests/uniwidth/test-u8-width.c75
-rw-r--r--tests/uniwidth/test-uc_width.c69
-rw-r--r--tests/uniwidth/test-uc_width2.c97
-rwxr-xr-xtests/uniwidth/test-uc_width2.sh382
-rw-r--r--tests/unsetenv.c90
-rw-r--r--tests/wctob.c37
-rw-r--r--tests/xalloc-die.c41
-rw-r--r--tests/xalloc.h280
-rw-r--r--tests/xmalloc.c118
-rw-r--r--tests/zerosize-ptr.h68
403 files changed, 113879 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..08ee641
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,39 @@
+## Makefile for the tests subdirectory of GNU libunistring.
+## Copyright (C) 2009 Free Software Foundation, Inc.
+##
+## This program is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 3 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+## Process this file with automake to produce Makefile.in.
+
+# Rules generated and collected by gnulib-tool.
+include Makefile.gnulib
+
+AUTOMAKE_OPTIONS += 1.11 subdir-objects color-tests
+
+# Ensure that ../lib/config.h is seen before ../config.h.
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/lib -I$(top_builddir)
+
+# The test suite uses the 'localcharset' module.
+TESTS_ENVIRONMENT += @LOCALCHARSET_TESTS_ENVIRONMENT@
+
+
+# For debugging memory leaks and memory allocation bugs.
+# You should build with --disable-shared when using valgrind.
+CHECKER =
+#CHECKER = valgrind --tool=memcheck --suppressions=$(srcdir)/../lib/malloca.valgrind --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes
+#CHECKER = valgrind --tool=massif --format=html --depth=10 --alloc-fn=xmalloc --alloc-fn=xrealloc --stacks=no
+CHECKER_END_OF_COMMENTS =
+
+# This must be the last thing that gets added to TESTS_ENVIRONMENT.
+TESTS_ENVIRONMENT += $(SHELL) $(top_srcdir)/build-aux/run-test '$(CHECKER)'
diff --git a/tests/Makefile.gnulib b/tests/Makefile.gnulib
new file mode 100644
index 0000000..454cfe7
--- /dev/null
+++ b/tests/Makefile.gnulib
@@ -0,0 +1,3200 @@
+## DO NOT EDIT! GENERATED AUTOMATICALLY!
+## Process this file with automake to produce Makefile.in.
+# Copyright (C) 2002-2009 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License. As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+
+AUTOMAKE_OPTIONS = 1.5 foreign
+
+SUBDIRS =
+TESTS =
+TESTS_ENVIRONMENT =
+noinst_PROGRAMS =
+check_PROGRAMS =
+noinst_HEADERS =
+noinst_LIBRARIES =
+check_LIBRARIES = libtests.a
+EXTRA_DIST =
+BUILT_SOURCES =
+SUFFIXES =
+MOSTLYCLEANFILES = core *.stackdump
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+
+AM_CPPFLAGS = \
+ -I. -I$(srcdir) \
+ -I.. -I$(srcdir)/.. \
+ -I../lib -I$(srcdir)/../lib
+
+LDADD = libtests.a ../lib/libunistring.la libtests.a $(LIBTESTS_LIBDEPS)
+
+libtests_a_SOURCES =
+libtests_a_LIBADD = $(gltests_LIBOBJS)
+libtests_a_DEPENDENCIES = $(gltests_LIBOBJS)
+EXTRA_libtests_a_SOURCES =
+AM_LIBTOOLFLAGS = --preserve-dup-deps
+
+## begin gnulib module alloca-opt-tests
+
+TESTS += test-alloca-opt
+check_PROGRAMS += test-alloca-opt
+
+EXTRA_DIST += test-alloca-opt.c
+
+## end gnulib module alloca-opt-tests
+
+## begin gnulib module array-mergesort-tests
+
+TESTS += test-array-mergesort
+check_PROGRAMS += test-array-mergesort
+EXTRA_DIST += test-array-mergesort.c
+
+## end gnulib module array-mergesort-tests
+
+## begin gnulib module c-ctype-tests
+
+TESTS += test-c-ctype
+check_PROGRAMS += test-c-ctype
+
+EXTRA_DIST += test-c-ctype.c
+
+## end gnulib module c-ctype-tests
+
+## begin gnulib module c-strcase-tests
+
+TESTS += test-c-strcase.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@'
+check_PROGRAMS += test-c-strcasecmp test-c-strncasecmp
+EXTRA_DIST += test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c
+
+## end gnulib module c-strcase-tests
+
+## begin gnulib module environ-tests
+
+TESTS += test-environ
+check_PROGRAMS += test-environ
+
+EXTRA_DIST += test-environ.c
+
+## end gnulib module environ-tests
+
+## begin gnulib module errno-tests
+
+TESTS += test-errno
+check_PROGRAMS += test-errno
+
+EXTRA_DIST += test-errno.c
+
+## end gnulib module errno-tests
+
+## begin gnulib module error
+
+
+EXTRA_DIST += error.c error.h
+
+EXTRA_libtests_a_SOURCES += error.c
+
+## end gnulib module error
+
+## begin gnulib module exitfail
+
+
+EXTRA_DIST += exitfail.c exitfail.h
+
+EXTRA_libtests_a_SOURCES += exitfail.c
+
+## end gnulib module exitfail
+
+## begin gnulib module frexpl-nolibm-tests
+
+TESTS += test-frexpl-nolibm
+check_PROGRAMS += test-frexpl-nolibm
+test_frexpl_nolibm_SOURCES = test-frexpl.c
+
+EXTRA_DIST += test-frexpl.c
+
+## end gnulib module frexpl-nolibm-tests
+
+## begin gnulib module fseterr-tests
+
+TESTS += test-fseterr
+check_PROGRAMS += test-fseterr
+
+EXTRA_DIST += test-fseterr.c
+
+## end gnulib module fseterr-tests
+
+## begin gnulib module gettext-h
+
+libtests_a_SOURCES += gettext.h
+
+## end gnulib module gettext-h
+
+## begin gnulib module iconv-tests
+
+TESTS += test-iconv
+check_PROGRAMS += test-iconv
+test_iconv_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += test-iconv.c
+
+## end gnulib module iconv-tests
+
+## begin gnulib module intprops
+
+
+EXTRA_DIST += intprops.h
+
+## end gnulib module intprops
+
+## begin gnulib module isnand-nolibm-tests
+
+TESTS += test-isnand-nolibm
+check_PROGRAMS += test-isnand-nolibm
+
+EXTRA_DIST += test-isnand-nolibm.c test-isnand.h nan.h
+
+## end gnulib module isnand-nolibm-tests
+
+## begin gnulib module isnanf-nolibm-tests
+
+TESTS += test-isnanf-nolibm
+check_PROGRAMS += test-isnanf-nolibm
+
+EXTRA_DIST += test-isnanf-nolibm.c test-isnanf.h nan.h
+
+## end gnulib module isnanf-nolibm-tests
+
+## begin gnulib module isnanl-nolibm-tests
+
+TESTS += test-isnanl-nolibm
+check_PROGRAMS += test-isnanl-nolibm
+
+EXTRA_DIST += test-isnanl-nolibm.c test-isnanl.h nan.h
+
+## end gnulib module isnanl-nolibm-tests
+
+## begin gnulib module locale
+
+BUILT_SOURCES += $(LOCALE_H)
+
+# We need the following in order to create <locale.h> when the system
+# doesn't have one that provides all definitions.
+locale.h: locale.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
+ < $(srcdir)/locale.in.h; \
+ } > $@-t
+ mv $@-t $@
+MOSTLYCLEANFILES += locale.h locale.h-t
+
+EXTRA_DIST += locale.in.h
+
+## end gnulib module locale
+
+## begin gnulib module locale-tests
+
+TESTS += test-locale
+check_PROGRAMS += test-locale
+
+EXTRA_DIST += test-locale.c
+
+## end gnulib module locale-tests
+
+## begin gnulib module localename-tests
+
+TESTS += test-localename
+check_PROGRAMS += test-localename
+test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+
+EXTRA_DIST += test-localename.c
+
+## end gnulib module localename-tests
+
+## begin gnulib module malloca-tests
+
+TESTS += test-malloca
+check_PROGRAMS += test-malloca
+
+EXTRA_DIST += test-malloca.c
+
+## end gnulib module malloca-tests
+
+## begin gnulib module math-tests
+
+TESTS += test-math
+check_PROGRAMS += test-math
+
+EXTRA_DIST += test-math.c
+
+## end gnulib module math-tests
+
+## begin gnulib module mbrtowc-tests
+
+TESTS += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh
+TESTS_ENVIRONMENT += \
+ EXEEXT='@EXEEXT@' \
+ LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+ LOCALE_JA='@LOCALE_JA@' \
+ LOCALE_ZH_CN='@LOCALE_ZH_CN@'
+check_PROGRAMS += test-mbrtowc
+
+EXTRA_DIST += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc.c
+
+## end gnulib module mbrtowc-tests
+
+## begin gnulib module mbsinit-tests
+
+TESTS += test-mbsinit.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-mbsinit
+
+EXTRA_DIST += test-mbsinit.sh test-mbsinit.c
+
+## end gnulib module mbsinit-tests
+
+## begin gnulib module memchr-tests
+
+TESTS += test-memchr
+check_PROGRAMS += test-memchr
+EXTRA_DIST += test-memchr.c zerosize-ptr.h
+
+## end gnulib module memchr-tests
+
+## begin gnulib module printf-frexp-tests
+
+TESTS += test-printf-frexp
+check_PROGRAMS += test-printf-frexp
+
+EXTRA_DIST += test-printf-frexp.c
+
+## end gnulib module printf-frexp-tests
+
+## begin gnulib module printf-frexpl-tests
+
+TESTS += test-printf-frexpl
+check_PROGRAMS += test-printf-frexpl
+
+EXTRA_DIST += test-printf-frexpl.c
+
+## end gnulib module printf-frexpl-tests
+
+## begin gnulib module progname
+
+libtests_a_SOURCES += progname.h progname.c
+
+## end gnulib module progname
+
+## begin gnulib module setenv
+
+
+EXTRA_DIST += setenv.c
+
+EXTRA_libtests_a_SOURCES += setenv.c
+
+## end gnulib module setenv
+
+## begin gnulib module signbit-tests
+
+TESTS += test-signbit
+check_PROGRAMS += test-signbit
+
+EXTRA_DIST += test-signbit.c
+
+## end gnulib module signbit-tests
+
+## begin gnulib module stdbool-tests
+
+TESTS += test-stdbool
+check_PROGRAMS += test-stdbool
+
+EXTRA_DIST += test-stdbool.c
+
+## end gnulib module stdbool-tests
+
+## begin gnulib module stdint-tests
+
+TESTS += test-stdint
+check_PROGRAMS += test-stdint
+
+EXTRA_DIST += test-stdint.c
+
+## end gnulib module stdint-tests
+
+## begin gnulib module stdlib-tests
+
+TESTS += test-stdlib
+check_PROGRAMS += test-stdlib
+
+EXTRA_DIST += test-stdlib.c
+
+## end gnulib module stdlib-tests
+
+## begin gnulib module strerror
+
+
+EXTRA_DIST += strerror.c
+
+EXTRA_libtests_a_SOURCES += strerror.c
+
+## end gnulib module strerror
+
+## begin gnulib module strerror-tests
+
+TESTS += test-strerror
+check_PROGRAMS += test-strerror
+EXTRA_DIST += test-strerror.c
+
+## end gnulib module strerror-tests
+
+## begin gnulib module striconveh-tests
+
+TESTS += test-striconveh
+check_PROGRAMS += test-striconveh
+test_striconveh_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += test-striconveh.c
+
+## end gnulib module striconveh-tests
+
+## begin gnulib module striconveha-tests
+
+TESTS += test-striconveha
+check_PROGRAMS += test-striconveha
+test_striconveha_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += test-striconveha.c
+
+## end gnulib module striconveha-tests
+
+## begin gnulib module string-tests
+
+TESTS += test-string
+check_PROGRAMS += test-string
+
+EXTRA_DIST += test-string.c
+
+## end gnulib module string-tests
+
+## begin gnulib module unicase/cased-tests
+
+TESTS += test-cased
+check_PROGRAMS += test-cased
+test_cased_SOURCES = unicase/test-cased.c
+
+EXTRA_DIST += unicase/test-cased.c unicase/test-predicate-part1.h unicase/test-predicate-part2.h
+
+## end gnulib module unicase/cased-tests
+
+## begin gnulib module unicase/ignorable-tests
+
+TESTS += test-ignorable
+check_PROGRAMS += test-ignorable
+test_ignorable_SOURCES = unicase/test-ignorable.c
+
+EXTRA_DIST += unicase/test-ignorable.c unicase/test-predicate-part1.h unicase/test-predicate-part2.h
+
+## end gnulib module unicase/ignorable-tests
+
+## begin gnulib module unicase/locale-language-tests
+
+TESTS += unicase/test-locale-language.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_JA='@LOCALE_JA@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' LOCALE_ZH_CN='@LOCALE_ZH_CN@'
+check_PROGRAMS += test-locale-language
+test_locale_language_SOURCES = unicase/test-locale-language.c
+test_locale_language_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+EXTRA_DIST += unicase/test-locale-language.sh unicase/test-locale-language.c
+
+## end gnulib module unicase/locale-language-tests
+
+## begin gnulib module unicase/tolower-tests
+
+TESTS += test-uc_tolower
+check_PROGRAMS += test-uc_tolower
+test_uc_tolower_SOURCES = unicase/test-uc_tolower.c
+
+EXTRA_DIST += unicase/test-uc_tolower.c unicase/test-mapping-part1.h unicase/test-mapping-part2.h
+
+## end gnulib module unicase/tolower-tests
+
+## begin gnulib module unicase/totitle-tests
+
+TESTS += test-uc_totitle
+check_PROGRAMS += test-uc_totitle
+test_uc_totitle_SOURCES = unicase/test-uc_totitle.c
+
+EXTRA_DIST += unicase/test-uc_totitle.c unicase/test-mapping-part1.h unicase/test-mapping-part2.h
+
+## end gnulib module unicase/totitle-tests
+
+## begin gnulib module unicase/toupper-tests
+
+TESTS += test-uc_toupper
+check_PROGRAMS += test-uc_toupper
+test_uc_toupper_SOURCES = unicase/test-uc_toupper.c
+
+EXTRA_DIST += unicase/test-uc_toupper.c unicase/test-mapping-part1.h unicase/test-mapping-part2.h
+
+## end gnulib module unicase/toupper-tests
+
+## begin gnulib module unicase/u16-casecmp-tests
+
+TESTS += test-u16-casecmp
+check_PROGRAMS += test-u16-casecmp
+test_u16_casecmp_SOURCES = unicase/test-u16-casecmp.c
+
+EXTRA_DIST += unicase/test-u16-casecmp.c unicase/test-casecmp.h
+
+## end gnulib module unicase/u16-casecmp-tests
+
+## begin gnulib module unicase/u16-casecoll-tests
+
+TESTS += test-u16-casecoll
+check_PROGRAMS += test-u16-casecoll
+test_u16_casecoll_SOURCES = unicase/test-u16-casecoll.c
+test_u16_casecoll_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += unicase/test-u16-casecoll.c unicase/test-casecmp.h
+
+## end gnulib module unicase/u16-casecoll-tests
+
+## begin gnulib module unicase/u16-casefold-tests
+
+TESTS += test-u16-casefold
+check_PROGRAMS += test-u16-casefold
+test_u16_casefold_SOURCES = unicase/test-u16-casefold.c
+
+EXTRA_DIST += unicase/test-u16-casefold.c
+
+## end gnulib module unicase/u16-casefold-tests
+
+## begin gnulib module unicase/u16-is-cased-tests
+
+TESTS += test-u16-is-cased
+check_PROGRAMS += test-u16-is-cased
+test_u16_is_cased_SOURCES = unicase/test-u16-is-cased.c
+
+EXTRA_DIST += unicase/test-u16-is-cased.c unicase/test-is-cased.h
+
+## end gnulib module unicase/u16-is-cased-tests
+
+## begin gnulib module unicase/u16-is-casefolded-tests
+
+TESTS += test-u16-is-casefolded
+check_PROGRAMS += test-u16-is-casefolded
+test_u16_is_casefolded_SOURCES = unicase/test-u16-is-casefolded.c
+
+EXTRA_DIST += unicase/test-u16-is-casefolded.c unicase/test-is-casefolded.h
+
+## end gnulib module unicase/u16-is-casefolded-tests
+
+## begin gnulib module unicase/u16-is-lowercase-tests
+
+TESTS += test-u16-is-lowercase
+check_PROGRAMS += test-u16-is-lowercase
+test_u16_is_lowercase_SOURCES = unicase/test-u16-is-lowercase.c
+
+EXTRA_DIST += unicase/test-u16-is-lowercase.c unicase/test-is-lowercase.h
+
+## end gnulib module unicase/u16-is-lowercase-tests
+
+## begin gnulib module unicase/u16-is-titlecase-tests
+
+TESTS += test-u16-is-titlecase
+check_PROGRAMS += test-u16-is-titlecase
+test_u16_is_titlecase_SOURCES = unicase/test-u16-is-titlecase.c
+
+EXTRA_DIST += unicase/test-u16-is-titlecase.c unicase/test-is-titlecase.h
+
+## end gnulib module unicase/u16-is-titlecase-tests
+
+## begin gnulib module unicase/u16-is-uppercase-tests
+
+TESTS += test-u16-is-uppercase
+check_PROGRAMS += test-u16-is-uppercase
+test_u16_is_uppercase_SOURCES = unicase/test-u16-is-uppercase.c
+
+EXTRA_DIST += unicase/test-u16-is-uppercase.c unicase/test-is-uppercase.h
+
+## end gnulib module unicase/u16-is-uppercase-tests
+
+## begin gnulib module unicase/u16-tolower-tests
+
+TESTS += test-u16-tolower
+check_PROGRAMS += test-u16-tolower
+test_u16_tolower_SOURCES = unicase/test-u16-tolower.c
+
+EXTRA_DIST += unicase/test-u16-tolower.c
+
+## end gnulib module unicase/u16-tolower-tests
+
+## begin gnulib module unicase/u16-totitle-tests
+
+TESTS += test-u16-totitle
+check_PROGRAMS += test-u16-totitle
+test_u16_totitle_SOURCES = unicase/test-u16-totitle.c
+
+EXTRA_DIST += unicase/test-u16-totitle.c
+
+## end gnulib module unicase/u16-totitle-tests
+
+## begin gnulib module unicase/u16-toupper-tests
+
+TESTS += test-u16-toupper
+check_PROGRAMS += test-u16-toupper
+test_u16_toupper_SOURCES = unicase/test-u16-toupper.c
+
+EXTRA_DIST += unicase/test-u16-toupper.c
+
+## end gnulib module unicase/u16-toupper-tests
+
+## begin gnulib module unicase/u32-casecmp-tests
+
+TESTS += test-u32-casecmp
+check_PROGRAMS += test-u32-casecmp
+test_u32_casecmp_SOURCES = unicase/test-u32-casecmp.c
+
+EXTRA_DIST += unicase/test-u32-casecmp.c unicase/test-casecmp.h
+
+## end gnulib module unicase/u32-casecmp-tests
+
+## begin gnulib module unicase/u32-casecoll-tests
+
+TESTS += test-u32-casecoll
+check_PROGRAMS += test-u32-casecoll
+test_u32_casecoll_SOURCES = unicase/test-u32-casecoll.c
+test_u32_casecoll_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += unicase/test-u32-casecoll.c unicase/test-casecmp.h
+
+## end gnulib module unicase/u32-casecoll-tests
+
+## begin gnulib module unicase/u32-casefold-tests
+
+TESTS += test-u32-casefold
+check_PROGRAMS += test-u32-casefold
+test_u32_casefold_SOURCES = unicase/test-u32-casefold.c
+
+EXTRA_DIST += unicase/test-u32-casefold.c
+
+## end gnulib module unicase/u32-casefold-tests
+
+## begin gnulib module unicase/u32-is-cased-tests
+
+TESTS += test-u32-is-cased
+check_PROGRAMS += test-u32-is-cased
+test_u32_is_cased_SOURCES = unicase/test-u32-is-cased.c
+
+EXTRA_DIST += unicase/test-u32-is-cased.c unicase/test-is-cased.h
+
+## end gnulib module unicase/u32-is-cased-tests
+
+## begin gnulib module unicase/u32-is-casefolded-tests
+
+TESTS += test-u32-is-casefolded
+check_PROGRAMS += test-u32-is-casefolded
+test_u32_is_casefolded_SOURCES = unicase/test-u32-is-casefolded.c
+
+EXTRA_DIST += unicase/test-u32-is-casefolded.c unicase/test-is-casefolded.h
+
+## end gnulib module unicase/u32-is-casefolded-tests
+
+## begin gnulib module unicase/u32-is-lowercase-tests
+
+TESTS += test-u32-is-lowercase
+check_PROGRAMS += test-u32-is-lowercase
+test_u32_is_lowercase_SOURCES = unicase/test-u32-is-lowercase.c
+
+EXTRA_DIST += unicase/test-u32-is-lowercase.c unicase/test-is-lowercase.h
+
+## end gnulib module unicase/u32-is-lowercase-tests
+
+## begin gnulib module unicase/u32-is-titlecase-tests
+
+TESTS += test-u32-is-titlecase
+check_PROGRAMS += test-u32-is-titlecase
+test_u32_is_titlecase_SOURCES = unicase/test-u32-is-titlecase.c
+
+EXTRA_DIST += unicase/test-u32-is-titlecase.c unicase/test-is-titlecase.h
+
+## end gnulib module unicase/u32-is-titlecase-tests
+
+## begin gnulib module unicase/u32-is-uppercase-tests
+
+TESTS += test-u32-is-uppercase
+check_PROGRAMS += test-u32-is-uppercase
+test_u32_is_uppercase_SOURCES = unicase/test-u32-is-uppercase.c
+
+EXTRA_DIST += unicase/test-u32-is-uppercase.c unicase/test-is-uppercase.h
+
+## end gnulib module unicase/u32-is-uppercase-tests
+
+## begin gnulib module unicase/u32-tolower-tests
+
+TESTS += test-u32-tolower
+check_PROGRAMS += test-u32-tolower
+test_u32_tolower_SOURCES = unicase/test-u32-tolower.c
+
+EXTRA_DIST += unicase/test-u32-tolower.c
+
+## end gnulib module unicase/u32-tolower-tests
+
+## begin gnulib module unicase/u32-totitle-tests
+
+TESTS += test-u32-totitle
+check_PROGRAMS += test-u32-totitle
+test_u32_totitle_SOURCES = unicase/test-u32-totitle.c
+
+EXTRA_DIST += unicase/test-u32-totitle.c
+
+## end gnulib module unicase/u32-totitle-tests
+
+## begin gnulib module unicase/u32-toupper-tests
+
+TESTS += test-u32-toupper
+check_PROGRAMS += test-u32-toupper
+test_u32_toupper_SOURCES = unicase/test-u32-toupper.c
+
+EXTRA_DIST += unicase/test-u32-toupper.c
+
+## end gnulib module unicase/u32-toupper-tests
+
+## begin gnulib module unicase/u8-casecmp-tests
+
+TESTS += test-u8-casecmp
+check_PROGRAMS += test-u8-casecmp
+test_u8_casecmp_SOURCES = unicase/test-u8-casecmp.c
+
+EXTRA_DIST += unicase/test-u8-casecmp.c unicase/test-casecmp.h
+
+## end gnulib module unicase/u8-casecmp-tests
+
+## begin gnulib module unicase/u8-casecoll-tests
+
+TESTS += test-u8-casecoll
+check_PROGRAMS += test-u8-casecoll
+test_u8_casecoll_SOURCES = unicase/test-u8-casecoll.c
+test_u8_casecoll_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += unicase/test-u8-casecoll.c unicase/test-casecmp.h
+
+## end gnulib module unicase/u8-casecoll-tests
+
+## begin gnulib module unicase/u8-casefold-tests
+
+TESTS += test-u8-casefold
+check_PROGRAMS += test-u8-casefold
+test_u8_casefold_SOURCES = unicase/test-u8-casefold.c
+
+EXTRA_DIST += unicase/test-u8-casefold.c
+
+## end gnulib module unicase/u8-casefold-tests
+
+## begin gnulib module unicase/u8-is-cased-tests
+
+TESTS += test-u8-is-cased
+check_PROGRAMS += test-u8-is-cased
+test_u8_is_cased_SOURCES = unicase/test-u8-is-cased.c
+
+EXTRA_DIST += unicase/test-u8-is-cased.c unicase/test-is-cased.h
+
+## end gnulib module unicase/u8-is-cased-tests
+
+## begin gnulib module unicase/u8-is-casefolded-tests
+
+TESTS += test-u8-is-casefolded
+check_PROGRAMS += test-u8-is-casefolded
+test_u8_is_casefolded_SOURCES = unicase/test-u8-is-casefolded.c
+
+EXTRA_DIST += unicase/test-u8-is-casefolded.c unicase/test-is-casefolded.h
+
+## end gnulib module unicase/u8-is-casefolded-tests
+
+## begin gnulib module unicase/u8-is-lowercase-tests
+
+TESTS += test-u8-is-lowercase
+check_PROGRAMS += test-u8-is-lowercase
+test_u8_is_lowercase_SOURCES = unicase/test-u8-is-lowercase.c
+
+EXTRA_DIST += unicase/test-u8-is-lowercase.c unicase/test-is-lowercase.h
+
+## end gnulib module unicase/u8-is-lowercase-tests
+
+## begin gnulib module unicase/u8-is-titlecase-tests
+
+TESTS += test-u8-is-titlecase
+check_PROGRAMS += test-u8-is-titlecase
+test_u8_is_titlecase_SOURCES = unicase/test-u8-is-titlecase.c
+
+EXTRA_DIST += unicase/test-u8-is-titlecase.c unicase/test-is-titlecase.h
+
+## end gnulib module unicase/u8-is-titlecase-tests
+
+## begin gnulib module unicase/u8-is-uppercase-tests
+
+TESTS += test-u8-is-uppercase
+check_PROGRAMS += test-u8-is-uppercase
+test_u8_is_uppercase_SOURCES = unicase/test-u8-is-uppercase.c
+
+EXTRA_DIST += unicase/test-u8-is-uppercase.c unicase/test-is-uppercase.h
+
+## end gnulib module unicase/u8-is-uppercase-tests
+
+## begin gnulib module unicase/u8-tolower-tests
+
+TESTS += test-u8-tolower
+check_PROGRAMS += test-u8-tolower
+test_u8_tolower_SOURCES = unicase/test-u8-tolower.c
+
+EXTRA_DIST += unicase/test-u8-tolower.c
+
+## end gnulib module unicase/u8-tolower-tests
+
+## begin gnulib module unicase/u8-totitle-tests
+
+TESTS += test-u8-totitle
+check_PROGRAMS += test-u8-totitle
+test_u8_totitle_SOURCES = unicase/test-u8-totitle.c
+
+EXTRA_DIST += unicase/test-u8-totitle.c
+
+## end gnulib module unicase/u8-totitle-tests
+
+## begin gnulib module unicase/u8-toupper-tests
+
+TESTS += test-u8-toupper
+check_PROGRAMS += test-u8-toupper
+test_u8_toupper_SOURCES = unicase/test-u8-toupper.c
+
+EXTRA_DIST += unicase/test-u8-toupper.c
+
+## end gnulib module unicase/u8-toupper-tests
+
+## begin gnulib module unicase/ulc-casecmp-tests
+
+TESTS += unicase/test-ulc-casecmp1.sh unicase/test-ulc-casecmp2.sh
+TESTS_ENVIRONMENT += \
+ EXEEXT='@EXEEXT@' \
+ LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-ulc-casecmp
+test_ulc_casecmp_SOURCES = unicase/test-ulc-casecmp.c
+test_ulc_casecmp_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += unicase/test-ulc-casecmp1.sh unicase/test-ulc-casecmp2.sh unicase/test-ulc-casecmp.c unicase/test-casecmp.h
+
+## end gnulib module unicase/ulc-casecmp-tests
+
+## begin gnulib module unicase/ulc-casecoll-tests
+
+TESTS += unicase/test-ulc-casecoll1.sh unicase/test-ulc-casecoll2.sh
+TESTS_ENVIRONMENT += \
+ EXEEXT='@EXEEXT@' \
+ LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-ulc-casecoll
+test_ulc_casecoll_SOURCES = unicase/test-ulc-casecoll.c
+test_ulc_casecoll_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += unicase/test-ulc-casecoll1.sh unicase/test-ulc-casecoll2.sh unicase/test-ulc-casecoll.c unicase/test-casecmp.h
+
+## end gnulib module unicase/ulc-casecoll-tests
+
+## begin gnulib module uniconv/u16-conv-from-enc-tests
+
+TESTS += test-u16-conv-from-enc
+check_PROGRAMS += test-u16-conv-from-enc
+test_u16_conv_from_enc_SOURCES = uniconv/test-u16-conv-from-enc.c
+test_u16_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u16-conv-from-enc.c
+
+## end gnulib module uniconv/u16-conv-from-enc-tests
+
+## begin gnulib module uniconv/u16-conv-to-enc-tests
+
+TESTS += test-u16-conv-to-enc
+check_PROGRAMS += test-u16-conv-to-enc
+test_u16_conv_to_enc_SOURCES = uniconv/test-u16-conv-to-enc.c
+test_u16_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u16-conv-to-enc.c
+
+## end gnulib module uniconv/u16-conv-to-enc-tests
+
+## begin gnulib module uniconv/u16-strconv-from-enc-tests
+
+TESTS += test-u16-strconv-from-enc
+check_PROGRAMS += test-u16-strconv-from-enc
+test_u16_strconv_from_enc_SOURCES = uniconv/test-u16-strconv-from-enc.c
+test_u16_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u16-strconv-from-enc.c
+
+## end gnulib module uniconv/u16-strconv-from-enc-tests
+
+## begin gnulib module uniconv/u16-strconv-to-enc-tests
+
+TESTS += test-u16-strconv-to-enc
+check_PROGRAMS += test-u16-strconv-to-enc
+test_u16_strconv_to_enc_SOURCES = uniconv/test-u16-strconv-to-enc.c
+test_u16_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u16-strconv-to-enc.c
+
+## end gnulib module uniconv/u16-strconv-to-enc-tests
+
+## begin gnulib module uniconv/u32-conv-from-enc-tests
+
+TESTS += test-u32-conv-from-enc
+check_PROGRAMS += test-u32-conv-from-enc
+test_u32_conv_from_enc_SOURCES = uniconv/test-u32-conv-from-enc.c
+test_u32_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u32-conv-from-enc.c
+
+## end gnulib module uniconv/u32-conv-from-enc-tests
+
+## begin gnulib module uniconv/u32-conv-to-enc-tests
+
+TESTS += test-u32-conv-to-enc
+check_PROGRAMS += test-u32-conv-to-enc
+test_u32_conv_to_enc_SOURCES = uniconv/test-u32-conv-to-enc.c
+test_u32_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u32-conv-to-enc.c
+
+## end gnulib module uniconv/u32-conv-to-enc-tests
+
+## begin gnulib module uniconv/u32-strconv-from-enc-tests
+
+TESTS += test-u32-strconv-from-enc
+check_PROGRAMS += test-u32-strconv-from-enc
+test_u32_strconv_from_enc_SOURCES = uniconv/test-u32-strconv-from-enc.c
+test_u32_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u32-strconv-from-enc.c
+
+## end gnulib module uniconv/u32-strconv-from-enc-tests
+
+## begin gnulib module uniconv/u32-strconv-to-enc-tests
+
+TESTS += test-u32-strconv-to-enc
+check_PROGRAMS += test-u32-strconv-to-enc
+test_u32_strconv_to_enc_SOURCES = uniconv/test-u32-strconv-to-enc.c
+test_u32_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u32-strconv-to-enc.c
+
+## end gnulib module uniconv/u32-strconv-to-enc-tests
+
+## begin gnulib module uniconv/u8-conv-from-enc-tests
+
+TESTS += test-u8-conv-from-enc
+check_PROGRAMS += test-u8-conv-from-enc
+test_u8_conv_from_enc_SOURCES = uniconv/test-u8-conv-from-enc.c
+test_u8_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u8-conv-from-enc.c
+
+## end gnulib module uniconv/u8-conv-from-enc-tests
+
+## begin gnulib module uniconv/u8-conv-to-enc-tests
+
+TESTS += test-u8-conv-to-enc
+check_PROGRAMS += test-u8-conv-to-enc
+test_u8_conv_to_enc_SOURCES = uniconv/test-u8-conv-to-enc.c
+test_u8_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u8-conv-to-enc.c
+
+## end gnulib module uniconv/u8-conv-to-enc-tests
+
+## begin gnulib module uniconv/u8-strconv-from-enc-tests
+
+TESTS += test-u8-strconv-from-enc
+check_PROGRAMS += test-u8-strconv-from-enc
+test_u8_strconv_from_enc_SOURCES = uniconv/test-u8-strconv-from-enc.c
+test_u8_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u8-strconv-from-enc.c
+
+## end gnulib module uniconv/u8-strconv-from-enc-tests
+
+## begin gnulib module uniconv/u8-strconv-to-enc-tests
+
+TESTS += test-u8-strconv-to-enc
+check_PROGRAMS += test-u8-strconv-to-enc
+test_u8_strconv_to_enc_SOURCES = uniconv/test-u8-strconv-to-enc.c
+test_u8_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniconv/test-u8-strconv-to-enc.c
+
+## end gnulib module uniconv/u8-strconv-to-enc-tests
+
+## begin gnulib module unictype/bidicategory-byname-tests
+
+TESTS += test-bidi_byname
+check_PROGRAMS += test-bidi_byname
+test_bidi_byname_SOURCES = unictype/test-bidi_byname.c
+
+EXTRA_DIST += unictype/test-bidi_byname.c
+
+## end gnulib module unictype/bidicategory-byname-tests
+
+## begin gnulib module unictype/bidicategory-name-tests
+
+TESTS += test-bidi_name
+check_PROGRAMS += test-bidi_name
+test_bidi_name_SOURCES = unictype/test-bidi_name.c
+
+EXTRA_DIST += unictype/test-bidi_name.c
+
+## end gnulib module unictype/bidicategory-name-tests
+
+## begin gnulib module unictype/bidicategory-of-tests
+
+TESTS += test-bidi_of
+check_PROGRAMS += test-bidi_of
+test_bidi_of_SOURCES = unictype/test-bidi_of.c
+
+EXTRA_DIST += unictype/test-bidi_of.c
+
+## end gnulib module unictype/bidicategory-of-tests
+
+## begin gnulib module unictype/bidicategory-test-tests
+
+TESTS += test-bidi_test
+check_PROGRAMS += test-bidi_test
+test_bidi_test_SOURCES = unictype/test-bidi_test.c
+
+EXTRA_DIST += unictype/test-bidi_test.c
+
+## end gnulib module unictype/bidicategory-test-tests
+
+## begin gnulib module unictype/block-list-tests
+
+TESTS += test-block_list
+check_PROGRAMS += test-block_list
+test_block_list_SOURCES = unictype/test-block_list.c
+
+EXTRA_DIST += unictype/test-block_list.c
+
+## end gnulib module unictype/block-list-tests
+
+## begin gnulib module unictype/block-of-tests
+
+TESTS += test-block_of
+check_PROGRAMS += test-block_of
+test_block_of_SOURCES = unictype/test-block_of.c
+
+EXTRA_DIST += unictype/test-block_of.c
+
+## end gnulib module unictype/block-of-tests
+
+## begin gnulib module unictype/block-test-tests
+
+TESTS += test-block_test
+check_PROGRAMS += test-block_test
+test_block_test_SOURCES = unictype/test-block_test.c
+
+EXTRA_DIST += unictype/test-block_test.c
+
+## end gnulib module unictype/block-test-tests
+
+## begin gnulib module unictype/category-C-tests
+
+TESTS += test-categ_C
+check_PROGRAMS += test-categ_C
+test_categ_C_SOURCES = unictype/test-categ_C.c
+
+EXTRA_DIST += unictype/test-categ_C.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-C-tests
+
+## begin gnulib module unictype/category-Cc-tests
+
+TESTS += test-categ_Cc
+check_PROGRAMS += test-categ_Cc
+test_categ_Cc_SOURCES = unictype/test-categ_Cc.c
+
+EXTRA_DIST += unictype/test-categ_Cc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Cc-tests
+
+## begin gnulib module unictype/category-Cf-tests
+
+TESTS += test-categ_Cf
+check_PROGRAMS += test-categ_Cf
+test_categ_Cf_SOURCES = unictype/test-categ_Cf.c
+
+EXTRA_DIST += unictype/test-categ_Cf.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Cf-tests
+
+## begin gnulib module unictype/category-Cn-tests
+
+TESTS += test-categ_Cn
+check_PROGRAMS += test-categ_Cn
+test_categ_Cn_SOURCES = unictype/test-categ_Cn.c
+
+EXTRA_DIST += unictype/test-categ_Cn.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Cn-tests
+
+## begin gnulib module unictype/category-Co-tests
+
+TESTS += test-categ_Co
+check_PROGRAMS += test-categ_Co
+test_categ_Co_SOURCES = unictype/test-categ_Co.c
+
+EXTRA_DIST += unictype/test-categ_Co.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Co-tests
+
+## begin gnulib module unictype/category-Cs-tests
+
+TESTS += test-categ_Cs
+check_PROGRAMS += test-categ_Cs
+test_categ_Cs_SOURCES = unictype/test-categ_Cs.c
+
+EXTRA_DIST += unictype/test-categ_Cs.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Cs-tests
+
+## begin gnulib module unictype/category-L-tests
+
+TESTS += test-categ_L
+check_PROGRAMS += test-categ_L
+test_categ_L_SOURCES = unictype/test-categ_L.c
+
+EXTRA_DIST += unictype/test-categ_L.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-L-tests
+
+## begin gnulib module unictype/category-Ll-tests
+
+TESTS += test-categ_Ll
+check_PROGRAMS += test-categ_Ll
+test_categ_Ll_SOURCES = unictype/test-categ_Ll.c
+
+EXTRA_DIST += unictype/test-categ_Ll.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Ll-tests
+
+## begin gnulib module unictype/category-Lm-tests
+
+TESTS += test-categ_Lm
+check_PROGRAMS += test-categ_Lm
+test_categ_Lm_SOURCES = unictype/test-categ_Lm.c
+
+EXTRA_DIST += unictype/test-categ_Lm.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Lm-tests
+
+## begin gnulib module unictype/category-Lo-tests
+
+TESTS += test-categ_Lo
+check_PROGRAMS += test-categ_Lo
+test_categ_Lo_SOURCES = unictype/test-categ_Lo.c
+
+EXTRA_DIST += unictype/test-categ_Lo.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Lo-tests
+
+## begin gnulib module unictype/category-Lt-tests
+
+TESTS += test-categ_Lt
+check_PROGRAMS += test-categ_Lt
+test_categ_Lt_SOURCES = unictype/test-categ_Lt.c
+
+EXTRA_DIST += unictype/test-categ_Lt.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Lt-tests
+
+## begin gnulib module unictype/category-Lu-tests
+
+TESTS += test-categ_Lu
+check_PROGRAMS += test-categ_Lu
+test_categ_Lu_SOURCES = unictype/test-categ_Lu.c
+
+EXTRA_DIST += unictype/test-categ_Lu.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Lu-tests
+
+## begin gnulib module unictype/category-M-tests
+
+TESTS += test-categ_M
+check_PROGRAMS += test-categ_M
+test_categ_M_SOURCES = unictype/test-categ_M.c
+
+EXTRA_DIST += unictype/test-categ_M.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-M-tests
+
+## begin gnulib module unictype/category-Mc-tests
+
+TESTS += test-categ_Mc
+check_PROGRAMS += test-categ_Mc
+test_categ_Mc_SOURCES = unictype/test-categ_Mc.c
+
+EXTRA_DIST += unictype/test-categ_Mc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Mc-tests
+
+## begin gnulib module unictype/category-Me-tests
+
+TESTS += test-categ_Me
+check_PROGRAMS += test-categ_Me
+test_categ_Me_SOURCES = unictype/test-categ_Me.c
+
+EXTRA_DIST += unictype/test-categ_Me.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Me-tests
+
+## begin gnulib module unictype/category-Mn-tests
+
+TESTS += test-categ_Mn
+check_PROGRAMS += test-categ_Mn
+test_categ_Mn_SOURCES = unictype/test-categ_Mn.c
+
+EXTRA_DIST += unictype/test-categ_Mn.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Mn-tests
+
+## begin gnulib module unictype/category-N-tests
+
+TESTS += test-categ_N
+check_PROGRAMS += test-categ_N
+test_categ_N_SOURCES = unictype/test-categ_N.c
+
+EXTRA_DIST += unictype/test-categ_N.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-N-tests
+
+## begin gnulib module unictype/category-Nd-tests
+
+TESTS += test-categ_Nd
+check_PROGRAMS += test-categ_Nd
+test_categ_Nd_SOURCES = unictype/test-categ_Nd.c
+
+EXTRA_DIST += unictype/test-categ_Nd.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Nd-tests
+
+## begin gnulib module unictype/category-Nl-tests
+
+TESTS += test-categ_Nl
+check_PROGRAMS += test-categ_Nl
+test_categ_Nl_SOURCES = unictype/test-categ_Nl.c
+
+EXTRA_DIST += unictype/test-categ_Nl.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Nl-tests
+
+## begin gnulib module unictype/category-No-tests
+
+TESTS += test-categ_No
+check_PROGRAMS += test-categ_No
+test_categ_No_SOURCES = unictype/test-categ_No.c
+
+EXTRA_DIST += unictype/test-categ_No.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-No-tests
+
+## begin gnulib module unictype/category-P-tests
+
+TESTS += test-categ_P
+check_PROGRAMS += test-categ_P
+test_categ_P_SOURCES = unictype/test-categ_P.c
+
+EXTRA_DIST += unictype/test-categ_P.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-P-tests
+
+## begin gnulib module unictype/category-Pc-tests
+
+TESTS += test-categ_Pc
+check_PROGRAMS += test-categ_Pc
+test_categ_Pc_SOURCES = unictype/test-categ_Pc.c
+
+EXTRA_DIST += unictype/test-categ_Pc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Pc-tests
+
+## begin gnulib module unictype/category-Pd-tests
+
+TESTS += test-categ_Pd
+check_PROGRAMS += test-categ_Pd
+test_categ_Pd_SOURCES = unictype/test-categ_Pd.c
+
+EXTRA_DIST += unictype/test-categ_Pd.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Pd-tests
+
+## begin gnulib module unictype/category-Pe-tests
+
+TESTS += test-categ_Pe
+check_PROGRAMS += test-categ_Pe
+test_categ_Pe_SOURCES = unictype/test-categ_Pe.c
+
+EXTRA_DIST += unictype/test-categ_Pe.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Pe-tests
+
+## begin gnulib module unictype/category-Pf-tests
+
+TESTS += test-categ_Pf
+check_PROGRAMS += test-categ_Pf
+test_categ_Pf_SOURCES = unictype/test-categ_Pf.c
+
+EXTRA_DIST += unictype/test-categ_Pf.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Pf-tests
+
+## begin gnulib module unictype/category-Pi-tests
+
+TESTS += test-categ_Pi
+check_PROGRAMS += test-categ_Pi
+test_categ_Pi_SOURCES = unictype/test-categ_Pi.c
+
+EXTRA_DIST += unictype/test-categ_Pi.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Pi-tests
+
+## begin gnulib module unictype/category-Po-tests
+
+TESTS += test-categ_Po
+check_PROGRAMS += test-categ_Po
+test_categ_Po_SOURCES = unictype/test-categ_Po.c
+
+EXTRA_DIST += unictype/test-categ_Po.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Po-tests
+
+## begin gnulib module unictype/category-Ps-tests
+
+TESTS += test-categ_Ps
+check_PROGRAMS += test-categ_Ps
+test_categ_Ps_SOURCES = unictype/test-categ_Ps.c
+
+EXTRA_DIST += unictype/test-categ_Ps.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Ps-tests
+
+## begin gnulib module unictype/category-S-tests
+
+TESTS += test-categ_S
+check_PROGRAMS += test-categ_S
+test_categ_S_SOURCES = unictype/test-categ_S.c
+
+EXTRA_DIST += unictype/test-categ_S.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-S-tests
+
+## begin gnulib module unictype/category-Sc-tests
+
+TESTS += test-categ_Sc
+check_PROGRAMS += test-categ_Sc
+test_categ_Sc_SOURCES = unictype/test-categ_Sc.c
+
+EXTRA_DIST += unictype/test-categ_Sc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Sc-tests
+
+## begin gnulib module unictype/category-Sk-tests
+
+TESTS += test-categ_Sk
+check_PROGRAMS += test-categ_Sk
+test_categ_Sk_SOURCES = unictype/test-categ_Sk.c
+
+EXTRA_DIST += unictype/test-categ_Sk.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Sk-tests
+
+## begin gnulib module unictype/category-Sm-tests
+
+TESTS += test-categ_Sm
+check_PROGRAMS += test-categ_Sm
+test_categ_Sm_SOURCES = unictype/test-categ_Sm.c
+
+EXTRA_DIST += unictype/test-categ_Sm.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Sm-tests
+
+## begin gnulib module unictype/category-So-tests
+
+TESTS += test-categ_So
+check_PROGRAMS += test-categ_So
+test_categ_So_SOURCES = unictype/test-categ_So.c
+
+EXTRA_DIST += unictype/test-categ_So.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-So-tests
+
+## begin gnulib module unictype/category-Z-tests
+
+TESTS += test-categ_Z
+check_PROGRAMS += test-categ_Z
+test_categ_Z_SOURCES = unictype/test-categ_Z.c
+
+EXTRA_DIST += unictype/test-categ_Z.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Z-tests
+
+## begin gnulib module unictype/category-Zl-tests
+
+TESTS += test-categ_Zl
+check_PROGRAMS += test-categ_Zl
+test_categ_Zl_SOURCES = unictype/test-categ_Zl.c
+
+EXTRA_DIST += unictype/test-categ_Zl.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Zl-tests
+
+## begin gnulib module unictype/category-Zp-tests
+
+TESTS += test-categ_Zp
+check_PROGRAMS += test-categ_Zp
+test_categ_Zp_SOURCES = unictype/test-categ_Zp.c
+
+EXTRA_DIST += unictype/test-categ_Zp.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Zp-tests
+
+## begin gnulib module unictype/category-Zs-tests
+
+TESTS += test-categ_Zs
+check_PROGRAMS += test-categ_Zs
+test_categ_Zs_SOURCES = unictype/test-categ_Zs.c
+
+EXTRA_DIST += unictype/test-categ_Zs.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/category-Zs-tests
+
+## begin gnulib module unictype/category-and-not-tests
+
+TESTS += test-categ_and_not
+check_PROGRAMS += test-categ_and_not
+test_categ_and_not_SOURCES = unictype/test-categ_and_not.c
+
+EXTRA_DIST += unictype/test-categ_and_not.c
+
+## end gnulib module unictype/category-and-not-tests
+
+## begin gnulib module unictype/category-and-tests
+
+TESTS += test-categ_and
+check_PROGRAMS += test-categ_and
+test_categ_and_SOURCES = unictype/test-categ_and.c
+
+EXTRA_DIST += unictype/test-categ_and.c
+
+## end gnulib module unictype/category-and-tests
+
+## begin gnulib module unictype/category-byname-tests
+
+TESTS += test-categ_byname
+check_PROGRAMS += test-categ_byname
+test_categ_byname_SOURCES = unictype/test-categ_byname.c
+
+EXTRA_DIST += unictype/test-categ_byname.c
+
+## end gnulib module unictype/category-byname-tests
+
+## begin gnulib module unictype/category-name-tests
+
+TESTS += test-categ_name
+check_PROGRAMS += test-categ_name
+test_categ_name_SOURCES = unictype/test-categ_name.c
+
+EXTRA_DIST += unictype/test-categ_name.c
+
+## end gnulib module unictype/category-name-tests
+
+## begin gnulib module unictype/category-none-tests
+
+if !WOE32DLL
+TESTS += test-categ_none
+check_PROGRAMS += test-categ_none
+test_categ_none_SOURCES = unictype/test-categ_none.c
+endif
+
+EXTRA_DIST += unictype/test-categ_none.c
+
+## end gnulib module unictype/category-none-tests
+
+## begin gnulib module unictype/category-of-tests
+
+TESTS += test-categ_of
+check_PROGRAMS += test-categ_of
+test_categ_of_SOURCES = unictype/test-categ_of.c
+
+EXTRA_DIST += unictype/test-categ_of.c
+
+## end gnulib module unictype/category-of-tests
+
+## begin gnulib module unictype/category-or-tests
+
+TESTS += test-categ_or
+check_PROGRAMS += test-categ_or
+test_categ_or_SOURCES = unictype/test-categ_or.c
+
+EXTRA_DIST += unictype/test-categ_or.c
+
+## end gnulib module unictype/category-or-tests
+
+## begin gnulib module unictype/category-test-withtable-tests
+
+TESTS += test-categ_test_withtable
+check_PROGRAMS += test-categ_test_withtable
+test_categ_test_withtable_SOURCES = unictype/test-categ_test_withtable.c
+
+EXTRA_DIST += unictype/test-categ_test_withtable.c
+
+## end gnulib module unictype/category-test-withtable-tests
+
+## begin gnulib module unictype/combining-class-tests
+
+TESTS += test-combining
+check_PROGRAMS += test-combining
+test_combining_SOURCES = unictype/test-combining.c
+
+EXTRA_DIST += unictype/test-combining.c
+
+## end gnulib module unictype/combining-class-tests
+
+## begin gnulib module unictype/ctype-alnum-tests
+
+TESTS += test-ctype_alnum
+check_PROGRAMS += test-ctype_alnum
+test_ctype_alnum_SOURCES = unictype/test-ctype_alnum.c
+
+EXTRA_DIST += unictype/test-ctype_alnum.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-alnum-tests
+
+## begin gnulib module unictype/ctype-alpha-tests
+
+TESTS += test-ctype_alpha
+check_PROGRAMS += test-ctype_alpha
+test_ctype_alpha_SOURCES = unictype/test-ctype_alpha.c
+
+EXTRA_DIST += unictype/test-ctype_alpha.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-alpha-tests
+
+## begin gnulib module unictype/ctype-blank-tests
+
+TESTS += test-ctype_blank
+check_PROGRAMS += test-ctype_blank
+test_ctype_blank_SOURCES = unictype/test-ctype_blank.c
+
+EXTRA_DIST += unictype/test-ctype_blank.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-blank-tests
+
+## begin gnulib module unictype/ctype-cntrl-tests
+
+TESTS += test-ctype_cntrl
+check_PROGRAMS += test-ctype_cntrl
+test_ctype_cntrl_SOURCES = unictype/test-ctype_cntrl.c
+
+EXTRA_DIST += unictype/test-ctype_cntrl.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-cntrl-tests
+
+## begin gnulib module unictype/ctype-digit-tests
+
+TESTS += test-ctype_digit
+check_PROGRAMS += test-ctype_digit
+test_ctype_digit_SOURCES = unictype/test-ctype_digit.c
+
+EXTRA_DIST += unictype/test-ctype_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-digit-tests
+
+## begin gnulib module unictype/ctype-graph-tests
+
+TESTS += test-ctype_graph
+check_PROGRAMS += test-ctype_graph
+test_ctype_graph_SOURCES = unictype/test-ctype_graph.c
+
+EXTRA_DIST += unictype/test-ctype_graph.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-graph-tests
+
+## begin gnulib module unictype/ctype-lower-tests
+
+TESTS += test-ctype_lower
+check_PROGRAMS += test-ctype_lower
+test_ctype_lower_SOURCES = unictype/test-ctype_lower.c
+
+EXTRA_DIST += unictype/test-ctype_lower.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-lower-tests
+
+## begin gnulib module unictype/ctype-print-tests
+
+TESTS += test-ctype_print
+check_PROGRAMS += test-ctype_print
+test_ctype_print_SOURCES = unictype/test-ctype_print.c
+
+EXTRA_DIST += unictype/test-ctype_print.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-print-tests
+
+## begin gnulib module unictype/ctype-punct-tests
+
+TESTS += test-ctype_punct
+check_PROGRAMS += test-ctype_punct
+test_ctype_punct_SOURCES = unictype/test-ctype_punct.c
+
+EXTRA_DIST += unictype/test-ctype_punct.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-punct-tests
+
+## begin gnulib module unictype/ctype-space-tests
+
+TESTS += test-ctype_space
+check_PROGRAMS += test-ctype_space
+test_ctype_space_SOURCES = unictype/test-ctype_space.c
+
+EXTRA_DIST += unictype/test-ctype_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-space-tests
+
+## begin gnulib module unictype/ctype-upper-tests
+
+TESTS += test-ctype_upper
+check_PROGRAMS += test-ctype_upper
+test_ctype_upper_SOURCES = unictype/test-ctype_upper.c
+
+EXTRA_DIST += unictype/test-ctype_upper.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-upper-tests
+
+## begin gnulib module unictype/ctype-xdigit-tests
+
+TESTS += test-ctype_xdigit
+check_PROGRAMS += test-ctype_xdigit
+test_ctype_xdigit_SOURCES = unictype/test-ctype_xdigit.c
+
+EXTRA_DIST += unictype/test-ctype_xdigit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/ctype-xdigit-tests
+
+## begin gnulib module unictype/decimal-digit-tests
+
+TESTS += test-decdigit
+check_PROGRAMS += test-decdigit
+test_decdigit_SOURCES = unictype/test-decdigit.c
+
+EXTRA_DIST += unictype/test-decdigit.c unictype/test-decdigit.h
+
+## end gnulib module unictype/decimal-digit-tests
+
+## begin gnulib module unictype/digit-tests
+
+TESTS += test-digit
+check_PROGRAMS += test-digit
+test_digit_SOURCES = unictype/test-digit.c
+
+EXTRA_DIST += unictype/test-digit.c unictype/test-digit.h
+
+## end gnulib module unictype/digit-tests
+
+## begin gnulib module unictype/mirror-tests
+
+TESTS += test-mirror
+check_PROGRAMS += test-mirror
+test_mirror_SOURCES = unictype/test-mirror.c
+
+EXTRA_DIST += unictype/test-mirror.c
+
+## end gnulib module unictype/mirror-tests
+
+## begin gnulib module unictype/numeric-tests
+
+TESTS += test-numeric
+check_PROGRAMS += test-numeric
+test_numeric_SOURCES = unictype/test-numeric.c
+
+EXTRA_DIST += unictype/test-numeric.c unictype/test-numeric.h
+
+## end gnulib module unictype/numeric-tests
+
+## begin gnulib module unictype/property-alphabetic-tests
+
+TESTS += test-pr_alphabetic
+check_PROGRAMS += test-pr_alphabetic
+test_pr_alphabetic_SOURCES = unictype/test-pr_alphabetic.c
+
+EXTRA_DIST += unictype/test-pr_alphabetic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-alphabetic-tests
+
+## begin gnulib module unictype/property-ascii-hex-digit-tests
+
+TESTS += test-pr_ascii_hex_digit
+check_PROGRAMS += test-pr_ascii_hex_digit
+test_pr_ascii_hex_digit_SOURCES = unictype/test-pr_ascii_hex_digit.c
+
+EXTRA_DIST += unictype/test-pr_ascii_hex_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-ascii-hex-digit-tests
+
+## begin gnulib module unictype/property-bidi-arabic-digit-tests
+
+TESTS += test-pr_bidi_arabic_digit
+check_PROGRAMS += test-pr_bidi_arabic_digit
+test_pr_bidi_arabic_digit_SOURCES = unictype/test-pr_bidi_arabic_digit.c
+
+EXTRA_DIST += unictype/test-pr_bidi_arabic_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-arabic-digit-tests
+
+## begin gnulib module unictype/property-bidi-arabic-right-to-left-tests
+
+TESTS += test-pr_bidi_arabic_right_to_left
+check_PROGRAMS += test-pr_bidi_arabic_right_to_left
+test_pr_bidi_arabic_right_to_left_SOURCES = unictype/test-pr_bidi_arabic_right_to_left.c
+
+EXTRA_DIST += unictype/test-pr_bidi_arabic_right_to_left.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-arabic-right-to-left-tests
+
+## begin gnulib module unictype/property-bidi-block-separator-tests
+
+TESTS += test-pr_bidi_block_separator
+check_PROGRAMS += test-pr_bidi_block_separator
+test_pr_bidi_block_separator_SOURCES = unictype/test-pr_bidi_block_separator.c
+
+EXTRA_DIST += unictype/test-pr_bidi_block_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-block-separator-tests
+
+## begin gnulib module unictype/property-bidi-boundary-neutral-tests
+
+TESTS += test-pr_bidi_boundary_neutral
+check_PROGRAMS += test-pr_bidi_boundary_neutral
+test_pr_bidi_boundary_neutral_SOURCES = unictype/test-pr_bidi_boundary_neutral.c
+
+EXTRA_DIST += unictype/test-pr_bidi_boundary_neutral.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-boundary-neutral-tests
+
+## begin gnulib module unictype/property-bidi-common-separator-tests
+
+TESTS += test-pr_bidi_common_separator
+check_PROGRAMS += test-pr_bidi_common_separator
+test_pr_bidi_common_separator_SOURCES = unictype/test-pr_bidi_common_separator.c
+
+EXTRA_DIST += unictype/test-pr_bidi_common_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-common-separator-tests
+
+## begin gnulib module unictype/property-bidi-control-tests
+
+TESTS += test-pr_bidi_control
+check_PROGRAMS += test-pr_bidi_control
+test_pr_bidi_control_SOURCES = unictype/test-pr_bidi_control.c
+
+EXTRA_DIST += unictype/test-pr_bidi_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-control-tests
+
+## begin gnulib module unictype/property-bidi-embedding-or-override-tests
+
+TESTS += test-pr_bidi_embedding_or_override
+check_PROGRAMS += test-pr_bidi_embedding_or_override
+test_pr_bidi_embedding_or_override_SOURCES = unictype/test-pr_bidi_embedding_or_override.c
+
+EXTRA_DIST += unictype/test-pr_bidi_embedding_or_override.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-embedding-or-override-tests
+
+## begin gnulib module unictype/property-bidi-eur-num-separator-tests
+
+TESTS += test-pr_bidi_eur_num_separator
+check_PROGRAMS += test-pr_bidi_eur_num_separator
+test_pr_bidi_eur_num_separator_SOURCES = unictype/test-pr_bidi_eur_num_separator.c
+
+EXTRA_DIST += unictype/test-pr_bidi_eur_num_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-eur-num-separator-tests
+
+## begin gnulib module unictype/property-bidi-eur-num-terminator-tests
+
+TESTS += test-pr_bidi_eur_num_terminator
+check_PROGRAMS += test-pr_bidi_eur_num_terminator
+test_pr_bidi_eur_num_terminator_SOURCES = unictype/test-pr_bidi_eur_num_terminator.c
+
+EXTRA_DIST += unictype/test-pr_bidi_eur_num_terminator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-eur-num-terminator-tests
+
+## begin gnulib module unictype/property-bidi-european-digit-tests
+
+TESTS += test-pr_bidi_european_digit
+check_PROGRAMS += test-pr_bidi_european_digit
+test_pr_bidi_european_digit_SOURCES = unictype/test-pr_bidi_european_digit.c
+
+EXTRA_DIST += unictype/test-pr_bidi_european_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-european-digit-tests
+
+## begin gnulib module unictype/property-bidi-hebrew-right-to-left-tests
+
+TESTS += test-pr_bidi_hebrew_right_to_left
+check_PROGRAMS += test-pr_bidi_hebrew_right_to_left
+test_pr_bidi_hebrew_right_to_left_SOURCES = unictype/test-pr_bidi_hebrew_right_to_left.c
+
+EXTRA_DIST += unictype/test-pr_bidi_hebrew_right_to_left.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-hebrew-right-to-left-tests
+
+## begin gnulib module unictype/property-bidi-left-to-right-tests
+
+TESTS += test-pr_bidi_left_to_right
+check_PROGRAMS += test-pr_bidi_left_to_right
+test_pr_bidi_left_to_right_SOURCES = unictype/test-pr_bidi_left_to_right.c
+
+EXTRA_DIST += unictype/test-pr_bidi_left_to_right.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-left-to-right-tests
+
+## begin gnulib module unictype/property-bidi-non-spacing-mark-tests
+
+TESTS += test-pr_bidi_non_spacing_mark
+check_PROGRAMS += test-pr_bidi_non_spacing_mark
+test_pr_bidi_non_spacing_mark_SOURCES = unictype/test-pr_bidi_non_spacing_mark.c
+
+EXTRA_DIST += unictype/test-pr_bidi_non_spacing_mark.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-non-spacing-mark-tests
+
+## begin gnulib module unictype/property-bidi-other-neutral-tests
+
+TESTS += test-pr_bidi_other_neutral
+check_PROGRAMS += test-pr_bidi_other_neutral
+test_pr_bidi_other_neutral_SOURCES = unictype/test-pr_bidi_other_neutral.c
+
+EXTRA_DIST += unictype/test-pr_bidi_other_neutral.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-other-neutral-tests
+
+## begin gnulib module unictype/property-bidi-pdf-tests
+
+TESTS += test-pr_bidi_pdf
+check_PROGRAMS += test-pr_bidi_pdf
+test_pr_bidi_pdf_SOURCES = unictype/test-pr_bidi_pdf.c
+
+EXTRA_DIST += unictype/test-pr_bidi_pdf.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-pdf-tests
+
+## begin gnulib module unictype/property-bidi-segment-separator-tests
+
+TESTS += test-pr_bidi_segment_separator
+check_PROGRAMS += test-pr_bidi_segment_separator
+test_pr_bidi_segment_separator_SOURCES = unictype/test-pr_bidi_segment_separator.c
+
+EXTRA_DIST += unictype/test-pr_bidi_segment_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-segment-separator-tests
+
+## begin gnulib module unictype/property-bidi-whitespace-tests
+
+TESTS += test-pr_bidi_whitespace
+check_PROGRAMS += test-pr_bidi_whitespace
+test_pr_bidi_whitespace_SOURCES = unictype/test-pr_bidi_whitespace.c
+
+EXTRA_DIST += unictype/test-pr_bidi_whitespace.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-bidi-whitespace-tests
+
+## begin gnulib module unictype/property-byname-tests
+
+TESTS += test-pr_byname
+check_PROGRAMS += test-pr_byname
+test_pr_byname_SOURCES = unictype/test-pr_byname.c
+
+EXTRA_DIST += unictype/test-pr_byname.c
+
+## end gnulib module unictype/property-byname-tests
+
+## begin gnulib module unictype/property-combining-tests
+
+TESTS += test-pr_combining
+check_PROGRAMS += test-pr_combining
+test_pr_combining_SOURCES = unictype/test-pr_combining.c
+
+EXTRA_DIST += unictype/test-pr_combining.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-combining-tests
+
+## begin gnulib module unictype/property-composite-tests
+
+TESTS += test-pr_composite
+check_PROGRAMS += test-pr_composite
+test_pr_composite_SOURCES = unictype/test-pr_composite.c
+
+EXTRA_DIST += unictype/test-pr_composite.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-composite-tests
+
+## begin gnulib module unictype/property-currency-symbol-tests
+
+TESTS += test-pr_currency_symbol
+check_PROGRAMS += test-pr_currency_symbol
+test_pr_currency_symbol_SOURCES = unictype/test-pr_currency_symbol.c
+
+EXTRA_DIST += unictype/test-pr_currency_symbol.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-currency-symbol-tests
+
+## begin gnulib module unictype/property-dash-tests
+
+TESTS += test-pr_dash
+check_PROGRAMS += test-pr_dash
+test_pr_dash_SOURCES = unictype/test-pr_dash.c
+
+EXTRA_DIST += unictype/test-pr_dash.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-dash-tests
+
+## begin gnulib module unictype/property-decimal-digit-tests
+
+TESTS += test-pr_decimal_digit
+check_PROGRAMS += test-pr_decimal_digit
+test_pr_decimal_digit_SOURCES = unictype/test-pr_decimal_digit.c
+
+EXTRA_DIST += unictype/test-pr_decimal_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-decimal-digit-tests
+
+## begin gnulib module unictype/property-default-ignorable-code-point-tests
+
+TESTS += test-pr_default_ignorable_code_point
+check_PROGRAMS += test-pr_default_ignorable_code_point
+test_pr_default_ignorable_code_point_SOURCES = unictype/test-pr_default_ignorable_code_point.c
+
+EXTRA_DIST += unictype/test-pr_default_ignorable_code_point.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-default-ignorable-code-point-tests
+
+## begin gnulib module unictype/property-deprecated-tests
+
+TESTS += test-pr_deprecated
+check_PROGRAMS += test-pr_deprecated
+test_pr_deprecated_SOURCES = unictype/test-pr_deprecated.c
+
+EXTRA_DIST += unictype/test-pr_deprecated.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-deprecated-tests
+
+## begin gnulib module unictype/property-diacritic-tests
+
+TESTS += test-pr_diacritic
+check_PROGRAMS += test-pr_diacritic
+test_pr_diacritic_SOURCES = unictype/test-pr_diacritic.c
+
+EXTRA_DIST += unictype/test-pr_diacritic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-diacritic-tests
+
+## begin gnulib module unictype/property-extender-tests
+
+TESTS += test-pr_extender
+check_PROGRAMS += test-pr_extender
+test_pr_extender_SOURCES = unictype/test-pr_extender.c
+
+EXTRA_DIST += unictype/test-pr_extender.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-extender-tests
+
+## begin gnulib module unictype/property-format-control-tests
+
+TESTS += test-pr_format_control
+check_PROGRAMS += test-pr_format_control
+test_pr_format_control_SOURCES = unictype/test-pr_format_control.c
+
+EXTRA_DIST += unictype/test-pr_format_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-format-control-tests
+
+## begin gnulib module unictype/property-grapheme-base-tests
+
+TESTS += test-pr_grapheme_base
+check_PROGRAMS += test-pr_grapheme_base
+test_pr_grapheme_base_SOURCES = unictype/test-pr_grapheme_base.c
+
+EXTRA_DIST += unictype/test-pr_grapheme_base.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-grapheme-base-tests
+
+## begin gnulib module unictype/property-grapheme-extend-tests
+
+TESTS += test-pr_grapheme_extend
+check_PROGRAMS += test-pr_grapheme_extend
+test_pr_grapheme_extend_SOURCES = unictype/test-pr_grapheme_extend.c
+
+EXTRA_DIST += unictype/test-pr_grapheme_extend.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-grapheme-extend-tests
+
+## begin gnulib module unictype/property-grapheme-link-tests
+
+TESTS += test-pr_grapheme_link
+check_PROGRAMS += test-pr_grapheme_link
+test_pr_grapheme_link_SOURCES = unictype/test-pr_grapheme_link.c
+
+EXTRA_DIST += unictype/test-pr_grapheme_link.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-grapheme-link-tests
+
+## begin gnulib module unictype/property-hex-digit-tests
+
+TESTS += test-pr_hex_digit
+check_PROGRAMS += test-pr_hex_digit
+test_pr_hex_digit_SOURCES = unictype/test-pr_hex_digit.c
+
+EXTRA_DIST += unictype/test-pr_hex_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-hex-digit-tests
+
+## begin gnulib module unictype/property-hyphen-tests
+
+TESTS += test-pr_hyphen
+check_PROGRAMS += test-pr_hyphen
+test_pr_hyphen_SOURCES = unictype/test-pr_hyphen.c
+
+EXTRA_DIST += unictype/test-pr_hyphen.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-hyphen-tests
+
+## begin gnulib module unictype/property-id-continue-tests
+
+TESTS += test-pr_id_continue
+check_PROGRAMS += test-pr_id_continue
+test_pr_id_continue_SOURCES = unictype/test-pr_id_continue.c
+
+EXTRA_DIST += unictype/test-pr_id_continue.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-id-continue-tests
+
+## begin gnulib module unictype/property-id-start-tests
+
+TESTS += test-pr_id_start
+check_PROGRAMS += test-pr_id_start
+test_pr_id_start_SOURCES = unictype/test-pr_id_start.c
+
+EXTRA_DIST += unictype/test-pr_id_start.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-id-start-tests
+
+## begin gnulib module unictype/property-ideographic-tests
+
+TESTS += test-pr_ideographic
+check_PROGRAMS += test-pr_ideographic
+test_pr_ideographic_SOURCES = unictype/test-pr_ideographic.c
+
+EXTRA_DIST += unictype/test-pr_ideographic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-ideographic-tests
+
+## begin gnulib module unictype/property-ids-binary-operator-tests
+
+TESTS += test-pr_ids_binary_operator
+check_PROGRAMS += test-pr_ids_binary_operator
+test_pr_ids_binary_operator_SOURCES = unictype/test-pr_ids_binary_operator.c
+
+EXTRA_DIST += unictype/test-pr_ids_binary_operator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-ids-binary-operator-tests
+
+## begin gnulib module unictype/property-ids-trinary-operator-tests
+
+TESTS += test-pr_ids_trinary_operator
+check_PROGRAMS += test-pr_ids_trinary_operator
+test_pr_ids_trinary_operator_SOURCES = unictype/test-pr_ids_trinary_operator.c
+
+EXTRA_DIST += unictype/test-pr_ids_trinary_operator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-ids-trinary-operator-tests
+
+## begin gnulib module unictype/property-ignorable-control-tests
+
+TESTS += test-pr_ignorable_control
+check_PROGRAMS += test-pr_ignorable_control
+test_pr_ignorable_control_SOURCES = unictype/test-pr_ignorable_control.c
+
+EXTRA_DIST += unictype/test-pr_ignorable_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-ignorable-control-tests
+
+## begin gnulib module unictype/property-iso-control-tests
+
+TESTS += test-pr_iso_control
+check_PROGRAMS += test-pr_iso_control
+test_pr_iso_control_SOURCES = unictype/test-pr_iso_control.c
+
+EXTRA_DIST += unictype/test-pr_iso_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-iso-control-tests
+
+## begin gnulib module unictype/property-join-control-tests
+
+TESTS += test-pr_join_control
+check_PROGRAMS += test-pr_join_control
+test_pr_join_control_SOURCES = unictype/test-pr_join_control.c
+
+EXTRA_DIST += unictype/test-pr_join_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-join-control-tests
+
+## begin gnulib module unictype/property-left-of-pair-tests
+
+TESTS += test-pr_left_of_pair
+check_PROGRAMS += test-pr_left_of_pair
+test_pr_left_of_pair_SOURCES = unictype/test-pr_left_of_pair.c
+
+EXTRA_DIST += unictype/test-pr_left_of_pair.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-left-of-pair-tests
+
+## begin gnulib module unictype/property-line-separator-tests
+
+TESTS += test-pr_line_separator
+check_PROGRAMS += test-pr_line_separator
+test_pr_line_separator_SOURCES = unictype/test-pr_line_separator.c
+
+EXTRA_DIST += unictype/test-pr_line_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-line-separator-tests
+
+## begin gnulib module unictype/property-logical-order-exception-tests
+
+TESTS += test-pr_logical_order_exception
+check_PROGRAMS += test-pr_logical_order_exception
+test_pr_logical_order_exception_SOURCES = unictype/test-pr_logical_order_exception.c
+
+EXTRA_DIST += unictype/test-pr_logical_order_exception.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-logical-order-exception-tests
+
+## begin gnulib module unictype/property-lowercase-tests
+
+TESTS += test-pr_lowercase
+check_PROGRAMS += test-pr_lowercase
+test_pr_lowercase_SOURCES = unictype/test-pr_lowercase.c
+
+EXTRA_DIST += unictype/test-pr_lowercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-lowercase-tests
+
+## begin gnulib module unictype/property-math-tests
+
+TESTS += test-pr_math
+check_PROGRAMS += test-pr_math
+test_pr_math_SOURCES = unictype/test-pr_math.c
+
+EXTRA_DIST += unictype/test-pr_math.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-math-tests
+
+## begin gnulib module unictype/property-non-break-tests
+
+TESTS += test-pr_non_break
+check_PROGRAMS += test-pr_non_break
+test_pr_non_break_SOURCES = unictype/test-pr_non_break.c
+
+EXTRA_DIST += unictype/test-pr_non_break.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-non-break-tests
+
+## begin gnulib module unictype/property-not-a-character-tests
+
+TESTS += test-pr_not_a_character
+check_PROGRAMS += test-pr_not_a_character
+test_pr_not_a_character_SOURCES = unictype/test-pr_not_a_character.c
+
+EXTRA_DIST += unictype/test-pr_not_a_character.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-not-a-character-tests
+
+## begin gnulib module unictype/property-numeric-tests
+
+TESTS += test-pr_numeric
+check_PROGRAMS += test-pr_numeric
+test_pr_numeric_SOURCES = unictype/test-pr_numeric.c
+
+EXTRA_DIST += unictype/test-pr_numeric.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-numeric-tests
+
+## begin gnulib module unictype/property-other-alphabetic-tests
+
+TESTS += test-pr_other_alphabetic
+check_PROGRAMS += test-pr_other_alphabetic
+test_pr_other_alphabetic_SOURCES = unictype/test-pr_other_alphabetic.c
+
+EXTRA_DIST += unictype/test-pr_other_alphabetic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-alphabetic-tests
+
+## begin gnulib module unictype/property-other-default-ignorable-code-point-tests
+
+TESTS += test-pr_other_default_ignorable_code_point
+check_PROGRAMS += test-pr_other_default_ignorable_code_point
+test_pr_other_default_ignorable_code_point_SOURCES = unictype/test-pr_other_default_ignorable_code_point.c
+
+EXTRA_DIST += unictype/test-pr_other_default_ignorable_code_point.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-default-ignorable-code-point-tests
+
+## begin gnulib module unictype/property-other-grapheme-extend-tests
+
+TESTS += test-pr_other_grapheme_extend
+check_PROGRAMS += test-pr_other_grapheme_extend
+test_pr_other_grapheme_extend_SOURCES = unictype/test-pr_other_grapheme_extend.c
+
+EXTRA_DIST += unictype/test-pr_other_grapheme_extend.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-grapheme-extend-tests
+
+## begin gnulib module unictype/property-other-id-continue-tests
+
+TESTS += test-pr_other_id_continue
+check_PROGRAMS += test-pr_other_id_continue
+test_pr_other_id_continue_SOURCES = unictype/test-pr_other_id_continue.c
+
+EXTRA_DIST += unictype/test-pr_other_id_continue.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-id-continue-tests
+
+## begin gnulib module unictype/property-other-id-start-tests
+
+TESTS += test-pr_other_id_start
+check_PROGRAMS += test-pr_other_id_start
+test_pr_other_id_start_SOURCES = unictype/test-pr_other_id_start.c
+
+EXTRA_DIST += unictype/test-pr_other_id_start.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-id-start-tests
+
+## begin gnulib module unictype/property-other-lowercase-tests
+
+TESTS += test-pr_other_lowercase
+check_PROGRAMS += test-pr_other_lowercase
+test_pr_other_lowercase_SOURCES = unictype/test-pr_other_lowercase.c
+
+EXTRA_DIST += unictype/test-pr_other_lowercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-lowercase-tests
+
+## begin gnulib module unictype/property-other-math-tests
+
+TESTS += test-pr_other_math
+check_PROGRAMS += test-pr_other_math
+test_pr_other_math_SOURCES = unictype/test-pr_other_math.c
+
+EXTRA_DIST += unictype/test-pr_other_math.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-math-tests
+
+## begin gnulib module unictype/property-other-uppercase-tests
+
+TESTS += test-pr_other_uppercase
+check_PROGRAMS += test-pr_other_uppercase
+test_pr_other_uppercase_SOURCES = unictype/test-pr_other_uppercase.c
+
+EXTRA_DIST += unictype/test-pr_other_uppercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-other-uppercase-tests
+
+## begin gnulib module unictype/property-paired-punctuation-tests
+
+TESTS += test-pr_paired_punctuation
+check_PROGRAMS += test-pr_paired_punctuation
+test_pr_paired_punctuation_SOURCES = unictype/test-pr_paired_punctuation.c
+
+EXTRA_DIST += unictype/test-pr_paired_punctuation.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-paired-punctuation-tests
+
+## begin gnulib module unictype/property-paragraph-separator-tests
+
+TESTS += test-pr_paragraph_separator
+check_PROGRAMS += test-pr_paragraph_separator
+test_pr_paragraph_separator_SOURCES = unictype/test-pr_paragraph_separator.c
+
+EXTRA_DIST += unictype/test-pr_paragraph_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-paragraph-separator-tests
+
+## begin gnulib module unictype/property-pattern-syntax-tests
+
+TESTS += test-pr_pattern_syntax
+check_PROGRAMS += test-pr_pattern_syntax
+test_pr_pattern_syntax_SOURCES = unictype/test-pr_pattern_syntax.c
+
+EXTRA_DIST += unictype/test-pr_pattern_syntax.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-pattern-syntax-tests
+
+## begin gnulib module unictype/property-pattern-white-space-tests
+
+TESTS += test-pr_pattern_white_space
+check_PROGRAMS += test-pr_pattern_white_space
+test_pr_pattern_white_space_SOURCES = unictype/test-pr_pattern_white_space.c
+
+EXTRA_DIST += unictype/test-pr_pattern_white_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-pattern-white-space-tests
+
+## begin gnulib module unictype/property-private-use-tests
+
+TESTS += test-pr_private_use
+check_PROGRAMS += test-pr_private_use
+test_pr_private_use_SOURCES = unictype/test-pr_private_use.c
+
+EXTRA_DIST += unictype/test-pr_private_use.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-private-use-tests
+
+## begin gnulib module unictype/property-punctuation-tests
+
+TESTS += test-pr_punctuation
+check_PROGRAMS += test-pr_punctuation
+test_pr_punctuation_SOURCES = unictype/test-pr_punctuation.c
+
+EXTRA_DIST += unictype/test-pr_punctuation.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-punctuation-tests
+
+## begin gnulib module unictype/property-quotation-mark-tests
+
+TESTS += test-pr_quotation_mark
+check_PROGRAMS += test-pr_quotation_mark
+test_pr_quotation_mark_SOURCES = unictype/test-pr_quotation_mark.c
+
+EXTRA_DIST += unictype/test-pr_quotation_mark.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-quotation-mark-tests
+
+## begin gnulib module unictype/property-radical-tests
+
+TESTS += test-pr_radical
+check_PROGRAMS += test-pr_radical
+test_pr_radical_SOURCES = unictype/test-pr_radical.c
+
+EXTRA_DIST += unictype/test-pr_radical.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-radical-tests
+
+## begin gnulib module unictype/property-sentence-terminal-tests
+
+TESTS += test-pr_sentence_terminal
+check_PROGRAMS += test-pr_sentence_terminal
+test_pr_sentence_terminal_SOURCES = unictype/test-pr_sentence_terminal.c
+
+EXTRA_DIST += unictype/test-pr_sentence_terminal.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-sentence-terminal-tests
+
+## begin gnulib module unictype/property-soft-dotted-tests
+
+TESTS += test-pr_soft_dotted
+check_PROGRAMS += test-pr_soft_dotted
+test_pr_soft_dotted_SOURCES = unictype/test-pr_soft_dotted.c
+
+EXTRA_DIST += unictype/test-pr_soft_dotted.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-soft-dotted-tests
+
+## begin gnulib module unictype/property-space-tests
+
+TESTS += test-pr_space
+check_PROGRAMS += test-pr_space
+test_pr_space_SOURCES = unictype/test-pr_space.c
+
+EXTRA_DIST += unictype/test-pr_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-space-tests
+
+## begin gnulib module unictype/property-terminal-punctuation-tests
+
+TESTS += test-pr_terminal_punctuation
+check_PROGRAMS += test-pr_terminal_punctuation
+test_pr_terminal_punctuation_SOURCES = unictype/test-pr_terminal_punctuation.c
+
+EXTRA_DIST += unictype/test-pr_terminal_punctuation.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-terminal-punctuation-tests
+
+## begin gnulib module unictype/property-test-tests
+
+TESTS += test-pr_test
+check_PROGRAMS += test-pr_test
+test_pr_test_SOURCES = unictype/test-pr_test.c
+
+EXTRA_DIST += unictype/test-pr_test.c
+
+## end gnulib module unictype/property-test-tests
+
+## begin gnulib module unictype/property-titlecase-tests
+
+TESTS += test-pr_titlecase
+check_PROGRAMS += test-pr_titlecase
+test_pr_titlecase_SOURCES = unictype/test-pr_titlecase.c
+
+EXTRA_DIST += unictype/test-pr_titlecase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-titlecase-tests
+
+## begin gnulib module unictype/property-unassigned-code-value-tests
+
+TESTS += test-pr_unassigned_code_value
+check_PROGRAMS += test-pr_unassigned_code_value
+test_pr_unassigned_code_value_SOURCES = unictype/test-pr_unassigned_code_value.c
+
+EXTRA_DIST += unictype/test-pr_unassigned_code_value.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-unassigned-code-value-tests
+
+## begin gnulib module unictype/property-unified-ideograph-tests
+
+TESTS += test-pr_unified_ideograph
+check_PROGRAMS += test-pr_unified_ideograph
+test_pr_unified_ideograph_SOURCES = unictype/test-pr_unified_ideograph.c
+
+EXTRA_DIST += unictype/test-pr_unified_ideograph.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-unified-ideograph-tests
+
+## begin gnulib module unictype/property-uppercase-tests
+
+TESTS += test-pr_uppercase
+check_PROGRAMS += test-pr_uppercase
+test_pr_uppercase_SOURCES = unictype/test-pr_uppercase.c
+
+EXTRA_DIST += unictype/test-pr_uppercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-uppercase-tests
+
+## begin gnulib module unictype/property-variation-selector-tests
+
+TESTS += test-pr_variation_selector
+check_PROGRAMS += test-pr_variation_selector
+test_pr_variation_selector_SOURCES = unictype/test-pr_variation_selector.c
+
+EXTRA_DIST += unictype/test-pr_variation_selector.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-variation-selector-tests
+
+## begin gnulib module unictype/property-white-space-tests
+
+TESTS += test-pr_white_space
+check_PROGRAMS += test-pr_white_space
+test_pr_white_space_SOURCES = unictype/test-pr_white_space.c
+
+EXTRA_DIST += unictype/test-pr_white_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-white-space-tests
+
+## begin gnulib module unictype/property-xid-continue-tests
+
+TESTS += test-pr_xid_continue
+check_PROGRAMS += test-pr_xid_continue
+test_pr_xid_continue_SOURCES = unictype/test-pr_xid_continue.c
+
+EXTRA_DIST += unictype/test-pr_xid_continue.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-xid-continue-tests
+
+## begin gnulib module unictype/property-xid-start-tests
+
+TESTS += test-pr_xid_start
+check_PROGRAMS += test-pr_xid_start
+test_pr_xid_start_SOURCES = unictype/test-pr_xid_start.c
+
+EXTRA_DIST += unictype/test-pr_xid_start.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-xid-start-tests
+
+## begin gnulib module unictype/property-zero-width-tests
+
+TESTS += test-pr_zero_width
+check_PROGRAMS += test-pr_zero_width
+test_pr_zero_width_SOURCES = unictype/test-pr_zero_width.c
+
+EXTRA_DIST += unictype/test-pr_zero_width.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/property-zero-width-tests
+
+## begin gnulib module unictype/scripts-tests
+
+TESTS += test-scripts
+check_PROGRAMS += test-scripts
+test_scripts_SOURCES = unictype/test-scripts.c
+
+EXTRA_DIST += unictype/test-scripts.c
+
+## end gnulib module unictype/scripts-tests
+
+## begin gnulib module unictype/syntax-c-ident-tests
+
+TESTS += test-sy_c_ident
+check_PROGRAMS += test-sy_c_ident
+test_sy_c_ident_SOURCES = unictype/test-sy_c_ident.c
+
+EXTRA_DIST += unictype/test-sy_c_ident.c
+
+## end gnulib module unictype/syntax-c-ident-tests
+
+## begin gnulib module unictype/syntax-c-whitespace-tests
+
+TESTS += test-sy_c_whitespace
+check_PROGRAMS += test-sy_c_whitespace
+test_sy_c_whitespace_SOURCES = unictype/test-sy_c_whitespace.c
+
+EXTRA_DIST += unictype/test-sy_c_whitespace.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/syntax-c-whitespace-tests
+
+## begin gnulib module unictype/syntax-java-ident-tests
+
+TESTS += test-sy_java_ident
+check_PROGRAMS += test-sy_java_ident
+test_sy_java_ident_SOURCES = unictype/test-sy_java_ident.c
+
+EXTRA_DIST += unictype/test-sy_java_ident.c
+
+## end gnulib module unictype/syntax-java-ident-tests
+
+## begin gnulib module unictype/syntax-java-whitespace-tests
+
+TESTS += test-sy_java_whitespace
+check_PROGRAMS += test-sy_java_whitespace
+test_sy_java_whitespace_SOURCES = unictype/test-sy_java_whitespace.c
+
+EXTRA_DIST += unictype/test-sy_java_whitespace.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h
+
+## end gnulib module unictype/syntax-java-whitespace-tests
+
+## begin gnulib module unilbrk/u16-possible-linebreaks-tests
+
+TESTS += test-u16-possible-linebreaks
+check_PROGRAMS += test-u16-possible-linebreaks
+test_u16_possible_linebreaks_SOURCES = unilbrk/test-u16-possible-linebreaks.c
+
+EXTRA_DIST += unilbrk/test-u16-possible-linebreaks.c
+
+## end gnulib module unilbrk/u16-possible-linebreaks-tests
+
+## begin gnulib module unilbrk/u16-width-linebreaks-tests
+
+TESTS += test-u16-width-linebreaks
+check_PROGRAMS += test-u16-width-linebreaks
+test_u16_width_linebreaks_SOURCES = unilbrk/test-u16-width-linebreaks.c
+
+EXTRA_DIST += unilbrk/test-u16-width-linebreaks.c
+
+## end gnulib module unilbrk/u16-width-linebreaks-tests
+
+## begin gnulib module unilbrk/u32-possible-linebreaks-tests
+
+TESTS += test-u32-possible-linebreaks
+check_PROGRAMS += test-u32-possible-linebreaks
+test_u32_possible_linebreaks_SOURCES = unilbrk/test-u32-possible-linebreaks.c
+
+EXTRA_DIST += unilbrk/test-u32-possible-linebreaks.c
+
+## end gnulib module unilbrk/u32-possible-linebreaks-tests
+
+## begin gnulib module unilbrk/u32-width-linebreaks-tests
+
+TESTS += test-u32-width-linebreaks
+check_PROGRAMS += test-u32-width-linebreaks
+test_u32_width_linebreaks_SOURCES = unilbrk/test-u32-width-linebreaks.c
+
+EXTRA_DIST += unilbrk/test-u32-width-linebreaks.c
+
+## end gnulib module unilbrk/u32-width-linebreaks-tests
+
+## begin gnulib module unilbrk/u8-possible-linebreaks-tests
+
+TESTS += test-u8-possible-linebreaks
+check_PROGRAMS += test-u8-possible-linebreaks
+test_u8_possible_linebreaks_SOURCES = unilbrk/test-u8-possible-linebreaks.c
+
+EXTRA_DIST += unilbrk/test-u8-possible-linebreaks.c
+
+## end gnulib module unilbrk/u8-possible-linebreaks-tests
+
+## begin gnulib module unilbrk/u8-width-linebreaks-tests
+
+TESTS += test-u8-width-linebreaks
+check_PROGRAMS += test-u8-width-linebreaks
+test_u8_width_linebreaks_SOURCES = unilbrk/test-u8-width-linebreaks.c
+
+EXTRA_DIST += unilbrk/test-u8-width-linebreaks.c
+
+## end gnulib module unilbrk/u8-width-linebreaks-tests
+
+## begin gnulib module unilbrk/ulc-possible-linebreaks-tests
+
+TESTS += test-ulc-possible-linebreaks
+check_PROGRAMS += test-ulc-possible-linebreaks
+test_ulc_possible_linebreaks_SOURCES = unilbrk/test-ulc-possible-linebreaks.c
+test_ulc_possible_linebreaks_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += unilbrk/test-ulc-possible-linebreaks.c
+
+## end gnulib module unilbrk/ulc-possible-linebreaks-tests
+
+## begin gnulib module unilbrk/ulc-width-linebreaks-tests
+
+TESTS += test-ulc-width-linebreaks
+check_PROGRAMS += test-ulc-width-linebreaks
+test_ulc_width_linebreaks_SOURCES = unilbrk/test-ulc-width-linebreaks.c
+test_ulc_width_linebreaks_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += unilbrk/test-ulc-width-linebreaks.c
+
+## end gnulib module unilbrk/ulc-width-linebreaks-tests
+
+## begin gnulib module uniname/uniname-tests
+
+TESTS += uniname/test-uninames.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)'
+check_PROGRAMS += test-uninames
+test_uninames_SOURCES = uniname/test-uninames.c
+test_uninames_LDADD = $(LDADD) @LIBINTL@
+
+EXTRA_DIST += uniname/test-uninames.sh uniname/test-uninames.c uniname/UnicodeDataNames.txt
+
+## end gnulib module uniname/uniname-tests
+
+## begin gnulib module uninorm/canonical-decomposition-tests
+
+TESTS += test-canonical-decomposition
+check_PROGRAMS += test-canonical-decomposition
+test_canonical_decomposition_SOURCES = uninorm/test-canonical-decomposition.c
+
+EXTRA_DIST += uninorm/test-canonical-decomposition.c
+
+## end gnulib module uninorm/canonical-decomposition-tests
+
+## begin gnulib module uninorm/compat-decomposition-tests
+
+TESTS += test-compat-decomposition
+check_PROGRAMS += test-compat-decomposition
+test_compat_decomposition_SOURCES = uninorm/test-compat-decomposition.c
+
+EXTRA_DIST += uninorm/test-compat-decomposition.c
+
+## end gnulib module uninorm/compat-decomposition-tests
+
+## begin gnulib module uninorm/composition-tests
+
+TESTS += test-composition
+check_PROGRAMS += test-composition
+test_composition_SOURCES = uninorm/test-composition.c
+
+EXTRA_DIST += uninorm/test-composition.c
+
+## end gnulib module uninorm/composition-tests
+
+## begin gnulib module uninorm/decomposing-form-tests
+
+TESTS += test-decomposing-form
+check_PROGRAMS += test-decomposing-form
+test_decomposing_form_SOURCES = uninorm/test-decomposing-form.c
+
+EXTRA_DIST += uninorm/test-decomposing-form.c
+
+## end gnulib module uninorm/decomposing-form-tests
+
+## begin gnulib module uninorm/decomposition-tests
+
+TESTS += test-decomposition
+check_PROGRAMS += test-decomposition
+test_decomposition_SOURCES = uninorm/test-decomposition.c
+
+EXTRA_DIST += uninorm/test-decomposition.c
+
+## end gnulib module uninorm/decomposition-tests
+
+## begin gnulib module uninorm/filter-tests
+
+TESTS += test-uninorm-filter-nfc
+check_PROGRAMS += test-uninorm-filter-nfc
+test_uninorm_filter_nfc_SOURCES = uninorm/test-uninorm-filter-nfc.c
+
+EXTRA_DIST += uninorm/test-uninorm-filter-nfc.c
+
+## end gnulib module uninorm/filter-tests
+
+## begin gnulib module uninorm/nfc-tests
+
+TESTS += test-nfc uninorm/test-u32-nfc-big.sh
+check_PROGRAMS += test-nfc test-u32-nfc-big
+test_nfc_SOURCES = \
+ uninorm/test-nfc.c \
+ uninorm/test-u8-nfc.c \
+ uninorm/test-u16-nfc.c \
+ uninorm/test-u32-nfc.c
+test_u32_nfc_big_SOURCES = \
+ uninorm/test-u32-nfc-big.c \
+ uninorm/test-u32-normalize-big.c
+test_u32_nfc_big_LDADD = $(LDADD) @LIBINTL@
+EXTRA_DIST += uninorm/test-nfc.c uninorm/test-u8-nfc.c uninorm/test-u16-nfc.c uninorm/test-u32-nfc.c uninorm/test-u32-nfc-big.sh uninorm/test-u32-nfc-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt
+
+## end gnulib module uninorm/nfc-tests
+
+## begin gnulib module uninorm/nfd-tests
+
+TESTS += test-nfd uninorm/test-u32-nfd-big.sh
+check_PROGRAMS += test-nfd test-u32-nfd-big
+test_nfd_SOURCES = \
+ uninorm/test-nfd.c \
+ uninorm/test-u8-nfd.c \
+ uninorm/test-u16-nfd.c \
+ uninorm/test-u32-nfd.c
+test_u32_nfd_big_SOURCES = \
+ uninorm/test-u32-nfd-big.c \
+ uninorm/test-u32-normalize-big.c
+test_u32_nfd_big_LDADD = $(LDADD) @LIBINTL@
+
+EXTRA_DIST += uninorm/test-nfd.c uninorm/test-u8-nfd.c uninorm/test-u16-nfd.c uninorm/test-u32-nfd.c uninorm/test-u32-nfd-big.sh uninorm/test-u32-nfd-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt
+
+## end gnulib module uninorm/nfd-tests
+
+## begin gnulib module uninorm/nfkc-tests
+
+TESTS += test-nfkc uninorm/test-u32-nfkc-big.sh
+check_PROGRAMS += test-nfkc test-u32-nfkc-big
+test_nfkc_SOURCES = \
+ uninorm/test-nfkc.c \
+ uninorm/test-u8-nfkc.c \
+ uninorm/test-u16-nfkc.c \
+ uninorm/test-u32-nfkc.c
+test_u32_nfkc_big_SOURCES = \
+ uninorm/test-u32-nfkc-big.c \
+ uninorm/test-u32-normalize-big.c
+test_u32_nfkc_big_LDADD = $(LDADD) @LIBINTL@
+
+EXTRA_DIST += uninorm/test-nfkc.c uninorm/test-u8-nfkc.c uninorm/test-u16-nfkc.c uninorm/test-u32-nfkc.c uninorm/test-u32-nfkc-big.sh uninorm/test-u32-nfkc-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt
+
+## end gnulib module uninorm/nfkc-tests
+
+## begin gnulib module uninorm/nfkd-tests
+
+TESTS += test-nfkd uninorm/test-u32-nfkd-big.sh
+check_PROGRAMS += test-nfkd test-u32-nfkd-big
+test_nfkd_SOURCES = \
+ uninorm/test-nfkd.c \
+ uninorm/test-u8-nfkd.c \
+ uninorm/test-u16-nfkd.c \
+ uninorm/test-u32-nfkd.c
+test_u32_nfkd_big_SOURCES = \
+ uninorm/test-u32-nfkd-big.c \
+ uninorm/test-u32-normalize-big.c
+test_u32_nfkd_big_LDADD = $(LDADD) @LIBINTL@
+
+EXTRA_DIST += uninorm/test-nfkd.c uninorm/test-u8-nfkd.c uninorm/test-u16-nfkd.c uninorm/test-u32-nfkd.c uninorm/test-u32-nfkd-big.sh uninorm/test-u32-nfkd-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt
+
+## end gnulib module uninorm/nfkd-tests
+
+## begin gnulib module uninorm/u16-normcmp-tests
+
+TESTS += test-u16-normcmp
+check_PROGRAMS += test-u16-normcmp
+test_u16_normcmp_SOURCES = uninorm/test-u16-normcmp.c
+
+EXTRA_DIST += uninorm/test-u16-normcmp.c uninorm/test-u16-normcmp.h
+
+## end gnulib module uninorm/u16-normcmp-tests
+
+## begin gnulib module uninorm/u16-normcoll-tests
+
+TESTS += test-u16-normcoll
+check_PROGRAMS += test-u16-normcoll
+test_u16_normcoll_SOURCES = uninorm/test-u16-normcoll.c
+test_u16_normcoll_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uninorm/test-u16-normcoll.c uninorm/test-u16-normcmp.h
+
+## end gnulib module uninorm/u16-normcoll-tests
+
+## begin gnulib module uninorm/u32-normcmp-tests
+
+TESTS += test-u32-normcmp
+check_PROGRAMS += test-u32-normcmp
+test_u32_normcmp_SOURCES = uninorm/test-u32-normcmp.c
+
+EXTRA_DIST += uninorm/test-u32-normcmp.c uninorm/test-u32-normcmp.h
+
+## end gnulib module uninorm/u32-normcmp-tests
+
+## begin gnulib module uninorm/u32-normcoll-tests
+
+TESTS += test-u32-normcoll
+check_PROGRAMS += test-u32-normcoll
+test_u32_normcoll_SOURCES = uninorm/test-u32-normcoll.c
+test_u32_normcoll_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uninorm/test-u32-normcoll.c uninorm/test-u32-normcmp.h
+
+## end gnulib module uninorm/u32-normcoll-tests
+
+## begin gnulib module uninorm/u8-normcmp-tests
+
+TESTS += test-u8-normcmp
+check_PROGRAMS += test-u8-normcmp
+test_u8_normcmp_SOURCES = uninorm/test-u8-normcmp.c
+
+EXTRA_DIST += uninorm/test-u8-normcmp.c uninorm/test-u8-normcmp.h
+
+## end gnulib module uninorm/u8-normcmp-tests
+
+## begin gnulib module uninorm/u8-normcoll-tests
+
+TESTS += test-u8-normcoll
+check_PROGRAMS += test-u8-normcoll
+test_u8_normcoll_SOURCES = uninorm/test-u8-normcoll.c
+test_u8_normcoll_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uninorm/test-u8-normcoll.c uninorm/test-u8-normcmp.h
+
+## end gnulib module uninorm/u8-normcoll-tests
+
+## begin gnulib module unistd-tests
+
+TESTS += test-unistd
+check_PROGRAMS += test-unistd
+
+EXTRA_DIST += test-unistd.c
+
+## end gnulib module unistd-tests
+
+## begin gnulib module unistdio/u16-asnprintf-tests
+
+TESTS += test-u16-asnprintf1
+check_PROGRAMS += test-u16-asnprintf1
+test_u16_asnprintf1_SOURCES = unistdio/test-u16-asnprintf1.c
+test_u16_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u16-asnprintf1.c unistdio/test-u16-asnprintf1.h unistdio/test-u16-printf1.h
+
+## end gnulib module unistdio/u16-asnprintf-tests
+
+## begin gnulib module unistdio/u16-vasnprintf-tests
+
+TESTS += test-u16-vasnprintf1 unistdio/test-u16-vasnprintf2.sh unistdio/test-u16-vasnprintf3.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-u16-vasnprintf1 test-u16-vasnprintf2 test-u16-vasnprintf3
+test_u16_vasnprintf1_SOURCES = unistdio/test-u16-vasnprintf1.c
+test_u16_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf2_SOURCES = unistdio/test-u16-vasnprintf2.c
+test_u16_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf3_SOURCES = unistdio/test-u16-vasnprintf3.c
+test_u16_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u16-vasnprintf1.c unistdio/test-u16-asnprintf1.h unistdio/test-u16-printf1.h unistdio/test-u16-vasnprintf2.sh unistdio/test-u16-vasnprintf2.c unistdio/test-u16-vasnprintf3.sh unistdio/test-u16-vasnprintf3.c
+
+## end gnulib module unistdio/u16-vasnprintf-tests
+
+## begin gnulib module unistdio/u16-vasprintf-tests
+
+TESTS += test-u16-vasprintf1
+check_PROGRAMS += test-u16-vasprintf1
+test_u16_vasprintf1_SOURCES = unistdio/test-u16-vasprintf1.c
+test_u16_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u16-vasprintf1.c unistdio/test-u16-printf1.h
+
+## end gnulib module unistdio/u16-vasprintf-tests
+
+## begin gnulib module unistdio/u16-vsnprintf-tests
+
+TESTS += test-u16-vsnprintf1
+check_PROGRAMS += test-u16-vsnprintf1
+test_u16_vsnprintf1_SOURCES = unistdio/test-u16-vsnprintf1.c
+test_u16_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-u16-vsnprintf1.c unistdio/test-u16-printf1.h
+
+## end gnulib module unistdio/u16-vsnprintf-tests
+
+## begin gnulib module unistdio/u16-vsprintf-tests
+
+TESTS += test-u16-vsprintf1
+check_PROGRAMS += test-u16-vsprintf1
+test_u16_vsprintf1_SOURCES = unistdio/test-u16-vsprintf1.c
+test_u16_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-u16-vsprintf1.c unistdio/test-u16-printf1.h
+
+## end gnulib module unistdio/u16-vsprintf-tests
+
+## begin gnulib module unistdio/u32-asnprintf-tests
+
+TESTS += test-u32-asnprintf1
+check_PROGRAMS += test-u32-asnprintf1
+test_u32_asnprintf1_SOURCES = unistdio/test-u32-asnprintf1.c
+test_u32_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u32-asnprintf1.c unistdio/test-u32-asnprintf1.h unistdio/test-u32-printf1.h
+
+## end gnulib module unistdio/u32-asnprintf-tests
+
+## begin gnulib module unistdio/u32-vasnprintf-tests
+
+TESTS += test-u32-vasnprintf1 unistdio/test-u32-vasnprintf2.sh unistdio/test-u32-vasnprintf3.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-u32-vasnprintf1 test-u32-vasnprintf2 test-u32-vasnprintf3
+test_u32_vasnprintf1_SOURCES = unistdio/test-u32-vasnprintf1.c
+test_u32_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf2_SOURCES = unistdio/test-u32-vasnprintf2.c
+test_u32_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf3_SOURCES = unistdio/test-u32-vasnprintf3.c
+test_u32_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u32-vasnprintf1.c unistdio/test-u32-asnprintf1.h unistdio/test-u32-printf1.h unistdio/test-u32-vasnprintf2.sh unistdio/test-u32-vasnprintf2.c unistdio/test-u32-vasnprintf3.sh unistdio/test-u32-vasnprintf3.c
+
+## end gnulib module unistdio/u32-vasnprintf-tests
+
+## begin gnulib module unistdio/u32-vasprintf-tests
+
+TESTS += test-u32-vasprintf1
+check_PROGRAMS += test-u32-vasprintf1
+test_u32_vasprintf1_SOURCES = unistdio/test-u32-vasprintf1.c
+test_u32_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u32-vasprintf1.c unistdio/test-u32-printf1.h
+
+## end gnulib module unistdio/u32-vasprintf-tests
+
+## begin gnulib module unistdio/u32-vsnprintf-tests
+
+TESTS += test-u32-vsnprintf1
+check_PROGRAMS += test-u32-vsnprintf1
+test_u32_vsnprintf1_SOURCES = unistdio/test-u32-vsnprintf1.c
+test_u32_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-u32-vsnprintf1.c unistdio/test-u32-printf1.h
+
+## end gnulib module unistdio/u32-vsnprintf-tests
+
+## begin gnulib module unistdio/u32-vsprintf-tests
+
+TESTS += test-u32-vsprintf1
+check_PROGRAMS += test-u32-vsprintf1
+test_u32_vsprintf1_SOURCES = unistdio/test-u32-vsprintf1.c
+test_u32_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-u32-vsprintf1.c unistdio/test-u32-printf1.h
+
+## end gnulib module unistdio/u32-vsprintf-tests
+
+## begin gnulib module unistdio/u8-asnprintf-tests
+
+TESTS += test-u8-asnprintf1
+check_PROGRAMS += test-u8-asnprintf1
+test_u8_asnprintf1_SOURCES = unistdio/test-u8-asnprintf1.c
+test_u8_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u8-asnprintf1.c unistdio/test-u8-asnprintf1.h unistdio/test-u8-printf1.h
+
+## end gnulib module unistdio/u8-asnprintf-tests
+
+## begin gnulib module unistdio/u8-vasnprintf-tests
+
+TESTS += test-u8-vasnprintf1 unistdio/test-u8-vasnprintf2.sh unistdio/test-u8-vasnprintf3.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-u8-vasnprintf1 test-u8-vasnprintf2 test-u8-vasnprintf3
+test_u8_vasnprintf1_SOURCES = unistdio/test-u8-vasnprintf1.c
+test_u8_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf2_SOURCES = unistdio/test-u8-vasnprintf2.c
+test_u8_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf3_SOURCES = unistdio/test-u8-vasnprintf3.c
+test_u8_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u8-vasnprintf1.c unistdio/test-u8-asnprintf1.h unistdio/test-u8-printf1.h unistdio/test-u8-vasnprintf2.sh unistdio/test-u8-vasnprintf2.c unistdio/test-u8-vasnprintf3.sh unistdio/test-u8-vasnprintf3.c
+
+## end gnulib module unistdio/u8-vasnprintf-tests
+
+## begin gnulib module unistdio/u8-vasprintf-tests
+
+TESTS += test-u8-vasprintf1
+check_PROGRAMS += test-u8-vasprintf1
+test_u8_vasprintf1_SOURCES = unistdio/test-u8-vasprintf1.c
+test_u8_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-u8-vasprintf1.c unistdio/test-u8-printf1.h
+
+## end gnulib module unistdio/u8-vasprintf-tests
+
+## begin gnulib module unistdio/u8-vsnprintf-tests
+
+TESTS += test-u8-vsnprintf1
+check_PROGRAMS += test-u8-vsnprintf1
+test_u8_vsnprintf1_SOURCES = unistdio/test-u8-vsnprintf1.c
+test_u8_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-u8-vsnprintf1.c unistdio/test-u8-printf1.h
+
+## end gnulib module unistdio/u8-vsnprintf-tests
+
+## begin gnulib module unistdio/u8-vsprintf-tests
+
+TESTS += test-u8-vsprintf1
+check_PROGRAMS += test-u8-vsprintf1
+test_u8_vsprintf1_SOURCES = unistdio/test-u8-vsprintf1.c
+test_u8_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-u8-vsprintf1.c unistdio/test-u8-printf1.h
+
+## end gnulib module unistdio/u8-vsprintf-tests
+
+## begin gnulib module unistdio/ulc-asnprintf-tests
+
+TESTS += test-ulc-asnprintf1
+check_PROGRAMS += test-ulc-asnprintf1
+test_ulc_asnprintf1_SOURCES = unistdio/test-ulc-asnprintf1.c
+test_ulc_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-ulc-asnprintf1.c unistdio/test-ulc-asnprintf1.h unistdio/test-ulc-printf1.h
+
+## end gnulib module unistdio/ulc-asnprintf-tests
+
+## begin gnulib module unistdio/ulc-vasnprintf-tests
+
+TESTS += test-ulc-vasnprintf1 unistdio/test-ulc-vasnprintf2.sh unistdio/test-ulc-vasnprintf3.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-ulc-vasnprintf1 test-ulc-vasnprintf2 test-ulc-vasnprintf3
+test_ulc_vasnprintf1_SOURCES = unistdio/test-ulc-vasnprintf1.c
+test_ulc_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf2_SOURCES = unistdio/test-ulc-vasnprintf2.c
+test_ulc_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf3_SOURCES = unistdio/test-ulc-vasnprintf3.c
+test_ulc_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-ulc-vasnprintf1.c unistdio/test-ulc-asnprintf1.h unistdio/test-ulc-printf1.h unistdio/test-ulc-vasnprintf2.sh unistdio/test-ulc-vasnprintf2.c unistdio/test-ulc-vasnprintf3.sh unistdio/test-ulc-vasnprintf3.c
+
+## end gnulib module unistdio/ulc-vasnprintf-tests
+
+## begin gnulib module unistdio/ulc-vasprintf-tests
+
+TESTS += test-ulc-vasprintf1
+check_PROGRAMS += test-ulc-vasprintf1
+test_ulc_vasprintf1_SOURCES = unistdio/test-ulc-vasprintf1.c
+test_ulc_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+EXTRA_DIST += unistdio/test-ulc-vasprintf1.c unistdio/test-ulc-printf1.h
+
+## end gnulib module unistdio/ulc-vasprintf-tests
+
+## begin gnulib module unistdio/ulc-vsnprintf-tests
+
+TESTS += test-ulc-vsnprintf1
+check_PROGRAMS += test-ulc-vsnprintf1
+test_ulc_vsnprintf1_SOURCES = unistdio/test-ulc-vsnprintf1.c
+test_ulc_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-ulc-vsnprintf1.c unistdio/test-ulc-printf1.h
+
+## end gnulib module unistdio/ulc-vsnprintf-tests
+
+## begin gnulib module unistdio/ulc-vsprintf-tests
+
+TESTS += test-ulc-vsprintf1
+check_PROGRAMS += test-ulc-vsprintf1
+test_ulc_vsprintf1_SOURCES = unistdio/test-ulc-vsprintf1.c
+test_ulc_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+EXTRA_DIST += unistdio/test-ulc-vsprintf1.c unistdio/test-ulc-printf1.h
+
+## end gnulib module unistdio/ulc-vsprintf-tests
+
+## begin gnulib module uniwbrk/u16-wordbreaks-tests
+
+TESTS += test-u16-wordbreaks
+check_PROGRAMS += test-u16-wordbreaks
+test_u16_wordbreaks_SOURCES = uniwbrk/test-u16-wordbreaks.c
+
+EXTRA_DIST += uniwbrk/test-u16-wordbreaks.c
+
+## end gnulib module uniwbrk/u16-wordbreaks-tests
+
+## begin gnulib module uniwbrk/u32-wordbreaks-tests
+
+TESTS += test-u32-wordbreaks
+check_PROGRAMS += test-u32-wordbreaks
+test_u32_wordbreaks_SOURCES = uniwbrk/test-u32-wordbreaks.c
+
+EXTRA_DIST += uniwbrk/test-u32-wordbreaks.c
+
+## end gnulib module uniwbrk/u32-wordbreaks-tests
+
+## begin gnulib module uniwbrk/u8-wordbreaks-tests
+
+TESTS += test-u8-wordbreaks
+check_PROGRAMS += test-u8-wordbreaks
+test_u8_wordbreaks_SOURCES = uniwbrk/test-u8-wordbreaks.c
+
+EXTRA_DIST += uniwbrk/test-u8-wordbreaks.c
+
+## end gnulib module uniwbrk/u8-wordbreaks-tests
+
+## begin gnulib module uniwbrk/ulc-wordbreaks-tests
+
+TESTS += uniwbrk/test-ulc-wordbreaks.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@'
+check_PROGRAMS += test-ulc-wordbreaks
+test_ulc_wordbreaks_SOURCES = uniwbrk/test-ulc-wordbreaks.c
+test_ulc_wordbreaks_LDADD = $(LDADD) @LIBICONV@
+
+EXTRA_DIST += uniwbrk/test-ulc-wordbreaks.sh uniwbrk/test-ulc-wordbreaks.c
+
+## end gnulib module uniwbrk/ulc-wordbreaks-tests
+
+## begin gnulib module uniwidth/u16-strwidth-tests
+
+TESTS += test-u16-strwidth
+check_PROGRAMS += test-u16-strwidth
+test_u16_strwidth_SOURCES = uniwidth/test-u16-strwidth.c
+
+EXTRA_DIST += uniwidth/test-u16-strwidth.c
+
+## end gnulib module uniwidth/u16-strwidth-tests
+
+## begin gnulib module uniwidth/u16-width-tests
+
+TESTS += test-u16-width
+check_PROGRAMS += test-u16-width
+test_u16_width_SOURCES = uniwidth/test-u16-width.c
+
+EXTRA_DIST += uniwidth/test-u16-width.c
+
+## end gnulib module uniwidth/u16-width-tests
+
+## begin gnulib module uniwidth/u32-strwidth-tests
+
+TESTS += test-u32-strwidth
+check_PROGRAMS += test-u32-strwidth
+test_u32_strwidth_SOURCES = uniwidth/test-u32-strwidth.c
+
+EXTRA_DIST += uniwidth/test-u32-strwidth.c
+
+## end gnulib module uniwidth/u32-strwidth-tests
+
+## begin gnulib module uniwidth/u32-width-tests
+
+TESTS += test-u32-width
+check_PROGRAMS += test-u32-width
+test_u32_width_SOURCES = uniwidth/test-u32-width.c
+
+EXTRA_DIST += uniwidth/test-u32-width.c
+
+## end gnulib module uniwidth/u32-width-tests
+
+## begin gnulib module uniwidth/u8-strwidth-tests
+
+TESTS += test-u8-strwidth
+check_PROGRAMS += test-u8-strwidth
+test_u8_strwidth_SOURCES = uniwidth/test-u8-strwidth.c
+
+EXTRA_DIST += uniwidth/test-u8-strwidth.c
+
+## end gnulib module uniwidth/u8-strwidth-tests
+
+## begin gnulib module uniwidth/u8-width-tests
+
+TESTS += test-u8-width
+check_PROGRAMS += test-u8-width
+test_u8_width_SOURCES = uniwidth/test-u8-width.c
+
+EXTRA_DIST += uniwidth/test-u8-width.c
+
+## end gnulib module uniwidth/u8-width-tests
+
+## begin gnulib module uniwidth/width-tests
+
+TESTS += test-uc_width uniwidth/test-uc_width2.sh
+TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@'
+check_PROGRAMS += test-uc_width test-uc_width2
+test_uc_width_SOURCES = uniwidth/test-uc_width.c
+test_uc_width2_SOURCES = uniwidth/test-uc_width2.c
+
+EXTRA_DIST += uniwidth/test-uc_width.c uniwidth/test-uc_width2.c uniwidth/test-uc_width2.sh
+
+## end gnulib module uniwidth/width-tests
+
+## begin gnulib module unsetenv
+
+
+EXTRA_DIST += unsetenv.c
+
+EXTRA_libtests_a_SOURCES += unsetenv.c
+
+## end gnulib module unsetenv
+
+## begin gnulib module wchar-tests
+
+TESTS += test-wchar
+check_PROGRAMS += test-wchar
+
+EXTRA_DIST += test-wchar.c
+
+## end gnulib module wchar-tests
+
+## begin gnulib module wctob
+
+
+EXTRA_DIST += wctob.c
+
+EXTRA_libtests_a_SOURCES += wctob.c
+
+## end gnulib module wctob
+
+## begin gnulib module wctype-tests
+
+TESTS += test-wctype
+check_PROGRAMS += test-wctype
+
+EXTRA_DIST += test-wctype.c
+
+## end gnulib module wctype-tests
+
+## begin gnulib module wcwidth-tests
+
+TESTS += test-wcwidth
+check_PROGRAMS += test-wcwidth
+
+EXTRA_DIST += test-wcwidth.c
+
+## end gnulib module wcwidth-tests
+
+## begin gnulib module xalloc
+
+
+EXTRA_DIST += xalloc.h xmalloc.c
+
+EXTRA_libtests_a_SOURCES += xmalloc.c
+
+## end gnulib module xalloc
+
+## begin gnulib module xalloc-die
+
+libtests_a_SOURCES += xalloc-die.c
+
+## end gnulib module xalloc-die
+
+# Clean up after Solaris cc.
+clean-local:
+ rm -rf SunWS_cache
+
+mostlyclean-local: mostlyclean-generic
+ @for dir in '' $(MOSTLYCLEANDIRS); do \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ :
diff --git a/tests/Makefile.in b/tests/Makefile.in
new file mode 100644
index 0000000..fa73457
--- /dev/null
+++ b/tests/Makefile.in
@@ -0,0 +1,6709 @@
+# Makefile.in generated by automake 1.11 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2002-2009 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License. As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.gnulib $(srcdir)/Makefile.in
+TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
+ test-c-ctype$(EXEEXT) test-c-strcase.sh test-environ$(EXEEXT) \
+ test-errno$(EXEEXT) test-frexpl-nolibm$(EXEEXT) \
+ test-fseterr$(EXEEXT) test-iconv$(EXEEXT) \
+ test-isnand-nolibm$(EXEEXT) test-isnanf-nolibm$(EXEEXT) \
+ test-isnanl-nolibm$(EXEEXT) test-locale$(EXEEXT) \
+ test-localename$(EXEEXT) test-malloca$(EXEEXT) \
+ test-math$(EXEEXT) test-mbrtowc1.sh test-mbrtowc2.sh \
+ test-mbrtowc3.sh test-mbrtowc4.sh test-mbsinit.sh \
+ test-memchr$(EXEEXT) test-printf-frexp$(EXEEXT) \
+ test-printf-frexpl$(EXEEXT) test-signbit$(EXEEXT) \
+ test-stdbool$(EXEEXT) test-stdint$(EXEEXT) \
+ test-stdlib$(EXEEXT) test-strerror$(EXEEXT) \
+ test-striconveh$(EXEEXT) test-striconveha$(EXEEXT) \
+ test-string$(EXEEXT) test-cased$(EXEEXT) \
+ test-ignorable$(EXEEXT) unicase/test-locale-language.sh \
+ test-uc_tolower$(EXEEXT) test-uc_totitle$(EXEEXT) \
+ test-uc_toupper$(EXEEXT) test-u16-casecmp$(EXEEXT) \
+ test-u16-casecoll$(EXEEXT) test-u16-casefold$(EXEEXT) \
+ test-u16-is-cased$(EXEEXT) test-u16-is-casefolded$(EXEEXT) \
+ test-u16-is-lowercase$(EXEEXT) test-u16-is-titlecase$(EXEEXT) \
+ test-u16-is-uppercase$(EXEEXT) test-u16-tolower$(EXEEXT) \
+ test-u16-totitle$(EXEEXT) test-u16-toupper$(EXEEXT) \
+ test-u32-casecmp$(EXEEXT) test-u32-casecoll$(EXEEXT) \
+ test-u32-casefold$(EXEEXT) test-u32-is-cased$(EXEEXT) \
+ test-u32-is-casefolded$(EXEEXT) test-u32-is-lowercase$(EXEEXT) \
+ test-u32-is-titlecase$(EXEEXT) test-u32-is-uppercase$(EXEEXT) \
+ test-u32-tolower$(EXEEXT) test-u32-totitle$(EXEEXT) \
+ test-u32-toupper$(EXEEXT) test-u8-casecmp$(EXEEXT) \
+ test-u8-casecoll$(EXEEXT) test-u8-casefold$(EXEEXT) \
+ test-u8-is-cased$(EXEEXT) test-u8-is-casefolded$(EXEEXT) \
+ test-u8-is-lowercase$(EXEEXT) test-u8-is-titlecase$(EXEEXT) \
+ test-u8-is-uppercase$(EXEEXT) test-u8-tolower$(EXEEXT) \
+ test-u8-totitle$(EXEEXT) test-u8-toupper$(EXEEXT) \
+ unicase/test-ulc-casecmp1.sh unicase/test-ulc-casecmp2.sh \
+ unicase/test-ulc-casecoll1.sh unicase/test-ulc-casecoll2.sh \
+ test-u16-conv-from-enc$(EXEEXT) test-u16-conv-to-enc$(EXEEXT) \
+ test-u16-strconv-from-enc$(EXEEXT) \
+ test-u16-strconv-to-enc$(EXEEXT) \
+ test-u32-conv-from-enc$(EXEEXT) test-u32-conv-to-enc$(EXEEXT) \
+ test-u32-strconv-from-enc$(EXEEXT) \
+ test-u32-strconv-to-enc$(EXEEXT) \
+ test-u8-conv-from-enc$(EXEEXT) test-u8-conv-to-enc$(EXEEXT) \
+ test-u8-strconv-from-enc$(EXEEXT) \
+ test-u8-strconv-to-enc$(EXEEXT) test-bidi_byname$(EXEEXT) \
+ test-bidi_name$(EXEEXT) test-bidi_of$(EXEEXT) \
+ test-bidi_test$(EXEEXT) test-block_list$(EXEEXT) \
+ test-block_of$(EXEEXT) test-block_test$(EXEEXT) \
+ test-categ_C$(EXEEXT) test-categ_Cc$(EXEEXT) \
+ test-categ_Cf$(EXEEXT) test-categ_Cn$(EXEEXT) \
+ test-categ_Co$(EXEEXT) test-categ_Cs$(EXEEXT) \
+ test-categ_L$(EXEEXT) test-categ_Ll$(EXEEXT) \
+ test-categ_Lm$(EXEEXT) test-categ_Lo$(EXEEXT) \
+ test-categ_Lt$(EXEEXT) test-categ_Lu$(EXEEXT) \
+ test-categ_M$(EXEEXT) test-categ_Mc$(EXEEXT) \
+ test-categ_Me$(EXEEXT) test-categ_Mn$(EXEEXT) \
+ test-categ_N$(EXEEXT) test-categ_Nd$(EXEEXT) \
+ test-categ_Nl$(EXEEXT) test-categ_No$(EXEEXT) \
+ test-categ_P$(EXEEXT) test-categ_Pc$(EXEEXT) \
+ test-categ_Pd$(EXEEXT) test-categ_Pe$(EXEEXT) \
+ test-categ_Pf$(EXEEXT) test-categ_Pi$(EXEEXT) \
+ test-categ_Po$(EXEEXT) test-categ_Ps$(EXEEXT) \
+ test-categ_S$(EXEEXT) test-categ_Sc$(EXEEXT) \
+ test-categ_Sk$(EXEEXT) test-categ_Sm$(EXEEXT) \
+ test-categ_So$(EXEEXT) test-categ_Z$(EXEEXT) \
+ test-categ_Zl$(EXEEXT) test-categ_Zp$(EXEEXT) \
+ test-categ_Zs$(EXEEXT) test-categ_and_not$(EXEEXT) \
+ test-categ_and$(EXEEXT) test-categ_byname$(EXEEXT) \
+ test-categ_name$(EXEEXT) $(am__EXEEXT_1) \
+ test-categ_of$(EXEEXT) test-categ_or$(EXEEXT) \
+ test-categ_test_withtable$(EXEEXT) test-combining$(EXEEXT) \
+ test-ctype_alnum$(EXEEXT) test-ctype_alpha$(EXEEXT) \
+ test-ctype_blank$(EXEEXT) test-ctype_cntrl$(EXEEXT) \
+ test-ctype_digit$(EXEEXT) test-ctype_graph$(EXEEXT) \
+ test-ctype_lower$(EXEEXT) test-ctype_print$(EXEEXT) \
+ test-ctype_punct$(EXEEXT) test-ctype_space$(EXEEXT) \
+ test-ctype_upper$(EXEEXT) test-ctype_xdigit$(EXEEXT) \
+ test-decdigit$(EXEEXT) test-digit$(EXEEXT) \
+ test-mirror$(EXEEXT) test-numeric$(EXEEXT) \
+ test-pr_alphabetic$(EXEEXT) test-pr_ascii_hex_digit$(EXEEXT) \
+ test-pr_bidi_arabic_digit$(EXEEXT) \
+ test-pr_bidi_arabic_right_to_left$(EXEEXT) \
+ test-pr_bidi_block_separator$(EXEEXT) \
+ test-pr_bidi_boundary_neutral$(EXEEXT) \
+ test-pr_bidi_common_separator$(EXEEXT) \
+ test-pr_bidi_control$(EXEEXT) \
+ test-pr_bidi_embedding_or_override$(EXEEXT) \
+ test-pr_bidi_eur_num_separator$(EXEEXT) \
+ test-pr_bidi_eur_num_terminator$(EXEEXT) \
+ test-pr_bidi_european_digit$(EXEEXT) \
+ test-pr_bidi_hebrew_right_to_left$(EXEEXT) \
+ test-pr_bidi_left_to_right$(EXEEXT) \
+ test-pr_bidi_non_spacing_mark$(EXEEXT) \
+ test-pr_bidi_other_neutral$(EXEEXT) test-pr_bidi_pdf$(EXEEXT) \
+ test-pr_bidi_segment_separator$(EXEEXT) \
+ test-pr_bidi_whitespace$(EXEEXT) test-pr_byname$(EXEEXT) \
+ test-pr_combining$(EXEEXT) test-pr_composite$(EXEEXT) \
+ test-pr_currency_symbol$(EXEEXT) test-pr_dash$(EXEEXT) \
+ test-pr_decimal_digit$(EXEEXT) \
+ test-pr_default_ignorable_code_point$(EXEEXT) \
+ test-pr_deprecated$(EXEEXT) test-pr_diacritic$(EXEEXT) \
+ test-pr_extender$(EXEEXT) test-pr_format_control$(EXEEXT) \
+ test-pr_grapheme_base$(EXEEXT) \
+ test-pr_grapheme_extend$(EXEEXT) \
+ test-pr_grapheme_link$(EXEEXT) test-pr_hex_digit$(EXEEXT) \
+ test-pr_hyphen$(EXEEXT) test-pr_id_continue$(EXEEXT) \
+ test-pr_id_start$(EXEEXT) test-pr_ideographic$(EXEEXT) \
+ test-pr_ids_binary_operator$(EXEEXT) \
+ test-pr_ids_trinary_operator$(EXEEXT) \
+ test-pr_ignorable_control$(EXEEXT) \
+ test-pr_iso_control$(EXEEXT) test-pr_join_control$(EXEEXT) \
+ test-pr_left_of_pair$(EXEEXT) test-pr_line_separator$(EXEEXT) \
+ test-pr_logical_order_exception$(EXEEXT) \
+ test-pr_lowercase$(EXEEXT) test-pr_math$(EXEEXT) \
+ test-pr_non_break$(EXEEXT) test-pr_not_a_character$(EXEEXT) \
+ test-pr_numeric$(EXEEXT) test-pr_other_alphabetic$(EXEEXT) \
+ test-pr_other_default_ignorable_code_point$(EXEEXT) \
+ test-pr_other_grapheme_extend$(EXEEXT) \
+ test-pr_other_id_continue$(EXEEXT) \
+ test-pr_other_id_start$(EXEEXT) \
+ test-pr_other_lowercase$(EXEEXT) test-pr_other_math$(EXEEXT) \
+ test-pr_other_uppercase$(EXEEXT) \
+ test-pr_paired_punctuation$(EXEEXT) \
+ test-pr_paragraph_separator$(EXEEXT) \
+ test-pr_pattern_syntax$(EXEEXT) \
+ test-pr_pattern_white_space$(EXEEXT) \
+ test-pr_private_use$(EXEEXT) test-pr_punctuation$(EXEEXT) \
+ test-pr_quotation_mark$(EXEEXT) test-pr_radical$(EXEEXT) \
+ test-pr_sentence_terminal$(EXEEXT) \
+ test-pr_soft_dotted$(EXEEXT) test-pr_space$(EXEEXT) \
+ test-pr_terminal_punctuation$(EXEEXT) test-pr_test$(EXEEXT) \
+ test-pr_titlecase$(EXEEXT) \
+ test-pr_unassigned_code_value$(EXEEXT) \
+ test-pr_unified_ideograph$(EXEEXT) test-pr_uppercase$(EXEEXT) \
+ test-pr_variation_selector$(EXEEXT) \
+ test-pr_white_space$(EXEEXT) test-pr_xid_continue$(EXEEXT) \
+ test-pr_xid_start$(EXEEXT) test-pr_zero_width$(EXEEXT) \
+ test-scripts$(EXEEXT) test-sy_c_ident$(EXEEXT) \
+ test-sy_c_whitespace$(EXEEXT) test-sy_java_ident$(EXEEXT) \
+ test-sy_java_whitespace$(EXEEXT) \
+ test-u16-possible-linebreaks$(EXEEXT) \
+ test-u16-width-linebreaks$(EXEEXT) \
+ test-u32-possible-linebreaks$(EXEEXT) \
+ test-u32-width-linebreaks$(EXEEXT) \
+ test-u8-possible-linebreaks$(EXEEXT) \
+ test-u8-width-linebreaks$(EXEEXT) \
+ test-ulc-possible-linebreaks$(EXEEXT) \
+ test-ulc-width-linebreaks$(EXEEXT) uniname/test-uninames.sh \
+ test-canonical-decomposition$(EXEEXT) \
+ test-compat-decomposition$(EXEEXT) test-composition$(EXEEXT) \
+ test-decomposing-form$(EXEEXT) test-decomposition$(EXEEXT) \
+ test-uninorm-filter-nfc$(EXEEXT) test-nfc$(EXEEXT) \
+ uninorm/test-u32-nfc-big.sh test-nfd$(EXEEXT) \
+ uninorm/test-u32-nfd-big.sh test-nfkc$(EXEEXT) \
+ uninorm/test-u32-nfkc-big.sh test-nfkd$(EXEEXT) \
+ uninorm/test-u32-nfkd-big.sh test-u16-normcmp$(EXEEXT) \
+ test-u16-normcoll$(EXEEXT) test-u32-normcmp$(EXEEXT) \
+ test-u32-normcoll$(EXEEXT) test-u8-normcmp$(EXEEXT) \
+ test-u8-normcoll$(EXEEXT) test-unistd$(EXEEXT) \
+ test-u16-asnprintf1$(EXEEXT) test-u16-vasnprintf1$(EXEEXT) \
+ unistdio/test-u16-vasnprintf2.sh \
+ unistdio/test-u16-vasnprintf3.sh test-u16-vasprintf1$(EXEEXT) \
+ test-u16-vsnprintf1$(EXEEXT) test-u16-vsprintf1$(EXEEXT) \
+ test-u32-asnprintf1$(EXEEXT) test-u32-vasnprintf1$(EXEEXT) \
+ unistdio/test-u32-vasnprintf2.sh \
+ unistdio/test-u32-vasnprintf3.sh test-u32-vasprintf1$(EXEEXT) \
+ test-u32-vsnprintf1$(EXEEXT) test-u32-vsprintf1$(EXEEXT) \
+ test-u8-asnprintf1$(EXEEXT) test-u8-vasnprintf1$(EXEEXT) \
+ unistdio/test-u8-vasnprintf2.sh \
+ unistdio/test-u8-vasnprintf3.sh test-u8-vasprintf1$(EXEEXT) \
+ test-u8-vsnprintf1$(EXEEXT) test-u8-vsprintf1$(EXEEXT) \
+ test-ulc-asnprintf1$(EXEEXT) test-ulc-vasnprintf1$(EXEEXT) \
+ unistdio/test-ulc-vasnprintf2.sh \
+ unistdio/test-ulc-vasnprintf3.sh test-ulc-vasprintf1$(EXEEXT) \
+ test-ulc-vsnprintf1$(EXEEXT) test-ulc-vsprintf1$(EXEEXT) \
+ test-u16-wordbreaks$(EXEEXT) test-u32-wordbreaks$(EXEEXT) \
+ test-u8-wordbreaks$(EXEEXT) uniwbrk/test-ulc-wordbreaks.sh \
+ test-u16-strwidth$(EXEEXT) test-u16-width$(EXEEXT) \
+ test-u32-strwidth$(EXEEXT) test-u32-width$(EXEEXT) \
+ test-u8-strwidth$(EXEEXT) test-u8-width$(EXEEXT) \
+ test-uc_width$(EXEEXT) uniwidth/test-uc_width2.sh \
+ test-wchar$(EXEEXT) test-wctype$(EXEEXT) test-wcwidth$(EXEEXT)
+noinst_PROGRAMS =
+check_PROGRAMS = test-alloca-opt$(EXEEXT) \
+ test-array-mergesort$(EXEEXT) test-c-ctype$(EXEEXT) \
+ test-c-strcasecmp$(EXEEXT) test-c-strncasecmp$(EXEEXT) \
+ test-environ$(EXEEXT) test-errno$(EXEEXT) \
+ test-frexpl-nolibm$(EXEEXT) test-fseterr$(EXEEXT) \
+ test-iconv$(EXEEXT) test-isnand-nolibm$(EXEEXT) \
+ test-isnanf-nolibm$(EXEEXT) test-isnanl-nolibm$(EXEEXT) \
+ test-locale$(EXEEXT) test-localename$(EXEEXT) \
+ test-malloca$(EXEEXT) test-math$(EXEEXT) test-mbrtowc$(EXEEXT) \
+ test-mbsinit$(EXEEXT) test-memchr$(EXEEXT) \
+ test-printf-frexp$(EXEEXT) test-printf-frexpl$(EXEEXT) \
+ test-signbit$(EXEEXT) test-stdbool$(EXEEXT) \
+ test-stdint$(EXEEXT) test-stdlib$(EXEEXT) \
+ test-strerror$(EXEEXT) test-striconveh$(EXEEXT) \
+ test-striconveha$(EXEEXT) test-string$(EXEEXT) \
+ test-cased$(EXEEXT) test-ignorable$(EXEEXT) \
+ test-locale-language$(EXEEXT) test-uc_tolower$(EXEEXT) \
+ test-uc_totitle$(EXEEXT) test-uc_toupper$(EXEEXT) \
+ test-u16-casecmp$(EXEEXT) test-u16-casecoll$(EXEEXT) \
+ test-u16-casefold$(EXEEXT) test-u16-is-cased$(EXEEXT) \
+ test-u16-is-casefolded$(EXEEXT) test-u16-is-lowercase$(EXEEXT) \
+ test-u16-is-titlecase$(EXEEXT) test-u16-is-uppercase$(EXEEXT) \
+ test-u16-tolower$(EXEEXT) test-u16-totitle$(EXEEXT) \
+ test-u16-toupper$(EXEEXT) test-u32-casecmp$(EXEEXT) \
+ test-u32-casecoll$(EXEEXT) test-u32-casefold$(EXEEXT) \
+ test-u32-is-cased$(EXEEXT) test-u32-is-casefolded$(EXEEXT) \
+ test-u32-is-lowercase$(EXEEXT) test-u32-is-titlecase$(EXEEXT) \
+ test-u32-is-uppercase$(EXEEXT) test-u32-tolower$(EXEEXT) \
+ test-u32-totitle$(EXEEXT) test-u32-toupper$(EXEEXT) \
+ test-u8-casecmp$(EXEEXT) test-u8-casecoll$(EXEEXT) \
+ test-u8-casefold$(EXEEXT) test-u8-is-cased$(EXEEXT) \
+ test-u8-is-casefolded$(EXEEXT) test-u8-is-lowercase$(EXEEXT) \
+ test-u8-is-titlecase$(EXEEXT) test-u8-is-uppercase$(EXEEXT) \
+ test-u8-tolower$(EXEEXT) test-u8-totitle$(EXEEXT) \
+ test-u8-toupper$(EXEEXT) test-ulc-casecmp$(EXEEXT) \
+ test-ulc-casecoll$(EXEEXT) test-u16-conv-from-enc$(EXEEXT) \
+ test-u16-conv-to-enc$(EXEEXT) \
+ test-u16-strconv-from-enc$(EXEEXT) \
+ test-u16-strconv-to-enc$(EXEEXT) \
+ test-u32-conv-from-enc$(EXEEXT) test-u32-conv-to-enc$(EXEEXT) \
+ test-u32-strconv-from-enc$(EXEEXT) \
+ test-u32-strconv-to-enc$(EXEEXT) \
+ test-u8-conv-from-enc$(EXEEXT) test-u8-conv-to-enc$(EXEEXT) \
+ test-u8-strconv-from-enc$(EXEEXT) \
+ test-u8-strconv-to-enc$(EXEEXT) test-bidi_byname$(EXEEXT) \
+ test-bidi_name$(EXEEXT) test-bidi_of$(EXEEXT) \
+ test-bidi_test$(EXEEXT) test-block_list$(EXEEXT) \
+ test-block_of$(EXEEXT) test-block_test$(EXEEXT) \
+ test-categ_C$(EXEEXT) test-categ_Cc$(EXEEXT) \
+ test-categ_Cf$(EXEEXT) test-categ_Cn$(EXEEXT) \
+ test-categ_Co$(EXEEXT) test-categ_Cs$(EXEEXT) \
+ test-categ_L$(EXEEXT) test-categ_Ll$(EXEEXT) \
+ test-categ_Lm$(EXEEXT) test-categ_Lo$(EXEEXT) \
+ test-categ_Lt$(EXEEXT) test-categ_Lu$(EXEEXT) \
+ test-categ_M$(EXEEXT) test-categ_Mc$(EXEEXT) \
+ test-categ_Me$(EXEEXT) test-categ_Mn$(EXEEXT) \
+ test-categ_N$(EXEEXT) test-categ_Nd$(EXEEXT) \
+ test-categ_Nl$(EXEEXT) test-categ_No$(EXEEXT) \
+ test-categ_P$(EXEEXT) test-categ_Pc$(EXEEXT) \
+ test-categ_Pd$(EXEEXT) test-categ_Pe$(EXEEXT) \
+ test-categ_Pf$(EXEEXT) test-categ_Pi$(EXEEXT) \
+ test-categ_Po$(EXEEXT) test-categ_Ps$(EXEEXT) \
+ test-categ_S$(EXEEXT) test-categ_Sc$(EXEEXT) \
+ test-categ_Sk$(EXEEXT) test-categ_Sm$(EXEEXT) \
+ test-categ_So$(EXEEXT) test-categ_Z$(EXEEXT) \
+ test-categ_Zl$(EXEEXT) test-categ_Zp$(EXEEXT) \
+ test-categ_Zs$(EXEEXT) test-categ_and_not$(EXEEXT) \
+ test-categ_and$(EXEEXT) test-categ_byname$(EXEEXT) \
+ test-categ_name$(EXEEXT) $(am__EXEEXT_1) \
+ test-categ_of$(EXEEXT) test-categ_or$(EXEEXT) \
+ test-categ_test_withtable$(EXEEXT) test-combining$(EXEEXT) \
+ test-ctype_alnum$(EXEEXT) test-ctype_alpha$(EXEEXT) \
+ test-ctype_blank$(EXEEXT) test-ctype_cntrl$(EXEEXT) \
+ test-ctype_digit$(EXEEXT) test-ctype_graph$(EXEEXT) \
+ test-ctype_lower$(EXEEXT) test-ctype_print$(EXEEXT) \
+ test-ctype_punct$(EXEEXT) test-ctype_space$(EXEEXT) \
+ test-ctype_upper$(EXEEXT) test-ctype_xdigit$(EXEEXT) \
+ test-decdigit$(EXEEXT) test-digit$(EXEEXT) \
+ test-mirror$(EXEEXT) test-numeric$(EXEEXT) \
+ test-pr_alphabetic$(EXEEXT) test-pr_ascii_hex_digit$(EXEEXT) \
+ test-pr_bidi_arabic_digit$(EXEEXT) \
+ test-pr_bidi_arabic_right_to_left$(EXEEXT) \
+ test-pr_bidi_block_separator$(EXEEXT) \
+ test-pr_bidi_boundary_neutral$(EXEEXT) \
+ test-pr_bidi_common_separator$(EXEEXT) \
+ test-pr_bidi_control$(EXEEXT) \
+ test-pr_bidi_embedding_or_override$(EXEEXT) \
+ test-pr_bidi_eur_num_separator$(EXEEXT) \
+ test-pr_bidi_eur_num_terminator$(EXEEXT) \
+ test-pr_bidi_european_digit$(EXEEXT) \
+ test-pr_bidi_hebrew_right_to_left$(EXEEXT) \
+ test-pr_bidi_left_to_right$(EXEEXT) \
+ test-pr_bidi_non_spacing_mark$(EXEEXT) \
+ test-pr_bidi_other_neutral$(EXEEXT) test-pr_bidi_pdf$(EXEEXT) \
+ test-pr_bidi_segment_separator$(EXEEXT) \
+ test-pr_bidi_whitespace$(EXEEXT) test-pr_byname$(EXEEXT) \
+ test-pr_combining$(EXEEXT) test-pr_composite$(EXEEXT) \
+ test-pr_currency_symbol$(EXEEXT) test-pr_dash$(EXEEXT) \
+ test-pr_decimal_digit$(EXEEXT) \
+ test-pr_default_ignorable_code_point$(EXEEXT) \
+ test-pr_deprecated$(EXEEXT) test-pr_diacritic$(EXEEXT) \
+ test-pr_extender$(EXEEXT) test-pr_format_control$(EXEEXT) \
+ test-pr_grapheme_base$(EXEEXT) \
+ test-pr_grapheme_extend$(EXEEXT) \
+ test-pr_grapheme_link$(EXEEXT) test-pr_hex_digit$(EXEEXT) \
+ test-pr_hyphen$(EXEEXT) test-pr_id_continue$(EXEEXT) \
+ test-pr_id_start$(EXEEXT) test-pr_ideographic$(EXEEXT) \
+ test-pr_ids_binary_operator$(EXEEXT) \
+ test-pr_ids_trinary_operator$(EXEEXT) \
+ test-pr_ignorable_control$(EXEEXT) \
+ test-pr_iso_control$(EXEEXT) test-pr_join_control$(EXEEXT) \
+ test-pr_left_of_pair$(EXEEXT) test-pr_line_separator$(EXEEXT) \
+ test-pr_logical_order_exception$(EXEEXT) \
+ test-pr_lowercase$(EXEEXT) test-pr_math$(EXEEXT) \
+ test-pr_non_break$(EXEEXT) test-pr_not_a_character$(EXEEXT) \
+ test-pr_numeric$(EXEEXT) test-pr_other_alphabetic$(EXEEXT) \
+ test-pr_other_default_ignorable_code_point$(EXEEXT) \
+ test-pr_other_grapheme_extend$(EXEEXT) \
+ test-pr_other_id_continue$(EXEEXT) \
+ test-pr_other_id_start$(EXEEXT) \
+ test-pr_other_lowercase$(EXEEXT) test-pr_other_math$(EXEEXT) \
+ test-pr_other_uppercase$(EXEEXT) \
+ test-pr_paired_punctuation$(EXEEXT) \
+ test-pr_paragraph_separator$(EXEEXT) \
+ test-pr_pattern_syntax$(EXEEXT) \
+ test-pr_pattern_white_space$(EXEEXT) \
+ test-pr_private_use$(EXEEXT) test-pr_punctuation$(EXEEXT) \
+ test-pr_quotation_mark$(EXEEXT) test-pr_radical$(EXEEXT) \
+ test-pr_sentence_terminal$(EXEEXT) \
+ test-pr_soft_dotted$(EXEEXT) test-pr_space$(EXEEXT) \
+ test-pr_terminal_punctuation$(EXEEXT) test-pr_test$(EXEEXT) \
+ test-pr_titlecase$(EXEEXT) \
+ test-pr_unassigned_code_value$(EXEEXT) \
+ test-pr_unified_ideograph$(EXEEXT) test-pr_uppercase$(EXEEXT) \
+ test-pr_variation_selector$(EXEEXT) \
+ test-pr_white_space$(EXEEXT) test-pr_xid_continue$(EXEEXT) \
+ test-pr_xid_start$(EXEEXT) test-pr_zero_width$(EXEEXT) \
+ test-scripts$(EXEEXT) test-sy_c_ident$(EXEEXT) \
+ test-sy_c_whitespace$(EXEEXT) test-sy_java_ident$(EXEEXT) \
+ test-sy_java_whitespace$(EXEEXT) \
+ test-u16-possible-linebreaks$(EXEEXT) \
+ test-u16-width-linebreaks$(EXEEXT) \
+ test-u32-possible-linebreaks$(EXEEXT) \
+ test-u32-width-linebreaks$(EXEEXT) \
+ test-u8-possible-linebreaks$(EXEEXT) \
+ test-u8-width-linebreaks$(EXEEXT) \
+ test-ulc-possible-linebreaks$(EXEEXT) \
+ test-ulc-width-linebreaks$(EXEEXT) test-uninames$(EXEEXT) \
+ test-canonical-decomposition$(EXEEXT) \
+ test-compat-decomposition$(EXEEXT) test-composition$(EXEEXT) \
+ test-decomposing-form$(EXEEXT) test-decomposition$(EXEEXT) \
+ test-uninorm-filter-nfc$(EXEEXT) test-nfc$(EXEEXT) \
+ test-u32-nfc-big$(EXEEXT) test-nfd$(EXEEXT) \
+ test-u32-nfd-big$(EXEEXT) test-nfkc$(EXEEXT) \
+ test-u32-nfkc-big$(EXEEXT) test-nfkd$(EXEEXT) \
+ test-u32-nfkd-big$(EXEEXT) test-u16-normcmp$(EXEEXT) \
+ test-u16-normcoll$(EXEEXT) test-u32-normcmp$(EXEEXT) \
+ test-u32-normcoll$(EXEEXT) test-u8-normcmp$(EXEEXT) \
+ test-u8-normcoll$(EXEEXT) test-unistd$(EXEEXT) \
+ test-u16-asnprintf1$(EXEEXT) test-u16-vasnprintf1$(EXEEXT) \
+ test-u16-vasnprintf2$(EXEEXT) test-u16-vasnprintf3$(EXEEXT) \
+ test-u16-vasprintf1$(EXEEXT) test-u16-vsnprintf1$(EXEEXT) \
+ test-u16-vsprintf1$(EXEEXT) test-u32-asnprintf1$(EXEEXT) \
+ test-u32-vasnprintf1$(EXEEXT) test-u32-vasnprintf2$(EXEEXT) \
+ test-u32-vasnprintf3$(EXEEXT) test-u32-vasprintf1$(EXEEXT) \
+ test-u32-vsnprintf1$(EXEEXT) test-u32-vsprintf1$(EXEEXT) \
+ test-u8-asnprintf1$(EXEEXT) test-u8-vasnprintf1$(EXEEXT) \
+ test-u8-vasnprintf2$(EXEEXT) test-u8-vasnprintf3$(EXEEXT) \
+ test-u8-vasprintf1$(EXEEXT) test-u8-vsnprintf1$(EXEEXT) \
+ test-u8-vsprintf1$(EXEEXT) test-ulc-asnprintf1$(EXEEXT) \
+ test-ulc-vasnprintf1$(EXEEXT) test-ulc-vasnprintf2$(EXEEXT) \
+ test-ulc-vasnprintf3$(EXEEXT) test-ulc-vasprintf1$(EXEEXT) \
+ test-ulc-vsnprintf1$(EXEEXT) test-ulc-vsprintf1$(EXEEXT) \
+ test-u16-wordbreaks$(EXEEXT) test-u32-wordbreaks$(EXEEXT) \
+ test-u8-wordbreaks$(EXEEXT) test-ulc-wordbreaks$(EXEEXT) \
+ test-u16-strwidth$(EXEEXT) test-u16-width$(EXEEXT) \
+ test-u32-strwidth$(EXEEXT) test-u32-width$(EXEEXT) \
+ test-u8-strwidth$(EXEEXT) test-u8-width$(EXEEXT) \
+ test-uc_width$(EXEEXT) test-uc_width2$(EXEEXT) \
+ test-wchar$(EXEEXT) test-wctype$(EXEEXT) test-wcwidth$(EXEEXT)
+@WOE32DLL_FALSE@am__append_1 = test-categ_none
+@WOE32DLL_FALSE@am__append_2 = test-categ_none
+subdir = tests
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+ $(top_srcdir)/gnulib-m4/alloca.m4 \
+ $(top_srcdir)/gnulib-m4/codeset.m4 \
+ $(top_srcdir)/gnulib-m4/eealloc.m4 \
+ $(top_srcdir)/gnulib-m4/environ.m4 \
+ $(top_srcdir)/gnulib-m4/errno_h.m4 \
+ $(top_srcdir)/gnulib-m4/error.m4 \
+ $(top_srcdir)/gnulib-m4/exitfail.m4 \
+ $(top_srcdir)/gnulib-m4/exponentd.m4 \
+ $(top_srcdir)/gnulib-m4/exponentf.m4 \
+ $(top_srcdir)/gnulib-m4/exponentl.m4 \
+ $(top_srcdir)/gnulib-m4/extensions.m4 \
+ $(top_srcdir)/gnulib-m4/float_h.m4 \
+ $(top_srcdir)/gnulib-m4/fpieee.m4 \
+ $(top_srcdir)/gnulib-m4/frexp.m4 \
+ $(top_srcdir)/gnulib-m4/frexpl.m4 \
+ $(top_srcdir)/gnulib-m4/getpagesize.m4 \
+ $(top_srcdir)/gnulib-m4/glibc21.m4 \
+ $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
+ $(top_srcdir)/gnulib-m4/gnulib-comp.m4 \
+ $(top_srcdir)/gnulib-m4/iconv.m4 \
+ $(top_srcdir)/gnulib-m4/iconv_h.m4 \
+ $(top_srcdir)/gnulib-m4/iconv_open.m4 \
+ $(top_srcdir)/gnulib-m4/include_next.m4 \
+ $(top_srcdir)/gnulib-m4/inline.m4 \
+ $(top_srcdir)/gnulib-m4/intlmacosx.m4 \
+ $(top_srcdir)/gnulib-m4/intmax_t.m4 \
+ $(top_srcdir)/gnulib-m4/inttypes_h.m4 \
+ $(top_srcdir)/gnulib-m4/isnand.m4 \
+ $(top_srcdir)/gnulib-m4/isnanf.m4 \
+ $(top_srcdir)/gnulib-m4/isnanl.m4 \
+ $(top_srcdir)/gnulib-m4/lcmessage.m4 \
+ $(top_srcdir)/gnulib-m4/ldexpl.m4 \
+ $(top_srcdir)/gnulib-m4/lib-ld.m4 \
+ $(top_srcdir)/gnulib-m4/lib-link.m4 \
+ $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+ $(top_srcdir)/gnulib-m4/localcharset.m4 \
+ $(top_srcdir)/gnulib-m4/locale-fr.m4 \
+ $(top_srcdir)/gnulib-m4/locale-ja.m4 \
+ $(top_srcdir)/gnulib-m4/locale-tr.m4 \
+ $(top_srcdir)/gnulib-m4/locale-zh.m4 \
+ $(top_srcdir)/gnulib-m4/locale_h.m4 \
+ $(top_srcdir)/gnulib-m4/localename.m4 \
+ $(top_srcdir)/gnulib-m4/longlong.m4 \
+ $(top_srcdir)/gnulib-m4/malloc.m4 \
+ $(top_srcdir)/gnulib-m4/malloca.m4 \
+ $(top_srcdir)/gnulib-m4/math_h.m4 \
+ $(top_srcdir)/gnulib-m4/mbchar.m4 \
+ $(top_srcdir)/gnulib-m4/mbiter.m4 \
+ $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
+ $(top_srcdir)/gnulib-m4/mbsinit.m4 \
+ $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+ $(top_srcdir)/gnulib-m4/memchr.m4 \
+ $(top_srcdir)/gnulib-m4/minmax.m4 \
+ $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+ $(top_srcdir)/gnulib-m4/multiarch.m4 \
+ $(top_srcdir)/gnulib-m4/nocrash.m4 \
+ $(top_srcdir)/gnulib-m4/printf-frexp.m4 \
+ $(top_srcdir)/gnulib-m4/printf-frexpl.m4 \
+ $(top_srcdir)/gnulib-m4/printf.m4 \
+ $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
+ $(top_srcdir)/gnulib-m4/setenv.m4 \
+ $(top_srcdir)/gnulib-m4/signbit.m4 \
+ $(top_srcdir)/gnulib-m4/size_max.m4 \
+ $(top_srcdir)/gnulib-m4/stdbool.m4 \
+ $(top_srcdir)/gnulib-m4/stdint.m4 \
+ $(top_srcdir)/gnulib-m4/stdint_h.m4 \
+ $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
+ $(top_srcdir)/gnulib-m4/strerror.m4 \
+ $(top_srcdir)/gnulib-m4/string_h.m4 \
+ $(top_srcdir)/gnulib-m4/unistd_h.m4 \
+ $(top_srcdir)/gnulib-m4/vasnprintf.m4 \
+ $(top_srcdir)/gnulib-m4/wchar.m4 \
+ $(top_srcdir)/gnulib-m4/wchar_t.m4 \
+ $(top_srcdir)/gnulib-m4/wctob.m4 \
+ $(top_srcdir)/gnulib-m4/wctype.m4 \
+ $(top_srcdir)/gnulib-m4/wcwidth.m4 \
+ $(top_srcdir)/gnulib-m4/wint_t.m4 \
+ $(top_srcdir)/gnulib-m4/xalloc.m4 \
+ $(top_srcdir)/gnulib-m4/xsize.m4 $(top_srcdir)/m4/exported.m4 \
+ $(top_srcdir)/m4/init-package-version.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/woe32-dll.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+AM_V_AR = $(am__v_AR_$(V))
+am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
+am__v_AR_0 = @echo " AR " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+libtests_a_AR = $(AR) $(ARFLAGS)
+am__DEPENDENCIES_1 =
+am_libtests_a_OBJECTS = progname.$(OBJEXT) xalloc-die.$(OBJEXT)
+libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
+@WOE32DLL_FALSE@am__EXEEXT_1 = test-categ_none$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+test_alloca_opt_SOURCES = test-alloca-opt.c
+test_alloca_opt_OBJECTS = test-alloca-opt.$(OBJEXT)
+test_alloca_opt_LDADD = $(LDADD)
+test_alloca_opt_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+test_array_mergesort_SOURCES = test-array-mergesort.c
+test_array_mergesort_OBJECTS = test-array-mergesort.$(OBJEXT)
+test_array_mergesort_LDADD = $(LDADD)
+test_array_mergesort_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am__dirstamp = $(am__leading_dot)dirstamp
+am_test_bidi_byname_OBJECTS = unictype/test-bidi_byname.$(OBJEXT)
+test_bidi_byname_OBJECTS = $(am_test_bidi_byname_OBJECTS)
+test_bidi_byname_LDADD = $(LDADD)
+test_bidi_byname_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_bidi_name_OBJECTS = unictype/test-bidi_name.$(OBJEXT)
+test_bidi_name_OBJECTS = $(am_test_bidi_name_OBJECTS)
+test_bidi_name_LDADD = $(LDADD)
+test_bidi_name_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_bidi_of_OBJECTS = unictype/test-bidi_of.$(OBJEXT)
+test_bidi_of_OBJECTS = $(am_test_bidi_of_OBJECTS)
+test_bidi_of_LDADD = $(LDADD)
+test_bidi_of_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_bidi_test_OBJECTS = unictype/test-bidi_test.$(OBJEXT)
+test_bidi_test_OBJECTS = $(am_test_bidi_test_OBJECTS)
+test_bidi_test_LDADD = $(LDADD)
+test_bidi_test_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_block_list_OBJECTS = unictype/test-block_list.$(OBJEXT)
+test_block_list_OBJECTS = $(am_test_block_list_OBJECTS)
+test_block_list_LDADD = $(LDADD)
+test_block_list_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_block_of_OBJECTS = unictype/test-block_of.$(OBJEXT)
+test_block_of_OBJECTS = $(am_test_block_of_OBJECTS)
+test_block_of_LDADD = $(LDADD)
+test_block_of_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_block_test_OBJECTS = unictype/test-block_test.$(OBJEXT)
+test_block_test_OBJECTS = $(am_test_block_test_OBJECTS)
+test_block_test_LDADD = $(LDADD)
+test_block_test_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_c_ctype_SOURCES = test-c-ctype.c
+test_c_ctype_OBJECTS = test-c-ctype.$(OBJEXT)
+test_c_ctype_LDADD = $(LDADD)
+test_c_ctype_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_c_strcasecmp_SOURCES = test-c-strcasecmp.c
+test_c_strcasecmp_OBJECTS = test-c-strcasecmp.$(OBJEXT)
+test_c_strcasecmp_LDADD = $(LDADD)
+test_c_strcasecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_c_strncasecmp_SOURCES = test-c-strncasecmp.c
+test_c_strncasecmp_OBJECTS = test-c-strncasecmp.$(OBJEXT)
+test_c_strncasecmp_LDADD = $(LDADD)
+test_c_strncasecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_canonical_decomposition_OBJECTS = \
+ uninorm/test-canonical-decomposition.$(OBJEXT)
+test_canonical_decomposition_OBJECTS = \
+ $(am_test_canonical_decomposition_OBJECTS)
+test_canonical_decomposition_LDADD = $(LDADD)
+test_canonical_decomposition_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_cased_OBJECTS = unicase/test-cased.$(OBJEXT)
+test_cased_OBJECTS = $(am_test_cased_OBJECTS)
+test_cased_LDADD = $(LDADD)
+test_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+am_test_categ_C_OBJECTS = unictype/test-categ_C.$(OBJEXT)
+test_categ_C_OBJECTS = $(am_test_categ_C_OBJECTS)
+test_categ_C_LDADD = $(LDADD)
+test_categ_C_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Cc_OBJECTS = unictype/test-categ_Cc.$(OBJEXT)
+test_categ_Cc_OBJECTS = $(am_test_categ_Cc_OBJECTS)
+test_categ_Cc_LDADD = $(LDADD)
+test_categ_Cc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Cf_OBJECTS = unictype/test-categ_Cf.$(OBJEXT)
+test_categ_Cf_OBJECTS = $(am_test_categ_Cf_OBJECTS)
+test_categ_Cf_LDADD = $(LDADD)
+test_categ_Cf_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Cn_OBJECTS = unictype/test-categ_Cn.$(OBJEXT)
+test_categ_Cn_OBJECTS = $(am_test_categ_Cn_OBJECTS)
+test_categ_Cn_LDADD = $(LDADD)
+test_categ_Cn_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Co_OBJECTS = unictype/test-categ_Co.$(OBJEXT)
+test_categ_Co_OBJECTS = $(am_test_categ_Co_OBJECTS)
+test_categ_Co_LDADD = $(LDADD)
+test_categ_Co_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Cs_OBJECTS = unictype/test-categ_Cs.$(OBJEXT)
+test_categ_Cs_OBJECTS = $(am_test_categ_Cs_OBJECTS)
+test_categ_Cs_LDADD = $(LDADD)
+test_categ_Cs_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_L_OBJECTS = unictype/test-categ_L.$(OBJEXT)
+test_categ_L_OBJECTS = $(am_test_categ_L_OBJECTS)
+test_categ_L_LDADD = $(LDADD)
+test_categ_L_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Ll_OBJECTS = unictype/test-categ_Ll.$(OBJEXT)
+test_categ_Ll_OBJECTS = $(am_test_categ_Ll_OBJECTS)
+test_categ_Ll_LDADD = $(LDADD)
+test_categ_Ll_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Lm_OBJECTS = unictype/test-categ_Lm.$(OBJEXT)
+test_categ_Lm_OBJECTS = $(am_test_categ_Lm_OBJECTS)
+test_categ_Lm_LDADD = $(LDADD)
+test_categ_Lm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Lo_OBJECTS = unictype/test-categ_Lo.$(OBJEXT)
+test_categ_Lo_OBJECTS = $(am_test_categ_Lo_OBJECTS)
+test_categ_Lo_LDADD = $(LDADD)
+test_categ_Lo_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Lt_OBJECTS = unictype/test-categ_Lt.$(OBJEXT)
+test_categ_Lt_OBJECTS = $(am_test_categ_Lt_OBJECTS)
+test_categ_Lt_LDADD = $(LDADD)
+test_categ_Lt_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Lu_OBJECTS = unictype/test-categ_Lu.$(OBJEXT)
+test_categ_Lu_OBJECTS = $(am_test_categ_Lu_OBJECTS)
+test_categ_Lu_LDADD = $(LDADD)
+test_categ_Lu_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_M_OBJECTS = unictype/test-categ_M.$(OBJEXT)
+test_categ_M_OBJECTS = $(am_test_categ_M_OBJECTS)
+test_categ_M_LDADD = $(LDADD)
+test_categ_M_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Mc_OBJECTS = unictype/test-categ_Mc.$(OBJEXT)
+test_categ_Mc_OBJECTS = $(am_test_categ_Mc_OBJECTS)
+test_categ_Mc_LDADD = $(LDADD)
+test_categ_Mc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Me_OBJECTS = unictype/test-categ_Me.$(OBJEXT)
+test_categ_Me_OBJECTS = $(am_test_categ_Me_OBJECTS)
+test_categ_Me_LDADD = $(LDADD)
+test_categ_Me_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Mn_OBJECTS = unictype/test-categ_Mn.$(OBJEXT)
+test_categ_Mn_OBJECTS = $(am_test_categ_Mn_OBJECTS)
+test_categ_Mn_LDADD = $(LDADD)
+test_categ_Mn_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_N_OBJECTS = unictype/test-categ_N.$(OBJEXT)
+test_categ_N_OBJECTS = $(am_test_categ_N_OBJECTS)
+test_categ_N_LDADD = $(LDADD)
+test_categ_N_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Nd_OBJECTS = unictype/test-categ_Nd.$(OBJEXT)
+test_categ_Nd_OBJECTS = $(am_test_categ_Nd_OBJECTS)
+test_categ_Nd_LDADD = $(LDADD)
+test_categ_Nd_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Nl_OBJECTS = unictype/test-categ_Nl.$(OBJEXT)
+test_categ_Nl_OBJECTS = $(am_test_categ_Nl_OBJECTS)
+test_categ_Nl_LDADD = $(LDADD)
+test_categ_Nl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_No_OBJECTS = unictype/test-categ_No.$(OBJEXT)
+test_categ_No_OBJECTS = $(am_test_categ_No_OBJECTS)
+test_categ_No_LDADD = $(LDADD)
+test_categ_No_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_P_OBJECTS = unictype/test-categ_P.$(OBJEXT)
+test_categ_P_OBJECTS = $(am_test_categ_P_OBJECTS)
+test_categ_P_LDADD = $(LDADD)
+test_categ_P_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Pc_OBJECTS = unictype/test-categ_Pc.$(OBJEXT)
+test_categ_Pc_OBJECTS = $(am_test_categ_Pc_OBJECTS)
+test_categ_Pc_LDADD = $(LDADD)
+test_categ_Pc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Pd_OBJECTS = unictype/test-categ_Pd.$(OBJEXT)
+test_categ_Pd_OBJECTS = $(am_test_categ_Pd_OBJECTS)
+test_categ_Pd_LDADD = $(LDADD)
+test_categ_Pd_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Pe_OBJECTS = unictype/test-categ_Pe.$(OBJEXT)
+test_categ_Pe_OBJECTS = $(am_test_categ_Pe_OBJECTS)
+test_categ_Pe_LDADD = $(LDADD)
+test_categ_Pe_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Pf_OBJECTS = unictype/test-categ_Pf.$(OBJEXT)
+test_categ_Pf_OBJECTS = $(am_test_categ_Pf_OBJECTS)
+test_categ_Pf_LDADD = $(LDADD)
+test_categ_Pf_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Pi_OBJECTS = unictype/test-categ_Pi.$(OBJEXT)
+test_categ_Pi_OBJECTS = $(am_test_categ_Pi_OBJECTS)
+test_categ_Pi_LDADD = $(LDADD)
+test_categ_Pi_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Po_OBJECTS = unictype/test-categ_Po.$(OBJEXT)
+test_categ_Po_OBJECTS = $(am_test_categ_Po_OBJECTS)
+test_categ_Po_LDADD = $(LDADD)
+test_categ_Po_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Ps_OBJECTS = unictype/test-categ_Ps.$(OBJEXT)
+test_categ_Ps_OBJECTS = $(am_test_categ_Ps_OBJECTS)
+test_categ_Ps_LDADD = $(LDADD)
+test_categ_Ps_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_S_OBJECTS = unictype/test-categ_S.$(OBJEXT)
+test_categ_S_OBJECTS = $(am_test_categ_S_OBJECTS)
+test_categ_S_LDADD = $(LDADD)
+test_categ_S_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Sc_OBJECTS = unictype/test-categ_Sc.$(OBJEXT)
+test_categ_Sc_OBJECTS = $(am_test_categ_Sc_OBJECTS)
+test_categ_Sc_LDADD = $(LDADD)
+test_categ_Sc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Sk_OBJECTS = unictype/test-categ_Sk.$(OBJEXT)
+test_categ_Sk_OBJECTS = $(am_test_categ_Sk_OBJECTS)
+test_categ_Sk_LDADD = $(LDADD)
+test_categ_Sk_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Sm_OBJECTS = unictype/test-categ_Sm.$(OBJEXT)
+test_categ_Sm_OBJECTS = $(am_test_categ_Sm_OBJECTS)
+test_categ_Sm_LDADD = $(LDADD)
+test_categ_Sm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_So_OBJECTS = unictype/test-categ_So.$(OBJEXT)
+test_categ_So_OBJECTS = $(am_test_categ_So_OBJECTS)
+test_categ_So_LDADD = $(LDADD)
+test_categ_So_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Z_OBJECTS = unictype/test-categ_Z.$(OBJEXT)
+test_categ_Z_OBJECTS = $(am_test_categ_Z_OBJECTS)
+test_categ_Z_LDADD = $(LDADD)
+test_categ_Z_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Zl_OBJECTS = unictype/test-categ_Zl.$(OBJEXT)
+test_categ_Zl_OBJECTS = $(am_test_categ_Zl_OBJECTS)
+test_categ_Zl_LDADD = $(LDADD)
+test_categ_Zl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Zp_OBJECTS = unictype/test-categ_Zp.$(OBJEXT)
+test_categ_Zp_OBJECTS = $(am_test_categ_Zp_OBJECTS)
+test_categ_Zp_LDADD = $(LDADD)
+test_categ_Zp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_Zs_OBJECTS = unictype/test-categ_Zs.$(OBJEXT)
+test_categ_Zs_OBJECTS = $(am_test_categ_Zs_OBJECTS)
+test_categ_Zs_LDADD = $(LDADD)
+test_categ_Zs_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_and_OBJECTS = unictype/test-categ_and.$(OBJEXT)
+test_categ_and_OBJECTS = $(am_test_categ_and_OBJECTS)
+test_categ_and_LDADD = $(LDADD)
+test_categ_and_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_and_not_OBJECTS = unictype/test-categ_and_not.$(OBJEXT)
+test_categ_and_not_OBJECTS = $(am_test_categ_and_not_OBJECTS)
+test_categ_and_not_LDADD = $(LDADD)
+test_categ_and_not_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_byname_OBJECTS = unictype/test-categ_byname.$(OBJEXT)
+test_categ_byname_OBJECTS = $(am_test_categ_byname_OBJECTS)
+test_categ_byname_LDADD = $(LDADD)
+test_categ_byname_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_name_OBJECTS = unictype/test-categ_name.$(OBJEXT)
+test_categ_name_OBJECTS = $(am_test_categ_name_OBJECTS)
+test_categ_name_LDADD = $(LDADD)
+test_categ_name_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am__test_categ_none_SOURCES_DIST = unictype/test-categ_none.c
+@WOE32DLL_FALSE@am_test_categ_none_OBJECTS = \
+@WOE32DLL_FALSE@ unictype/test-categ_none.$(OBJEXT)
+test_categ_none_OBJECTS = $(am_test_categ_none_OBJECTS)
+test_categ_none_LDADD = $(LDADD)
+test_categ_none_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_of_OBJECTS = unictype/test-categ_of.$(OBJEXT)
+test_categ_of_OBJECTS = $(am_test_categ_of_OBJECTS)
+test_categ_of_LDADD = $(LDADD)
+test_categ_of_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_or_OBJECTS = unictype/test-categ_or.$(OBJEXT)
+test_categ_or_OBJECTS = $(am_test_categ_or_OBJECTS)
+test_categ_or_LDADD = $(LDADD)
+test_categ_or_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_categ_test_withtable_OBJECTS = \
+ unictype/test-categ_test_withtable.$(OBJEXT)
+test_categ_test_withtable_OBJECTS = \
+ $(am_test_categ_test_withtable_OBJECTS)
+test_categ_test_withtable_LDADD = $(LDADD)
+test_categ_test_withtable_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_combining_OBJECTS = unictype/test-combining.$(OBJEXT)
+test_combining_OBJECTS = $(am_test_combining_OBJECTS)
+test_combining_LDADD = $(LDADD)
+test_combining_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_compat_decomposition_OBJECTS = \
+ uninorm/test-compat-decomposition.$(OBJEXT)
+test_compat_decomposition_OBJECTS = \
+ $(am_test_compat_decomposition_OBJECTS)
+test_compat_decomposition_LDADD = $(LDADD)
+test_compat_decomposition_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_composition_OBJECTS = uninorm/test-composition.$(OBJEXT)
+test_composition_OBJECTS = $(am_test_composition_OBJECTS)
+test_composition_LDADD = $(LDADD)
+test_composition_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_alnum_OBJECTS = unictype/test-ctype_alnum.$(OBJEXT)
+test_ctype_alnum_OBJECTS = $(am_test_ctype_alnum_OBJECTS)
+test_ctype_alnum_LDADD = $(LDADD)
+test_ctype_alnum_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_alpha_OBJECTS = unictype/test-ctype_alpha.$(OBJEXT)
+test_ctype_alpha_OBJECTS = $(am_test_ctype_alpha_OBJECTS)
+test_ctype_alpha_LDADD = $(LDADD)
+test_ctype_alpha_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_blank_OBJECTS = unictype/test-ctype_blank.$(OBJEXT)
+test_ctype_blank_OBJECTS = $(am_test_ctype_blank_OBJECTS)
+test_ctype_blank_LDADD = $(LDADD)
+test_ctype_blank_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_cntrl_OBJECTS = unictype/test-ctype_cntrl.$(OBJEXT)
+test_ctype_cntrl_OBJECTS = $(am_test_ctype_cntrl_OBJECTS)
+test_ctype_cntrl_LDADD = $(LDADD)
+test_ctype_cntrl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_digit_OBJECTS = unictype/test-ctype_digit.$(OBJEXT)
+test_ctype_digit_OBJECTS = $(am_test_ctype_digit_OBJECTS)
+test_ctype_digit_LDADD = $(LDADD)
+test_ctype_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_graph_OBJECTS = unictype/test-ctype_graph.$(OBJEXT)
+test_ctype_graph_OBJECTS = $(am_test_ctype_graph_OBJECTS)
+test_ctype_graph_LDADD = $(LDADD)
+test_ctype_graph_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_lower_OBJECTS = unictype/test-ctype_lower.$(OBJEXT)
+test_ctype_lower_OBJECTS = $(am_test_ctype_lower_OBJECTS)
+test_ctype_lower_LDADD = $(LDADD)
+test_ctype_lower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_print_OBJECTS = unictype/test-ctype_print.$(OBJEXT)
+test_ctype_print_OBJECTS = $(am_test_ctype_print_OBJECTS)
+test_ctype_print_LDADD = $(LDADD)
+test_ctype_print_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_punct_OBJECTS = unictype/test-ctype_punct.$(OBJEXT)
+test_ctype_punct_OBJECTS = $(am_test_ctype_punct_OBJECTS)
+test_ctype_punct_LDADD = $(LDADD)
+test_ctype_punct_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_space_OBJECTS = unictype/test-ctype_space.$(OBJEXT)
+test_ctype_space_OBJECTS = $(am_test_ctype_space_OBJECTS)
+test_ctype_space_LDADD = $(LDADD)
+test_ctype_space_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_upper_OBJECTS = unictype/test-ctype_upper.$(OBJEXT)
+test_ctype_upper_OBJECTS = $(am_test_ctype_upper_OBJECTS)
+test_ctype_upper_LDADD = $(LDADD)
+test_ctype_upper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ctype_xdigit_OBJECTS = unictype/test-ctype_xdigit.$(OBJEXT)
+test_ctype_xdigit_OBJECTS = $(am_test_ctype_xdigit_OBJECTS)
+test_ctype_xdigit_LDADD = $(LDADD)
+test_ctype_xdigit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_decdigit_OBJECTS = unictype/test-decdigit.$(OBJEXT)
+test_decdigit_OBJECTS = $(am_test_decdigit_OBJECTS)
+test_decdigit_LDADD = $(LDADD)
+test_decdigit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_decomposing_form_OBJECTS = \
+ uninorm/test-decomposing-form.$(OBJEXT)
+test_decomposing_form_OBJECTS = $(am_test_decomposing_form_OBJECTS)
+test_decomposing_form_LDADD = $(LDADD)
+test_decomposing_form_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_decomposition_OBJECTS = uninorm/test-decomposition.$(OBJEXT)
+test_decomposition_OBJECTS = $(am_test_decomposition_OBJECTS)
+test_decomposition_LDADD = $(LDADD)
+test_decomposition_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_digit_OBJECTS = unictype/test-digit.$(OBJEXT)
+test_digit_OBJECTS = $(am_test_digit_OBJECTS)
+test_digit_LDADD = $(LDADD)
+test_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+test_environ_SOURCES = test-environ.c
+test_environ_OBJECTS = test-environ.$(OBJEXT)
+test_environ_LDADD = $(LDADD)
+test_environ_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_errno_SOURCES = test-errno.c
+test_errno_OBJECTS = test-errno.$(OBJEXT)
+test_errno_LDADD = $(LDADD)
+test_errno_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+am_test_frexpl_nolibm_OBJECTS = test-frexpl.$(OBJEXT)
+test_frexpl_nolibm_OBJECTS = $(am_test_frexpl_nolibm_OBJECTS)
+test_frexpl_nolibm_LDADD = $(LDADD)
+test_frexpl_nolibm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_fseterr_SOURCES = test-fseterr.c
+test_fseterr_OBJECTS = test-fseterr.$(OBJEXT)
+test_fseterr_LDADD = $(LDADD)
+test_fseterr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_iconv_SOURCES = test-iconv.c
+test_iconv_OBJECTS = test-iconv.$(OBJEXT)
+am__DEPENDENCIES_2 = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+test_iconv_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ignorable_OBJECTS = unicase/test-ignorable.$(OBJEXT)
+test_ignorable_OBJECTS = $(am_test_ignorable_OBJECTS)
+test_ignorable_LDADD = $(LDADD)
+test_ignorable_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_isnand_nolibm_SOURCES = test-isnand-nolibm.c
+test_isnand_nolibm_OBJECTS = test-isnand-nolibm.$(OBJEXT)
+test_isnand_nolibm_LDADD = $(LDADD)
+test_isnand_nolibm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_isnanf_nolibm_SOURCES = test-isnanf-nolibm.c
+test_isnanf_nolibm_OBJECTS = test-isnanf-nolibm.$(OBJEXT)
+test_isnanf_nolibm_LDADD = $(LDADD)
+test_isnanf_nolibm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_isnanl_nolibm_SOURCES = test-isnanl-nolibm.c
+test_isnanl_nolibm_OBJECTS = test-isnanl-nolibm.$(OBJEXT)
+test_isnanl_nolibm_LDADD = $(LDADD)
+test_isnanl_nolibm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_locale_SOURCES = test-locale.c
+test_locale_OBJECTS = test-locale.$(OBJEXT)
+test_locale_LDADD = $(LDADD)
+test_locale_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_locale_language_OBJECTS = \
+ unicase/test-locale-language.$(OBJEXT)
+test_locale_language_OBJECTS = $(am_test_locale_language_OBJECTS)
+test_locale_language_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_localename_SOURCES = test-localename.c
+test_localename_OBJECTS = test-localename.$(OBJEXT)
+test_localename_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_malloca_SOURCES = test-malloca.c
+test_malloca_OBJECTS = test-malloca.$(OBJEXT)
+test_malloca_LDADD = $(LDADD)
+test_malloca_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_math_SOURCES = test-math.c
+test_math_OBJECTS = test-math.$(OBJEXT)
+test_math_LDADD = $(LDADD)
+test_math_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+test_mbrtowc_SOURCES = test-mbrtowc.c
+test_mbrtowc_OBJECTS = test-mbrtowc.$(OBJEXT)
+test_mbrtowc_LDADD = $(LDADD)
+test_mbrtowc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_mbsinit_SOURCES = test-mbsinit.c
+test_mbsinit_OBJECTS = test-mbsinit.$(OBJEXT)
+test_mbsinit_LDADD = $(LDADD)
+test_mbsinit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_memchr_SOURCES = test-memchr.c
+test_memchr_OBJECTS = test-memchr.$(OBJEXT)
+test_memchr_LDADD = $(LDADD)
+test_memchr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_mirror_OBJECTS = unictype/test-mirror.$(OBJEXT)
+test_mirror_OBJECTS = $(am_test_mirror_OBJECTS)
+test_mirror_LDADD = $(LDADD)
+test_mirror_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_nfc_OBJECTS = uninorm/test-nfc.$(OBJEXT) \
+ uninorm/test-u8-nfc.$(OBJEXT) uninorm/test-u16-nfc.$(OBJEXT) \
+ uninorm/test-u32-nfc.$(OBJEXT)
+test_nfc_OBJECTS = $(am_test_nfc_OBJECTS)
+test_nfc_LDADD = $(LDADD)
+test_nfc_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+am_test_nfd_OBJECTS = uninorm/test-nfd.$(OBJEXT) \
+ uninorm/test-u8-nfd.$(OBJEXT) uninorm/test-u16-nfd.$(OBJEXT) \
+ uninorm/test-u32-nfd.$(OBJEXT)
+test_nfd_OBJECTS = $(am_test_nfd_OBJECTS)
+test_nfd_LDADD = $(LDADD)
+test_nfd_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+am_test_nfkc_OBJECTS = uninorm/test-nfkc.$(OBJEXT) \
+ uninorm/test-u8-nfkc.$(OBJEXT) uninorm/test-u16-nfkc.$(OBJEXT) \
+ uninorm/test-u32-nfkc.$(OBJEXT)
+test_nfkc_OBJECTS = $(am_test_nfkc_OBJECTS)
+test_nfkc_LDADD = $(LDADD)
+test_nfkc_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+am_test_nfkd_OBJECTS = uninorm/test-nfkd.$(OBJEXT) \
+ uninorm/test-u8-nfkd.$(OBJEXT) uninorm/test-u16-nfkd.$(OBJEXT) \
+ uninorm/test-u32-nfkd.$(OBJEXT)
+test_nfkd_OBJECTS = $(am_test_nfkd_OBJECTS)
+test_nfkd_LDADD = $(LDADD)
+test_nfkd_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+am_test_numeric_OBJECTS = unictype/test-numeric.$(OBJEXT)
+test_numeric_OBJECTS = $(am_test_numeric_OBJECTS)
+test_numeric_LDADD = $(LDADD)
+test_numeric_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_alphabetic_OBJECTS = unictype/test-pr_alphabetic.$(OBJEXT)
+test_pr_alphabetic_OBJECTS = $(am_test_pr_alphabetic_OBJECTS)
+test_pr_alphabetic_LDADD = $(LDADD)
+test_pr_alphabetic_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_ascii_hex_digit_OBJECTS = \
+ unictype/test-pr_ascii_hex_digit.$(OBJEXT)
+test_pr_ascii_hex_digit_OBJECTS = \
+ $(am_test_pr_ascii_hex_digit_OBJECTS)
+test_pr_ascii_hex_digit_LDADD = $(LDADD)
+test_pr_ascii_hex_digit_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_arabic_digit_OBJECTS = \
+ unictype/test-pr_bidi_arabic_digit.$(OBJEXT)
+test_pr_bidi_arabic_digit_OBJECTS = \
+ $(am_test_pr_bidi_arabic_digit_OBJECTS)
+test_pr_bidi_arabic_digit_LDADD = $(LDADD)
+test_pr_bidi_arabic_digit_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_arabic_right_to_left_OBJECTS = \
+ unictype/test-pr_bidi_arabic_right_to_left.$(OBJEXT)
+test_pr_bidi_arabic_right_to_left_OBJECTS = \
+ $(am_test_pr_bidi_arabic_right_to_left_OBJECTS)
+test_pr_bidi_arabic_right_to_left_LDADD = $(LDADD)
+test_pr_bidi_arabic_right_to_left_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_block_separator_OBJECTS = \
+ unictype/test-pr_bidi_block_separator.$(OBJEXT)
+test_pr_bidi_block_separator_OBJECTS = \
+ $(am_test_pr_bidi_block_separator_OBJECTS)
+test_pr_bidi_block_separator_LDADD = $(LDADD)
+test_pr_bidi_block_separator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_boundary_neutral_OBJECTS = \
+ unictype/test-pr_bidi_boundary_neutral.$(OBJEXT)
+test_pr_bidi_boundary_neutral_OBJECTS = \
+ $(am_test_pr_bidi_boundary_neutral_OBJECTS)
+test_pr_bidi_boundary_neutral_LDADD = $(LDADD)
+test_pr_bidi_boundary_neutral_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_common_separator_OBJECTS = \
+ unictype/test-pr_bidi_common_separator.$(OBJEXT)
+test_pr_bidi_common_separator_OBJECTS = \
+ $(am_test_pr_bidi_common_separator_OBJECTS)
+test_pr_bidi_common_separator_LDADD = $(LDADD)
+test_pr_bidi_common_separator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_control_OBJECTS = \
+ unictype/test-pr_bidi_control.$(OBJEXT)
+test_pr_bidi_control_OBJECTS = $(am_test_pr_bidi_control_OBJECTS)
+test_pr_bidi_control_LDADD = $(LDADD)
+test_pr_bidi_control_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_embedding_or_override_OBJECTS = \
+ unictype/test-pr_bidi_embedding_or_override.$(OBJEXT)
+test_pr_bidi_embedding_or_override_OBJECTS = \
+ $(am_test_pr_bidi_embedding_or_override_OBJECTS)
+test_pr_bidi_embedding_or_override_LDADD = $(LDADD)
+test_pr_bidi_embedding_or_override_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_eur_num_separator_OBJECTS = \
+ unictype/test-pr_bidi_eur_num_separator.$(OBJEXT)
+test_pr_bidi_eur_num_separator_OBJECTS = \
+ $(am_test_pr_bidi_eur_num_separator_OBJECTS)
+test_pr_bidi_eur_num_separator_LDADD = $(LDADD)
+test_pr_bidi_eur_num_separator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_eur_num_terminator_OBJECTS = \
+ unictype/test-pr_bidi_eur_num_terminator.$(OBJEXT)
+test_pr_bidi_eur_num_terminator_OBJECTS = \
+ $(am_test_pr_bidi_eur_num_terminator_OBJECTS)
+test_pr_bidi_eur_num_terminator_LDADD = $(LDADD)
+test_pr_bidi_eur_num_terminator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_european_digit_OBJECTS = \
+ unictype/test-pr_bidi_european_digit.$(OBJEXT)
+test_pr_bidi_european_digit_OBJECTS = \
+ $(am_test_pr_bidi_european_digit_OBJECTS)
+test_pr_bidi_european_digit_LDADD = $(LDADD)
+test_pr_bidi_european_digit_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_hebrew_right_to_left_OBJECTS = \
+ unictype/test-pr_bidi_hebrew_right_to_left.$(OBJEXT)
+test_pr_bidi_hebrew_right_to_left_OBJECTS = \
+ $(am_test_pr_bidi_hebrew_right_to_left_OBJECTS)
+test_pr_bidi_hebrew_right_to_left_LDADD = $(LDADD)
+test_pr_bidi_hebrew_right_to_left_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_left_to_right_OBJECTS = \
+ unictype/test-pr_bidi_left_to_right.$(OBJEXT)
+test_pr_bidi_left_to_right_OBJECTS = \
+ $(am_test_pr_bidi_left_to_right_OBJECTS)
+test_pr_bidi_left_to_right_LDADD = $(LDADD)
+test_pr_bidi_left_to_right_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_non_spacing_mark_OBJECTS = \
+ unictype/test-pr_bidi_non_spacing_mark.$(OBJEXT)
+test_pr_bidi_non_spacing_mark_OBJECTS = \
+ $(am_test_pr_bidi_non_spacing_mark_OBJECTS)
+test_pr_bidi_non_spacing_mark_LDADD = $(LDADD)
+test_pr_bidi_non_spacing_mark_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_other_neutral_OBJECTS = \
+ unictype/test-pr_bidi_other_neutral.$(OBJEXT)
+test_pr_bidi_other_neutral_OBJECTS = \
+ $(am_test_pr_bidi_other_neutral_OBJECTS)
+test_pr_bidi_other_neutral_LDADD = $(LDADD)
+test_pr_bidi_other_neutral_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_pdf_OBJECTS = unictype/test-pr_bidi_pdf.$(OBJEXT)
+test_pr_bidi_pdf_OBJECTS = $(am_test_pr_bidi_pdf_OBJECTS)
+test_pr_bidi_pdf_LDADD = $(LDADD)
+test_pr_bidi_pdf_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_segment_separator_OBJECTS = \
+ unictype/test-pr_bidi_segment_separator.$(OBJEXT)
+test_pr_bidi_segment_separator_OBJECTS = \
+ $(am_test_pr_bidi_segment_separator_OBJECTS)
+test_pr_bidi_segment_separator_LDADD = $(LDADD)
+test_pr_bidi_segment_separator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_bidi_whitespace_OBJECTS = \
+ unictype/test-pr_bidi_whitespace.$(OBJEXT)
+test_pr_bidi_whitespace_OBJECTS = \
+ $(am_test_pr_bidi_whitespace_OBJECTS)
+test_pr_bidi_whitespace_LDADD = $(LDADD)
+test_pr_bidi_whitespace_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_byname_OBJECTS = unictype/test-pr_byname.$(OBJEXT)
+test_pr_byname_OBJECTS = $(am_test_pr_byname_OBJECTS)
+test_pr_byname_LDADD = $(LDADD)
+test_pr_byname_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_combining_OBJECTS = unictype/test-pr_combining.$(OBJEXT)
+test_pr_combining_OBJECTS = $(am_test_pr_combining_OBJECTS)
+test_pr_combining_LDADD = $(LDADD)
+test_pr_combining_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_composite_OBJECTS = unictype/test-pr_composite.$(OBJEXT)
+test_pr_composite_OBJECTS = $(am_test_pr_composite_OBJECTS)
+test_pr_composite_LDADD = $(LDADD)
+test_pr_composite_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_currency_symbol_OBJECTS = \
+ unictype/test-pr_currency_symbol.$(OBJEXT)
+test_pr_currency_symbol_OBJECTS = \
+ $(am_test_pr_currency_symbol_OBJECTS)
+test_pr_currency_symbol_LDADD = $(LDADD)
+test_pr_currency_symbol_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_dash_OBJECTS = unictype/test-pr_dash.$(OBJEXT)
+test_pr_dash_OBJECTS = $(am_test_pr_dash_OBJECTS)
+test_pr_dash_LDADD = $(LDADD)
+test_pr_dash_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_decimal_digit_OBJECTS = \
+ unictype/test-pr_decimal_digit.$(OBJEXT)
+test_pr_decimal_digit_OBJECTS = $(am_test_pr_decimal_digit_OBJECTS)
+test_pr_decimal_digit_LDADD = $(LDADD)
+test_pr_decimal_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_default_ignorable_code_point_OBJECTS = \
+ unictype/test-pr_default_ignorable_code_point.$(OBJEXT)
+test_pr_default_ignorable_code_point_OBJECTS = \
+ $(am_test_pr_default_ignorable_code_point_OBJECTS)
+test_pr_default_ignorable_code_point_LDADD = $(LDADD)
+test_pr_default_ignorable_code_point_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_deprecated_OBJECTS = unictype/test-pr_deprecated.$(OBJEXT)
+test_pr_deprecated_OBJECTS = $(am_test_pr_deprecated_OBJECTS)
+test_pr_deprecated_LDADD = $(LDADD)
+test_pr_deprecated_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_diacritic_OBJECTS = unictype/test-pr_diacritic.$(OBJEXT)
+test_pr_diacritic_OBJECTS = $(am_test_pr_diacritic_OBJECTS)
+test_pr_diacritic_LDADD = $(LDADD)
+test_pr_diacritic_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_extender_OBJECTS = unictype/test-pr_extender.$(OBJEXT)
+test_pr_extender_OBJECTS = $(am_test_pr_extender_OBJECTS)
+test_pr_extender_LDADD = $(LDADD)
+test_pr_extender_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_format_control_OBJECTS = \
+ unictype/test-pr_format_control.$(OBJEXT)
+test_pr_format_control_OBJECTS = $(am_test_pr_format_control_OBJECTS)
+test_pr_format_control_LDADD = $(LDADD)
+test_pr_format_control_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_grapheme_base_OBJECTS = \
+ unictype/test-pr_grapheme_base.$(OBJEXT)
+test_pr_grapheme_base_OBJECTS = $(am_test_pr_grapheme_base_OBJECTS)
+test_pr_grapheme_base_LDADD = $(LDADD)
+test_pr_grapheme_base_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_grapheme_extend_OBJECTS = \
+ unictype/test-pr_grapheme_extend.$(OBJEXT)
+test_pr_grapheme_extend_OBJECTS = \
+ $(am_test_pr_grapheme_extend_OBJECTS)
+test_pr_grapheme_extend_LDADD = $(LDADD)
+test_pr_grapheme_extend_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_grapheme_link_OBJECTS = \
+ unictype/test-pr_grapheme_link.$(OBJEXT)
+test_pr_grapheme_link_OBJECTS = $(am_test_pr_grapheme_link_OBJECTS)
+test_pr_grapheme_link_LDADD = $(LDADD)
+test_pr_grapheme_link_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_hex_digit_OBJECTS = unictype/test-pr_hex_digit.$(OBJEXT)
+test_pr_hex_digit_OBJECTS = $(am_test_pr_hex_digit_OBJECTS)
+test_pr_hex_digit_LDADD = $(LDADD)
+test_pr_hex_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_hyphen_OBJECTS = unictype/test-pr_hyphen.$(OBJEXT)
+test_pr_hyphen_OBJECTS = $(am_test_pr_hyphen_OBJECTS)
+test_pr_hyphen_LDADD = $(LDADD)
+test_pr_hyphen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_id_continue_OBJECTS = \
+ unictype/test-pr_id_continue.$(OBJEXT)
+test_pr_id_continue_OBJECTS = $(am_test_pr_id_continue_OBJECTS)
+test_pr_id_continue_LDADD = $(LDADD)
+test_pr_id_continue_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_id_start_OBJECTS = unictype/test-pr_id_start.$(OBJEXT)
+test_pr_id_start_OBJECTS = $(am_test_pr_id_start_OBJECTS)
+test_pr_id_start_LDADD = $(LDADD)
+test_pr_id_start_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_ideographic_OBJECTS = \
+ unictype/test-pr_ideographic.$(OBJEXT)
+test_pr_ideographic_OBJECTS = $(am_test_pr_ideographic_OBJECTS)
+test_pr_ideographic_LDADD = $(LDADD)
+test_pr_ideographic_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_ids_binary_operator_OBJECTS = \
+ unictype/test-pr_ids_binary_operator.$(OBJEXT)
+test_pr_ids_binary_operator_OBJECTS = \
+ $(am_test_pr_ids_binary_operator_OBJECTS)
+test_pr_ids_binary_operator_LDADD = $(LDADD)
+test_pr_ids_binary_operator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_ids_trinary_operator_OBJECTS = \
+ unictype/test-pr_ids_trinary_operator.$(OBJEXT)
+test_pr_ids_trinary_operator_OBJECTS = \
+ $(am_test_pr_ids_trinary_operator_OBJECTS)
+test_pr_ids_trinary_operator_LDADD = $(LDADD)
+test_pr_ids_trinary_operator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_ignorable_control_OBJECTS = \
+ unictype/test-pr_ignorable_control.$(OBJEXT)
+test_pr_ignorable_control_OBJECTS = \
+ $(am_test_pr_ignorable_control_OBJECTS)
+test_pr_ignorable_control_LDADD = $(LDADD)
+test_pr_ignorable_control_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_iso_control_OBJECTS = \
+ unictype/test-pr_iso_control.$(OBJEXT)
+test_pr_iso_control_OBJECTS = $(am_test_pr_iso_control_OBJECTS)
+test_pr_iso_control_LDADD = $(LDADD)
+test_pr_iso_control_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_join_control_OBJECTS = \
+ unictype/test-pr_join_control.$(OBJEXT)
+test_pr_join_control_OBJECTS = $(am_test_pr_join_control_OBJECTS)
+test_pr_join_control_LDADD = $(LDADD)
+test_pr_join_control_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_left_of_pair_OBJECTS = \
+ unictype/test-pr_left_of_pair.$(OBJEXT)
+test_pr_left_of_pair_OBJECTS = $(am_test_pr_left_of_pair_OBJECTS)
+test_pr_left_of_pair_LDADD = $(LDADD)
+test_pr_left_of_pair_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_line_separator_OBJECTS = \
+ unictype/test-pr_line_separator.$(OBJEXT)
+test_pr_line_separator_OBJECTS = $(am_test_pr_line_separator_OBJECTS)
+test_pr_line_separator_LDADD = $(LDADD)
+test_pr_line_separator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_logical_order_exception_OBJECTS = \
+ unictype/test-pr_logical_order_exception.$(OBJEXT)
+test_pr_logical_order_exception_OBJECTS = \
+ $(am_test_pr_logical_order_exception_OBJECTS)
+test_pr_logical_order_exception_LDADD = $(LDADD)
+test_pr_logical_order_exception_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_lowercase_OBJECTS = unictype/test-pr_lowercase.$(OBJEXT)
+test_pr_lowercase_OBJECTS = $(am_test_pr_lowercase_OBJECTS)
+test_pr_lowercase_LDADD = $(LDADD)
+test_pr_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_math_OBJECTS = unictype/test-pr_math.$(OBJEXT)
+test_pr_math_OBJECTS = $(am_test_pr_math_OBJECTS)
+test_pr_math_LDADD = $(LDADD)
+test_pr_math_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_non_break_OBJECTS = unictype/test-pr_non_break.$(OBJEXT)
+test_pr_non_break_OBJECTS = $(am_test_pr_non_break_OBJECTS)
+test_pr_non_break_LDADD = $(LDADD)
+test_pr_non_break_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_not_a_character_OBJECTS = \
+ unictype/test-pr_not_a_character.$(OBJEXT)
+test_pr_not_a_character_OBJECTS = \
+ $(am_test_pr_not_a_character_OBJECTS)
+test_pr_not_a_character_LDADD = $(LDADD)
+test_pr_not_a_character_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_numeric_OBJECTS = unictype/test-pr_numeric.$(OBJEXT)
+test_pr_numeric_OBJECTS = $(am_test_pr_numeric_OBJECTS)
+test_pr_numeric_LDADD = $(LDADD)
+test_pr_numeric_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_alphabetic_OBJECTS = \
+ unictype/test-pr_other_alphabetic.$(OBJEXT)
+test_pr_other_alphabetic_OBJECTS = \
+ $(am_test_pr_other_alphabetic_OBJECTS)
+test_pr_other_alphabetic_LDADD = $(LDADD)
+test_pr_other_alphabetic_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_default_ignorable_code_point_OBJECTS = \
+ unictype/test-pr_other_default_ignorable_code_point.$(OBJEXT)
+test_pr_other_default_ignorable_code_point_OBJECTS = \
+ $(am_test_pr_other_default_ignorable_code_point_OBJECTS)
+test_pr_other_default_ignorable_code_point_LDADD = $(LDADD)
+test_pr_other_default_ignorable_code_point_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_grapheme_extend_OBJECTS = \
+ unictype/test-pr_other_grapheme_extend.$(OBJEXT)
+test_pr_other_grapheme_extend_OBJECTS = \
+ $(am_test_pr_other_grapheme_extend_OBJECTS)
+test_pr_other_grapheme_extend_LDADD = $(LDADD)
+test_pr_other_grapheme_extend_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_id_continue_OBJECTS = \
+ unictype/test-pr_other_id_continue.$(OBJEXT)
+test_pr_other_id_continue_OBJECTS = \
+ $(am_test_pr_other_id_continue_OBJECTS)
+test_pr_other_id_continue_LDADD = $(LDADD)
+test_pr_other_id_continue_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_id_start_OBJECTS = \
+ unictype/test-pr_other_id_start.$(OBJEXT)
+test_pr_other_id_start_OBJECTS = $(am_test_pr_other_id_start_OBJECTS)
+test_pr_other_id_start_LDADD = $(LDADD)
+test_pr_other_id_start_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_lowercase_OBJECTS = \
+ unictype/test-pr_other_lowercase.$(OBJEXT)
+test_pr_other_lowercase_OBJECTS = \
+ $(am_test_pr_other_lowercase_OBJECTS)
+test_pr_other_lowercase_LDADD = $(LDADD)
+test_pr_other_lowercase_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_math_OBJECTS = unictype/test-pr_other_math.$(OBJEXT)
+test_pr_other_math_OBJECTS = $(am_test_pr_other_math_OBJECTS)
+test_pr_other_math_LDADD = $(LDADD)
+test_pr_other_math_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_other_uppercase_OBJECTS = \
+ unictype/test-pr_other_uppercase.$(OBJEXT)
+test_pr_other_uppercase_OBJECTS = \
+ $(am_test_pr_other_uppercase_OBJECTS)
+test_pr_other_uppercase_LDADD = $(LDADD)
+test_pr_other_uppercase_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_paired_punctuation_OBJECTS = \
+ unictype/test-pr_paired_punctuation.$(OBJEXT)
+test_pr_paired_punctuation_OBJECTS = \
+ $(am_test_pr_paired_punctuation_OBJECTS)
+test_pr_paired_punctuation_LDADD = $(LDADD)
+test_pr_paired_punctuation_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_paragraph_separator_OBJECTS = \
+ unictype/test-pr_paragraph_separator.$(OBJEXT)
+test_pr_paragraph_separator_OBJECTS = \
+ $(am_test_pr_paragraph_separator_OBJECTS)
+test_pr_paragraph_separator_LDADD = $(LDADD)
+test_pr_paragraph_separator_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_pattern_syntax_OBJECTS = \
+ unictype/test-pr_pattern_syntax.$(OBJEXT)
+test_pr_pattern_syntax_OBJECTS = $(am_test_pr_pattern_syntax_OBJECTS)
+test_pr_pattern_syntax_LDADD = $(LDADD)
+test_pr_pattern_syntax_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_pattern_white_space_OBJECTS = \
+ unictype/test-pr_pattern_white_space.$(OBJEXT)
+test_pr_pattern_white_space_OBJECTS = \
+ $(am_test_pr_pattern_white_space_OBJECTS)
+test_pr_pattern_white_space_LDADD = $(LDADD)
+test_pr_pattern_white_space_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_private_use_OBJECTS = \
+ unictype/test-pr_private_use.$(OBJEXT)
+test_pr_private_use_OBJECTS = $(am_test_pr_private_use_OBJECTS)
+test_pr_private_use_LDADD = $(LDADD)
+test_pr_private_use_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_punctuation_OBJECTS = \
+ unictype/test-pr_punctuation.$(OBJEXT)
+test_pr_punctuation_OBJECTS = $(am_test_pr_punctuation_OBJECTS)
+test_pr_punctuation_LDADD = $(LDADD)
+test_pr_punctuation_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_quotation_mark_OBJECTS = \
+ unictype/test-pr_quotation_mark.$(OBJEXT)
+test_pr_quotation_mark_OBJECTS = $(am_test_pr_quotation_mark_OBJECTS)
+test_pr_quotation_mark_LDADD = $(LDADD)
+test_pr_quotation_mark_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_radical_OBJECTS = unictype/test-pr_radical.$(OBJEXT)
+test_pr_radical_OBJECTS = $(am_test_pr_radical_OBJECTS)
+test_pr_radical_LDADD = $(LDADD)
+test_pr_radical_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_sentence_terminal_OBJECTS = \
+ unictype/test-pr_sentence_terminal.$(OBJEXT)
+test_pr_sentence_terminal_OBJECTS = \
+ $(am_test_pr_sentence_terminal_OBJECTS)
+test_pr_sentence_terminal_LDADD = $(LDADD)
+test_pr_sentence_terminal_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_soft_dotted_OBJECTS = \
+ unictype/test-pr_soft_dotted.$(OBJEXT)
+test_pr_soft_dotted_OBJECTS = $(am_test_pr_soft_dotted_OBJECTS)
+test_pr_soft_dotted_LDADD = $(LDADD)
+test_pr_soft_dotted_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_space_OBJECTS = unictype/test-pr_space.$(OBJEXT)
+test_pr_space_OBJECTS = $(am_test_pr_space_OBJECTS)
+test_pr_space_LDADD = $(LDADD)
+test_pr_space_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_terminal_punctuation_OBJECTS = \
+ unictype/test-pr_terminal_punctuation.$(OBJEXT)
+test_pr_terminal_punctuation_OBJECTS = \
+ $(am_test_pr_terminal_punctuation_OBJECTS)
+test_pr_terminal_punctuation_LDADD = $(LDADD)
+test_pr_terminal_punctuation_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_test_OBJECTS = unictype/test-pr_test.$(OBJEXT)
+test_pr_test_OBJECTS = $(am_test_pr_test_OBJECTS)
+test_pr_test_LDADD = $(LDADD)
+test_pr_test_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_titlecase_OBJECTS = unictype/test-pr_titlecase.$(OBJEXT)
+test_pr_titlecase_OBJECTS = $(am_test_pr_titlecase_OBJECTS)
+test_pr_titlecase_LDADD = $(LDADD)
+test_pr_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_unassigned_code_value_OBJECTS = \
+ unictype/test-pr_unassigned_code_value.$(OBJEXT)
+test_pr_unassigned_code_value_OBJECTS = \
+ $(am_test_pr_unassigned_code_value_OBJECTS)
+test_pr_unassigned_code_value_LDADD = $(LDADD)
+test_pr_unassigned_code_value_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_unified_ideograph_OBJECTS = \
+ unictype/test-pr_unified_ideograph.$(OBJEXT)
+test_pr_unified_ideograph_OBJECTS = \
+ $(am_test_pr_unified_ideograph_OBJECTS)
+test_pr_unified_ideograph_LDADD = $(LDADD)
+test_pr_unified_ideograph_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_uppercase_OBJECTS = unictype/test-pr_uppercase.$(OBJEXT)
+test_pr_uppercase_OBJECTS = $(am_test_pr_uppercase_OBJECTS)
+test_pr_uppercase_LDADD = $(LDADD)
+test_pr_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_variation_selector_OBJECTS = \
+ unictype/test-pr_variation_selector.$(OBJEXT)
+test_pr_variation_selector_OBJECTS = \
+ $(am_test_pr_variation_selector_OBJECTS)
+test_pr_variation_selector_LDADD = $(LDADD)
+test_pr_variation_selector_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_white_space_OBJECTS = \
+ unictype/test-pr_white_space.$(OBJEXT)
+test_pr_white_space_OBJECTS = $(am_test_pr_white_space_OBJECTS)
+test_pr_white_space_LDADD = $(LDADD)
+test_pr_white_space_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_xid_continue_OBJECTS = \
+ unictype/test-pr_xid_continue.$(OBJEXT)
+test_pr_xid_continue_OBJECTS = $(am_test_pr_xid_continue_OBJECTS)
+test_pr_xid_continue_LDADD = $(LDADD)
+test_pr_xid_continue_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_xid_start_OBJECTS = unictype/test-pr_xid_start.$(OBJEXT)
+test_pr_xid_start_OBJECTS = $(am_test_pr_xid_start_OBJECTS)
+test_pr_xid_start_LDADD = $(LDADD)
+test_pr_xid_start_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_pr_zero_width_OBJECTS = unictype/test-pr_zero_width.$(OBJEXT)
+test_pr_zero_width_OBJECTS = $(am_test_pr_zero_width_OBJECTS)
+test_pr_zero_width_LDADD = $(LDADD)
+test_pr_zero_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_printf_frexp_SOURCES = test-printf-frexp.c
+test_printf_frexp_OBJECTS = test-printf-frexp.$(OBJEXT)
+test_printf_frexp_LDADD = $(LDADD)
+test_printf_frexp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_printf_frexpl_SOURCES = test-printf-frexpl.c
+test_printf_frexpl_OBJECTS = test-printf-frexpl.$(OBJEXT)
+test_printf_frexpl_LDADD = $(LDADD)
+test_printf_frexpl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_scripts_OBJECTS = unictype/test-scripts.$(OBJEXT)
+test_scripts_OBJECTS = $(am_test_scripts_OBJECTS)
+test_scripts_LDADD = $(LDADD)
+test_scripts_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_signbit_SOURCES = test-signbit.c
+test_signbit_OBJECTS = test-signbit.$(OBJEXT)
+test_signbit_LDADD = $(LDADD)
+test_signbit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_stdbool_SOURCES = test-stdbool.c
+test_stdbool_OBJECTS = test-stdbool.$(OBJEXT)
+test_stdbool_LDADD = $(LDADD)
+test_stdbool_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_stdint_SOURCES = test-stdint.c
+test_stdint_OBJECTS = test-stdint.$(OBJEXT)
+test_stdint_LDADD = $(LDADD)
+test_stdint_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_stdlib_SOURCES = test-stdlib.c
+test_stdlib_OBJECTS = test-stdlib.$(OBJEXT)
+test_stdlib_LDADD = $(LDADD)
+test_stdlib_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_strerror_SOURCES = test-strerror.c
+test_strerror_OBJECTS = test-strerror.$(OBJEXT)
+test_strerror_LDADD = $(LDADD)
+test_strerror_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_striconveh_SOURCES = test-striconveh.c
+test_striconveh_OBJECTS = test-striconveh.$(OBJEXT)
+test_striconveh_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_striconveha_SOURCES = test-striconveha.c
+test_striconveha_OBJECTS = test-striconveha.$(OBJEXT)
+test_striconveha_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_string_SOURCES = test-string.c
+test_string_OBJECTS = test-string.$(OBJEXT)
+test_string_LDADD = $(LDADD)
+test_string_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_sy_c_ident_OBJECTS = unictype/test-sy_c_ident.$(OBJEXT)
+test_sy_c_ident_OBJECTS = $(am_test_sy_c_ident_OBJECTS)
+test_sy_c_ident_LDADD = $(LDADD)
+test_sy_c_ident_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_sy_c_whitespace_OBJECTS = \
+ unictype/test-sy_c_whitespace.$(OBJEXT)
+test_sy_c_whitespace_OBJECTS = $(am_test_sy_c_whitespace_OBJECTS)
+test_sy_c_whitespace_LDADD = $(LDADD)
+test_sy_c_whitespace_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_sy_java_ident_OBJECTS = unictype/test-sy_java_ident.$(OBJEXT)
+test_sy_java_ident_OBJECTS = $(am_test_sy_java_ident_OBJECTS)
+test_sy_java_ident_LDADD = $(LDADD)
+test_sy_java_ident_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_sy_java_whitespace_OBJECTS = \
+ unictype/test-sy_java_whitespace.$(OBJEXT)
+test_sy_java_whitespace_OBJECTS = \
+ $(am_test_sy_java_whitespace_OBJECTS)
+test_sy_java_whitespace_LDADD = $(LDADD)
+test_sy_java_whitespace_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_asnprintf1_OBJECTS = \
+ unistdio/test-u16-asnprintf1.$(OBJEXT)
+test_u16_asnprintf1_OBJECTS = $(am_test_u16_asnprintf1_OBJECTS)
+test_u16_asnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_casecmp_OBJECTS = unicase/test-u16-casecmp.$(OBJEXT)
+test_u16_casecmp_OBJECTS = $(am_test_u16_casecmp_OBJECTS)
+test_u16_casecmp_LDADD = $(LDADD)
+test_u16_casecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_casecoll_OBJECTS = unicase/test-u16-casecoll.$(OBJEXT)
+test_u16_casecoll_OBJECTS = $(am_test_u16_casecoll_OBJECTS)
+test_u16_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_casefold_OBJECTS = unicase/test-u16-casefold.$(OBJEXT)
+test_u16_casefold_OBJECTS = $(am_test_u16_casefold_OBJECTS)
+test_u16_casefold_LDADD = $(LDADD)
+test_u16_casefold_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_conv_from_enc_OBJECTS = \
+ uniconv/test-u16-conv-from-enc.$(OBJEXT)
+test_u16_conv_from_enc_OBJECTS = $(am_test_u16_conv_from_enc_OBJECTS)
+test_u16_conv_from_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_conv_to_enc_OBJECTS = \
+ uniconv/test-u16-conv-to-enc.$(OBJEXT)
+test_u16_conv_to_enc_OBJECTS = $(am_test_u16_conv_to_enc_OBJECTS)
+test_u16_conv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_is_cased_OBJECTS = unicase/test-u16-is-cased.$(OBJEXT)
+test_u16_is_cased_OBJECTS = $(am_test_u16_is_cased_OBJECTS)
+test_u16_is_cased_LDADD = $(LDADD)
+test_u16_is_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_is_casefolded_OBJECTS = \
+ unicase/test-u16-is-casefolded.$(OBJEXT)
+test_u16_is_casefolded_OBJECTS = $(am_test_u16_is_casefolded_OBJECTS)
+test_u16_is_casefolded_LDADD = $(LDADD)
+test_u16_is_casefolded_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_is_lowercase_OBJECTS = \
+ unicase/test-u16-is-lowercase.$(OBJEXT)
+test_u16_is_lowercase_OBJECTS = $(am_test_u16_is_lowercase_OBJECTS)
+test_u16_is_lowercase_LDADD = $(LDADD)
+test_u16_is_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_is_titlecase_OBJECTS = \
+ unicase/test-u16-is-titlecase.$(OBJEXT)
+test_u16_is_titlecase_OBJECTS = $(am_test_u16_is_titlecase_OBJECTS)
+test_u16_is_titlecase_LDADD = $(LDADD)
+test_u16_is_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_is_uppercase_OBJECTS = \
+ unicase/test-u16-is-uppercase.$(OBJEXT)
+test_u16_is_uppercase_OBJECTS = $(am_test_u16_is_uppercase_OBJECTS)
+test_u16_is_uppercase_LDADD = $(LDADD)
+test_u16_is_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_normcmp_OBJECTS = uninorm/test-u16-normcmp.$(OBJEXT)
+test_u16_normcmp_OBJECTS = $(am_test_u16_normcmp_OBJECTS)
+test_u16_normcmp_LDADD = $(LDADD)
+test_u16_normcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_normcoll_OBJECTS = uninorm/test-u16-normcoll.$(OBJEXT)
+test_u16_normcoll_OBJECTS = $(am_test_u16_normcoll_OBJECTS)
+test_u16_normcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_possible_linebreaks_OBJECTS = \
+ unilbrk/test-u16-possible-linebreaks.$(OBJEXT)
+test_u16_possible_linebreaks_OBJECTS = \
+ $(am_test_u16_possible_linebreaks_OBJECTS)
+test_u16_possible_linebreaks_LDADD = $(LDADD)
+test_u16_possible_linebreaks_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_strconv_from_enc_OBJECTS = \
+ uniconv/test-u16-strconv-from-enc.$(OBJEXT)
+test_u16_strconv_from_enc_OBJECTS = \
+ $(am_test_u16_strconv_from_enc_OBJECTS)
+test_u16_strconv_from_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_strconv_to_enc_OBJECTS = \
+ uniconv/test-u16-strconv-to-enc.$(OBJEXT)
+test_u16_strconv_to_enc_OBJECTS = \
+ $(am_test_u16_strconv_to_enc_OBJECTS)
+test_u16_strconv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_strwidth_OBJECTS = uniwidth/test-u16-strwidth.$(OBJEXT)
+test_u16_strwidth_OBJECTS = $(am_test_u16_strwidth_OBJECTS)
+test_u16_strwidth_LDADD = $(LDADD)
+test_u16_strwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_tolower_OBJECTS = unicase/test-u16-tolower.$(OBJEXT)
+test_u16_tolower_OBJECTS = $(am_test_u16_tolower_OBJECTS)
+test_u16_tolower_LDADD = $(LDADD)
+test_u16_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_totitle_OBJECTS = unicase/test-u16-totitle.$(OBJEXT)
+test_u16_totitle_OBJECTS = $(am_test_u16_totitle_OBJECTS)
+test_u16_totitle_LDADD = $(LDADD)
+test_u16_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_toupper_OBJECTS = unicase/test-u16-toupper.$(OBJEXT)
+test_u16_toupper_OBJECTS = $(am_test_u16_toupper_OBJECTS)
+test_u16_toupper_LDADD = $(LDADD)
+test_u16_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_vasnprintf1_OBJECTS = \
+ unistdio/test-u16-vasnprintf1.$(OBJEXT)
+test_u16_vasnprintf1_OBJECTS = $(am_test_u16_vasnprintf1_OBJECTS)
+test_u16_vasnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_vasnprintf2_OBJECTS = \
+ unistdio/test-u16-vasnprintf2.$(OBJEXT)
+test_u16_vasnprintf2_OBJECTS = $(am_test_u16_vasnprintf2_OBJECTS)
+test_u16_vasnprintf2_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_vasnprintf3_OBJECTS = \
+ unistdio/test-u16-vasnprintf3.$(OBJEXT)
+test_u16_vasnprintf3_OBJECTS = $(am_test_u16_vasnprintf3_OBJECTS)
+test_u16_vasnprintf3_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_vasprintf1_OBJECTS = \
+ unistdio/test-u16-vasprintf1.$(OBJEXT)
+test_u16_vasprintf1_OBJECTS = $(am_test_u16_vasprintf1_OBJECTS)
+test_u16_vasprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_vsnprintf1_OBJECTS = \
+ unistdio/test-u16-vsnprintf1.$(OBJEXT)
+test_u16_vsnprintf1_OBJECTS = $(am_test_u16_vsnprintf1_OBJECTS)
+test_u16_vsnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_vsprintf1_OBJECTS = unistdio/test-u16-vsprintf1.$(OBJEXT)
+test_u16_vsprintf1_OBJECTS = $(am_test_u16_vsprintf1_OBJECTS)
+test_u16_vsprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_width_OBJECTS = uniwidth/test-u16-width.$(OBJEXT)
+test_u16_width_OBJECTS = $(am_test_u16_width_OBJECTS)
+test_u16_width_LDADD = $(LDADD)
+test_u16_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_width_linebreaks_OBJECTS = \
+ unilbrk/test-u16-width-linebreaks.$(OBJEXT)
+test_u16_width_linebreaks_OBJECTS = \
+ $(am_test_u16_width_linebreaks_OBJECTS)
+test_u16_width_linebreaks_LDADD = $(LDADD)
+test_u16_width_linebreaks_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u16_wordbreaks_OBJECTS = \
+ uniwbrk/test-u16-wordbreaks.$(OBJEXT)
+test_u16_wordbreaks_OBJECTS = $(am_test_u16_wordbreaks_OBJECTS)
+test_u16_wordbreaks_LDADD = $(LDADD)
+test_u16_wordbreaks_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_asnprintf1_OBJECTS = \
+ unistdio/test-u32-asnprintf1.$(OBJEXT)
+test_u32_asnprintf1_OBJECTS = $(am_test_u32_asnprintf1_OBJECTS)
+test_u32_asnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_casecmp_OBJECTS = unicase/test-u32-casecmp.$(OBJEXT)
+test_u32_casecmp_OBJECTS = $(am_test_u32_casecmp_OBJECTS)
+test_u32_casecmp_LDADD = $(LDADD)
+test_u32_casecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_casecoll_OBJECTS = unicase/test-u32-casecoll.$(OBJEXT)
+test_u32_casecoll_OBJECTS = $(am_test_u32_casecoll_OBJECTS)
+test_u32_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_casefold_OBJECTS = unicase/test-u32-casefold.$(OBJEXT)
+test_u32_casefold_OBJECTS = $(am_test_u32_casefold_OBJECTS)
+test_u32_casefold_LDADD = $(LDADD)
+test_u32_casefold_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_conv_from_enc_OBJECTS = \
+ uniconv/test-u32-conv-from-enc.$(OBJEXT)
+test_u32_conv_from_enc_OBJECTS = $(am_test_u32_conv_from_enc_OBJECTS)
+test_u32_conv_from_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_conv_to_enc_OBJECTS = \
+ uniconv/test-u32-conv-to-enc.$(OBJEXT)
+test_u32_conv_to_enc_OBJECTS = $(am_test_u32_conv_to_enc_OBJECTS)
+test_u32_conv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_is_cased_OBJECTS = unicase/test-u32-is-cased.$(OBJEXT)
+test_u32_is_cased_OBJECTS = $(am_test_u32_is_cased_OBJECTS)
+test_u32_is_cased_LDADD = $(LDADD)
+test_u32_is_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_is_casefolded_OBJECTS = \
+ unicase/test-u32-is-casefolded.$(OBJEXT)
+test_u32_is_casefolded_OBJECTS = $(am_test_u32_is_casefolded_OBJECTS)
+test_u32_is_casefolded_LDADD = $(LDADD)
+test_u32_is_casefolded_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_is_lowercase_OBJECTS = \
+ unicase/test-u32-is-lowercase.$(OBJEXT)
+test_u32_is_lowercase_OBJECTS = $(am_test_u32_is_lowercase_OBJECTS)
+test_u32_is_lowercase_LDADD = $(LDADD)
+test_u32_is_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_is_titlecase_OBJECTS = \
+ unicase/test-u32-is-titlecase.$(OBJEXT)
+test_u32_is_titlecase_OBJECTS = $(am_test_u32_is_titlecase_OBJECTS)
+test_u32_is_titlecase_LDADD = $(LDADD)
+test_u32_is_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_is_uppercase_OBJECTS = \
+ unicase/test-u32-is-uppercase.$(OBJEXT)
+test_u32_is_uppercase_OBJECTS = $(am_test_u32_is_uppercase_OBJECTS)
+test_u32_is_uppercase_LDADD = $(LDADD)
+test_u32_is_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_nfc_big_OBJECTS = uninorm/test-u32-nfc-big.$(OBJEXT) \
+ uninorm/test-u32-normalize-big.$(OBJEXT)
+test_u32_nfc_big_OBJECTS = $(am_test_u32_nfc_big_OBJECTS)
+test_u32_nfc_big_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_nfd_big_OBJECTS = uninorm/test-u32-nfd-big.$(OBJEXT) \
+ uninorm/test-u32-normalize-big.$(OBJEXT)
+test_u32_nfd_big_OBJECTS = $(am_test_u32_nfd_big_OBJECTS)
+test_u32_nfd_big_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_nfkc_big_OBJECTS = uninorm/test-u32-nfkc-big.$(OBJEXT) \
+ uninorm/test-u32-normalize-big.$(OBJEXT)
+test_u32_nfkc_big_OBJECTS = $(am_test_u32_nfkc_big_OBJECTS)
+test_u32_nfkc_big_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_nfkd_big_OBJECTS = uninorm/test-u32-nfkd-big.$(OBJEXT) \
+ uninorm/test-u32-normalize-big.$(OBJEXT)
+test_u32_nfkd_big_OBJECTS = $(am_test_u32_nfkd_big_OBJECTS)
+test_u32_nfkd_big_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_normcmp_OBJECTS = uninorm/test-u32-normcmp.$(OBJEXT)
+test_u32_normcmp_OBJECTS = $(am_test_u32_normcmp_OBJECTS)
+test_u32_normcmp_LDADD = $(LDADD)
+test_u32_normcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_normcoll_OBJECTS = uninorm/test-u32-normcoll.$(OBJEXT)
+test_u32_normcoll_OBJECTS = $(am_test_u32_normcoll_OBJECTS)
+test_u32_normcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_possible_linebreaks_OBJECTS = \
+ unilbrk/test-u32-possible-linebreaks.$(OBJEXT)
+test_u32_possible_linebreaks_OBJECTS = \
+ $(am_test_u32_possible_linebreaks_OBJECTS)
+test_u32_possible_linebreaks_LDADD = $(LDADD)
+test_u32_possible_linebreaks_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_strconv_from_enc_OBJECTS = \
+ uniconv/test-u32-strconv-from-enc.$(OBJEXT)
+test_u32_strconv_from_enc_OBJECTS = \
+ $(am_test_u32_strconv_from_enc_OBJECTS)
+test_u32_strconv_from_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_strconv_to_enc_OBJECTS = \
+ uniconv/test-u32-strconv-to-enc.$(OBJEXT)
+test_u32_strconv_to_enc_OBJECTS = \
+ $(am_test_u32_strconv_to_enc_OBJECTS)
+test_u32_strconv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_strwidth_OBJECTS = uniwidth/test-u32-strwidth.$(OBJEXT)
+test_u32_strwidth_OBJECTS = $(am_test_u32_strwidth_OBJECTS)
+test_u32_strwidth_LDADD = $(LDADD)
+test_u32_strwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_tolower_OBJECTS = unicase/test-u32-tolower.$(OBJEXT)
+test_u32_tolower_OBJECTS = $(am_test_u32_tolower_OBJECTS)
+test_u32_tolower_LDADD = $(LDADD)
+test_u32_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_totitle_OBJECTS = unicase/test-u32-totitle.$(OBJEXT)
+test_u32_totitle_OBJECTS = $(am_test_u32_totitle_OBJECTS)
+test_u32_totitle_LDADD = $(LDADD)
+test_u32_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_toupper_OBJECTS = unicase/test-u32-toupper.$(OBJEXT)
+test_u32_toupper_OBJECTS = $(am_test_u32_toupper_OBJECTS)
+test_u32_toupper_LDADD = $(LDADD)
+test_u32_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_vasnprintf1_OBJECTS = \
+ unistdio/test-u32-vasnprintf1.$(OBJEXT)
+test_u32_vasnprintf1_OBJECTS = $(am_test_u32_vasnprintf1_OBJECTS)
+test_u32_vasnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_vasnprintf2_OBJECTS = \
+ unistdio/test-u32-vasnprintf2.$(OBJEXT)
+test_u32_vasnprintf2_OBJECTS = $(am_test_u32_vasnprintf2_OBJECTS)
+test_u32_vasnprintf2_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_vasnprintf3_OBJECTS = \
+ unistdio/test-u32-vasnprintf3.$(OBJEXT)
+test_u32_vasnprintf3_OBJECTS = $(am_test_u32_vasnprintf3_OBJECTS)
+test_u32_vasnprintf3_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_vasprintf1_OBJECTS = \
+ unistdio/test-u32-vasprintf1.$(OBJEXT)
+test_u32_vasprintf1_OBJECTS = $(am_test_u32_vasprintf1_OBJECTS)
+test_u32_vasprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_vsnprintf1_OBJECTS = \
+ unistdio/test-u32-vsnprintf1.$(OBJEXT)
+test_u32_vsnprintf1_OBJECTS = $(am_test_u32_vsnprintf1_OBJECTS)
+test_u32_vsnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_vsprintf1_OBJECTS = unistdio/test-u32-vsprintf1.$(OBJEXT)
+test_u32_vsprintf1_OBJECTS = $(am_test_u32_vsprintf1_OBJECTS)
+test_u32_vsprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_width_OBJECTS = uniwidth/test-u32-width.$(OBJEXT)
+test_u32_width_OBJECTS = $(am_test_u32_width_OBJECTS)
+test_u32_width_LDADD = $(LDADD)
+test_u32_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_width_linebreaks_OBJECTS = \
+ unilbrk/test-u32-width-linebreaks.$(OBJEXT)
+test_u32_width_linebreaks_OBJECTS = \
+ $(am_test_u32_width_linebreaks_OBJECTS)
+test_u32_width_linebreaks_LDADD = $(LDADD)
+test_u32_width_linebreaks_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u32_wordbreaks_OBJECTS = \
+ uniwbrk/test-u32-wordbreaks.$(OBJEXT)
+test_u32_wordbreaks_OBJECTS = $(am_test_u32_wordbreaks_OBJECTS)
+test_u32_wordbreaks_LDADD = $(LDADD)
+test_u32_wordbreaks_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_asnprintf1_OBJECTS = unistdio/test-u8-asnprintf1.$(OBJEXT)
+test_u8_asnprintf1_OBJECTS = $(am_test_u8_asnprintf1_OBJECTS)
+test_u8_asnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_casecmp_OBJECTS = unicase/test-u8-casecmp.$(OBJEXT)
+test_u8_casecmp_OBJECTS = $(am_test_u8_casecmp_OBJECTS)
+test_u8_casecmp_LDADD = $(LDADD)
+test_u8_casecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_casecoll_OBJECTS = unicase/test-u8-casecoll.$(OBJEXT)
+test_u8_casecoll_OBJECTS = $(am_test_u8_casecoll_OBJECTS)
+test_u8_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_casefold_OBJECTS = unicase/test-u8-casefold.$(OBJEXT)
+test_u8_casefold_OBJECTS = $(am_test_u8_casefold_OBJECTS)
+test_u8_casefold_LDADD = $(LDADD)
+test_u8_casefold_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_conv_from_enc_OBJECTS = \
+ uniconv/test-u8-conv-from-enc.$(OBJEXT)
+test_u8_conv_from_enc_OBJECTS = $(am_test_u8_conv_from_enc_OBJECTS)
+test_u8_conv_from_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_conv_to_enc_OBJECTS = \
+ uniconv/test-u8-conv-to-enc.$(OBJEXT)
+test_u8_conv_to_enc_OBJECTS = $(am_test_u8_conv_to_enc_OBJECTS)
+test_u8_conv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_is_cased_OBJECTS = unicase/test-u8-is-cased.$(OBJEXT)
+test_u8_is_cased_OBJECTS = $(am_test_u8_is_cased_OBJECTS)
+test_u8_is_cased_LDADD = $(LDADD)
+test_u8_is_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_is_casefolded_OBJECTS = \
+ unicase/test-u8-is-casefolded.$(OBJEXT)
+test_u8_is_casefolded_OBJECTS = $(am_test_u8_is_casefolded_OBJECTS)
+test_u8_is_casefolded_LDADD = $(LDADD)
+test_u8_is_casefolded_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_is_lowercase_OBJECTS = \
+ unicase/test-u8-is-lowercase.$(OBJEXT)
+test_u8_is_lowercase_OBJECTS = $(am_test_u8_is_lowercase_OBJECTS)
+test_u8_is_lowercase_LDADD = $(LDADD)
+test_u8_is_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_is_titlecase_OBJECTS = \
+ unicase/test-u8-is-titlecase.$(OBJEXT)
+test_u8_is_titlecase_OBJECTS = $(am_test_u8_is_titlecase_OBJECTS)
+test_u8_is_titlecase_LDADD = $(LDADD)
+test_u8_is_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_is_uppercase_OBJECTS = \
+ unicase/test-u8-is-uppercase.$(OBJEXT)
+test_u8_is_uppercase_OBJECTS = $(am_test_u8_is_uppercase_OBJECTS)
+test_u8_is_uppercase_LDADD = $(LDADD)
+test_u8_is_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_normcmp_OBJECTS = uninorm/test-u8-normcmp.$(OBJEXT)
+test_u8_normcmp_OBJECTS = $(am_test_u8_normcmp_OBJECTS)
+test_u8_normcmp_LDADD = $(LDADD)
+test_u8_normcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_normcoll_OBJECTS = uninorm/test-u8-normcoll.$(OBJEXT)
+test_u8_normcoll_OBJECTS = $(am_test_u8_normcoll_OBJECTS)
+test_u8_normcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_possible_linebreaks_OBJECTS = \
+ unilbrk/test-u8-possible-linebreaks.$(OBJEXT)
+test_u8_possible_linebreaks_OBJECTS = \
+ $(am_test_u8_possible_linebreaks_OBJECTS)
+test_u8_possible_linebreaks_LDADD = $(LDADD)
+test_u8_possible_linebreaks_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_strconv_from_enc_OBJECTS = \
+ uniconv/test-u8-strconv-from-enc.$(OBJEXT)
+test_u8_strconv_from_enc_OBJECTS = \
+ $(am_test_u8_strconv_from_enc_OBJECTS)
+test_u8_strconv_from_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_strconv_to_enc_OBJECTS = \
+ uniconv/test-u8-strconv-to-enc.$(OBJEXT)
+test_u8_strconv_to_enc_OBJECTS = $(am_test_u8_strconv_to_enc_OBJECTS)
+test_u8_strconv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_strwidth_OBJECTS = uniwidth/test-u8-strwidth.$(OBJEXT)
+test_u8_strwidth_OBJECTS = $(am_test_u8_strwidth_OBJECTS)
+test_u8_strwidth_LDADD = $(LDADD)
+test_u8_strwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_tolower_OBJECTS = unicase/test-u8-tolower.$(OBJEXT)
+test_u8_tolower_OBJECTS = $(am_test_u8_tolower_OBJECTS)
+test_u8_tolower_LDADD = $(LDADD)
+test_u8_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_totitle_OBJECTS = unicase/test-u8-totitle.$(OBJEXT)
+test_u8_totitle_OBJECTS = $(am_test_u8_totitle_OBJECTS)
+test_u8_totitle_LDADD = $(LDADD)
+test_u8_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_toupper_OBJECTS = unicase/test-u8-toupper.$(OBJEXT)
+test_u8_toupper_OBJECTS = $(am_test_u8_toupper_OBJECTS)
+test_u8_toupper_LDADD = $(LDADD)
+test_u8_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_vasnprintf1_OBJECTS = \
+ unistdio/test-u8-vasnprintf1.$(OBJEXT)
+test_u8_vasnprintf1_OBJECTS = $(am_test_u8_vasnprintf1_OBJECTS)
+test_u8_vasnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_vasnprintf2_OBJECTS = \
+ unistdio/test-u8-vasnprintf2.$(OBJEXT)
+test_u8_vasnprintf2_OBJECTS = $(am_test_u8_vasnprintf2_OBJECTS)
+test_u8_vasnprintf2_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_vasnprintf3_OBJECTS = \
+ unistdio/test-u8-vasnprintf3.$(OBJEXT)
+test_u8_vasnprintf3_OBJECTS = $(am_test_u8_vasnprintf3_OBJECTS)
+test_u8_vasnprintf3_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_vasprintf1_OBJECTS = unistdio/test-u8-vasprintf1.$(OBJEXT)
+test_u8_vasprintf1_OBJECTS = $(am_test_u8_vasprintf1_OBJECTS)
+test_u8_vasprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_vsnprintf1_OBJECTS = unistdio/test-u8-vsnprintf1.$(OBJEXT)
+test_u8_vsnprintf1_OBJECTS = $(am_test_u8_vsnprintf1_OBJECTS)
+test_u8_vsnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_vsprintf1_OBJECTS = unistdio/test-u8-vsprintf1.$(OBJEXT)
+test_u8_vsprintf1_OBJECTS = $(am_test_u8_vsprintf1_OBJECTS)
+test_u8_vsprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_width_OBJECTS = uniwidth/test-u8-width.$(OBJEXT)
+test_u8_width_OBJECTS = $(am_test_u8_width_OBJECTS)
+test_u8_width_LDADD = $(LDADD)
+test_u8_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_width_linebreaks_OBJECTS = \
+ unilbrk/test-u8-width-linebreaks.$(OBJEXT)
+test_u8_width_linebreaks_OBJECTS = \
+ $(am_test_u8_width_linebreaks_OBJECTS)
+test_u8_width_linebreaks_LDADD = $(LDADD)
+test_u8_width_linebreaks_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+am_test_u8_wordbreaks_OBJECTS = uniwbrk/test-u8-wordbreaks.$(OBJEXT)
+test_u8_wordbreaks_OBJECTS = $(am_test_u8_wordbreaks_OBJECTS)
+test_u8_wordbreaks_LDADD = $(LDADD)
+test_u8_wordbreaks_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_uc_tolower_OBJECTS = unicase/test-uc_tolower.$(OBJEXT)
+test_uc_tolower_OBJECTS = $(am_test_uc_tolower_OBJECTS)
+test_uc_tolower_LDADD = $(LDADD)
+test_uc_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_uc_totitle_OBJECTS = unicase/test-uc_totitle.$(OBJEXT)
+test_uc_totitle_OBJECTS = $(am_test_uc_totitle_OBJECTS)
+test_uc_totitle_LDADD = $(LDADD)
+test_uc_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_uc_toupper_OBJECTS = unicase/test-uc_toupper.$(OBJEXT)
+test_uc_toupper_OBJECTS = $(am_test_uc_toupper_OBJECTS)
+test_uc_toupper_LDADD = $(LDADD)
+test_uc_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_uc_width_OBJECTS = uniwidth/test-uc_width.$(OBJEXT)
+test_uc_width_OBJECTS = $(am_test_uc_width_OBJECTS)
+test_uc_width_LDADD = $(LDADD)
+test_uc_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_uc_width2_OBJECTS = uniwidth/test-uc_width2.$(OBJEXT)
+test_uc_width2_OBJECTS = $(am_test_uc_width2_OBJECTS)
+test_uc_width2_LDADD = $(LDADD)
+test_uc_width2_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+am_test_ulc_asnprintf1_OBJECTS = \
+ unistdio/test-ulc-asnprintf1.$(OBJEXT)
+test_ulc_asnprintf1_OBJECTS = $(am_test_ulc_asnprintf1_OBJECTS)
+test_ulc_asnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_casecmp_OBJECTS = unicase/test-ulc-casecmp.$(OBJEXT)
+test_ulc_casecmp_OBJECTS = $(am_test_ulc_casecmp_OBJECTS)
+test_ulc_casecmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_casecoll_OBJECTS = unicase/test-ulc-casecoll.$(OBJEXT)
+test_ulc_casecoll_OBJECTS = $(am_test_ulc_casecoll_OBJECTS)
+test_ulc_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_possible_linebreaks_OBJECTS = \
+ unilbrk/test-ulc-possible-linebreaks.$(OBJEXT)
+test_ulc_possible_linebreaks_OBJECTS = \
+ $(am_test_ulc_possible_linebreaks_OBJECTS)
+test_ulc_possible_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_vasnprintf1_OBJECTS = \
+ unistdio/test-ulc-vasnprintf1.$(OBJEXT)
+test_ulc_vasnprintf1_OBJECTS = $(am_test_ulc_vasnprintf1_OBJECTS)
+test_ulc_vasnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_vasnprintf2_OBJECTS = \
+ unistdio/test-ulc-vasnprintf2.$(OBJEXT)
+test_ulc_vasnprintf2_OBJECTS = $(am_test_ulc_vasnprintf2_OBJECTS)
+test_ulc_vasnprintf2_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_vasnprintf3_OBJECTS = \
+ unistdio/test-ulc-vasnprintf3.$(OBJEXT)
+test_ulc_vasnprintf3_OBJECTS = $(am_test_ulc_vasnprintf3_OBJECTS)
+test_ulc_vasnprintf3_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_vasprintf1_OBJECTS = \
+ unistdio/test-ulc-vasprintf1.$(OBJEXT)
+test_ulc_vasprintf1_OBJECTS = $(am_test_ulc_vasprintf1_OBJECTS)
+test_ulc_vasprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_vsnprintf1_OBJECTS = \
+ unistdio/test-ulc-vsnprintf1.$(OBJEXT)
+test_ulc_vsnprintf1_OBJECTS = $(am_test_ulc_vsnprintf1_OBJECTS)
+test_ulc_vsnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_vsprintf1_OBJECTS = unistdio/test-ulc-vsprintf1.$(OBJEXT)
+test_ulc_vsprintf1_OBJECTS = $(am_test_ulc_vsprintf1_OBJECTS)
+test_ulc_vsprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_width_linebreaks_OBJECTS = \
+ unilbrk/test-ulc-width-linebreaks.$(OBJEXT)
+test_ulc_width_linebreaks_OBJECTS = \
+ $(am_test_ulc_width_linebreaks_OBJECTS)
+test_ulc_width_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_wordbreaks_OBJECTS = \
+ uniwbrk/test-ulc-wordbreaks.$(OBJEXT)
+test_ulc_wordbreaks_OBJECTS = $(am_test_ulc_wordbreaks_OBJECTS)
+test_ulc_wordbreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_uninames_OBJECTS = uniname/test-uninames.$(OBJEXT)
+test_uninames_OBJECTS = $(am_test_uninames_OBJECTS)
+test_uninames_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_uninorm_filter_nfc_OBJECTS = \
+ uninorm/test-uninorm-filter-nfc.$(OBJEXT)
+test_uninorm_filter_nfc_OBJECTS = \
+ $(am_test_uninorm_filter_nfc_OBJECTS)
+test_uninorm_filter_nfc_LDADD = $(LDADD)
+test_uninorm_filter_nfc_DEPENDENCIES = libtests.a \
+ ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_unistd_SOURCES = test-unistd.c
+test_unistd_OBJECTS = test-unistd.$(OBJEXT)
+test_unistd_LDADD = $(LDADD)
+test_unistd_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_wchar_SOURCES = test-wchar.c
+test_wchar_OBJECTS = test-wchar.$(OBJEXT)
+test_wchar_LDADD = $(LDADD)
+test_wchar_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+ $(am__DEPENDENCIES_1)
+test_wctype_SOURCES = test-wctype.c
+test_wctype_OBJECTS = test-wctype.$(OBJEXT)
+test_wctype_LDADD = $(LDADD)
+test_wctype_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+test_wcwidth_SOURCES = test-wcwidth.c
+test_wcwidth_OBJECTS = test-wcwidth.$(OBJEXT)
+test_wcwidth_LDADD = $(LDADD)
+test_wcwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+ libtests.a $(am__DEPENDENCIES_1)
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
+ test-alloca-opt.c test-array-mergesort.c \
+ $(test_bidi_byname_SOURCES) $(test_bidi_name_SOURCES) \
+ $(test_bidi_of_SOURCES) $(test_bidi_test_SOURCES) \
+ $(test_block_list_SOURCES) $(test_block_of_SOURCES) \
+ $(test_block_test_SOURCES) test-c-ctype.c test-c-strcasecmp.c \
+ test-c-strncasecmp.c $(test_canonical_decomposition_SOURCES) \
+ $(test_cased_SOURCES) $(test_categ_C_SOURCES) \
+ $(test_categ_Cc_SOURCES) $(test_categ_Cf_SOURCES) \
+ $(test_categ_Cn_SOURCES) $(test_categ_Co_SOURCES) \
+ $(test_categ_Cs_SOURCES) $(test_categ_L_SOURCES) \
+ $(test_categ_Ll_SOURCES) $(test_categ_Lm_SOURCES) \
+ $(test_categ_Lo_SOURCES) $(test_categ_Lt_SOURCES) \
+ $(test_categ_Lu_SOURCES) $(test_categ_M_SOURCES) \
+ $(test_categ_Mc_SOURCES) $(test_categ_Me_SOURCES) \
+ $(test_categ_Mn_SOURCES) $(test_categ_N_SOURCES) \
+ $(test_categ_Nd_SOURCES) $(test_categ_Nl_SOURCES) \
+ $(test_categ_No_SOURCES) $(test_categ_P_SOURCES) \
+ $(test_categ_Pc_SOURCES) $(test_categ_Pd_SOURCES) \
+ $(test_categ_Pe_SOURCES) $(test_categ_Pf_SOURCES) \
+ $(test_categ_Pi_SOURCES) $(test_categ_Po_SOURCES) \
+ $(test_categ_Ps_SOURCES) $(test_categ_S_SOURCES) \
+ $(test_categ_Sc_SOURCES) $(test_categ_Sk_SOURCES) \
+ $(test_categ_Sm_SOURCES) $(test_categ_So_SOURCES) \
+ $(test_categ_Z_SOURCES) $(test_categ_Zl_SOURCES) \
+ $(test_categ_Zp_SOURCES) $(test_categ_Zs_SOURCES) \
+ $(test_categ_and_SOURCES) $(test_categ_and_not_SOURCES) \
+ $(test_categ_byname_SOURCES) $(test_categ_name_SOURCES) \
+ $(test_categ_none_SOURCES) $(test_categ_of_SOURCES) \
+ $(test_categ_or_SOURCES) $(test_categ_test_withtable_SOURCES) \
+ $(test_combining_SOURCES) $(test_compat_decomposition_SOURCES) \
+ $(test_composition_SOURCES) $(test_ctype_alnum_SOURCES) \
+ $(test_ctype_alpha_SOURCES) $(test_ctype_blank_SOURCES) \
+ $(test_ctype_cntrl_SOURCES) $(test_ctype_digit_SOURCES) \
+ $(test_ctype_graph_SOURCES) $(test_ctype_lower_SOURCES) \
+ $(test_ctype_print_SOURCES) $(test_ctype_punct_SOURCES) \
+ $(test_ctype_space_SOURCES) $(test_ctype_upper_SOURCES) \
+ $(test_ctype_xdigit_SOURCES) $(test_decdigit_SOURCES) \
+ $(test_decomposing_form_SOURCES) $(test_decomposition_SOURCES) \
+ $(test_digit_SOURCES) test-environ.c test-errno.c \
+ $(test_frexpl_nolibm_SOURCES) test-fseterr.c test-iconv.c \
+ $(test_ignorable_SOURCES) test-isnand-nolibm.c \
+ test-isnanf-nolibm.c test-isnanl-nolibm.c test-locale.c \
+ $(test_locale_language_SOURCES) test-localename.c \
+ test-malloca.c test-math.c test-mbrtowc.c test-mbsinit.c \
+ test-memchr.c $(test_mirror_SOURCES) $(test_nfc_SOURCES) \
+ $(test_nfd_SOURCES) $(test_nfkc_SOURCES) $(test_nfkd_SOURCES) \
+ $(test_numeric_SOURCES) $(test_pr_alphabetic_SOURCES) \
+ $(test_pr_ascii_hex_digit_SOURCES) \
+ $(test_pr_bidi_arabic_digit_SOURCES) \
+ $(test_pr_bidi_arabic_right_to_left_SOURCES) \
+ $(test_pr_bidi_block_separator_SOURCES) \
+ $(test_pr_bidi_boundary_neutral_SOURCES) \
+ $(test_pr_bidi_common_separator_SOURCES) \
+ $(test_pr_bidi_control_SOURCES) \
+ $(test_pr_bidi_embedding_or_override_SOURCES) \
+ $(test_pr_bidi_eur_num_separator_SOURCES) \
+ $(test_pr_bidi_eur_num_terminator_SOURCES) \
+ $(test_pr_bidi_european_digit_SOURCES) \
+ $(test_pr_bidi_hebrew_right_to_left_SOURCES) \
+ $(test_pr_bidi_left_to_right_SOURCES) \
+ $(test_pr_bidi_non_spacing_mark_SOURCES) \
+ $(test_pr_bidi_other_neutral_SOURCES) \
+ $(test_pr_bidi_pdf_SOURCES) \
+ $(test_pr_bidi_segment_separator_SOURCES) \
+ $(test_pr_bidi_whitespace_SOURCES) $(test_pr_byname_SOURCES) \
+ $(test_pr_combining_SOURCES) $(test_pr_composite_SOURCES) \
+ $(test_pr_currency_symbol_SOURCES) $(test_pr_dash_SOURCES) \
+ $(test_pr_decimal_digit_SOURCES) \
+ $(test_pr_default_ignorable_code_point_SOURCES) \
+ $(test_pr_deprecated_SOURCES) $(test_pr_diacritic_SOURCES) \
+ $(test_pr_extender_SOURCES) $(test_pr_format_control_SOURCES) \
+ $(test_pr_grapheme_base_SOURCES) \
+ $(test_pr_grapheme_extend_SOURCES) \
+ $(test_pr_grapheme_link_SOURCES) $(test_pr_hex_digit_SOURCES) \
+ $(test_pr_hyphen_SOURCES) $(test_pr_id_continue_SOURCES) \
+ $(test_pr_id_start_SOURCES) $(test_pr_ideographic_SOURCES) \
+ $(test_pr_ids_binary_operator_SOURCES) \
+ $(test_pr_ids_trinary_operator_SOURCES) \
+ $(test_pr_ignorable_control_SOURCES) \
+ $(test_pr_iso_control_SOURCES) $(test_pr_join_control_SOURCES) \
+ $(test_pr_left_of_pair_SOURCES) \
+ $(test_pr_line_separator_SOURCES) \
+ $(test_pr_logical_order_exception_SOURCES) \
+ $(test_pr_lowercase_SOURCES) $(test_pr_math_SOURCES) \
+ $(test_pr_non_break_SOURCES) \
+ $(test_pr_not_a_character_SOURCES) $(test_pr_numeric_SOURCES) \
+ $(test_pr_other_alphabetic_SOURCES) \
+ $(test_pr_other_default_ignorable_code_point_SOURCES) \
+ $(test_pr_other_grapheme_extend_SOURCES) \
+ $(test_pr_other_id_continue_SOURCES) \
+ $(test_pr_other_id_start_SOURCES) \
+ $(test_pr_other_lowercase_SOURCES) \
+ $(test_pr_other_math_SOURCES) \
+ $(test_pr_other_uppercase_SOURCES) \
+ $(test_pr_paired_punctuation_SOURCES) \
+ $(test_pr_paragraph_separator_SOURCES) \
+ $(test_pr_pattern_syntax_SOURCES) \
+ $(test_pr_pattern_white_space_SOURCES) \
+ $(test_pr_private_use_SOURCES) $(test_pr_punctuation_SOURCES) \
+ $(test_pr_quotation_mark_SOURCES) $(test_pr_radical_SOURCES) \
+ $(test_pr_sentence_terminal_SOURCES) \
+ $(test_pr_soft_dotted_SOURCES) $(test_pr_space_SOURCES) \
+ $(test_pr_terminal_punctuation_SOURCES) \
+ $(test_pr_test_SOURCES) $(test_pr_titlecase_SOURCES) \
+ $(test_pr_unassigned_code_value_SOURCES) \
+ $(test_pr_unified_ideograph_SOURCES) \
+ $(test_pr_uppercase_SOURCES) \
+ $(test_pr_variation_selector_SOURCES) \
+ $(test_pr_white_space_SOURCES) $(test_pr_xid_continue_SOURCES) \
+ $(test_pr_xid_start_SOURCES) $(test_pr_zero_width_SOURCES) \
+ test-printf-frexp.c test-printf-frexpl.c \
+ $(test_scripts_SOURCES) test-signbit.c test-stdbool.c \
+ test-stdint.c test-stdlib.c test-strerror.c test-striconveh.c \
+ test-striconveha.c test-string.c $(test_sy_c_ident_SOURCES) \
+ $(test_sy_c_whitespace_SOURCES) $(test_sy_java_ident_SOURCES) \
+ $(test_sy_java_whitespace_SOURCES) \
+ $(test_u16_asnprintf1_SOURCES) $(test_u16_casecmp_SOURCES) \
+ $(test_u16_casecoll_SOURCES) $(test_u16_casefold_SOURCES) \
+ $(test_u16_conv_from_enc_SOURCES) \
+ $(test_u16_conv_to_enc_SOURCES) $(test_u16_is_cased_SOURCES) \
+ $(test_u16_is_casefolded_SOURCES) \
+ $(test_u16_is_lowercase_SOURCES) \
+ $(test_u16_is_titlecase_SOURCES) \
+ $(test_u16_is_uppercase_SOURCES) $(test_u16_normcmp_SOURCES) \
+ $(test_u16_normcoll_SOURCES) \
+ $(test_u16_possible_linebreaks_SOURCES) \
+ $(test_u16_strconv_from_enc_SOURCES) \
+ $(test_u16_strconv_to_enc_SOURCES) \
+ $(test_u16_strwidth_SOURCES) $(test_u16_tolower_SOURCES) \
+ $(test_u16_totitle_SOURCES) $(test_u16_toupper_SOURCES) \
+ $(test_u16_vasnprintf1_SOURCES) \
+ $(test_u16_vasnprintf2_SOURCES) \
+ $(test_u16_vasnprintf3_SOURCES) $(test_u16_vasprintf1_SOURCES) \
+ $(test_u16_vsnprintf1_SOURCES) $(test_u16_vsprintf1_SOURCES) \
+ $(test_u16_width_SOURCES) $(test_u16_width_linebreaks_SOURCES) \
+ $(test_u16_wordbreaks_SOURCES) $(test_u32_asnprintf1_SOURCES) \
+ $(test_u32_casecmp_SOURCES) $(test_u32_casecoll_SOURCES) \
+ $(test_u32_casefold_SOURCES) $(test_u32_conv_from_enc_SOURCES) \
+ $(test_u32_conv_to_enc_SOURCES) $(test_u32_is_cased_SOURCES) \
+ $(test_u32_is_casefolded_SOURCES) \
+ $(test_u32_is_lowercase_SOURCES) \
+ $(test_u32_is_titlecase_SOURCES) \
+ $(test_u32_is_uppercase_SOURCES) $(test_u32_nfc_big_SOURCES) \
+ $(test_u32_nfd_big_SOURCES) $(test_u32_nfkc_big_SOURCES) \
+ $(test_u32_nfkd_big_SOURCES) $(test_u32_normcmp_SOURCES) \
+ $(test_u32_normcoll_SOURCES) \
+ $(test_u32_possible_linebreaks_SOURCES) \
+ $(test_u32_strconv_from_enc_SOURCES) \
+ $(test_u32_strconv_to_enc_SOURCES) \
+ $(test_u32_strwidth_SOURCES) $(test_u32_tolower_SOURCES) \
+ $(test_u32_totitle_SOURCES) $(test_u32_toupper_SOURCES) \
+ $(test_u32_vasnprintf1_SOURCES) \
+ $(test_u32_vasnprintf2_SOURCES) \
+ $(test_u32_vasnprintf3_SOURCES) $(test_u32_vasprintf1_SOURCES) \
+ $(test_u32_vsnprintf1_SOURCES) $(test_u32_vsprintf1_SOURCES) \
+ $(test_u32_width_SOURCES) $(test_u32_width_linebreaks_SOURCES) \
+ $(test_u32_wordbreaks_SOURCES) $(test_u8_asnprintf1_SOURCES) \
+ $(test_u8_casecmp_SOURCES) $(test_u8_casecoll_SOURCES) \
+ $(test_u8_casefold_SOURCES) $(test_u8_conv_from_enc_SOURCES) \
+ $(test_u8_conv_to_enc_SOURCES) $(test_u8_is_cased_SOURCES) \
+ $(test_u8_is_casefolded_SOURCES) \
+ $(test_u8_is_lowercase_SOURCES) \
+ $(test_u8_is_titlecase_SOURCES) \
+ $(test_u8_is_uppercase_SOURCES) $(test_u8_normcmp_SOURCES) \
+ $(test_u8_normcoll_SOURCES) \
+ $(test_u8_possible_linebreaks_SOURCES) \
+ $(test_u8_strconv_from_enc_SOURCES) \
+ $(test_u8_strconv_to_enc_SOURCES) $(test_u8_strwidth_SOURCES) \
+ $(test_u8_tolower_SOURCES) $(test_u8_totitle_SOURCES) \
+ $(test_u8_toupper_SOURCES) $(test_u8_vasnprintf1_SOURCES) \
+ $(test_u8_vasnprintf2_SOURCES) $(test_u8_vasnprintf3_SOURCES) \
+ $(test_u8_vasprintf1_SOURCES) $(test_u8_vsnprintf1_SOURCES) \
+ $(test_u8_vsprintf1_SOURCES) $(test_u8_width_SOURCES) \
+ $(test_u8_width_linebreaks_SOURCES) \
+ $(test_u8_wordbreaks_SOURCES) $(test_uc_tolower_SOURCES) \
+ $(test_uc_totitle_SOURCES) $(test_uc_toupper_SOURCES) \
+ $(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
+ $(test_ulc_asnprintf1_SOURCES) $(test_ulc_casecmp_SOURCES) \
+ $(test_ulc_casecoll_SOURCES) \
+ $(test_ulc_possible_linebreaks_SOURCES) \
+ $(test_ulc_vasnprintf1_SOURCES) \
+ $(test_ulc_vasnprintf2_SOURCES) \
+ $(test_ulc_vasnprintf3_SOURCES) $(test_ulc_vasprintf1_SOURCES) \
+ $(test_ulc_vsnprintf1_SOURCES) $(test_ulc_vsprintf1_SOURCES) \
+ $(test_ulc_width_linebreaks_SOURCES) \
+ $(test_ulc_wordbreaks_SOURCES) $(test_uninames_SOURCES) \
+ $(test_uninorm_filter_nfc_SOURCES) test-unistd.c test-wchar.c \
+ test-wctype.c test-wcwidth.c
+DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
+ test-alloca-opt.c test-array-mergesort.c \
+ $(test_bidi_byname_SOURCES) $(test_bidi_name_SOURCES) \
+ $(test_bidi_of_SOURCES) $(test_bidi_test_SOURCES) \
+ $(test_block_list_SOURCES) $(test_block_of_SOURCES) \
+ $(test_block_test_SOURCES) test-c-ctype.c test-c-strcasecmp.c \
+ test-c-strncasecmp.c $(test_canonical_decomposition_SOURCES) \
+ $(test_cased_SOURCES) $(test_categ_C_SOURCES) \
+ $(test_categ_Cc_SOURCES) $(test_categ_Cf_SOURCES) \
+ $(test_categ_Cn_SOURCES) $(test_categ_Co_SOURCES) \
+ $(test_categ_Cs_SOURCES) $(test_categ_L_SOURCES) \
+ $(test_categ_Ll_SOURCES) $(test_categ_Lm_SOURCES) \
+ $(test_categ_Lo_SOURCES) $(test_categ_Lt_SOURCES) \
+ $(test_categ_Lu_SOURCES) $(test_categ_M_SOURCES) \
+ $(test_categ_Mc_SOURCES) $(test_categ_Me_SOURCES) \
+ $(test_categ_Mn_SOURCES) $(test_categ_N_SOURCES) \
+ $(test_categ_Nd_SOURCES) $(test_categ_Nl_SOURCES) \
+ $(test_categ_No_SOURCES) $(test_categ_P_SOURCES) \
+ $(test_categ_Pc_SOURCES) $(test_categ_Pd_SOURCES) \
+ $(test_categ_Pe_SOURCES) $(test_categ_Pf_SOURCES) \
+ $(test_categ_Pi_SOURCES) $(test_categ_Po_SOURCES) \
+ $(test_categ_Ps_SOURCES) $(test_categ_S_SOURCES) \
+ $(test_categ_Sc_SOURCES) $(test_categ_Sk_SOURCES) \
+ $(test_categ_Sm_SOURCES) $(test_categ_So_SOURCES) \
+ $(test_categ_Z_SOURCES) $(test_categ_Zl_SOURCES) \
+ $(test_categ_Zp_SOURCES) $(test_categ_Zs_SOURCES) \
+ $(test_categ_and_SOURCES) $(test_categ_and_not_SOURCES) \
+ $(test_categ_byname_SOURCES) $(test_categ_name_SOURCES) \
+ $(am__test_categ_none_SOURCES_DIST) $(test_categ_of_SOURCES) \
+ $(test_categ_or_SOURCES) $(test_categ_test_withtable_SOURCES) \
+ $(test_combining_SOURCES) $(test_compat_decomposition_SOURCES) \
+ $(test_composition_SOURCES) $(test_ctype_alnum_SOURCES) \
+ $(test_ctype_alpha_SOURCES) $(test_ctype_blank_SOURCES) \
+ $(test_ctype_cntrl_SOURCES) $(test_ctype_digit_SOURCES) \
+ $(test_ctype_graph_SOURCES) $(test_ctype_lower_SOURCES) \
+ $(test_ctype_print_SOURCES) $(test_ctype_punct_SOURCES) \
+ $(test_ctype_space_SOURCES) $(test_ctype_upper_SOURCES) \
+ $(test_ctype_xdigit_SOURCES) $(test_decdigit_SOURCES) \
+ $(test_decomposing_form_SOURCES) $(test_decomposition_SOURCES) \
+ $(test_digit_SOURCES) test-environ.c test-errno.c \
+ $(test_frexpl_nolibm_SOURCES) test-fseterr.c test-iconv.c \
+ $(test_ignorable_SOURCES) test-isnand-nolibm.c \
+ test-isnanf-nolibm.c test-isnanl-nolibm.c test-locale.c \
+ $(test_locale_language_SOURCES) test-localename.c \
+ test-malloca.c test-math.c test-mbrtowc.c test-mbsinit.c \
+ test-memchr.c $(test_mirror_SOURCES) $(test_nfc_SOURCES) \
+ $(test_nfd_SOURCES) $(test_nfkc_SOURCES) $(test_nfkd_SOURCES) \
+ $(test_numeric_SOURCES) $(test_pr_alphabetic_SOURCES) \
+ $(test_pr_ascii_hex_digit_SOURCES) \
+ $(test_pr_bidi_arabic_digit_SOURCES) \
+ $(test_pr_bidi_arabic_right_to_left_SOURCES) \
+ $(test_pr_bidi_block_separator_SOURCES) \
+ $(test_pr_bidi_boundary_neutral_SOURCES) \
+ $(test_pr_bidi_common_separator_SOURCES) \
+ $(test_pr_bidi_control_SOURCES) \
+ $(test_pr_bidi_embedding_or_override_SOURCES) \
+ $(test_pr_bidi_eur_num_separator_SOURCES) \
+ $(test_pr_bidi_eur_num_terminator_SOURCES) \
+ $(test_pr_bidi_european_digit_SOURCES) \
+ $(test_pr_bidi_hebrew_right_to_left_SOURCES) \
+ $(test_pr_bidi_left_to_right_SOURCES) \
+ $(test_pr_bidi_non_spacing_mark_SOURCES) \
+ $(test_pr_bidi_other_neutral_SOURCES) \
+ $(test_pr_bidi_pdf_SOURCES) \
+ $(test_pr_bidi_segment_separator_SOURCES) \
+ $(test_pr_bidi_whitespace_SOURCES) $(test_pr_byname_SOURCES) \
+ $(test_pr_combining_SOURCES) $(test_pr_composite_SOURCES) \
+ $(test_pr_currency_symbol_SOURCES) $(test_pr_dash_SOURCES) \
+ $(test_pr_decimal_digit_SOURCES) \
+ $(test_pr_default_ignorable_code_point_SOURCES) \
+ $(test_pr_deprecated_SOURCES) $(test_pr_diacritic_SOURCES) \
+ $(test_pr_extender_SOURCES) $(test_pr_format_control_SOURCES) \
+ $(test_pr_grapheme_base_SOURCES) \
+ $(test_pr_grapheme_extend_SOURCES) \
+ $(test_pr_grapheme_link_SOURCES) $(test_pr_hex_digit_SOURCES) \
+ $(test_pr_hyphen_SOURCES) $(test_pr_id_continue_SOURCES) \
+ $(test_pr_id_start_SOURCES) $(test_pr_ideographic_SOURCES) \
+ $(test_pr_ids_binary_operator_SOURCES) \
+ $(test_pr_ids_trinary_operator_SOURCES) \
+ $(test_pr_ignorable_control_SOURCES) \
+ $(test_pr_iso_control_SOURCES) $(test_pr_join_control_SOURCES) \
+ $(test_pr_left_of_pair_SOURCES) \
+ $(test_pr_line_separator_SOURCES) \
+ $(test_pr_logical_order_exception_SOURCES) \
+ $(test_pr_lowercase_SOURCES) $(test_pr_math_SOURCES) \
+ $(test_pr_non_break_SOURCES) \
+ $(test_pr_not_a_character_SOURCES) $(test_pr_numeric_SOURCES) \
+ $(test_pr_other_alphabetic_SOURCES) \
+ $(test_pr_other_default_ignorable_code_point_SOURCES) \
+ $(test_pr_other_grapheme_extend_SOURCES) \
+ $(test_pr_other_id_continue_SOURCES) \
+ $(test_pr_other_id_start_SOURCES) \
+ $(test_pr_other_lowercase_SOURCES) \
+ $(test_pr_other_math_SOURCES) \
+ $(test_pr_other_uppercase_SOURCES) \
+ $(test_pr_paired_punctuation_SOURCES) \
+ $(test_pr_paragraph_separator_SOURCES) \
+ $(test_pr_pattern_syntax_SOURCES) \
+ $(test_pr_pattern_white_space_SOURCES) \
+ $(test_pr_private_use_SOURCES) $(test_pr_punctuation_SOURCES) \
+ $(test_pr_quotation_mark_SOURCES) $(test_pr_radical_SOURCES) \
+ $(test_pr_sentence_terminal_SOURCES) \
+ $(test_pr_soft_dotted_SOURCES) $(test_pr_space_SOURCES) \
+ $(test_pr_terminal_punctuation_SOURCES) \
+ $(test_pr_test_SOURCES) $(test_pr_titlecase_SOURCES) \
+ $(test_pr_unassigned_code_value_SOURCES) \
+ $(test_pr_unified_ideograph_SOURCES) \
+ $(test_pr_uppercase_SOURCES) \
+ $(test_pr_variation_selector_SOURCES) \
+ $(test_pr_white_space_SOURCES) $(test_pr_xid_continue_SOURCES) \
+ $(test_pr_xid_start_SOURCES) $(test_pr_zero_width_SOURCES) \
+ test-printf-frexp.c test-printf-frexpl.c \
+ $(test_scripts_SOURCES) test-signbit.c test-stdbool.c \
+ test-stdint.c test-stdlib.c test-strerror.c test-striconveh.c \
+ test-striconveha.c test-string.c $(test_sy_c_ident_SOURCES) \
+ $(test_sy_c_whitespace_SOURCES) $(test_sy_java_ident_SOURCES) \
+ $(test_sy_java_whitespace_SOURCES) \
+ $(test_u16_asnprintf1_SOURCES) $(test_u16_casecmp_SOURCES) \
+ $(test_u16_casecoll_SOURCES) $(test_u16_casefold_SOURCES) \
+ $(test_u16_conv_from_enc_SOURCES) \
+ $(test_u16_conv_to_enc_SOURCES) $(test_u16_is_cased_SOURCES) \
+ $(test_u16_is_casefolded_SOURCES) \
+ $(test_u16_is_lowercase_SOURCES) \
+ $(test_u16_is_titlecase_SOURCES) \
+ $(test_u16_is_uppercase_SOURCES) $(test_u16_normcmp_SOURCES) \
+ $(test_u16_normcoll_SOURCES) \
+ $(test_u16_possible_linebreaks_SOURCES) \
+ $(test_u16_strconv_from_enc_SOURCES) \
+ $(test_u16_strconv_to_enc_SOURCES) \
+ $(test_u16_strwidth_SOURCES) $(test_u16_tolower_SOURCES) \
+ $(test_u16_totitle_SOURCES) $(test_u16_toupper_SOURCES) \
+ $(test_u16_vasnprintf1_SOURCES) \
+ $(test_u16_vasnprintf2_SOURCES) \
+ $(test_u16_vasnprintf3_SOURCES) $(test_u16_vasprintf1_SOURCES) \
+ $(test_u16_vsnprintf1_SOURCES) $(test_u16_vsprintf1_SOURCES) \
+ $(test_u16_width_SOURCES) $(test_u16_width_linebreaks_SOURCES) \
+ $(test_u16_wordbreaks_SOURCES) $(test_u32_asnprintf1_SOURCES) \
+ $(test_u32_casecmp_SOURCES) $(test_u32_casecoll_SOURCES) \
+ $(test_u32_casefold_SOURCES) $(test_u32_conv_from_enc_SOURCES) \
+ $(test_u32_conv_to_enc_SOURCES) $(test_u32_is_cased_SOURCES) \
+ $(test_u32_is_casefolded_SOURCES) \
+ $(test_u32_is_lowercase_SOURCES) \
+ $(test_u32_is_titlecase_SOURCES) \
+ $(test_u32_is_uppercase_SOURCES) $(test_u32_nfc_big_SOURCES) \
+ $(test_u32_nfd_big_SOURCES) $(test_u32_nfkc_big_SOURCES) \
+ $(test_u32_nfkd_big_SOURCES) $(test_u32_normcmp_SOURCES) \
+ $(test_u32_normcoll_SOURCES) \
+ $(test_u32_possible_linebreaks_SOURCES) \
+ $(test_u32_strconv_from_enc_SOURCES) \
+ $(test_u32_strconv_to_enc_SOURCES) \
+ $(test_u32_strwidth_SOURCES) $(test_u32_tolower_SOURCES) \
+ $(test_u32_totitle_SOURCES) $(test_u32_toupper_SOURCES) \
+ $(test_u32_vasnprintf1_SOURCES) \
+ $(test_u32_vasnprintf2_SOURCES) \
+ $(test_u32_vasnprintf3_SOURCES) $(test_u32_vasprintf1_SOURCES) \
+ $(test_u32_vsnprintf1_SOURCES) $(test_u32_vsprintf1_SOURCES) \
+ $(test_u32_width_SOURCES) $(test_u32_width_linebreaks_SOURCES) \
+ $(test_u32_wordbreaks_SOURCES) $(test_u8_asnprintf1_SOURCES) \
+ $(test_u8_casecmp_SOURCES) $(test_u8_casecoll_SOURCES) \
+ $(test_u8_casefold_SOURCES) $(test_u8_conv_from_enc_SOURCES) \
+ $(test_u8_conv_to_enc_SOURCES) $(test_u8_is_cased_SOURCES) \
+ $(test_u8_is_casefolded_SOURCES) \
+ $(test_u8_is_lowercase_SOURCES) \
+ $(test_u8_is_titlecase_SOURCES) \
+ $(test_u8_is_uppercase_SOURCES) $(test_u8_normcmp_SOURCES) \
+ $(test_u8_normcoll_SOURCES) \
+ $(test_u8_possible_linebreaks_SOURCES) \
+ $(test_u8_strconv_from_enc_SOURCES) \
+ $(test_u8_strconv_to_enc_SOURCES) $(test_u8_strwidth_SOURCES) \
+ $(test_u8_tolower_SOURCES) $(test_u8_totitle_SOURCES) \
+ $(test_u8_toupper_SOURCES) $(test_u8_vasnprintf1_SOURCES) \
+ $(test_u8_vasnprintf2_SOURCES) $(test_u8_vasnprintf3_SOURCES) \
+ $(test_u8_vasprintf1_SOURCES) $(test_u8_vsnprintf1_SOURCES) \
+ $(test_u8_vsprintf1_SOURCES) $(test_u8_width_SOURCES) \
+ $(test_u8_width_linebreaks_SOURCES) \
+ $(test_u8_wordbreaks_SOURCES) $(test_uc_tolower_SOURCES) \
+ $(test_uc_totitle_SOURCES) $(test_uc_toupper_SOURCES) \
+ $(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
+ $(test_ulc_asnprintf1_SOURCES) $(test_ulc_casecmp_SOURCES) \
+ $(test_ulc_casecoll_SOURCES) \
+ $(test_ulc_possible_linebreaks_SOURCES) \
+ $(test_ulc_vasnprintf1_SOURCES) \
+ $(test_ulc_vasnprintf2_SOURCES) \
+ $(test_ulc_vasnprintf3_SOURCES) $(test_ulc_vasprintf1_SOURCES) \
+ $(test_ulc_vsnprintf1_SOURCES) $(test_ulc_vsprintf1_SOURCES) \
+ $(test_ulc_width_linebreaks_SOURCES) \
+ $(test_ulc_wordbreaks_SOURCES) $(test_uninames_SOURCES) \
+ $(test_uninorm_filter_nfc_SOURCES) test-unistd.c test-wchar.c \
+ test-wctype.c test-wcwidth.c
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+HEADERS = $(noinst_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+# If stdout is a non-dumb tty, use colors. If test -t is not supported,
+# then this fails; a conservative approach. Of course do not redirect
+# stdout here, just stderr.
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=; \
+test "X$(AM_COLOR_TESTS)" != Xno \
+&& test "X$$TERM" != Xdumb \
+&& { test "X$(AM_COLOR_TESTS)" = Xalways || test -t 1 2>/dev/null; } \
+&& { \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ std=''; \
+}
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DLL_VARIABLE = @DLL_VARIABLE@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+DVIPS = @DVIPS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
+EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
+ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
+ENOLINK_VALUE = @ENOLINK_VALUE@
+EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
+EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
+ERRNO_H = @ERRNO_H@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLOAT_H = @FLOAT_H@
+GLIBC21 = @GLIBC21@
+GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
+GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BTOWC = @GNULIB_BTOWC@
+GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CEILF = @GNULIB_CEILF@
+GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_ENVIRON = @GNULIB_ENVIRON@
+GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FLOORF = @GNULIB_FLOORF@
+GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
+GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
+GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
+GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_ISFINITE = @GNULIB_ISFINITE@
+GNULIB_ISINF = @GNULIB_ISINF@
+GNULIB_ISNAN = @GNULIB_ISNAN@
+GNULIB_ISNAND = @GNULIB_ISNAND@
+GNULIB_ISNANF = @GNULIB_ISNANF@
+GNULIB_ISNANL = @GNULIB_ISNANL@
+GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPL = @GNULIB_LDEXPL@
+GNULIB_LINK = @GNULIB_LINK@
+GNULIB_LSEEK = @GNULIB_LSEEK@
+GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+GNULIB_MATHL = @GNULIB_MATHL@
+GNULIB_MBRLEN = @GNULIB_MBRLEN@
+GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
+GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+GNULIB_MBSCHR = @GNULIB_MBSCHR@
+GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+GNULIB_MBSINIT = @GNULIB_MBSINIT@
+GNULIB_MBSLEN = @GNULIB_MBSLEN@
+GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
+GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
+GNULIB_MBSSEP = @GNULIB_MBSSEP@
+GNULIB_MBSSPN = @GNULIB_MBSSPN@
+GNULIB_MBSSTR = @GNULIB_MBSSTR@
+GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MEMCHR = @GNULIB_MEMCHR@
+GNULIB_MEMMEM = @GNULIB_MEMMEM@
+GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_ROUND = @GNULIB_ROUND@
+GNULIB_ROUNDF = @GNULIB_ROUNDF@
+GNULIB_ROUNDL = @GNULIB_ROUNDL@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_STPCPY = @GNULIB_STPCPY@
+GNULIB_STPNCPY = @GNULIB_STPNCPY@
+GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+GNULIB_STRDUP = @GNULIB_STRDUP@
+GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRNDUP = @GNULIB_STRNDUP@
+GNULIB_STRNLEN = @GNULIB_STRNLEN@
+GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRSEP = @GNULIB_STRSEP@
+GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+GNULIB_STRSTR = @GNULIB_STRSTR@
+GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+GNULIB_STRTOLL = @GNULIB_STRTOLL@
+GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
+GNULIB_TRUNC = @GNULIB_TRUNC@
+GNULIB_TRUNCF = @GNULIB_TRUNCF@
+GNULIB_TRUNCL = @GNULIB_TRUNCL@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WRITE = @GNULIB_WRITE@
+GREP = @GREP@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
+HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
+HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_COSL = @HAVE_DECL_COSL@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOGL = @HAVE_DECL_LOGL@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TANL = @HAVE_DECL_TANL@
+HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
+HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
+HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
+HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
+HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@
+HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISNAND = @HAVE_ISNAND@
+HAVE_ISNANF = @HAVE_ISNANF@
+HAVE_ISNANL = @HAVE_ISNANL@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LINK = @HAVE_LINK@
+HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+HAVE_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_STDINT_H = @HAVE_STDINT_H@
+HAVE_STPCPY = @HAVE_STPCPY@
+HAVE_STPNCPY = @HAVE_STPNCPY@
+HAVE_STRCASESTR = @HAVE_STRCASESTR@
+HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+HAVE_STRNDUP = @HAVE_STRNDUP@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRSEP = @HAVE_STRSEP@
+HAVE_STRTOD = @HAVE_STRTOD@
+HAVE_STRTOLL = @HAVE_STRTOLL@
+HAVE_STRTOULL = @HAVE_STRTOULL@
+HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
+HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
+HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
+HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNSETENV = @HAVE_UNSETENV@
+HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_WCHAR_H = @HAVE_WCHAR_H@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE__BOOL = @HAVE__BOOL@
+HEXVERSION = @HEXVERSION@
+ICONV_H = @ICONV_H@
+INCLUDE_NEXT = @INCLUDE_NEXT@
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_FR = @LOCALE_FR@
+LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
+LOCALE_H = @LOCALE_H@
+LOCALE_JA = @LOCALE_JA@
+LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@
+LOCALE_ZH_CN = @LOCALE_ZH_CN@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NAMESPACING = @NAMESPACING@
+NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
+NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
+NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
+NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
+NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
+NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
+NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_FLOAT_H = @NEXT_FLOAT_H@
+NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_MATH_H = @NEXT_MATH_H@
+NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDLIB_H = @NEXT_STDLIB_H@
+NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_UNISTD_H = @NEXT_UNISTD_H@
+NEXT_WCHAR_H = @NEXT_WCHAR_H@
+NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+RANLIB = @RANLIB@
+RC = @RC@
+RELOCATABLE = @RELOCATABLE@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CEILF = @REPLACE_CEILF@
+REPLACE_CEILL = @REPLACE_CEILL@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_FLOORF = @REPLACE_FLOORF@
+REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
+REPLACE_ICONV = @REPLACE_ICONV@
+REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
+REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ISFINITE = @REPLACE_ISFINITE@
+REPLACE_ISINF = @REPLACE_ISINF@
+REPLACE_ISNAN = @REPLACE_ISNAN@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LDEXPL = @REPLACE_LDEXPL@
+REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MBRLEN = @REPLACE_MBRLEN@
+REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
+REPLACE_MBSINIT = @REPLACE_MBSINIT@
+REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
+REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
+REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MEMCHR = @REPLACE_MEMCHR@
+REPLACE_MEMMEM = @REPLACE_MEMMEM@
+REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_NAN = @REPLACE_NAN@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_ROUND = @REPLACE_ROUND@
+REPLACE_ROUNDF = @REPLACE_ROUNDF@
+REPLACE_ROUNDL = @REPLACE_ROUNDL@
+REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
+REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_TRUNCL = @REPLACE_TRUNCL@
+REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
+REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
+REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDBOOL_H = @STDBOOL_H@
+STDINT_H = @STDINT_H@
+STRIP = @STRIP@
+TEXI2DVI = @TEXI2DVI@
+UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
+VERSION = @VERSION@
+VOID_UNSETENV = @VOID_UNSETENV@
+WCHAR_H = @WCHAR_H@
+WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WCTYPE_H = @WCTYPE_H@
+WINT_T_SUFFIX = @WINT_T_SUFFIX@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gl_LIBOBJS = @gl_LIBOBJS@
+gl_LTLIBOBJS = @gl_LTLIBOBJS@
+gltests_LIBOBJS = @gltests_LIBOBJS@
+gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# Rules generated and collected by gnulib-tool.
+AUTOMAKE_OPTIONS = 1.5 foreign 1.11 subdir-objects color-tests
+SUBDIRS =
+
+# The test suite uses the 'localcharset' module.
+
+# This must be the last thing that gets added to TESTS_ENVIRONMENT.
+TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' EXEEXT='@EXEEXT@' \
+ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+ LOCALE_JA='@LOCALE_JA@' LOCALE_ZH_CN='@LOCALE_ZH_CN@' \
+ EXEEXT='@EXEEXT@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+ EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_JA='@LOCALE_JA@' \
+ LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' \
+ LOCALE_ZH_CN='@LOCALE_ZH_CN@' EXEEXT='@EXEEXT@' \
+ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+ EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' EXEEXT='@EXEEXT@' \
+ srcdir='$(srcdir)' EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' EXEEXT='@EXEEXT@' \
+ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+ EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' \
+ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' EXEEXT='@EXEEXT@' \
+ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+ EXEEXT='@EXEEXT@' LOCALE_FR='@LOCALE_FR@' EXEEXT='@EXEEXT@' \
+ @LOCALCHARSET_TESTS_ENVIRONMENT@ $(SHELL) \
+ $(top_srcdir)/build-aux/run-test '$(CHECKER)'
+noinst_HEADERS =
+noinst_LIBRARIES =
+check_LIBRARIES = libtests.a
+EXTRA_DIST = test-alloca-opt.c test-array-mergesort.c test-c-ctype.c \
+ test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c \
+ test-environ.c test-errno.c error.c error.h exitfail.c \
+ exitfail.h test-frexpl.c test-fseterr.c test-iconv.c \
+ intprops.h test-isnand-nolibm.c test-isnand.h nan.h \
+ test-isnanf-nolibm.c test-isnanf.h nan.h test-isnanl-nolibm.c \
+ test-isnanl.h nan.h locale.in.h test-locale.c \
+ test-localename.c test-malloca.c test-math.c test-mbrtowc1.sh \
+ test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh \
+ test-mbrtowc.c test-mbsinit.sh test-mbsinit.c test-memchr.c \
+ zerosize-ptr.h test-printf-frexp.c test-printf-frexpl.c \
+ setenv.c test-signbit.c test-stdbool.c test-stdint.c \
+ test-stdlib.c strerror.c test-strerror.c test-striconveh.c \
+ test-striconveha.c test-string.c unicase/test-cased.c \
+ unicase/test-predicate-part1.h unicase/test-predicate-part2.h \
+ unicase/test-ignorable.c unicase/test-predicate-part1.h \
+ unicase/test-predicate-part2.h unicase/test-locale-language.sh \
+ unicase/test-locale-language.c unicase/test-uc_tolower.c \
+ unicase/test-mapping-part1.h unicase/test-mapping-part2.h \
+ unicase/test-uc_totitle.c unicase/test-mapping-part1.h \
+ unicase/test-mapping-part2.h unicase/test-uc_toupper.c \
+ unicase/test-mapping-part1.h unicase/test-mapping-part2.h \
+ unicase/test-u16-casecmp.c unicase/test-casecmp.h \
+ unicase/test-u16-casecoll.c unicase/test-casecmp.h \
+ unicase/test-u16-casefold.c unicase/test-u16-is-cased.c \
+ unicase/test-is-cased.h unicase/test-u16-is-casefolded.c \
+ unicase/test-is-casefolded.h unicase/test-u16-is-lowercase.c \
+ unicase/test-is-lowercase.h unicase/test-u16-is-titlecase.c \
+ unicase/test-is-titlecase.h unicase/test-u16-is-uppercase.c \
+ unicase/test-is-uppercase.h unicase/test-u16-tolower.c \
+ unicase/test-u16-totitle.c unicase/test-u16-toupper.c \
+ unicase/test-u32-casecmp.c unicase/test-casecmp.h \
+ unicase/test-u32-casecoll.c unicase/test-casecmp.h \
+ unicase/test-u32-casefold.c unicase/test-u32-is-cased.c \
+ unicase/test-is-cased.h unicase/test-u32-is-casefolded.c \
+ unicase/test-is-casefolded.h unicase/test-u32-is-lowercase.c \
+ unicase/test-is-lowercase.h unicase/test-u32-is-titlecase.c \
+ unicase/test-is-titlecase.h unicase/test-u32-is-uppercase.c \
+ unicase/test-is-uppercase.h unicase/test-u32-tolower.c \
+ unicase/test-u32-totitle.c unicase/test-u32-toupper.c \
+ unicase/test-u8-casecmp.c unicase/test-casecmp.h \
+ unicase/test-u8-casecoll.c unicase/test-casecmp.h \
+ unicase/test-u8-casefold.c unicase/test-u8-is-cased.c \
+ unicase/test-is-cased.h unicase/test-u8-is-casefolded.c \
+ unicase/test-is-casefolded.h unicase/test-u8-is-lowercase.c \
+ unicase/test-is-lowercase.h unicase/test-u8-is-titlecase.c \
+ unicase/test-is-titlecase.h unicase/test-u8-is-uppercase.c \
+ unicase/test-is-uppercase.h unicase/test-u8-tolower.c \
+ unicase/test-u8-totitle.c unicase/test-u8-toupper.c \
+ unicase/test-ulc-casecmp1.sh unicase/test-ulc-casecmp2.sh \
+ unicase/test-ulc-casecmp.c unicase/test-casecmp.h \
+ unicase/test-ulc-casecoll1.sh unicase/test-ulc-casecoll2.sh \
+ unicase/test-ulc-casecoll.c unicase/test-casecmp.h \
+ uniconv/test-u16-conv-from-enc.c \
+ uniconv/test-u16-conv-to-enc.c \
+ uniconv/test-u16-strconv-from-enc.c \
+ uniconv/test-u16-strconv-to-enc.c \
+ uniconv/test-u32-conv-from-enc.c \
+ uniconv/test-u32-conv-to-enc.c \
+ uniconv/test-u32-strconv-from-enc.c \
+ uniconv/test-u32-strconv-to-enc.c \
+ uniconv/test-u8-conv-from-enc.c uniconv/test-u8-conv-to-enc.c \
+ uniconv/test-u8-strconv-from-enc.c \
+ uniconv/test-u8-strconv-to-enc.c unictype/test-bidi_byname.c \
+ unictype/test-bidi_name.c unictype/test-bidi_of.c \
+ unictype/test-bidi_test.c unictype/test-block_list.c \
+ unictype/test-block_of.c unictype/test-block_test.c \
+ unictype/test-categ_C.c unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Cc.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Cf.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Cn.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Co.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Cs.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_L.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Ll.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Lm.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Lo.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Lt.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Lu.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_M.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Mc.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Me.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Mn.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_N.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Nd.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Nl.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_No.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_P.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Pc.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Pd.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Pe.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Pf.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Pi.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Po.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Ps.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_S.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Sc.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Sk.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Sm.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_So.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Z.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Zl.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Zp.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_Zs.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-categ_and_not.c \
+ unictype/test-categ_and.c unictype/test-categ_byname.c \
+ unictype/test-categ_name.c unictype/test-categ_none.c \
+ unictype/test-categ_of.c unictype/test-categ_or.c \
+ unictype/test-categ_test_withtable.c unictype/test-combining.c \
+ unictype/test-ctype_alnum.c unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_alpha.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_blank.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_cntrl.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_digit.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_graph.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_lower.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_print.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_punct.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_space.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_upper.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-ctype_xdigit.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-decdigit.c \
+ unictype/test-decdigit.h unictype/test-digit.c \
+ unictype/test-digit.h unictype/test-mirror.c \
+ unictype/test-numeric.c unictype/test-numeric.h \
+ unictype/test-pr_alphabetic.c unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_ascii_hex_digit.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_arabic_digit.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_arabic_right_to_left.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_block_separator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_boundary_neutral.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_common_separator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_control.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_embedding_or_override.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_eur_num_separator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_eur_num_terminator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_european_digit.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_hebrew_right_to_left.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_left_to_right.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_non_spacing_mark.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_other_neutral.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_bidi_pdf.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_segment_separator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_bidi_whitespace.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_byname.c \
+ unictype/test-pr_combining.c unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_composite.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_currency_symbol.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_dash.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_decimal_digit.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_default_ignorable_code_point.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_deprecated.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_diacritic.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_extender.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_format_control.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_grapheme_base.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_grapheme_extend.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_grapheme_link.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_hex_digit.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_hyphen.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_id_continue.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_id_start.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_ideographic.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_ids_binary_operator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_ids_trinary_operator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_ignorable_control.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_iso_control.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_join_control.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_left_of_pair.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_line_separator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_logical_order_exception.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_lowercase.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_math.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_non_break.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_not_a_character.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_numeric.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_other_alphabetic.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_other_default_ignorable_code_point.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_other_grapheme_extend.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_other_id_continue.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_other_id_start.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_other_lowercase.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_other_math.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_other_uppercase.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_paired_punctuation.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_paragraph_separator.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_pattern_syntax.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_pattern_white_space.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_private_use.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_punctuation.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_quotation_mark.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_radical.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_sentence_terminal.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_soft_dotted.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_space.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_terminal_punctuation.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_test.c \
+ unictype/test-pr_titlecase.c unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_unassigned_code_value.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_unified_ideograph.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_uppercase.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_variation_selector.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_white_space.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unictype/test-pr_xid_continue.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_xid_start.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-pr_zero_width.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-scripts.c \
+ unictype/test-sy_c_ident.c unictype/test-sy_c_whitespace.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h unictype/test-sy_java_ident.c \
+ unictype/test-sy_java_whitespace.c \
+ unictype/test-predicate-part1.h \
+ unictype/test-predicate-part2.h \
+ unilbrk/test-u16-possible-linebreaks.c \
+ unilbrk/test-u16-width-linebreaks.c \
+ unilbrk/test-u32-possible-linebreaks.c \
+ unilbrk/test-u32-width-linebreaks.c \
+ unilbrk/test-u8-possible-linebreaks.c \
+ unilbrk/test-u8-width-linebreaks.c \
+ unilbrk/test-ulc-possible-linebreaks.c \
+ unilbrk/test-ulc-width-linebreaks.c uniname/test-uninames.sh \
+ uniname/test-uninames.c uniname/UnicodeDataNames.txt \
+ uninorm/test-canonical-decomposition.c \
+ uninorm/test-compat-decomposition.c uninorm/test-composition.c \
+ uninorm/test-decomposing-form.c uninorm/test-decomposition.c \
+ uninorm/test-uninorm-filter-nfc.c uninorm/test-nfc.c \
+ uninorm/test-u8-nfc.c uninorm/test-u16-nfc.c \
+ uninorm/test-u32-nfc.c uninorm/test-u32-nfc-big.sh \
+ uninorm/test-u32-nfc-big.c uninorm/test-u32-normalize-big.h \
+ uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt \
+ uninorm/test-nfd.c uninorm/test-u8-nfd.c \
+ uninorm/test-u16-nfd.c uninorm/test-u32-nfd.c \
+ uninorm/test-u32-nfd-big.sh uninorm/test-u32-nfd-big.c \
+ uninorm/test-u32-normalize-big.h \
+ uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt \
+ uninorm/test-nfkc.c uninorm/test-u8-nfkc.c \
+ uninorm/test-u16-nfkc.c uninorm/test-u32-nfkc.c \
+ uninorm/test-u32-nfkc-big.sh uninorm/test-u32-nfkc-big.c \
+ uninorm/test-u32-normalize-big.h \
+ uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt \
+ uninorm/test-nfkd.c uninorm/test-u8-nfkd.c \
+ uninorm/test-u16-nfkd.c uninorm/test-u32-nfkd.c \
+ uninorm/test-u32-nfkd-big.sh uninorm/test-u32-nfkd-big.c \
+ uninorm/test-u32-normalize-big.h \
+ uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt \
+ uninorm/test-u16-normcmp.c uninorm/test-u16-normcmp.h \
+ uninorm/test-u16-normcoll.c uninorm/test-u16-normcmp.h \
+ uninorm/test-u32-normcmp.c uninorm/test-u32-normcmp.h \
+ uninorm/test-u32-normcoll.c uninorm/test-u32-normcmp.h \
+ uninorm/test-u8-normcmp.c uninorm/test-u8-normcmp.h \
+ uninorm/test-u8-normcoll.c uninorm/test-u8-normcmp.h \
+ test-unistd.c unistdio/test-u16-asnprintf1.c \
+ unistdio/test-u16-asnprintf1.h unistdio/test-u16-printf1.h \
+ unistdio/test-u16-vasnprintf1.c unistdio/test-u16-asnprintf1.h \
+ unistdio/test-u16-printf1.h unistdio/test-u16-vasnprintf2.sh \
+ unistdio/test-u16-vasnprintf2.c \
+ unistdio/test-u16-vasnprintf3.sh \
+ unistdio/test-u16-vasnprintf3.c unistdio/test-u16-vasprintf1.c \
+ unistdio/test-u16-printf1.h unistdio/test-u16-vsnprintf1.c \
+ unistdio/test-u16-printf1.h unistdio/test-u16-vsprintf1.c \
+ unistdio/test-u16-printf1.h unistdio/test-u32-asnprintf1.c \
+ unistdio/test-u32-asnprintf1.h unistdio/test-u32-printf1.h \
+ unistdio/test-u32-vasnprintf1.c unistdio/test-u32-asnprintf1.h \
+ unistdio/test-u32-printf1.h unistdio/test-u32-vasnprintf2.sh \
+ unistdio/test-u32-vasnprintf2.c \
+ unistdio/test-u32-vasnprintf3.sh \
+ unistdio/test-u32-vasnprintf3.c unistdio/test-u32-vasprintf1.c \
+ unistdio/test-u32-printf1.h unistdio/test-u32-vsnprintf1.c \
+ unistdio/test-u32-printf1.h unistdio/test-u32-vsprintf1.c \
+ unistdio/test-u32-printf1.h unistdio/test-u8-asnprintf1.c \
+ unistdio/test-u8-asnprintf1.h unistdio/test-u8-printf1.h \
+ unistdio/test-u8-vasnprintf1.c unistdio/test-u8-asnprintf1.h \
+ unistdio/test-u8-printf1.h unistdio/test-u8-vasnprintf2.sh \
+ unistdio/test-u8-vasnprintf2.c unistdio/test-u8-vasnprintf3.sh \
+ unistdio/test-u8-vasnprintf3.c unistdio/test-u8-vasprintf1.c \
+ unistdio/test-u8-printf1.h unistdio/test-u8-vsnprintf1.c \
+ unistdio/test-u8-printf1.h unistdio/test-u8-vsprintf1.c \
+ unistdio/test-u8-printf1.h unistdio/test-ulc-asnprintf1.c \
+ unistdio/test-ulc-asnprintf1.h unistdio/test-ulc-printf1.h \
+ unistdio/test-ulc-vasnprintf1.c unistdio/test-ulc-asnprintf1.h \
+ unistdio/test-ulc-printf1.h unistdio/test-ulc-vasnprintf2.sh \
+ unistdio/test-ulc-vasnprintf2.c \
+ unistdio/test-ulc-vasnprintf3.sh \
+ unistdio/test-ulc-vasnprintf3.c unistdio/test-ulc-vasprintf1.c \
+ unistdio/test-ulc-printf1.h unistdio/test-ulc-vsnprintf1.c \
+ unistdio/test-ulc-printf1.h unistdio/test-ulc-vsprintf1.c \
+ unistdio/test-ulc-printf1.h uniwbrk/test-u16-wordbreaks.c \
+ uniwbrk/test-u32-wordbreaks.c uniwbrk/test-u8-wordbreaks.c \
+ uniwbrk/test-ulc-wordbreaks.sh uniwbrk/test-ulc-wordbreaks.c \
+ uniwidth/test-u16-strwidth.c uniwidth/test-u16-width.c \
+ uniwidth/test-u32-strwidth.c uniwidth/test-u32-width.c \
+ uniwidth/test-u8-strwidth.c uniwidth/test-u8-width.c \
+ uniwidth/test-uc_width.c uniwidth/test-uc_width2.c \
+ uniwidth/test-uc_width2.sh unsetenv.c test-wchar.c wctob.c \
+ test-wctype.c test-wcwidth.c xalloc.h xmalloc.c
+BUILT_SOURCES = $(LOCALE_H)
+SUFFIXES =
+MOSTLYCLEANFILES = core *.stackdump locale.h locale.h-t
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+AM_CPPFLAGS = \
+ -I. -I$(srcdir) \
+ -I.. -I$(srcdir)/.. \
+ -I../lib -I$(srcdir)/../lib
+
+LDADD = libtests.a ../lib/libunistring.la libtests.a $(LIBTESTS_LIBDEPS)
+libtests_a_SOURCES = gettext.h progname.h progname.c xalloc-die.c
+libtests_a_LIBADD = $(gltests_LIBOBJS)
+libtests_a_DEPENDENCIES = $(gltests_LIBOBJS)
+EXTRA_libtests_a_SOURCES = error.c exitfail.c setenv.c strerror.c \
+ unsetenv.c wctob.c xmalloc.c
+AM_LIBTOOLFLAGS = --preserve-dup-deps
+test_frexpl_nolibm_SOURCES = test-frexpl.c
+test_iconv_LDADD = $(LDADD) @LIBICONV@
+test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+test_striconveh_LDADD = $(LDADD) @LIBICONV@
+test_striconveha_LDADD = $(LDADD) @LIBICONV@
+test_cased_SOURCES = unicase/test-cased.c
+test_ignorable_SOURCES = unicase/test-ignorable.c
+test_locale_language_SOURCES = unicase/test-locale-language.c
+test_locale_language_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+test_uc_tolower_SOURCES = unicase/test-uc_tolower.c
+test_uc_totitle_SOURCES = unicase/test-uc_totitle.c
+test_uc_toupper_SOURCES = unicase/test-uc_toupper.c
+test_u16_casecmp_SOURCES = unicase/test-u16-casecmp.c
+test_u16_casecoll_SOURCES = unicase/test-u16-casecoll.c
+test_u16_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_casefold_SOURCES = unicase/test-u16-casefold.c
+test_u16_is_cased_SOURCES = unicase/test-u16-is-cased.c
+test_u16_is_casefolded_SOURCES = unicase/test-u16-is-casefolded.c
+test_u16_is_lowercase_SOURCES = unicase/test-u16-is-lowercase.c
+test_u16_is_titlecase_SOURCES = unicase/test-u16-is-titlecase.c
+test_u16_is_uppercase_SOURCES = unicase/test-u16-is-uppercase.c
+test_u16_tolower_SOURCES = unicase/test-u16-tolower.c
+test_u16_totitle_SOURCES = unicase/test-u16-totitle.c
+test_u16_toupper_SOURCES = unicase/test-u16-toupper.c
+test_u32_casecmp_SOURCES = unicase/test-u32-casecmp.c
+test_u32_casecoll_SOURCES = unicase/test-u32-casecoll.c
+test_u32_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_casefold_SOURCES = unicase/test-u32-casefold.c
+test_u32_is_cased_SOURCES = unicase/test-u32-is-cased.c
+test_u32_is_casefolded_SOURCES = unicase/test-u32-is-casefolded.c
+test_u32_is_lowercase_SOURCES = unicase/test-u32-is-lowercase.c
+test_u32_is_titlecase_SOURCES = unicase/test-u32-is-titlecase.c
+test_u32_is_uppercase_SOURCES = unicase/test-u32-is-uppercase.c
+test_u32_tolower_SOURCES = unicase/test-u32-tolower.c
+test_u32_totitle_SOURCES = unicase/test-u32-totitle.c
+test_u32_toupper_SOURCES = unicase/test-u32-toupper.c
+test_u8_casecmp_SOURCES = unicase/test-u8-casecmp.c
+test_u8_casecoll_SOURCES = unicase/test-u8-casecoll.c
+test_u8_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_casefold_SOURCES = unicase/test-u8-casefold.c
+test_u8_is_cased_SOURCES = unicase/test-u8-is-cased.c
+test_u8_is_casefolded_SOURCES = unicase/test-u8-is-casefolded.c
+test_u8_is_lowercase_SOURCES = unicase/test-u8-is-lowercase.c
+test_u8_is_titlecase_SOURCES = unicase/test-u8-is-titlecase.c
+test_u8_is_uppercase_SOURCES = unicase/test-u8-is-uppercase.c
+test_u8_tolower_SOURCES = unicase/test-u8-tolower.c
+test_u8_totitle_SOURCES = unicase/test-u8-totitle.c
+test_u8_toupper_SOURCES = unicase/test-u8-toupper.c
+test_ulc_casecmp_SOURCES = unicase/test-ulc-casecmp.c
+test_ulc_casecmp_LDADD = $(LDADD) @LIBICONV@
+test_ulc_casecoll_SOURCES = unicase/test-ulc-casecoll.c
+test_ulc_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_conv_from_enc_SOURCES = uniconv/test-u16-conv-from-enc.c
+test_u16_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_conv_to_enc_SOURCES = uniconv/test-u16-conv-to-enc.c
+test_u16_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_strconv_from_enc_SOURCES = uniconv/test-u16-strconv-from-enc.c
+test_u16_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_strconv_to_enc_SOURCES = uniconv/test-u16-strconv-to-enc.c
+test_u16_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_conv_from_enc_SOURCES = uniconv/test-u32-conv-from-enc.c
+test_u32_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_conv_to_enc_SOURCES = uniconv/test-u32-conv-to-enc.c
+test_u32_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_strconv_from_enc_SOURCES = uniconv/test-u32-strconv-from-enc.c
+test_u32_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_strconv_to_enc_SOURCES = uniconv/test-u32-strconv-to-enc.c
+test_u32_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_conv_from_enc_SOURCES = uniconv/test-u8-conv-from-enc.c
+test_u8_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_conv_to_enc_SOURCES = uniconv/test-u8-conv-to-enc.c
+test_u8_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_strconv_from_enc_SOURCES = uniconv/test-u8-strconv-from-enc.c
+test_u8_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_strconv_to_enc_SOURCES = uniconv/test-u8-strconv-to-enc.c
+test_u8_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_bidi_byname_SOURCES = unictype/test-bidi_byname.c
+test_bidi_name_SOURCES = unictype/test-bidi_name.c
+test_bidi_of_SOURCES = unictype/test-bidi_of.c
+test_bidi_test_SOURCES = unictype/test-bidi_test.c
+test_block_list_SOURCES = unictype/test-block_list.c
+test_block_of_SOURCES = unictype/test-block_of.c
+test_block_test_SOURCES = unictype/test-block_test.c
+test_categ_C_SOURCES = unictype/test-categ_C.c
+test_categ_Cc_SOURCES = unictype/test-categ_Cc.c
+test_categ_Cf_SOURCES = unictype/test-categ_Cf.c
+test_categ_Cn_SOURCES = unictype/test-categ_Cn.c
+test_categ_Co_SOURCES = unictype/test-categ_Co.c
+test_categ_Cs_SOURCES = unictype/test-categ_Cs.c
+test_categ_L_SOURCES = unictype/test-categ_L.c
+test_categ_Ll_SOURCES = unictype/test-categ_Ll.c
+test_categ_Lm_SOURCES = unictype/test-categ_Lm.c
+test_categ_Lo_SOURCES = unictype/test-categ_Lo.c
+test_categ_Lt_SOURCES = unictype/test-categ_Lt.c
+test_categ_Lu_SOURCES = unictype/test-categ_Lu.c
+test_categ_M_SOURCES = unictype/test-categ_M.c
+test_categ_Mc_SOURCES = unictype/test-categ_Mc.c
+test_categ_Me_SOURCES = unictype/test-categ_Me.c
+test_categ_Mn_SOURCES = unictype/test-categ_Mn.c
+test_categ_N_SOURCES = unictype/test-categ_N.c
+test_categ_Nd_SOURCES = unictype/test-categ_Nd.c
+test_categ_Nl_SOURCES = unictype/test-categ_Nl.c
+test_categ_No_SOURCES = unictype/test-categ_No.c
+test_categ_P_SOURCES = unictype/test-categ_P.c
+test_categ_Pc_SOURCES = unictype/test-categ_Pc.c
+test_categ_Pd_SOURCES = unictype/test-categ_Pd.c
+test_categ_Pe_SOURCES = unictype/test-categ_Pe.c
+test_categ_Pf_SOURCES = unictype/test-categ_Pf.c
+test_categ_Pi_SOURCES = unictype/test-categ_Pi.c
+test_categ_Po_SOURCES = unictype/test-categ_Po.c
+test_categ_Ps_SOURCES = unictype/test-categ_Ps.c
+test_categ_S_SOURCES = unictype/test-categ_S.c
+test_categ_Sc_SOURCES = unictype/test-categ_Sc.c
+test_categ_Sk_SOURCES = unictype/test-categ_Sk.c
+test_categ_Sm_SOURCES = unictype/test-categ_Sm.c
+test_categ_So_SOURCES = unictype/test-categ_So.c
+test_categ_Z_SOURCES = unictype/test-categ_Z.c
+test_categ_Zl_SOURCES = unictype/test-categ_Zl.c
+test_categ_Zp_SOURCES = unictype/test-categ_Zp.c
+test_categ_Zs_SOURCES = unictype/test-categ_Zs.c
+test_categ_and_not_SOURCES = unictype/test-categ_and_not.c
+test_categ_and_SOURCES = unictype/test-categ_and.c
+test_categ_byname_SOURCES = unictype/test-categ_byname.c
+test_categ_name_SOURCES = unictype/test-categ_name.c
+@WOE32DLL_FALSE@test_categ_none_SOURCES = unictype/test-categ_none.c
+test_categ_of_SOURCES = unictype/test-categ_of.c
+test_categ_or_SOURCES = unictype/test-categ_or.c
+test_categ_test_withtable_SOURCES = unictype/test-categ_test_withtable.c
+test_combining_SOURCES = unictype/test-combining.c
+test_ctype_alnum_SOURCES = unictype/test-ctype_alnum.c
+test_ctype_alpha_SOURCES = unictype/test-ctype_alpha.c
+test_ctype_blank_SOURCES = unictype/test-ctype_blank.c
+test_ctype_cntrl_SOURCES = unictype/test-ctype_cntrl.c
+test_ctype_digit_SOURCES = unictype/test-ctype_digit.c
+test_ctype_graph_SOURCES = unictype/test-ctype_graph.c
+test_ctype_lower_SOURCES = unictype/test-ctype_lower.c
+test_ctype_print_SOURCES = unictype/test-ctype_print.c
+test_ctype_punct_SOURCES = unictype/test-ctype_punct.c
+test_ctype_space_SOURCES = unictype/test-ctype_space.c
+test_ctype_upper_SOURCES = unictype/test-ctype_upper.c
+test_ctype_xdigit_SOURCES = unictype/test-ctype_xdigit.c
+test_decdigit_SOURCES = unictype/test-decdigit.c
+test_digit_SOURCES = unictype/test-digit.c
+test_mirror_SOURCES = unictype/test-mirror.c
+test_numeric_SOURCES = unictype/test-numeric.c
+test_pr_alphabetic_SOURCES = unictype/test-pr_alphabetic.c
+test_pr_ascii_hex_digit_SOURCES = unictype/test-pr_ascii_hex_digit.c
+test_pr_bidi_arabic_digit_SOURCES = unictype/test-pr_bidi_arabic_digit.c
+test_pr_bidi_arabic_right_to_left_SOURCES = unictype/test-pr_bidi_arabic_right_to_left.c
+test_pr_bidi_block_separator_SOURCES = unictype/test-pr_bidi_block_separator.c
+test_pr_bidi_boundary_neutral_SOURCES = unictype/test-pr_bidi_boundary_neutral.c
+test_pr_bidi_common_separator_SOURCES = unictype/test-pr_bidi_common_separator.c
+test_pr_bidi_control_SOURCES = unictype/test-pr_bidi_control.c
+test_pr_bidi_embedding_or_override_SOURCES = unictype/test-pr_bidi_embedding_or_override.c
+test_pr_bidi_eur_num_separator_SOURCES = unictype/test-pr_bidi_eur_num_separator.c
+test_pr_bidi_eur_num_terminator_SOURCES = unictype/test-pr_bidi_eur_num_terminator.c
+test_pr_bidi_european_digit_SOURCES = unictype/test-pr_bidi_european_digit.c
+test_pr_bidi_hebrew_right_to_left_SOURCES = unictype/test-pr_bidi_hebrew_right_to_left.c
+test_pr_bidi_left_to_right_SOURCES = unictype/test-pr_bidi_left_to_right.c
+test_pr_bidi_non_spacing_mark_SOURCES = unictype/test-pr_bidi_non_spacing_mark.c
+test_pr_bidi_other_neutral_SOURCES = unictype/test-pr_bidi_other_neutral.c
+test_pr_bidi_pdf_SOURCES = unictype/test-pr_bidi_pdf.c
+test_pr_bidi_segment_separator_SOURCES = unictype/test-pr_bidi_segment_separator.c
+test_pr_bidi_whitespace_SOURCES = unictype/test-pr_bidi_whitespace.c
+test_pr_byname_SOURCES = unictype/test-pr_byname.c
+test_pr_combining_SOURCES = unictype/test-pr_combining.c
+test_pr_composite_SOURCES = unictype/test-pr_composite.c
+test_pr_currency_symbol_SOURCES = unictype/test-pr_currency_symbol.c
+test_pr_dash_SOURCES = unictype/test-pr_dash.c
+test_pr_decimal_digit_SOURCES = unictype/test-pr_decimal_digit.c
+test_pr_default_ignorable_code_point_SOURCES = unictype/test-pr_default_ignorable_code_point.c
+test_pr_deprecated_SOURCES = unictype/test-pr_deprecated.c
+test_pr_diacritic_SOURCES = unictype/test-pr_diacritic.c
+test_pr_extender_SOURCES = unictype/test-pr_extender.c
+test_pr_format_control_SOURCES = unictype/test-pr_format_control.c
+test_pr_grapheme_base_SOURCES = unictype/test-pr_grapheme_base.c
+test_pr_grapheme_extend_SOURCES = unictype/test-pr_grapheme_extend.c
+test_pr_grapheme_link_SOURCES = unictype/test-pr_grapheme_link.c
+test_pr_hex_digit_SOURCES = unictype/test-pr_hex_digit.c
+test_pr_hyphen_SOURCES = unictype/test-pr_hyphen.c
+test_pr_id_continue_SOURCES = unictype/test-pr_id_continue.c
+test_pr_id_start_SOURCES = unictype/test-pr_id_start.c
+test_pr_ideographic_SOURCES = unictype/test-pr_ideographic.c
+test_pr_ids_binary_operator_SOURCES = unictype/test-pr_ids_binary_operator.c
+test_pr_ids_trinary_operator_SOURCES = unictype/test-pr_ids_trinary_operator.c
+test_pr_ignorable_control_SOURCES = unictype/test-pr_ignorable_control.c
+test_pr_iso_control_SOURCES = unictype/test-pr_iso_control.c
+test_pr_join_control_SOURCES = unictype/test-pr_join_control.c
+test_pr_left_of_pair_SOURCES = unictype/test-pr_left_of_pair.c
+test_pr_line_separator_SOURCES = unictype/test-pr_line_separator.c
+test_pr_logical_order_exception_SOURCES = unictype/test-pr_logical_order_exception.c
+test_pr_lowercase_SOURCES = unictype/test-pr_lowercase.c
+test_pr_math_SOURCES = unictype/test-pr_math.c
+test_pr_non_break_SOURCES = unictype/test-pr_non_break.c
+test_pr_not_a_character_SOURCES = unictype/test-pr_not_a_character.c
+test_pr_numeric_SOURCES = unictype/test-pr_numeric.c
+test_pr_other_alphabetic_SOURCES = unictype/test-pr_other_alphabetic.c
+test_pr_other_default_ignorable_code_point_SOURCES = unictype/test-pr_other_default_ignorable_code_point.c
+test_pr_other_grapheme_extend_SOURCES = unictype/test-pr_other_grapheme_extend.c
+test_pr_other_id_continue_SOURCES = unictype/test-pr_other_id_continue.c
+test_pr_other_id_start_SOURCES = unictype/test-pr_other_id_start.c
+test_pr_other_lowercase_SOURCES = unictype/test-pr_other_lowercase.c
+test_pr_other_math_SOURCES = unictype/test-pr_other_math.c
+test_pr_other_uppercase_SOURCES = unictype/test-pr_other_uppercase.c
+test_pr_paired_punctuation_SOURCES = unictype/test-pr_paired_punctuation.c
+test_pr_paragraph_separator_SOURCES = unictype/test-pr_paragraph_separator.c
+test_pr_pattern_syntax_SOURCES = unictype/test-pr_pattern_syntax.c
+test_pr_pattern_white_space_SOURCES = unictype/test-pr_pattern_white_space.c
+test_pr_private_use_SOURCES = unictype/test-pr_private_use.c
+test_pr_punctuation_SOURCES = unictype/test-pr_punctuation.c
+test_pr_quotation_mark_SOURCES = unictype/test-pr_quotation_mark.c
+test_pr_radical_SOURCES = unictype/test-pr_radical.c
+test_pr_sentence_terminal_SOURCES = unictype/test-pr_sentence_terminal.c
+test_pr_soft_dotted_SOURCES = unictype/test-pr_soft_dotted.c
+test_pr_space_SOURCES = unictype/test-pr_space.c
+test_pr_terminal_punctuation_SOURCES = unictype/test-pr_terminal_punctuation.c
+test_pr_test_SOURCES = unictype/test-pr_test.c
+test_pr_titlecase_SOURCES = unictype/test-pr_titlecase.c
+test_pr_unassigned_code_value_SOURCES = unictype/test-pr_unassigned_code_value.c
+test_pr_unified_ideograph_SOURCES = unictype/test-pr_unified_ideograph.c
+test_pr_uppercase_SOURCES = unictype/test-pr_uppercase.c
+test_pr_variation_selector_SOURCES = unictype/test-pr_variation_selector.c
+test_pr_white_space_SOURCES = unictype/test-pr_white_space.c
+test_pr_xid_continue_SOURCES = unictype/test-pr_xid_continue.c
+test_pr_xid_start_SOURCES = unictype/test-pr_xid_start.c
+test_pr_zero_width_SOURCES = unictype/test-pr_zero_width.c
+test_scripts_SOURCES = unictype/test-scripts.c
+test_sy_c_ident_SOURCES = unictype/test-sy_c_ident.c
+test_sy_c_whitespace_SOURCES = unictype/test-sy_c_whitespace.c
+test_sy_java_ident_SOURCES = unictype/test-sy_java_ident.c
+test_sy_java_whitespace_SOURCES = unictype/test-sy_java_whitespace.c
+test_u16_possible_linebreaks_SOURCES = unilbrk/test-u16-possible-linebreaks.c
+test_u16_width_linebreaks_SOURCES = unilbrk/test-u16-width-linebreaks.c
+test_u32_possible_linebreaks_SOURCES = unilbrk/test-u32-possible-linebreaks.c
+test_u32_width_linebreaks_SOURCES = unilbrk/test-u32-width-linebreaks.c
+test_u8_possible_linebreaks_SOURCES = unilbrk/test-u8-possible-linebreaks.c
+test_u8_width_linebreaks_SOURCES = unilbrk/test-u8-width-linebreaks.c
+test_ulc_possible_linebreaks_SOURCES = unilbrk/test-ulc-possible-linebreaks.c
+test_ulc_possible_linebreaks_LDADD = $(LDADD) @LIBICONV@
+test_ulc_width_linebreaks_SOURCES = unilbrk/test-ulc-width-linebreaks.c
+test_ulc_width_linebreaks_LDADD = $(LDADD) @LIBICONV@
+test_uninames_SOURCES = uniname/test-uninames.c
+test_uninames_LDADD = $(LDADD) @LIBINTL@
+test_canonical_decomposition_SOURCES = uninorm/test-canonical-decomposition.c
+test_compat_decomposition_SOURCES = uninorm/test-compat-decomposition.c
+test_composition_SOURCES = uninorm/test-composition.c
+test_decomposing_form_SOURCES = uninorm/test-decomposing-form.c
+test_decomposition_SOURCES = uninorm/test-decomposition.c
+test_uninorm_filter_nfc_SOURCES = uninorm/test-uninorm-filter-nfc.c
+test_nfc_SOURCES = \
+ uninorm/test-nfc.c \
+ uninorm/test-u8-nfc.c \
+ uninorm/test-u16-nfc.c \
+ uninorm/test-u32-nfc.c
+
+test_u32_nfc_big_SOURCES = \
+ uninorm/test-u32-nfc-big.c \
+ uninorm/test-u32-normalize-big.c
+
+test_u32_nfc_big_LDADD = $(LDADD) @LIBINTL@
+test_nfd_SOURCES = \
+ uninorm/test-nfd.c \
+ uninorm/test-u8-nfd.c \
+ uninorm/test-u16-nfd.c \
+ uninorm/test-u32-nfd.c
+
+test_u32_nfd_big_SOURCES = \
+ uninorm/test-u32-nfd-big.c \
+ uninorm/test-u32-normalize-big.c
+
+test_u32_nfd_big_LDADD = $(LDADD) @LIBINTL@
+test_nfkc_SOURCES = \
+ uninorm/test-nfkc.c \
+ uninorm/test-u8-nfkc.c \
+ uninorm/test-u16-nfkc.c \
+ uninorm/test-u32-nfkc.c
+
+test_u32_nfkc_big_SOURCES = \
+ uninorm/test-u32-nfkc-big.c \
+ uninorm/test-u32-normalize-big.c
+
+test_u32_nfkc_big_LDADD = $(LDADD) @LIBINTL@
+test_nfkd_SOURCES = \
+ uninorm/test-nfkd.c \
+ uninorm/test-u8-nfkd.c \
+ uninorm/test-u16-nfkd.c \
+ uninorm/test-u32-nfkd.c
+
+test_u32_nfkd_big_SOURCES = \
+ uninorm/test-u32-nfkd-big.c \
+ uninorm/test-u32-normalize-big.c
+
+test_u32_nfkd_big_LDADD = $(LDADD) @LIBINTL@
+test_u16_normcmp_SOURCES = uninorm/test-u16-normcmp.c
+test_u16_normcoll_SOURCES = uninorm/test-u16-normcoll.c
+test_u16_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_normcmp_SOURCES = uninorm/test-u32-normcmp.c
+test_u32_normcoll_SOURCES = uninorm/test-u32-normcoll.c
+test_u32_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_normcmp_SOURCES = uninorm/test-u8-normcmp.c
+test_u8_normcoll_SOURCES = uninorm/test-u8-normcoll.c
+test_u8_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_asnprintf1_SOURCES = unistdio/test-u16-asnprintf1.c
+test_u16_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf1_SOURCES = unistdio/test-u16-vasnprintf1.c
+test_u16_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf2_SOURCES = unistdio/test-u16-vasnprintf2.c
+test_u16_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf3_SOURCES = unistdio/test-u16-vasnprintf3.c
+test_u16_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasprintf1_SOURCES = unistdio/test-u16-vasprintf1.c
+test_u16_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vsnprintf1_SOURCES = unistdio/test-u16-vsnprintf1.c
+test_u16_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u16_vsprintf1_SOURCES = unistdio/test-u16-vsprintf1.c
+test_u16_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u32_asnprintf1_SOURCES = unistdio/test-u32-asnprintf1.c
+test_u32_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf1_SOURCES = unistdio/test-u32-vasnprintf1.c
+test_u32_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf2_SOURCES = unistdio/test-u32-vasnprintf2.c
+test_u32_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf3_SOURCES = unistdio/test-u32-vasnprintf3.c
+test_u32_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasprintf1_SOURCES = unistdio/test-u32-vasprintf1.c
+test_u32_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vsnprintf1_SOURCES = unistdio/test-u32-vsnprintf1.c
+test_u32_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u32_vsprintf1_SOURCES = unistdio/test-u32-vsprintf1.c
+test_u32_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u8_asnprintf1_SOURCES = unistdio/test-u8-asnprintf1.c
+test_u8_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf1_SOURCES = unistdio/test-u8-vasnprintf1.c
+test_u8_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf2_SOURCES = unistdio/test-u8-vasnprintf2.c
+test_u8_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf3_SOURCES = unistdio/test-u8-vasnprintf3.c
+test_u8_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasprintf1_SOURCES = unistdio/test-u8-vasprintf1.c
+test_u8_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vsnprintf1_SOURCES = unistdio/test-u8-vsnprintf1.c
+test_u8_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u8_vsprintf1_SOURCES = unistdio/test-u8-vsprintf1.c
+test_u8_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_ulc_asnprintf1_SOURCES = unistdio/test-ulc-asnprintf1.c
+test_ulc_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf1_SOURCES = unistdio/test-ulc-vasnprintf1.c
+test_ulc_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf2_SOURCES = unistdio/test-ulc-vasnprintf2.c
+test_ulc_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf3_SOURCES = unistdio/test-ulc-vasnprintf3.c
+test_ulc_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasprintf1_SOURCES = unistdio/test-ulc-vasprintf1.c
+test_ulc_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vsnprintf1_SOURCES = unistdio/test-ulc-vsnprintf1.c
+test_ulc_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_ulc_vsprintf1_SOURCES = unistdio/test-ulc-vsprintf1.c
+test_ulc_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u16_wordbreaks_SOURCES = uniwbrk/test-u16-wordbreaks.c
+test_u32_wordbreaks_SOURCES = uniwbrk/test-u32-wordbreaks.c
+test_u8_wordbreaks_SOURCES = uniwbrk/test-u8-wordbreaks.c
+test_ulc_wordbreaks_SOURCES = uniwbrk/test-ulc-wordbreaks.c
+test_ulc_wordbreaks_LDADD = $(LDADD) @LIBICONV@
+test_u16_strwidth_SOURCES = uniwidth/test-u16-strwidth.c
+test_u16_width_SOURCES = uniwidth/test-u16-width.c
+test_u32_strwidth_SOURCES = uniwidth/test-u32-strwidth.c
+test_u32_width_SOURCES = uniwidth/test-u32-width.c
+test_u8_strwidth_SOURCES = uniwidth/test-u8-strwidth.c
+test_u8_width_SOURCES = uniwidth/test-u8-width.c
+test_uc_width_SOURCES = uniwidth/test-uc_width.c
+test_uc_width2_SOURCES = uniwidth/test-uc_width2.c
+
+# Ensure that ../lib/config.h is seen before ../config.h.
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/lib -I$(top_builddir)
+
+# For debugging memory leaks and memory allocation bugs.
+# You should build with --disable-shared when using valgrind.
+CHECKER =
+#CHECKER = valgrind --tool=memcheck --suppressions=$(srcdir)/../lib/malloca.valgrind --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes
+#CHECKER = valgrind --tool=massif --format=html --depth=10 --alloc-fn=xmalloc --alloc-fn=xrealloc --stacks=no
+CHECKER_END_OF_COMMENTS =
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.gnulib $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-checkLIBRARIES:
+ -test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f libtests.a
+ $(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD)
+ $(AM_V_at)$(RANLIB) libtests.a
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+test-alloca-opt$(EXEEXT): $(test_alloca_opt_OBJECTS) $(test_alloca_opt_DEPENDENCIES)
+ @rm -f test-alloca-opt$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_alloca_opt_OBJECTS) $(test_alloca_opt_LDADD) $(LIBS)
+test-array-mergesort$(EXEEXT): $(test_array_mergesort_OBJECTS) $(test_array_mergesort_DEPENDENCIES)
+ @rm -f test-array-mergesort$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_array_mergesort_OBJECTS) $(test_array_mergesort_LDADD) $(LIBS)
+unictype/$(am__dirstamp):
+ @$(MKDIR_P) unictype
+ @: > unictype/$(am__dirstamp)
+unictype/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) unictype/$(DEPDIR)
+ @: > unictype/$(DEPDIR)/$(am__dirstamp)
+unictype/test-bidi_byname.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-bidi_byname$(EXEEXT): $(test_bidi_byname_OBJECTS) $(test_bidi_byname_DEPENDENCIES)
+ @rm -f test-bidi_byname$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_bidi_byname_OBJECTS) $(test_bidi_byname_LDADD) $(LIBS)
+unictype/test-bidi_name.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-bidi_name$(EXEEXT): $(test_bidi_name_OBJECTS) $(test_bidi_name_DEPENDENCIES)
+ @rm -f test-bidi_name$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_bidi_name_OBJECTS) $(test_bidi_name_LDADD) $(LIBS)
+unictype/test-bidi_of.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-bidi_of$(EXEEXT): $(test_bidi_of_OBJECTS) $(test_bidi_of_DEPENDENCIES)
+ @rm -f test-bidi_of$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_bidi_of_OBJECTS) $(test_bidi_of_LDADD) $(LIBS)
+unictype/test-bidi_test.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-bidi_test$(EXEEXT): $(test_bidi_test_OBJECTS) $(test_bidi_test_DEPENDENCIES)
+ @rm -f test-bidi_test$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_bidi_test_OBJECTS) $(test_bidi_test_LDADD) $(LIBS)
+unictype/test-block_list.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-block_list$(EXEEXT): $(test_block_list_OBJECTS) $(test_block_list_DEPENDENCIES)
+ @rm -f test-block_list$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_block_list_OBJECTS) $(test_block_list_LDADD) $(LIBS)
+unictype/test-block_of.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-block_of$(EXEEXT): $(test_block_of_OBJECTS) $(test_block_of_DEPENDENCIES)
+ @rm -f test-block_of$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_block_of_OBJECTS) $(test_block_of_LDADD) $(LIBS)
+unictype/test-block_test.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-block_test$(EXEEXT): $(test_block_test_OBJECTS) $(test_block_test_DEPENDENCIES)
+ @rm -f test-block_test$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_block_test_OBJECTS) $(test_block_test_LDADD) $(LIBS)
+test-c-ctype$(EXEEXT): $(test_c_ctype_OBJECTS) $(test_c_ctype_DEPENDENCIES)
+ @rm -f test-c-ctype$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_c_ctype_OBJECTS) $(test_c_ctype_LDADD) $(LIBS)
+test-c-strcasecmp$(EXEEXT): $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_DEPENDENCIES)
+ @rm -f test-c-strcasecmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_LDADD) $(LIBS)
+test-c-strncasecmp$(EXEEXT): $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_DEPENDENCIES)
+ @rm -f test-c-strncasecmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_LDADD) $(LIBS)
+uninorm/$(am__dirstamp):
+ @$(MKDIR_P) uninorm
+ @: > uninorm/$(am__dirstamp)
+uninorm/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) uninorm/$(DEPDIR)
+ @: > uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-canonical-decomposition.$(OBJEXT): \
+ uninorm/$(am__dirstamp) uninorm/$(DEPDIR)/$(am__dirstamp)
+test-canonical-decomposition$(EXEEXT): $(test_canonical_decomposition_OBJECTS) $(test_canonical_decomposition_DEPENDENCIES)
+ @rm -f test-canonical-decomposition$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_canonical_decomposition_OBJECTS) $(test_canonical_decomposition_LDADD) $(LIBS)
+unicase/$(am__dirstamp):
+ @$(MKDIR_P) unicase
+ @: > unicase/$(am__dirstamp)
+unicase/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) unicase/$(DEPDIR)
+ @: > unicase/$(DEPDIR)/$(am__dirstamp)
+unicase/test-cased.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-cased$(EXEEXT): $(test_cased_OBJECTS) $(test_cased_DEPENDENCIES)
+ @rm -f test-cased$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_cased_OBJECTS) $(test_cased_LDADD) $(LIBS)
+unictype/test-categ_C.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_C$(EXEEXT): $(test_categ_C_OBJECTS) $(test_categ_C_DEPENDENCIES)
+ @rm -f test-categ_C$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_C_OBJECTS) $(test_categ_C_LDADD) $(LIBS)
+unictype/test-categ_Cc.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Cc$(EXEEXT): $(test_categ_Cc_OBJECTS) $(test_categ_Cc_DEPENDENCIES)
+ @rm -f test-categ_Cc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Cc_OBJECTS) $(test_categ_Cc_LDADD) $(LIBS)
+unictype/test-categ_Cf.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Cf$(EXEEXT): $(test_categ_Cf_OBJECTS) $(test_categ_Cf_DEPENDENCIES)
+ @rm -f test-categ_Cf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Cf_OBJECTS) $(test_categ_Cf_LDADD) $(LIBS)
+unictype/test-categ_Cn.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Cn$(EXEEXT): $(test_categ_Cn_OBJECTS) $(test_categ_Cn_DEPENDENCIES)
+ @rm -f test-categ_Cn$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Cn_OBJECTS) $(test_categ_Cn_LDADD) $(LIBS)
+unictype/test-categ_Co.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Co$(EXEEXT): $(test_categ_Co_OBJECTS) $(test_categ_Co_DEPENDENCIES)
+ @rm -f test-categ_Co$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Co_OBJECTS) $(test_categ_Co_LDADD) $(LIBS)
+unictype/test-categ_Cs.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Cs$(EXEEXT): $(test_categ_Cs_OBJECTS) $(test_categ_Cs_DEPENDENCIES)
+ @rm -f test-categ_Cs$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Cs_OBJECTS) $(test_categ_Cs_LDADD) $(LIBS)
+unictype/test-categ_L.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_L$(EXEEXT): $(test_categ_L_OBJECTS) $(test_categ_L_DEPENDENCIES)
+ @rm -f test-categ_L$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_L_OBJECTS) $(test_categ_L_LDADD) $(LIBS)
+unictype/test-categ_Ll.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Ll$(EXEEXT): $(test_categ_Ll_OBJECTS) $(test_categ_Ll_DEPENDENCIES)
+ @rm -f test-categ_Ll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Ll_OBJECTS) $(test_categ_Ll_LDADD) $(LIBS)
+unictype/test-categ_Lm.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Lm$(EXEEXT): $(test_categ_Lm_OBJECTS) $(test_categ_Lm_DEPENDENCIES)
+ @rm -f test-categ_Lm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Lm_OBJECTS) $(test_categ_Lm_LDADD) $(LIBS)
+unictype/test-categ_Lo.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Lo$(EXEEXT): $(test_categ_Lo_OBJECTS) $(test_categ_Lo_DEPENDENCIES)
+ @rm -f test-categ_Lo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Lo_OBJECTS) $(test_categ_Lo_LDADD) $(LIBS)
+unictype/test-categ_Lt.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Lt$(EXEEXT): $(test_categ_Lt_OBJECTS) $(test_categ_Lt_DEPENDENCIES)
+ @rm -f test-categ_Lt$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Lt_OBJECTS) $(test_categ_Lt_LDADD) $(LIBS)
+unictype/test-categ_Lu.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Lu$(EXEEXT): $(test_categ_Lu_OBJECTS) $(test_categ_Lu_DEPENDENCIES)
+ @rm -f test-categ_Lu$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Lu_OBJECTS) $(test_categ_Lu_LDADD) $(LIBS)
+unictype/test-categ_M.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_M$(EXEEXT): $(test_categ_M_OBJECTS) $(test_categ_M_DEPENDENCIES)
+ @rm -f test-categ_M$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_M_OBJECTS) $(test_categ_M_LDADD) $(LIBS)
+unictype/test-categ_Mc.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Mc$(EXEEXT): $(test_categ_Mc_OBJECTS) $(test_categ_Mc_DEPENDENCIES)
+ @rm -f test-categ_Mc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Mc_OBJECTS) $(test_categ_Mc_LDADD) $(LIBS)
+unictype/test-categ_Me.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Me$(EXEEXT): $(test_categ_Me_OBJECTS) $(test_categ_Me_DEPENDENCIES)
+ @rm -f test-categ_Me$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Me_OBJECTS) $(test_categ_Me_LDADD) $(LIBS)
+unictype/test-categ_Mn.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Mn$(EXEEXT): $(test_categ_Mn_OBJECTS) $(test_categ_Mn_DEPENDENCIES)
+ @rm -f test-categ_Mn$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Mn_OBJECTS) $(test_categ_Mn_LDADD) $(LIBS)
+unictype/test-categ_N.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_N$(EXEEXT): $(test_categ_N_OBJECTS) $(test_categ_N_DEPENDENCIES)
+ @rm -f test-categ_N$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_N_OBJECTS) $(test_categ_N_LDADD) $(LIBS)
+unictype/test-categ_Nd.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Nd$(EXEEXT): $(test_categ_Nd_OBJECTS) $(test_categ_Nd_DEPENDENCIES)
+ @rm -f test-categ_Nd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Nd_OBJECTS) $(test_categ_Nd_LDADD) $(LIBS)
+unictype/test-categ_Nl.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Nl$(EXEEXT): $(test_categ_Nl_OBJECTS) $(test_categ_Nl_DEPENDENCIES)
+ @rm -f test-categ_Nl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Nl_OBJECTS) $(test_categ_Nl_LDADD) $(LIBS)
+unictype/test-categ_No.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_No$(EXEEXT): $(test_categ_No_OBJECTS) $(test_categ_No_DEPENDENCIES)
+ @rm -f test-categ_No$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_No_OBJECTS) $(test_categ_No_LDADD) $(LIBS)
+unictype/test-categ_P.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_P$(EXEEXT): $(test_categ_P_OBJECTS) $(test_categ_P_DEPENDENCIES)
+ @rm -f test-categ_P$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_P_OBJECTS) $(test_categ_P_LDADD) $(LIBS)
+unictype/test-categ_Pc.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Pc$(EXEEXT): $(test_categ_Pc_OBJECTS) $(test_categ_Pc_DEPENDENCIES)
+ @rm -f test-categ_Pc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Pc_OBJECTS) $(test_categ_Pc_LDADD) $(LIBS)
+unictype/test-categ_Pd.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Pd$(EXEEXT): $(test_categ_Pd_OBJECTS) $(test_categ_Pd_DEPENDENCIES)
+ @rm -f test-categ_Pd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Pd_OBJECTS) $(test_categ_Pd_LDADD) $(LIBS)
+unictype/test-categ_Pe.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Pe$(EXEEXT): $(test_categ_Pe_OBJECTS) $(test_categ_Pe_DEPENDENCIES)
+ @rm -f test-categ_Pe$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Pe_OBJECTS) $(test_categ_Pe_LDADD) $(LIBS)
+unictype/test-categ_Pf.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Pf$(EXEEXT): $(test_categ_Pf_OBJECTS) $(test_categ_Pf_DEPENDENCIES)
+ @rm -f test-categ_Pf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Pf_OBJECTS) $(test_categ_Pf_LDADD) $(LIBS)
+unictype/test-categ_Pi.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Pi$(EXEEXT): $(test_categ_Pi_OBJECTS) $(test_categ_Pi_DEPENDENCIES)
+ @rm -f test-categ_Pi$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Pi_OBJECTS) $(test_categ_Pi_LDADD) $(LIBS)
+unictype/test-categ_Po.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Po$(EXEEXT): $(test_categ_Po_OBJECTS) $(test_categ_Po_DEPENDENCIES)
+ @rm -f test-categ_Po$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Po_OBJECTS) $(test_categ_Po_LDADD) $(LIBS)
+unictype/test-categ_Ps.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Ps$(EXEEXT): $(test_categ_Ps_OBJECTS) $(test_categ_Ps_DEPENDENCIES)
+ @rm -f test-categ_Ps$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Ps_OBJECTS) $(test_categ_Ps_LDADD) $(LIBS)
+unictype/test-categ_S.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_S$(EXEEXT): $(test_categ_S_OBJECTS) $(test_categ_S_DEPENDENCIES)
+ @rm -f test-categ_S$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_S_OBJECTS) $(test_categ_S_LDADD) $(LIBS)
+unictype/test-categ_Sc.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Sc$(EXEEXT): $(test_categ_Sc_OBJECTS) $(test_categ_Sc_DEPENDENCIES)
+ @rm -f test-categ_Sc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Sc_OBJECTS) $(test_categ_Sc_LDADD) $(LIBS)
+unictype/test-categ_Sk.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Sk$(EXEEXT): $(test_categ_Sk_OBJECTS) $(test_categ_Sk_DEPENDENCIES)
+ @rm -f test-categ_Sk$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Sk_OBJECTS) $(test_categ_Sk_LDADD) $(LIBS)
+unictype/test-categ_Sm.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Sm$(EXEEXT): $(test_categ_Sm_OBJECTS) $(test_categ_Sm_DEPENDENCIES)
+ @rm -f test-categ_Sm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Sm_OBJECTS) $(test_categ_Sm_LDADD) $(LIBS)
+unictype/test-categ_So.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_So$(EXEEXT): $(test_categ_So_OBJECTS) $(test_categ_So_DEPENDENCIES)
+ @rm -f test-categ_So$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_So_OBJECTS) $(test_categ_So_LDADD) $(LIBS)
+unictype/test-categ_Z.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Z$(EXEEXT): $(test_categ_Z_OBJECTS) $(test_categ_Z_DEPENDENCIES)
+ @rm -f test-categ_Z$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Z_OBJECTS) $(test_categ_Z_LDADD) $(LIBS)
+unictype/test-categ_Zl.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Zl$(EXEEXT): $(test_categ_Zl_OBJECTS) $(test_categ_Zl_DEPENDENCIES)
+ @rm -f test-categ_Zl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Zl_OBJECTS) $(test_categ_Zl_LDADD) $(LIBS)
+unictype/test-categ_Zp.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Zp$(EXEEXT): $(test_categ_Zp_OBJECTS) $(test_categ_Zp_DEPENDENCIES)
+ @rm -f test-categ_Zp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Zp_OBJECTS) $(test_categ_Zp_LDADD) $(LIBS)
+unictype/test-categ_Zs.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_Zs$(EXEEXT): $(test_categ_Zs_OBJECTS) $(test_categ_Zs_DEPENDENCIES)
+ @rm -f test-categ_Zs$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_Zs_OBJECTS) $(test_categ_Zs_LDADD) $(LIBS)
+unictype/test-categ_and.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_and$(EXEEXT): $(test_categ_and_OBJECTS) $(test_categ_and_DEPENDENCIES)
+ @rm -f test-categ_and$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_and_OBJECTS) $(test_categ_and_LDADD) $(LIBS)
+unictype/test-categ_and_not.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_and_not$(EXEEXT): $(test_categ_and_not_OBJECTS) $(test_categ_and_not_DEPENDENCIES)
+ @rm -f test-categ_and_not$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_and_not_OBJECTS) $(test_categ_and_not_LDADD) $(LIBS)
+unictype/test-categ_byname.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_byname$(EXEEXT): $(test_categ_byname_OBJECTS) $(test_categ_byname_DEPENDENCIES)
+ @rm -f test-categ_byname$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_byname_OBJECTS) $(test_categ_byname_LDADD) $(LIBS)
+unictype/test-categ_name.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_name$(EXEEXT): $(test_categ_name_OBJECTS) $(test_categ_name_DEPENDENCIES)
+ @rm -f test-categ_name$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_name_OBJECTS) $(test_categ_name_LDADD) $(LIBS)
+unictype/test-categ_none.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_none$(EXEEXT): $(test_categ_none_OBJECTS) $(test_categ_none_DEPENDENCIES)
+ @rm -f test-categ_none$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_none_OBJECTS) $(test_categ_none_LDADD) $(LIBS)
+unictype/test-categ_of.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_of$(EXEEXT): $(test_categ_of_OBJECTS) $(test_categ_of_DEPENDENCIES)
+ @rm -f test-categ_of$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_of_OBJECTS) $(test_categ_of_LDADD) $(LIBS)
+unictype/test-categ_or.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_or$(EXEEXT): $(test_categ_or_OBJECTS) $(test_categ_or_DEPENDENCIES)
+ @rm -f test-categ_or$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_or_OBJECTS) $(test_categ_or_LDADD) $(LIBS)
+unictype/test-categ_test_withtable.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-categ_test_withtable$(EXEEXT): $(test_categ_test_withtable_OBJECTS) $(test_categ_test_withtable_DEPENDENCIES)
+ @rm -f test-categ_test_withtable$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_categ_test_withtable_OBJECTS) $(test_categ_test_withtable_LDADD) $(LIBS)
+unictype/test-combining.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-combining$(EXEEXT): $(test_combining_OBJECTS) $(test_combining_DEPENDENCIES)
+ @rm -f test-combining$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_combining_OBJECTS) $(test_combining_LDADD) $(LIBS)
+uninorm/test-compat-decomposition.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-compat-decomposition$(EXEEXT): $(test_compat_decomposition_OBJECTS) $(test_compat_decomposition_DEPENDENCIES)
+ @rm -f test-compat-decomposition$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_compat_decomposition_OBJECTS) $(test_compat_decomposition_LDADD) $(LIBS)
+uninorm/test-composition.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-composition$(EXEEXT): $(test_composition_OBJECTS) $(test_composition_DEPENDENCIES)
+ @rm -f test-composition$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_composition_OBJECTS) $(test_composition_LDADD) $(LIBS)
+unictype/test-ctype_alnum.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_alnum$(EXEEXT): $(test_ctype_alnum_OBJECTS) $(test_ctype_alnum_DEPENDENCIES)
+ @rm -f test-ctype_alnum$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_alnum_OBJECTS) $(test_ctype_alnum_LDADD) $(LIBS)
+unictype/test-ctype_alpha.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_alpha$(EXEEXT): $(test_ctype_alpha_OBJECTS) $(test_ctype_alpha_DEPENDENCIES)
+ @rm -f test-ctype_alpha$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_alpha_OBJECTS) $(test_ctype_alpha_LDADD) $(LIBS)
+unictype/test-ctype_blank.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_blank$(EXEEXT): $(test_ctype_blank_OBJECTS) $(test_ctype_blank_DEPENDENCIES)
+ @rm -f test-ctype_blank$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_blank_OBJECTS) $(test_ctype_blank_LDADD) $(LIBS)
+unictype/test-ctype_cntrl.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_cntrl$(EXEEXT): $(test_ctype_cntrl_OBJECTS) $(test_ctype_cntrl_DEPENDENCIES)
+ @rm -f test-ctype_cntrl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_cntrl_OBJECTS) $(test_ctype_cntrl_LDADD) $(LIBS)
+unictype/test-ctype_digit.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_digit$(EXEEXT): $(test_ctype_digit_OBJECTS) $(test_ctype_digit_DEPENDENCIES)
+ @rm -f test-ctype_digit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_digit_OBJECTS) $(test_ctype_digit_LDADD) $(LIBS)
+unictype/test-ctype_graph.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_graph$(EXEEXT): $(test_ctype_graph_OBJECTS) $(test_ctype_graph_DEPENDENCIES)
+ @rm -f test-ctype_graph$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_graph_OBJECTS) $(test_ctype_graph_LDADD) $(LIBS)
+unictype/test-ctype_lower.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_lower$(EXEEXT): $(test_ctype_lower_OBJECTS) $(test_ctype_lower_DEPENDENCIES)
+ @rm -f test-ctype_lower$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_lower_OBJECTS) $(test_ctype_lower_LDADD) $(LIBS)
+unictype/test-ctype_print.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_print$(EXEEXT): $(test_ctype_print_OBJECTS) $(test_ctype_print_DEPENDENCIES)
+ @rm -f test-ctype_print$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_print_OBJECTS) $(test_ctype_print_LDADD) $(LIBS)
+unictype/test-ctype_punct.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_punct$(EXEEXT): $(test_ctype_punct_OBJECTS) $(test_ctype_punct_DEPENDENCIES)
+ @rm -f test-ctype_punct$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_punct_OBJECTS) $(test_ctype_punct_LDADD) $(LIBS)
+unictype/test-ctype_space.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_space$(EXEEXT): $(test_ctype_space_OBJECTS) $(test_ctype_space_DEPENDENCIES)
+ @rm -f test-ctype_space$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_space_OBJECTS) $(test_ctype_space_LDADD) $(LIBS)
+unictype/test-ctype_upper.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_upper$(EXEEXT): $(test_ctype_upper_OBJECTS) $(test_ctype_upper_DEPENDENCIES)
+ @rm -f test-ctype_upper$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_upper_OBJECTS) $(test_ctype_upper_LDADD) $(LIBS)
+unictype/test-ctype_xdigit.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-ctype_xdigit$(EXEEXT): $(test_ctype_xdigit_OBJECTS) $(test_ctype_xdigit_DEPENDENCIES)
+ @rm -f test-ctype_xdigit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ctype_xdigit_OBJECTS) $(test_ctype_xdigit_LDADD) $(LIBS)
+unictype/test-decdigit.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-decdigit$(EXEEXT): $(test_decdigit_OBJECTS) $(test_decdigit_DEPENDENCIES)
+ @rm -f test-decdigit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_decdigit_OBJECTS) $(test_decdigit_LDADD) $(LIBS)
+uninorm/test-decomposing-form.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-decomposing-form$(EXEEXT): $(test_decomposing_form_OBJECTS) $(test_decomposing_form_DEPENDENCIES)
+ @rm -f test-decomposing-form$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_decomposing_form_OBJECTS) $(test_decomposing_form_LDADD) $(LIBS)
+uninorm/test-decomposition.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-decomposition$(EXEEXT): $(test_decomposition_OBJECTS) $(test_decomposition_DEPENDENCIES)
+ @rm -f test-decomposition$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_decomposition_OBJECTS) $(test_decomposition_LDADD) $(LIBS)
+unictype/test-digit.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-digit$(EXEEXT): $(test_digit_OBJECTS) $(test_digit_DEPENDENCIES)
+ @rm -f test-digit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_digit_OBJECTS) $(test_digit_LDADD) $(LIBS)
+test-environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES)
+ @rm -f test-environ$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS)
+test-errno$(EXEEXT): $(test_errno_OBJECTS) $(test_errno_DEPENDENCIES)
+ @rm -f test-errno$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_errno_OBJECTS) $(test_errno_LDADD) $(LIBS)
+test-frexpl-nolibm$(EXEEXT): $(test_frexpl_nolibm_OBJECTS) $(test_frexpl_nolibm_DEPENDENCIES)
+ @rm -f test-frexpl-nolibm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_frexpl_nolibm_OBJECTS) $(test_frexpl_nolibm_LDADD) $(LIBS)
+test-fseterr$(EXEEXT): $(test_fseterr_OBJECTS) $(test_fseterr_DEPENDENCIES)
+ @rm -f test-fseterr$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_fseterr_OBJECTS) $(test_fseterr_LDADD) $(LIBS)
+test-iconv$(EXEEXT): $(test_iconv_OBJECTS) $(test_iconv_DEPENDENCIES)
+ @rm -f test-iconv$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_iconv_OBJECTS) $(test_iconv_LDADD) $(LIBS)
+unicase/test-ignorable.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-ignorable$(EXEEXT): $(test_ignorable_OBJECTS) $(test_ignorable_DEPENDENCIES)
+ @rm -f test-ignorable$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ignorable_OBJECTS) $(test_ignorable_LDADD) $(LIBS)
+test-isnand-nolibm$(EXEEXT): $(test_isnand_nolibm_OBJECTS) $(test_isnand_nolibm_DEPENDENCIES)
+ @rm -f test-isnand-nolibm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_isnand_nolibm_OBJECTS) $(test_isnand_nolibm_LDADD) $(LIBS)
+test-isnanf-nolibm$(EXEEXT): $(test_isnanf_nolibm_OBJECTS) $(test_isnanf_nolibm_DEPENDENCIES)
+ @rm -f test-isnanf-nolibm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_isnanf_nolibm_OBJECTS) $(test_isnanf_nolibm_LDADD) $(LIBS)
+test-isnanl-nolibm$(EXEEXT): $(test_isnanl_nolibm_OBJECTS) $(test_isnanl_nolibm_DEPENDENCIES)
+ @rm -f test-isnanl-nolibm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_isnanl_nolibm_OBJECTS) $(test_isnanl_nolibm_LDADD) $(LIBS)
+test-locale$(EXEEXT): $(test_locale_OBJECTS) $(test_locale_DEPENDENCIES)
+ @rm -f test-locale$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_locale_OBJECTS) $(test_locale_LDADD) $(LIBS)
+unicase/test-locale-language.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-locale-language$(EXEEXT): $(test_locale_language_OBJECTS) $(test_locale_language_DEPENDENCIES)
+ @rm -f test-locale-language$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_locale_language_OBJECTS) $(test_locale_language_LDADD) $(LIBS)
+test-localename$(EXEEXT): $(test_localename_OBJECTS) $(test_localename_DEPENDENCIES)
+ @rm -f test-localename$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_localename_OBJECTS) $(test_localename_LDADD) $(LIBS)
+test-malloca$(EXEEXT): $(test_malloca_OBJECTS) $(test_malloca_DEPENDENCIES)
+ @rm -f test-malloca$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_malloca_OBJECTS) $(test_malloca_LDADD) $(LIBS)
+test-math$(EXEEXT): $(test_math_OBJECTS) $(test_math_DEPENDENCIES)
+ @rm -f test-math$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_math_OBJECTS) $(test_math_LDADD) $(LIBS)
+test-mbrtowc$(EXEEXT): $(test_mbrtowc_OBJECTS) $(test_mbrtowc_DEPENDENCIES)
+ @rm -f test-mbrtowc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_mbrtowc_OBJECTS) $(test_mbrtowc_LDADD) $(LIBS)
+test-mbsinit$(EXEEXT): $(test_mbsinit_OBJECTS) $(test_mbsinit_DEPENDENCIES)
+ @rm -f test-mbsinit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_mbsinit_OBJECTS) $(test_mbsinit_LDADD) $(LIBS)
+test-memchr$(EXEEXT): $(test_memchr_OBJECTS) $(test_memchr_DEPENDENCIES)
+ @rm -f test-memchr$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_memchr_OBJECTS) $(test_memchr_LDADD) $(LIBS)
+unictype/test-mirror.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-mirror$(EXEEXT): $(test_mirror_OBJECTS) $(test_mirror_DEPENDENCIES)
+ @rm -f test-mirror$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_mirror_OBJECTS) $(test_mirror_LDADD) $(LIBS)
+uninorm/test-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u8-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u16-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u32-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-nfc$(EXEEXT): $(test_nfc_OBJECTS) $(test_nfc_DEPENDENCIES)
+ @rm -f test-nfc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_nfc_OBJECTS) $(test_nfc_LDADD) $(LIBS)
+uninorm/test-nfd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u8-nfd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u16-nfd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u32-nfd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-nfd$(EXEEXT): $(test_nfd_OBJECTS) $(test_nfd_DEPENDENCIES)
+ @rm -f test-nfd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_nfd_OBJECTS) $(test_nfd_LDADD) $(LIBS)
+uninorm/test-nfkc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u8-nfkc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u16-nfkc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u32-nfkc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-nfkc$(EXEEXT): $(test_nfkc_OBJECTS) $(test_nfkc_DEPENDENCIES)
+ @rm -f test-nfkc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_nfkc_OBJECTS) $(test_nfkc_LDADD) $(LIBS)
+uninorm/test-nfkd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u8-nfkd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u16-nfkd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u32-nfkd.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-nfkd$(EXEEXT): $(test_nfkd_OBJECTS) $(test_nfkd_DEPENDENCIES)
+ @rm -f test-nfkd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_nfkd_OBJECTS) $(test_nfkd_LDADD) $(LIBS)
+unictype/test-numeric.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-numeric$(EXEEXT): $(test_numeric_OBJECTS) $(test_numeric_DEPENDENCIES)
+ @rm -f test-numeric$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_numeric_OBJECTS) $(test_numeric_LDADD) $(LIBS)
+unictype/test-pr_alphabetic.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_alphabetic$(EXEEXT): $(test_pr_alphabetic_OBJECTS) $(test_pr_alphabetic_DEPENDENCIES)
+ @rm -f test-pr_alphabetic$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_alphabetic_OBJECTS) $(test_pr_alphabetic_LDADD) $(LIBS)
+unictype/test-pr_ascii_hex_digit.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_ascii_hex_digit$(EXEEXT): $(test_pr_ascii_hex_digit_OBJECTS) $(test_pr_ascii_hex_digit_DEPENDENCIES)
+ @rm -f test-pr_ascii_hex_digit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_ascii_hex_digit_OBJECTS) $(test_pr_ascii_hex_digit_LDADD) $(LIBS)
+unictype/test-pr_bidi_arabic_digit.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_arabic_digit$(EXEEXT): $(test_pr_bidi_arabic_digit_OBJECTS) $(test_pr_bidi_arabic_digit_DEPENDENCIES)
+ @rm -f test-pr_bidi_arabic_digit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_arabic_digit_OBJECTS) $(test_pr_bidi_arabic_digit_LDADD) $(LIBS)
+unictype/test-pr_bidi_arabic_right_to_left.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_arabic_right_to_left$(EXEEXT): $(test_pr_bidi_arabic_right_to_left_OBJECTS) $(test_pr_bidi_arabic_right_to_left_DEPENDENCIES)
+ @rm -f test-pr_bidi_arabic_right_to_left$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_arabic_right_to_left_OBJECTS) $(test_pr_bidi_arabic_right_to_left_LDADD) $(LIBS)
+unictype/test-pr_bidi_block_separator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_block_separator$(EXEEXT): $(test_pr_bidi_block_separator_OBJECTS) $(test_pr_bidi_block_separator_DEPENDENCIES)
+ @rm -f test-pr_bidi_block_separator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_block_separator_OBJECTS) $(test_pr_bidi_block_separator_LDADD) $(LIBS)
+unictype/test-pr_bidi_boundary_neutral.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_boundary_neutral$(EXEEXT): $(test_pr_bidi_boundary_neutral_OBJECTS) $(test_pr_bidi_boundary_neutral_DEPENDENCIES)
+ @rm -f test-pr_bidi_boundary_neutral$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_boundary_neutral_OBJECTS) $(test_pr_bidi_boundary_neutral_LDADD) $(LIBS)
+unictype/test-pr_bidi_common_separator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_common_separator$(EXEEXT): $(test_pr_bidi_common_separator_OBJECTS) $(test_pr_bidi_common_separator_DEPENDENCIES)
+ @rm -f test-pr_bidi_common_separator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_common_separator_OBJECTS) $(test_pr_bidi_common_separator_LDADD) $(LIBS)
+unictype/test-pr_bidi_control.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_control$(EXEEXT): $(test_pr_bidi_control_OBJECTS) $(test_pr_bidi_control_DEPENDENCIES)
+ @rm -f test-pr_bidi_control$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_control_OBJECTS) $(test_pr_bidi_control_LDADD) $(LIBS)
+unictype/test-pr_bidi_embedding_or_override.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_embedding_or_override$(EXEEXT): $(test_pr_bidi_embedding_or_override_OBJECTS) $(test_pr_bidi_embedding_or_override_DEPENDENCIES)
+ @rm -f test-pr_bidi_embedding_or_override$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_embedding_or_override_OBJECTS) $(test_pr_bidi_embedding_or_override_LDADD) $(LIBS)
+unictype/test-pr_bidi_eur_num_separator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_eur_num_separator$(EXEEXT): $(test_pr_bidi_eur_num_separator_OBJECTS) $(test_pr_bidi_eur_num_separator_DEPENDENCIES)
+ @rm -f test-pr_bidi_eur_num_separator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_eur_num_separator_OBJECTS) $(test_pr_bidi_eur_num_separator_LDADD) $(LIBS)
+unictype/test-pr_bidi_eur_num_terminator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_eur_num_terminator$(EXEEXT): $(test_pr_bidi_eur_num_terminator_OBJECTS) $(test_pr_bidi_eur_num_terminator_DEPENDENCIES)
+ @rm -f test-pr_bidi_eur_num_terminator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_eur_num_terminator_OBJECTS) $(test_pr_bidi_eur_num_terminator_LDADD) $(LIBS)
+unictype/test-pr_bidi_european_digit.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_european_digit$(EXEEXT): $(test_pr_bidi_european_digit_OBJECTS) $(test_pr_bidi_european_digit_DEPENDENCIES)
+ @rm -f test-pr_bidi_european_digit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_european_digit_OBJECTS) $(test_pr_bidi_european_digit_LDADD) $(LIBS)
+unictype/test-pr_bidi_hebrew_right_to_left.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_hebrew_right_to_left$(EXEEXT): $(test_pr_bidi_hebrew_right_to_left_OBJECTS) $(test_pr_bidi_hebrew_right_to_left_DEPENDENCIES)
+ @rm -f test-pr_bidi_hebrew_right_to_left$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_hebrew_right_to_left_OBJECTS) $(test_pr_bidi_hebrew_right_to_left_LDADD) $(LIBS)
+unictype/test-pr_bidi_left_to_right.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_left_to_right$(EXEEXT): $(test_pr_bidi_left_to_right_OBJECTS) $(test_pr_bidi_left_to_right_DEPENDENCIES)
+ @rm -f test-pr_bidi_left_to_right$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_left_to_right_OBJECTS) $(test_pr_bidi_left_to_right_LDADD) $(LIBS)
+unictype/test-pr_bidi_non_spacing_mark.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_non_spacing_mark$(EXEEXT): $(test_pr_bidi_non_spacing_mark_OBJECTS) $(test_pr_bidi_non_spacing_mark_DEPENDENCIES)
+ @rm -f test-pr_bidi_non_spacing_mark$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_non_spacing_mark_OBJECTS) $(test_pr_bidi_non_spacing_mark_LDADD) $(LIBS)
+unictype/test-pr_bidi_other_neutral.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_other_neutral$(EXEEXT): $(test_pr_bidi_other_neutral_OBJECTS) $(test_pr_bidi_other_neutral_DEPENDENCIES)
+ @rm -f test-pr_bidi_other_neutral$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_other_neutral_OBJECTS) $(test_pr_bidi_other_neutral_LDADD) $(LIBS)
+unictype/test-pr_bidi_pdf.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_pdf$(EXEEXT): $(test_pr_bidi_pdf_OBJECTS) $(test_pr_bidi_pdf_DEPENDENCIES)
+ @rm -f test-pr_bidi_pdf$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_pdf_OBJECTS) $(test_pr_bidi_pdf_LDADD) $(LIBS)
+unictype/test-pr_bidi_segment_separator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_segment_separator$(EXEEXT): $(test_pr_bidi_segment_separator_OBJECTS) $(test_pr_bidi_segment_separator_DEPENDENCIES)
+ @rm -f test-pr_bidi_segment_separator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_segment_separator_OBJECTS) $(test_pr_bidi_segment_separator_LDADD) $(LIBS)
+unictype/test-pr_bidi_whitespace.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_bidi_whitespace$(EXEEXT): $(test_pr_bidi_whitespace_OBJECTS) $(test_pr_bidi_whitespace_DEPENDENCIES)
+ @rm -f test-pr_bidi_whitespace$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_bidi_whitespace_OBJECTS) $(test_pr_bidi_whitespace_LDADD) $(LIBS)
+unictype/test-pr_byname.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_byname$(EXEEXT): $(test_pr_byname_OBJECTS) $(test_pr_byname_DEPENDENCIES)
+ @rm -f test-pr_byname$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_byname_OBJECTS) $(test_pr_byname_LDADD) $(LIBS)
+unictype/test-pr_combining.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_combining$(EXEEXT): $(test_pr_combining_OBJECTS) $(test_pr_combining_DEPENDENCIES)
+ @rm -f test-pr_combining$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_combining_OBJECTS) $(test_pr_combining_LDADD) $(LIBS)
+unictype/test-pr_composite.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_composite$(EXEEXT): $(test_pr_composite_OBJECTS) $(test_pr_composite_DEPENDENCIES)
+ @rm -f test-pr_composite$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_composite_OBJECTS) $(test_pr_composite_LDADD) $(LIBS)
+unictype/test-pr_currency_symbol.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_currency_symbol$(EXEEXT): $(test_pr_currency_symbol_OBJECTS) $(test_pr_currency_symbol_DEPENDENCIES)
+ @rm -f test-pr_currency_symbol$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_currency_symbol_OBJECTS) $(test_pr_currency_symbol_LDADD) $(LIBS)
+unictype/test-pr_dash.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_dash$(EXEEXT): $(test_pr_dash_OBJECTS) $(test_pr_dash_DEPENDENCIES)
+ @rm -f test-pr_dash$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_dash_OBJECTS) $(test_pr_dash_LDADD) $(LIBS)
+unictype/test-pr_decimal_digit.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_decimal_digit$(EXEEXT): $(test_pr_decimal_digit_OBJECTS) $(test_pr_decimal_digit_DEPENDENCIES)
+ @rm -f test-pr_decimal_digit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_decimal_digit_OBJECTS) $(test_pr_decimal_digit_LDADD) $(LIBS)
+unictype/test-pr_default_ignorable_code_point.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_default_ignorable_code_point$(EXEEXT): $(test_pr_default_ignorable_code_point_OBJECTS) $(test_pr_default_ignorable_code_point_DEPENDENCIES)
+ @rm -f test-pr_default_ignorable_code_point$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_default_ignorable_code_point_OBJECTS) $(test_pr_default_ignorable_code_point_LDADD) $(LIBS)
+unictype/test-pr_deprecated.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_deprecated$(EXEEXT): $(test_pr_deprecated_OBJECTS) $(test_pr_deprecated_DEPENDENCIES)
+ @rm -f test-pr_deprecated$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_deprecated_OBJECTS) $(test_pr_deprecated_LDADD) $(LIBS)
+unictype/test-pr_diacritic.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_diacritic$(EXEEXT): $(test_pr_diacritic_OBJECTS) $(test_pr_diacritic_DEPENDENCIES)
+ @rm -f test-pr_diacritic$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_diacritic_OBJECTS) $(test_pr_diacritic_LDADD) $(LIBS)
+unictype/test-pr_extender.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_extender$(EXEEXT): $(test_pr_extender_OBJECTS) $(test_pr_extender_DEPENDENCIES)
+ @rm -f test-pr_extender$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_extender_OBJECTS) $(test_pr_extender_LDADD) $(LIBS)
+unictype/test-pr_format_control.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_format_control$(EXEEXT): $(test_pr_format_control_OBJECTS) $(test_pr_format_control_DEPENDENCIES)
+ @rm -f test-pr_format_control$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_format_control_OBJECTS) $(test_pr_format_control_LDADD) $(LIBS)
+unictype/test-pr_grapheme_base.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_grapheme_base$(EXEEXT): $(test_pr_grapheme_base_OBJECTS) $(test_pr_grapheme_base_DEPENDENCIES)
+ @rm -f test-pr_grapheme_base$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_grapheme_base_OBJECTS) $(test_pr_grapheme_base_LDADD) $(LIBS)
+unictype/test-pr_grapheme_extend.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_grapheme_extend$(EXEEXT): $(test_pr_grapheme_extend_OBJECTS) $(test_pr_grapheme_extend_DEPENDENCIES)
+ @rm -f test-pr_grapheme_extend$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_grapheme_extend_OBJECTS) $(test_pr_grapheme_extend_LDADD) $(LIBS)
+unictype/test-pr_grapheme_link.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_grapheme_link$(EXEEXT): $(test_pr_grapheme_link_OBJECTS) $(test_pr_grapheme_link_DEPENDENCIES)
+ @rm -f test-pr_grapheme_link$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_grapheme_link_OBJECTS) $(test_pr_grapheme_link_LDADD) $(LIBS)
+unictype/test-pr_hex_digit.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_hex_digit$(EXEEXT): $(test_pr_hex_digit_OBJECTS) $(test_pr_hex_digit_DEPENDENCIES)
+ @rm -f test-pr_hex_digit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_hex_digit_OBJECTS) $(test_pr_hex_digit_LDADD) $(LIBS)
+unictype/test-pr_hyphen.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_hyphen$(EXEEXT): $(test_pr_hyphen_OBJECTS) $(test_pr_hyphen_DEPENDENCIES)
+ @rm -f test-pr_hyphen$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_hyphen_OBJECTS) $(test_pr_hyphen_LDADD) $(LIBS)
+unictype/test-pr_id_continue.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_id_continue$(EXEEXT): $(test_pr_id_continue_OBJECTS) $(test_pr_id_continue_DEPENDENCIES)
+ @rm -f test-pr_id_continue$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_id_continue_OBJECTS) $(test_pr_id_continue_LDADD) $(LIBS)
+unictype/test-pr_id_start.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_id_start$(EXEEXT): $(test_pr_id_start_OBJECTS) $(test_pr_id_start_DEPENDENCIES)
+ @rm -f test-pr_id_start$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_id_start_OBJECTS) $(test_pr_id_start_LDADD) $(LIBS)
+unictype/test-pr_ideographic.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_ideographic$(EXEEXT): $(test_pr_ideographic_OBJECTS) $(test_pr_ideographic_DEPENDENCIES)
+ @rm -f test-pr_ideographic$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_ideographic_OBJECTS) $(test_pr_ideographic_LDADD) $(LIBS)
+unictype/test-pr_ids_binary_operator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_ids_binary_operator$(EXEEXT): $(test_pr_ids_binary_operator_OBJECTS) $(test_pr_ids_binary_operator_DEPENDENCIES)
+ @rm -f test-pr_ids_binary_operator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_ids_binary_operator_OBJECTS) $(test_pr_ids_binary_operator_LDADD) $(LIBS)
+unictype/test-pr_ids_trinary_operator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_ids_trinary_operator$(EXEEXT): $(test_pr_ids_trinary_operator_OBJECTS) $(test_pr_ids_trinary_operator_DEPENDENCIES)
+ @rm -f test-pr_ids_trinary_operator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_ids_trinary_operator_OBJECTS) $(test_pr_ids_trinary_operator_LDADD) $(LIBS)
+unictype/test-pr_ignorable_control.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_ignorable_control$(EXEEXT): $(test_pr_ignorable_control_OBJECTS) $(test_pr_ignorable_control_DEPENDENCIES)
+ @rm -f test-pr_ignorable_control$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_ignorable_control_OBJECTS) $(test_pr_ignorable_control_LDADD) $(LIBS)
+unictype/test-pr_iso_control.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_iso_control$(EXEEXT): $(test_pr_iso_control_OBJECTS) $(test_pr_iso_control_DEPENDENCIES)
+ @rm -f test-pr_iso_control$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_iso_control_OBJECTS) $(test_pr_iso_control_LDADD) $(LIBS)
+unictype/test-pr_join_control.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_join_control$(EXEEXT): $(test_pr_join_control_OBJECTS) $(test_pr_join_control_DEPENDENCIES)
+ @rm -f test-pr_join_control$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_join_control_OBJECTS) $(test_pr_join_control_LDADD) $(LIBS)
+unictype/test-pr_left_of_pair.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_left_of_pair$(EXEEXT): $(test_pr_left_of_pair_OBJECTS) $(test_pr_left_of_pair_DEPENDENCIES)
+ @rm -f test-pr_left_of_pair$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_left_of_pair_OBJECTS) $(test_pr_left_of_pair_LDADD) $(LIBS)
+unictype/test-pr_line_separator.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_line_separator$(EXEEXT): $(test_pr_line_separator_OBJECTS) $(test_pr_line_separator_DEPENDENCIES)
+ @rm -f test-pr_line_separator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_line_separator_OBJECTS) $(test_pr_line_separator_LDADD) $(LIBS)
+unictype/test-pr_logical_order_exception.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_logical_order_exception$(EXEEXT): $(test_pr_logical_order_exception_OBJECTS) $(test_pr_logical_order_exception_DEPENDENCIES)
+ @rm -f test-pr_logical_order_exception$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_logical_order_exception_OBJECTS) $(test_pr_logical_order_exception_LDADD) $(LIBS)
+unictype/test-pr_lowercase.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_lowercase$(EXEEXT): $(test_pr_lowercase_OBJECTS) $(test_pr_lowercase_DEPENDENCIES)
+ @rm -f test-pr_lowercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_lowercase_OBJECTS) $(test_pr_lowercase_LDADD) $(LIBS)
+unictype/test-pr_math.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_math$(EXEEXT): $(test_pr_math_OBJECTS) $(test_pr_math_DEPENDENCIES)
+ @rm -f test-pr_math$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_math_OBJECTS) $(test_pr_math_LDADD) $(LIBS)
+unictype/test-pr_non_break.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_non_break$(EXEEXT): $(test_pr_non_break_OBJECTS) $(test_pr_non_break_DEPENDENCIES)
+ @rm -f test-pr_non_break$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_non_break_OBJECTS) $(test_pr_non_break_LDADD) $(LIBS)
+unictype/test-pr_not_a_character.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_not_a_character$(EXEEXT): $(test_pr_not_a_character_OBJECTS) $(test_pr_not_a_character_DEPENDENCIES)
+ @rm -f test-pr_not_a_character$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_not_a_character_OBJECTS) $(test_pr_not_a_character_LDADD) $(LIBS)
+unictype/test-pr_numeric.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_numeric$(EXEEXT): $(test_pr_numeric_OBJECTS) $(test_pr_numeric_DEPENDENCIES)
+ @rm -f test-pr_numeric$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_numeric_OBJECTS) $(test_pr_numeric_LDADD) $(LIBS)
+unictype/test-pr_other_alphabetic.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_alphabetic$(EXEEXT): $(test_pr_other_alphabetic_OBJECTS) $(test_pr_other_alphabetic_DEPENDENCIES)
+ @rm -f test-pr_other_alphabetic$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_alphabetic_OBJECTS) $(test_pr_other_alphabetic_LDADD) $(LIBS)
+unictype/test-pr_other_default_ignorable_code_point.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_default_ignorable_code_point$(EXEEXT): $(test_pr_other_default_ignorable_code_point_OBJECTS) $(test_pr_other_default_ignorable_code_point_DEPENDENCIES)
+ @rm -f test-pr_other_default_ignorable_code_point$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_default_ignorable_code_point_OBJECTS) $(test_pr_other_default_ignorable_code_point_LDADD) $(LIBS)
+unictype/test-pr_other_grapheme_extend.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_grapheme_extend$(EXEEXT): $(test_pr_other_grapheme_extend_OBJECTS) $(test_pr_other_grapheme_extend_DEPENDENCIES)
+ @rm -f test-pr_other_grapheme_extend$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_grapheme_extend_OBJECTS) $(test_pr_other_grapheme_extend_LDADD) $(LIBS)
+unictype/test-pr_other_id_continue.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_id_continue$(EXEEXT): $(test_pr_other_id_continue_OBJECTS) $(test_pr_other_id_continue_DEPENDENCIES)
+ @rm -f test-pr_other_id_continue$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_id_continue_OBJECTS) $(test_pr_other_id_continue_LDADD) $(LIBS)
+unictype/test-pr_other_id_start.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_id_start$(EXEEXT): $(test_pr_other_id_start_OBJECTS) $(test_pr_other_id_start_DEPENDENCIES)
+ @rm -f test-pr_other_id_start$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_id_start_OBJECTS) $(test_pr_other_id_start_LDADD) $(LIBS)
+unictype/test-pr_other_lowercase.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_lowercase$(EXEEXT): $(test_pr_other_lowercase_OBJECTS) $(test_pr_other_lowercase_DEPENDENCIES)
+ @rm -f test-pr_other_lowercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_lowercase_OBJECTS) $(test_pr_other_lowercase_LDADD) $(LIBS)
+unictype/test-pr_other_math.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_math$(EXEEXT): $(test_pr_other_math_OBJECTS) $(test_pr_other_math_DEPENDENCIES)
+ @rm -f test-pr_other_math$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_math_OBJECTS) $(test_pr_other_math_LDADD) $(LIBS)
+unictype/test-pr_other_uppercase.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_other_uppercase$(EXEEXT): $(test_pr_other_uppercase_OBJECTS) $(test_pr_other_uppercase_DEPENDENCIES)
+ @rm -f test-pr_other_uppercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_other_uppercase_OBJECTS) $(test_pr_other_uppercase_LDADD) $(LIBS)
+unictype/test-pr_paired_punctuation.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_paired_punctuation$(EXEEXT): $(test_pr_paired_punctuation_OBJECTS) $(test_pr_paired_punctuation_DEPENDENCIES)
+ @rm -f test-pr_paired_punctuation$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_paired_punctuation_OBJECTS) $(test_pr_paired_punctuation_LDADD) $(LIBS)
+unictype/test-pr_paragraph_separator.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_paragraph_separator$(EXEEXT): $(test_pr_paragraph_separator_OBJECTS) $(test_pr_paragraph_separator_DEPENDENCIES)
+ @rm -f test-pr_paragraph_separator$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_paragraph_separator_OBJECTS) $(test_pr_paragraph_separator_LDADD) $(LIBS)
+unictype/test-pr_pattern_syntax.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_pattern_syntax$(EXEEXT): $(test_pr_pattern_syntax_OBJECTS) $(test_pr_pattern_syntax_DEPENDENCIES)
+ @rm -f test-pr_pattern_syntax$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_pattern_syntax_OBJECTS) $(test_pr_pattern_syntax_LDADD) $(LIBS)
+unictype/test-pr_pattern_white_space.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_pattern_white_space$(EXEEXT): $(test_pr_pattern_white_space_OBJECTS) $(test_pr_pattern_white_space_DEPENDENCIES)
+ @rm -f test-pr_pattern_white_space$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_pattern_white_space_OBJECTS) $(test_pr_pattern_white_space_LDADD) $(LIBS)
+unictype/test-pr_private_use.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_private_use$(EXEEXT): $(test_pr_private_use_OBJECTS) $(test_pr_private_use_DEPENDENCIES)
+ @rm -f test-pr_private_use$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_private_use_OBJECTS) $(test_pr_private_use_LDADD) $(LIBS)
+unictype/test-pr_punctuation.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_punctuation$(EXEEXT): $(test_pr_punctuation_OBJECTS) $(test_pr_punctuation_DEPENDENCIES)
+ @rm -f test-pr_punctuation$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_punctuation_OBJECTS) $(test_pr_punctuation_LDADD) $(LIBS)
+unictype/test-pr_quotation_mark.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_quotation_mark$(EXEEXT): $(test_pr_quotation_mark_OBJECTS) $(test_pr_quotation_mark_DEPENDENCIES)
+ @rm -f test-pr_quotation_mark$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_quotation_mark_OBJECTS) $(test_pr_quotation_mark_LDADD) $(LIBS)
+unictype/test-pr_radical.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_radical$(EXEEXT): $(test_pr_radical_OBJECTS) $(test_pr_radical_DEPENDENCIES)
+ @rm -f test-pr_radical$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_radical_OBJECTS) $(test_pr_radical_LDADD) $(LIBS)
+unictype/test-pr_sentence_terminal.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_sentence_terminal$(EXEEXT): $(test_pr_sentence_terminal_OBJECTS) $(test_pr_sentence_terminal_DEPENDENCIES)
+ @rm -f test-pr_sentence_terminal$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_sentence_terminal_OBJECTS) $(test_pr_sentence_terminal_LDADD) $(LIBS)
+unictype/test-pr_soft_dotted.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_soft_dotted$(EXEEXT): $(test_pr_soft_dotted_OBJECTS) $(test_pr_soft_dotted_DEPENDENCIES)
+ @rm -f test-pr_soft_dotted$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_soft_dotted_OBJECTS) $(test_pr_soft_dotted_LDADD) $(LIBS)
+unictype/test-pr_space.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_space$(EXEEXT): $(test_pr_space_OBJECTS) $(test_pr_space_DEPENDENCIES)
+ @rm -f test-pr_space$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_space_OBJECTS) $(test_pr_space_LDADD) $(LIBS)
+unictype/test-pr_terminal_punctuation.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_terminal_punctuation$(EXEEXT): $(test_pr_terminal_punctuation_OBJECTS) $(test_pr_terminal_punctuation_DEPENDENCIES)
+ @rm -f test-pr_terminal_punctuation$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_terminal_punctuation_OBJECTS) $(test_pr_terminal_punctuation_LDADD) $(LIBS)
+unictype/test-pr_test.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_test$(EXEEXT): $(test_pr_test_OBJECTS) $(test_pr_test_DEPENDENCIES)
+ @rm -f test-pr_test$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_test_OBJECTS) $(test_pr_test_LDADD) $(LIBS)
+unictype/test-pr_titlecase.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_titlecase$(EXEEXT): $(test_pr_titlecase_OBJECTS) $(test_pr_titlecase_DEPENDENCIES)
+ @rm -f test-pr_titlecase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_titlecase_OBJECTS) $(test_pr_titlecase_LDADD) $(LIBS)
+unictype/test-pr_unassigned_code_value.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_unassigned_code_value$(EXEEXT): $(test_pr_unassigned_code_value_OBJECTS) $(test_pr_unassigned_code_value_DEPENDENCIES)
+ @rm -f test-pr_unassigned_code_value$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_unassigned_code_value_OBJECTS) $(test_pr_unassigned_code_value_LDADD) $(LIBS)
+unictype/test-pr_unified_ideograph.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_unified_ideograph$(EXEEXT): $(test_pr_unified_ideograph_OBJECTS) $(test_pr_unified_ideograph_DEPENDENCIES)
+ @rm -f test-pr_unified_ideograph$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_unified_ideograph_OBJECTS) $(test_pr_unified_ideograph_LDADD) $(LIBS)
+unictype/test-pr_uppercase.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_uppercase$(EXEEXT): $(test_pr_uppercase_OBJECTS) $(test_pr_uppercase_DEPENDENCIES)
+ @rm -f test-pr_uppercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_uppercase_OBJECTS) $(test_pr_uppercase_LDADD) $(LIBS)
+unictype/test-pr_variation_selector.$(OBJEXT): \
+ unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_variation_selector$(EXEEXT): $(test_pr_variation_selector_OBJECTS) $(test_pr_variation_selector_DEPENDENCIES)
+ @rm -f test-pr_variation_selector$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_variation_selector_OBJECTS) $(test_pr_variation_selector_LDADD) $(LIBS)
+unictype/test-pr_white_space.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_white_space$(EXEEXT): $(test_pr_white_space_OBJECTS) $(test_pr_white_space_DEPENDENCIES)
+ @rm -f test-pr_white_space$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_white_space_OBJECTS) $(test_pr_white_space_LDADD) $(LIBS)
+unictype/test-pr_xid_continue.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_xid_continue$(EXEEXT): $(test_pr_xid_continue_OBJECTS) $(test_pr_xid_continue_DEPENDENCIES)
+ @rm -f test-pr_xid_continue$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_xid_continue_OBJECTS) $(test_pr_xid_continue_LDADD) $(LIBS)
+unictype/test-pr_xid_start.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_xid_start$(EXEEXT): $(test_pr_xid_start_OBJECTS) $(test_pr_xid_start_DEPENDENCIES)
+ @rm -f test-pr_xid_start$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_xid_start_OBJECTS) $(test_pr_xid_start_LDADD) $(LIBS)
+unictype/test-pr_zero_width.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-pr_zero_width$(EXEEXT): $(test_pr_zero_width_OBJECTS) $(test_pr_zero_width_DEPENDENCIES)
+ @rm -f test-pr_zero_width$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_pr_zero_width_OBJECTS) $(test_pr_zero_width_LDADD) $(LIBS)
+test-printf-frexp$(EXEEXT): $(test_printf_frexp_OBJECTS) $(test_printf_frexp_DEPENDENCIES)
+ @rm -f test-printf-frexp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_printf_frexp_OBJECTS) $(test_printf_frexp_LDADD) $(LIBS)
+test-printf-frexpl$(EXEEXT): $(test_printf_frexpl_OBJECTS) $(test_printf_frexpl_DEPENDENCIES)
+ @rm -f test-printf-frexpl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_printf_frexpl_OBJECTS) $(test_printf_frexpl_LDADD) $(LIBS)
+unictype/test-scripts.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-scripts$(EXEEXT): $(test_scripts_OBJECTS) $(test_scripts_DEPENDENCIES)
+ @rm -f test-scripts$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_scripts_OBJECTS) $(test_scripts_LDADD) $(LIBS)
+test-signbit$(EXEEXT): $(test_signbit_OBJECTS) $(test_signbit_DEPENDENCIES)
+ @rm -f test-signbit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_signbit_OBJECTS) $(test_signbit_LDADD) $(LIBS)
+test-stdbool$(EXEEXT): $(test_stdbool_OBJECTS) $(test_stdbool_DEPENDENCIES)
+ @rm -f test-stdbool$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_stdbool_OBJECTS) $(test_stdbool_LDADD) $(LIBS)
+test-stdint$(EXEEXT): $(test_stdint_OBJECTS) $(test_stdint_DEPENDENCIES)
+ @rm -f test-stdint$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_stdint_OBJECTS) $(test_stdint_LDADD) $(LIBS)
+test-stdlib$(EXEEXT): $(test_stdlib_OBJECTS) $(test_stdlib_DEPENDENCIES)
+ @rm -f test-stdlib$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_stdlib_OBJECTS) $(test_stdlib_LDADD) $(LIBS)
+test-strerror$(EXEEXT): $(test_strerror_OBJECTS) $(test_strerror_DEPENDENCIES)
+ @rm -f test-strerror$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_strerror_OBJECTS) $(test_strerror_LDADD) $(LIBS)
+test-striconveh$(EXEEXT): $(test_striconveh_OBJECTS) $(test_striconveh_DEPENDENCIES)
+ @rm -f test-striconveh$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_striconveh_OBJECTS) $(test_striconveh_LDADD) $(LIBS)
+test-striconveha$(EXEEXT): $(test_striconveha_OBJECTS) $(test_striconveha_DEPENDENCIES)
+ @rm -f test-striconveha$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_striconveha_OBJECTS) $(test_striconveha_LDADD) $(LIBS)
+test-string$(EXEEXT): $(test_string_OBJECTS) $(test_string_DEPENDENCIES)
+ @rm -f test-string$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_string_OBJECTS) $(test_string_LDADD) $(LIBS)
+unictype/test-sy_c_ident.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-sy_c_ident$(EXEEXT): $(test_sy_c_ident_OBJECTS) $(test_sy_c_ident_DEPENDENCIES)
+ @rm -f test-sy_c_ident$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_sy_c_ident_OBJECTS) $(test_sy_c_ident_LDADD) $(LIBS)
+unictype/test-sy_c_whitespace.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-sy_c_whitespace$(EXEEXT): $(test_sy_c_whitespace_OBJECTS) $(test_sy_c_whitespace_DEPENDENCIES)
+ @rm -f test-sy_c_whitespace$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_sy_c_whitespace_OBJECTS) $(test_sy_c_whitespace_LDADD) $(LIBS)
+unictype/test-sy_java_ident.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-sy_java_ident$(EXEEXT): $(test_sy_java_ident_OBJECTS) $(test_sy_java_ident_DEPENDENCIES)
+ @rm -f test-sy_java_ident$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_sy_java_ident_OBJECTS) $(test_sy_java_ident_LDADD) $(LIBS)
+unictype/test-sy_java_whitespace.$(OBJEXT): unictype/$(am__dirstamp) \
+ unictype/$(DEPDIR)/$(am__dirstamp)
+test-sy_java_whitespace$(EXEEXT): $(test_sy_java_whitespace_OBJECTS) $(test_sy_java_whitespace_DEPENDENCIES)
+ @rm -f test-sy_java_whitespace$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_sy_java_whitespace_OBJECTS) $(test_sy_java_whitespace_LDADD) $(LIBS)
+unistdio/$(am__dirstamp):
+ @$(MKDIR_P) unistdio
+ @: > unistdio/$(am__dirstamp)
+unistdio/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) unistdio/$(DEPDIR)
+ @: > unistdio/$(DEPDIR)/$(am__dirstamp)
+unistdio/test-u16-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u16-asnprintf1$(EXEEXT): $(test_u16_asnprintf1_OBJECTS) $(test_u16_asnprintf1_DEPENDENCIES)
+ @rm -f test-u16-asnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_asnprintf1_OBJECTS) $(test_u16_asnprintf1_LDADD) $(LIBS)
+unicase/test-u16-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-casecmp$(EXEEXT): $(test_u16_casecmp_OBJECTS) $(test_u16_casecmp_DEPENDENCIES)
+ @rm -f test-u16-casecmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_casecmp_OBJECTS) $(test_u16_casecmp_LDADD) $(LIBS)
+unicase/test-u16-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-casecoll$(EXEEXT): $(test_u16_casecoll_OBJECTS) $(test_u16_casecoll_DEPENDENCIES)
+ @rm -f test-u16-casecoll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_casecoll_OBJECTS) $(test_u16_casecoll_LDADD) $(LIBS)
+unicase/test-u16-casefold.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-casefold$(EXEEXT): $(test_u16_casefold_OBJECTS) $(test_u16_casefold_DEPENDENCIES)
+ @rm -f test-u16-casefold$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_casefold_OBJECTS) $(test_u16_casefold_LDADD) $(LIBS)
+uniconv/$(am__dirstamp):
+ @$(MKDIR_P) uniconv
+ @: > uniconv/$(am__dirstamp)
+uniconv/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) uniconv/$(DEPDIR)
+ @: > uniconv/$(DEPDIR)/$(am__dirstamp)
+uniconv/test-u16-conv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u16-conv-from-enc$(EXEEXT): $(test_u16_conv_from_enc_OBJECTS) $(test_u16_conv_from_enc_DEPENDENCIES)
+ @rm -f test-u16-conv-from-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_conv_from_enc_OBJECTS) $(test_u16_conv_from_enc_LDADD) $(LIBS)
+uniconv/test-u16-conv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u16-conv-to-enc$(EXEEXT): $(test_u16_conv_to_enc_OBJECTS) $(test_u16_conv_to_enc_DEPENDENCIES)
+ @rm -f test-u16-conv-to-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_conv_to_enc_OBJECTS) $(test_u16_conv_to_enc_LDADD) $(LIBS)
+unicase/test-u16-is-cased.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-is-cased$(EXEEXT): $(test_u16_is_cased_OBJECTS) $(test_u16_is_cased_DEPENDENCIES)
+ @rm -f test-u16-is-cased$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_is_cased_OBJECTS) $(test_u16_is_cased_LDADD) $(LIBS)
+unicase/test-u16-is-casefolded.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-is-casefolded$(EXEEXT): $(test_u16_is_casefolded_OBJECTS) $(test_u16_is_casefolded_DEPENDENCIES)
+ @rm -f test-u16-is-casefolded$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_is_casefolded_OBJECTS) $(test_u16_is_casefolded_LDADD) $(LIBS)
+unicase/test-u16-is-lowercase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-is-lowercase$(EXEEXT): $(test_u16_is_lowercase_OBJECTS) $(test_u16_is_lowercase_DEPENDENCIES)
+ @rm -f test-u16-is-lowercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_is_lowercase_OBJECTS) $(test_u16_is_lowercase_LDADD) $(LIBS)
+unicase/test-u16-is-titlecase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-is-titlecase$(EXEEXT): $(test_u16_is_titlecase_OBJECTS) $(test_u16_is_titlecase_DEPENDENCIES)
+ @rm -f test-u16-is-titlecase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_is_titlecase_OBJECTS) $(test_u16_is_titlecase_LDADD) $(LIBS)
+unicase/test-u16-is-uppercase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-is-uppercase$(EXEEXT): $(test_u16_is_uppercase_OBJECTS) $(test_u16_is_uppercase_DEPENDENCIES)
+ @rm -f test-u16-is-uppercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_is_uppercase_OBJECTS) $(test_u16_is_uppercase_LDADD) $(LIBS)
+uninorm/test-u16-normcmp.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u16-normcmp$(EXEEXT): $(test_u16_normcmp_OBJECTS) $(test_u16_normcmp_DEPENDENCIES)
+ @rm -f test-u16-normcmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_normcmp_OBJECTS) $(test_u16_normcmp_LDADD) $(LIBS)
+uninorm/test-u16-normcoll.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u16-normcoll$(EXEEXT): $(test_u16_normcoll_OBJECTS) $(test_u16_normcoll_DEPENDENCIES)
+ @rm -f test-u16-normcoll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_normcoll_OBJECTS) $(test_u16_normcoll_LDADD) $(LIBS)
+unilbrk/$(am__dirstamp):
+ @$(MKDIR_P) unilbrk
+ @: > unilbrk/$(am__dirstamp)
+unilbrk/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) unilbrk/$(DEPDIR)
+ @: > unilbrk/$(DEPDIR)/$(am__dirstamp)
+unilbrk/test-u16-possible-linebreaks.$(OBJEXT): \
+ unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-u16-possible-linebreaks$(EXEEXT): $(test_u16_possible_linebreaks_OBJECTS) $(test_u16_possible_linebreaks_DEPENDENCIES)
+ @rm -f test-u16-possible-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_possible_linebreaks_OBJECTS) $(test_u16_possible_linebreaks_LDADD) $(LIBS)
+uniconv/test-u16-strconv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u16-strconv-from-enc$(EXEEXT): $(test_u16_strconv_from_enc_OBJECTS) $(test_u16_strconv_from_enc_DEPENDENCIES)
+ @rm -f test-u16-strconv-from-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_strconv_from_enc_OBJECTS) $(test_u16_strconv_from_enc_LDADD) $(LIBS)
+uniconv/test-u16-strconv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u16-strconv-to-enc$(EXEEXT): $(test_u16_strconv_to_enc_OBJECTS) $(test_u16_strconv_to_enc_DEPENDENCIES)
+ @rm -f test-u16-strconv-to-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_strconv_to_enc_OBJECTS) $(test_u16_strconv_to_enc_LDADD) $(LIBS)
+uniwidth/$(am__dirstamp):
+ @$(MKDIR_P) uniwidth
+ @: > uniwidth/$(am__dirstamp)
+uniwidth/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) uniwidth/$(DEPDIR)
+ @: > uniwidth/$(DEPDIR)/$(am__dirstamp)
+uniwidth/test-u16-strwidth.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-u16-strwidth$(EXEEXT): $(test_u16_strwidth_OBJECTS) $(test_u16_strwidth_DEPENDENCIES)
+ @rm -f test-u16-strwidth$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_strwidth_OBJECTS) $(test_u16_strwidth_LDADD) $(LIBS)
+unicase/test-u16-tolower.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-tolower$(EXEEXT): $(test_u16_tolower_OBJECTS) $(test_u16_tolower_DEPENDENCIES)
+ @rm -f test-u16-tolower$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_tolower_OBJECTS) $(test_u16_tolower_LDADD) $(LIBS)
+unicase/test-u16-totitle.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-totitle$(EXEEXT): $(test_u16_totitle_OBJECTS) $(test_u16_totitle_DEPENDENCIES)
+ @rm -f test-u16-totitle$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_totitle_OBJECTS) $(test_u16_totitle_LDADD) $(LIBS)
+unicase/test-u16-toupper.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u16-toupper$(EXEEXT): $(test_u16_toupper_OBJECTS) $(test_u16_toupper_DEPENDENCIES)
+ @rm -f test-u16-toupper$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_toupper_OBJECTS) $(test_u16_toupper_LDADD) $(LIBS)
+unistdio/test-u16-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u16-vasnprintf1$(EXEEXT): $(test_u16_vasnprintf1_OBJECTS) $(test_u16_vasnprintf1_DEPENDENCIES)
+ @rm -f test-u16-vasnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_vasnprintf1_OBJECTS) $(test_u16_vasnprintf1_LDADD) $(LIBS)
+unistdio/test-u16-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u16-vasnprintf2$(EXEEXT): $(test_u16_vasnprintf2_OBJECTS) $(test_u16_vasnprintf2_DEPENDENCIES)
+ @rm -f test-u16-vasnprintf2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_vasnprintf2_OBJECTS) $(test_u16_vasnprintf2_LDADD) $(LIBS)
+unistdio/test-u16-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u16-vasnprintf3$(EXEEXT): $(test_u16_vasnprintf3_OBJECTS) $(test_u16_vasnprintf3_DEPENDENCIES)
+ @rm -f test-u16-vasnprintf3$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_vasnprintf3_OBJECTS) $(test_u16_vasnprintf3_LDADD) $(LIBS)
+unistdio/test-u16-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u16-vasprintf1$(EXEEXT): $(test_u16_vasprintf1_OBJECTS) $(test_u16_vasprintf1_DEPENDENCIES)
+ @rm -f test-u16-vasprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_vasprintf1_OBJECTS) $(test_u16_vasprintf1_LDADD) $(LIBS)
+unistdio/test-u16-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u16-vsnprintf1$(EXEEXT): $(test_u16_vsnprintf1_OBJECTS) $(test_u16_vsnprintf1_DEPENDENCIES)
+ @rm -f test-u16-vsnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_vsnprintf1_OBJECTS) $(test_u16_vsnprintf1_LDADD) $(LIBS)
+unistdio/test-u16-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u16-vsprintf1$(EXEEXT): $(test_u16_vsprintf1_OBJECTS) $(test_u16_vsprintf1_DEPENDENCIES)
+ @rm -f test-u16-vsprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_vsprintf1_OBJECTS) $(test_u16_vsprintf1_LDADD) $(LIBS)
+uniwidth/test-u16-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-u16-width$(EXEEXT): $(test_u16_width_OBJECTS) $(test_u16_width_DEPENDENCIES)
+ @rm -f test-u16-width$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_width_OBJECTS) $(test_u16_width_LDADD) $(LIBS)
+unilbrk/test-u16-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
+ unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-u16-width-linebreaks$(EXEEXT): $(test_u16_width_linebreaks_OBJECTS) $(test_u16_width_linebreaks_DEPENDENCIES)
+ @rm -f test-u16-width-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_width_linebreaks_OBJECTS) $(test_u16_width_linebreaks_LDADD) $(LIBS)
+uniwbrk/$(am__dirstamp):
+ @$(MKDIR_P) uniwbrk
+ @: > uniwbrk/$(am__dirstamp)
+uniwbrk/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) uniwbrk/$(DEPDIR)
+ @: > uniwbrk/$(DEPDIR)/$(am__dirstamp)
+uniwbrk/test-u16-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
+ uniwbrk/$(DEPDIR)/$(am__dirstamp)
+test-u16-wordbreaks$(EXEEXT): $(test_u16_wordbreaks_OBJECTS) $(test_u16_wordbreaks_DEPENDENCIES)
+ @rm -f test-u16-wordbreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u16_wordbreaks_OBJECTS) $(test_u16_wordbreaks_LDADD) $(LIBS)
+unistdio/test-u32-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u32-asnprintf1$(EXEEXT): $(test_u32_asnprintf1_OBJECTS) $(test_u32_asnprintf1_DEPENDENCIES)
+ @rm -f test-u32-asnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_asnprintf1_OBJECTS) $(test_u32_asnprintf1_LDADD) $(LIBS)
+unicase/test-u32-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-casecmp$(EXEEXT): $(test_u32_casecmp_OBJECTS) $(test_u32_casecmp_DEPENDENCIES)
+ @rm -f test-u32-casecmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_casecmp_OBJECTS) $(test_u32_casecmp_LDADD) $(LIBS)
+unicase/test-u32-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-casecoll$(EXEEXT): $(test_u32_casecoll_OBJECTS) $(test_u32_casecoll_DEPENDENCIES)
+ @rm -f test-u32-casecoll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_casecoll_OBJECTS) $(test_u32_casecoll_LDADD) $(LIBS)
+unicase/test-u32-casefold.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-casefold$(EXEEXT): $(test_u32_casefold_OBJECTS) $(test_u32_casefold_DEPENDENCIES)
+ @rm -f test-u32-casefold$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_casefold_OBJECTS) $(test_u32_casefold_LDADD) $(LIBS)
+uniconv/test-u32-conv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u32-conv-from-enc$(EXEEXT): $(test_u32_conv_from_enc_OBJECTS) $(test_u32_conv_from_enc_DEPENDENCIES)
+ @rm -f test-u32-conv-from-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_conv_from_enc_OBJECTS) $(test_u32_conv_from_enc_LDADD) $(LIBS)
+uniconv/test-u32-conv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u32-conv-to-enc$(EXEEXT): $(test_u32_conv_to_enc_OBJECTS) $(test_u32_conv_to_enc_DEPENDENCIES)
+ @rm -f test-u32-conv-to-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_conv_to_enc_OBJECTS) $(test_u32_conv_to_enc_LDADD) $(LIBS)
+unicase/test-u32-is-cased.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-is-cased$(EXEEXT): $(test_u32_is_cased_OBJECTS) $(test_u32_is_cased_DEPENDENCIES)
+ @rm -f test-u32-is-cased$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_is_cased_OBJECTS) $(test_u32_is_cased_LDADD) $(LIBS)
+unicase/test-u32-is-casefolded.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-is-casefolded$(EXEEXT): $(test_u32_is_casefolded_OBJECTS) $(test_u32_is_casefolded_DEPENDENCIES)
+ @rm -f test-u32-is-casefolded$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_is_casefolded_OBJECTS) $(test_u32_is_casefolded_LDADD) $(LIBS)
+unicase/test-u32-is-lowercase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-is-lowercase$(EXEEXT): $(test_u32_is_lowercase_OBJECTS) $(test_u32_is_lowercase_DEPENDENCIES)
+ @rm -f test-u32-is-lowercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_is_lowercase_OBJECTS) $(test_u32_is_lowercase_LDADD) $(LIBS)
+unicase/test-u32-is-titlecase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-is-titlecase$(EXEEXT): $(test_u32_is_titlecase_OBJECTS) $(test_u32_is_titlecase_DEPENDENCIES)
+ @rm -f test-u32-is-titlecase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_is_titlecase_OBJECTS) $(test_u32_is_titlecase_LDADD) $(LIBS)
+unicase/test-u32-is-uppercase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-is-uppercase$(EXEEXT): $(test_u32_is_uppercase_OBJECTS) $(test_u32_is_uppercase_DEPENDENCIES)
+ @rm -f test-u32-is-uppercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_is_uppercase_OBJECTS) $(test_u32_is_uppercase_LDADD) $(LIBS)
+uninorm/test-u32-nfc-big.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+uninorm/test-u32-normalize-big.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u32-nfc-big$(EXEEXT): $(test_u32_nfc_big_OBJECTS) $(test_u32_nfc_big_DEPENDENCIES)
+ @rm -f test-u32-nfc-big$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_nfc_big_OBJECTS) $(test_u32_nfc_big_LDADD) $(LIBS)
+uninorm/test-u32-nfd-big.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u32-nfd-big$(EXEEXT): $(test_u32_nfd_big_OBJECTS) $(test_u32_nfd_big_DEPENDENCIES)
+ @rm -f test-u32-nfd-big$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_nfd_big_OBJECTS) $(test_u32_nfd_big_LDADD) $(LIBS)
+uninorm/test-u32-nfkc-big.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u32-nfkc-big$(EXEEXT): $(test_u32_nfkc_big_OBJECTS) $(test_u32_nfkc_big_DEPENDENCIES)
+ @rm -f test-u32-nfkc-big$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_nfkc_big_OBJECTS) $(test_u32_nfkc_big_LDADD) $(LIBS)
+uninorm/test-u32-nfkd-big.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u32-nfkd-big$(EXEEXT): $(test_u32_nfkd_big_OBJECTS) $(test_u32_nfkd_big_DEPENDENCIES)
+ @rm -f test-u32-nfkd-big$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_nfkd_big_OBJECTS) $(test_u32_nfkd_big_LDADD) $(LIBS)
+uninorm/test-u32-normcmp.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u32-normcmp$(EXEEXT): $(test_u32_normcmp_OBJECTS) $(test_u32_normcmp_DEPENDENCIES)
+ @rm -f test-u32-normcmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_normcmp_OBJECTS) $(test_u32_normcmp_LDADD) $(LIBS)
+uninorm/test-u32-normcoll.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u32-normcoll$(EXEEXT): $(test_u32_normcoll_OBJECTS) $(test_u32_normcoll_DEPENDENCIES)
+ @rm -f test-u32-normcoll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_normcoll_OBJECTS) $(test_u32_normcoll_LDADD) $(LIBS)
+unilbrk/test-u32-possible-linebreaks.$(OBJEXT): \
+ unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-u32-possible-linebreaks$(EXEEXT): $(test_u32_possible_linebreaks_OBJECTS) $(test_u32_possible_linebreaks_DEPENDENCIES)
+ @rm -f test-u32-possible-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_possible_linebreaks_OBJECTS) $(test_u32_possible_linebreaks_LDADD) $(LIBS)
+uniconv/test-u32-strconv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u32-strconv-from-enc$(EXEEXT): $(test_u32_strconv_from_enc_OBJECTS) $(test_u32_strconv_from_enc_DEPENDENCIES)
+ @rm -f test-u32-strconv-from-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_strconv_from_enc_OBJECTS) $(test_u32_strconv_from_enc_LDADD) $(LIBS)
+uniconv/test-u32-strconv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u32-strconv-to-enc$(EXEEXT): $(test_u32_strconv_to_enc_OBJECTS) $(test_u32_strconv_to_enc_DEPENDENCIES)
+ @rm -f test-u32-strconv-to-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_strconv_to_enc_OBJECTS) $(test_u32_strconv_to_enc_LDADD) $(LIBS)
+uniwidth/test-u32-strwidth.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-u32-strwidth$(EXEEXT): $(test_u32_strwidth_OBJECTS) $(test_u32_strwidth_DEPENDENCIES)
+ @rm -f test-u32-strwidth$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_strwidth_OBJECTS) $(test_u32_strwidth_LDADD) $(LIBS)
+unicase/test-u32-tolower.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-tolower$(EXEEXT): $(test_u32_tolower_OBJECTS) $(test_u32_tolower_DEPENDENCIES)
+ @rm -f test-u32-tolower$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_tolower_OBJECTS) $(test_u32_tolower_LDADD) $(LIBS)
+unicase/test-u32-totitle.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-totitle$(EXEEXT): $(test_u32_totitle_OBJECTS) $(test_u32_totitle_DEPENDENCIES)
+ @rm -f test-u32-totitle$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_totitle_OBJECTS) $(test_u32_totitle_LDADD) $(LIBS)
+unicase/test-u32-toupper.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u32-toupper$(EXEEXT): $(test_u32_toupper_OBJECTS) $(test_u32_toupper_DEPENDENCIES)
+ @rm -f test-u32-toupper$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_toupper_OBJECTS) $(test_u32_toupper_LDADD) $(LIBS)
+unistdio/test-u32-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u32-vasnprintf1$(EXEEXT): $(test_u32_vasnprintf1_OBJECTS) $(test_u32_vasnprintf1_DEPENDENCIES)
+ @rm -f test-u32-vasnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_vasnprintf1_OBJECTS) $(test_u32_vasnprintf1_LDADD) $(LIBS)
+unistdio/test-u32-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u32-vasnprintf2$(EXEEXT): $(test_u32_vasnprintf2_OBJECTS) $(test_u32_vasnprintf2_DEPENDENCIES)
+ @rm -f test-u32-vasnprintf2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_vasnprintf2_OBJECTS) $(test_u32_vasnprintf2_LDADD) $(LIBS)
+unistdio/test-u32-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u32-vasnprintf3$(EXEEXT): $(test_u32_vasnprintf3_OBJECTS) $(test_u32_vasnprintf3_DEPENDENCIES)
+ @rm -f test-u32-vasnprintf3$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_vasnprintf3_OBJECTS) $(test_u32_vasnprintf3_LDADD) $(LIBS)
+unistdio/test-u32-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u32-vasprintf1$(EXEEXT): $(test_u32_vasprintf1_OBJECTS) $(test_u32_vasprintf1_DEPENDENCIES)
+ @rm -f test-u32-vasprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_vasprintf1_OBJECTS) $(test_u32_vasprintf1_LDADD) $(LIBS)
+unistdio/test-u32-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u32-vsnprintf1$(EXEEXT): $(test_u32_vsnprintf1_OBJECTS) $(test_u32_vsnprintf1_DEPENDENCIES)
+ @rm -f test-u32-vsnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_vsnprintf1_OBJECTS) $(test_u32_vsnprintf1_LDADD) $(LIBS)
+unistdio/test-u32-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u32-vsprintf1$(EXEEXT): $(test_u32_vsprintf1_OBJECTS) $(test_u32_vsprintf1_DEPENDENCIES)
+ @rm -f test-u32-vsprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_vsprintf1_OBJECTS) $(test_u32_vsprintf1_LDADD) $(LIBS)
+uniwidth/test-u32-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-u32-width$(EXEEXT): $(test_u32_width_OBJECTS) $(test_u32_width_DEPENDENCIES)
+ @rm -f test-u32-width$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_width_OBJECTS) $(test_u32_width_LDADD) $(LIBS)
+unilbrk/test-u32-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
+ unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-u32-width-linebreaks$(EXEEXT): $(test_u32_width_linebreaks_OBJECTS) $(test_u32_width_linebreaks_DEPENDENCIES)
+ @rm -f test-u32-width-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_width_linebreaks_OBJECTS) $(test_u32_width_linebreaks_LDADD) $(LIBS)
+uniwbrk/test-u32-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
+ uniwbrk/$(DEPDIR)/$(am__dirstamp)
+test-u32-wordbreaks$(EXEEXT): $(test_u32_wordbreaks_OBJECTS) $(test_u32_wordbreaks_DEPENDENCIES)
+ @rm -f test-u32-wordbreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u32_wordbreaks_OBJECTS) $(test_u32_wordbreaks_LDADD) $(LIBS)
+unistdio/test-u8-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u8-asnprintf1$(EXEEXT): $(test_u8_asnprintf1_OBJECTS) $(test_u8_asnprintf1_DEPENDENCIES)
+ @rm -f test-u8-asnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_asnprintf1_OBJECTS) $(test_u8_asnprintf1_LDADD) $(LIBS)
+unicase/test-u8-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-casecmp$(EXEEXT): $(test_u8_casecmp_OBJECTS) $(test_u8_casecmp_DEPENDENCIES)
+ @rm -f test-u8-casecmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_casecmp_OBJECTS) $(test_u8_casecmp_LDADD) $(LIBS)
+unicase/test-u8-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-casecoll$(EXEEXT): $(test_u8_casecoll_OBJECTS) $(test_u8_casecoll_DEPENDENCIES)
+ @rm -f test-u8-casecoll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_casecoll_OBJECTS) $(test_u8_casecoll_LDADD) $(LIBS)
+unicase/test-u8-casefold.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-casefold$(EXEEXT): $(test_u8_casefold_OBJECTS) $(test_u8_casefold_DEPENDENCIES)
+ @rm -f test-u8-casefold$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_casefold_OBJECTS) $(test_u8_casefold_LDADD) $(LIBS)
+uniconv/test-u8-conv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u8-conv-from-enc$(EXEEXT): $(test_u8_conv_from_enc_OBJECTS) $(test_u8_conv_from_enc_DEPENDENCIES)
+ @rm -f test-u8-conv-from-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_conv_from_enc_OBJECTS) $(test_u8_conv_from_enc_LDADD) $(LIBS)
+uniconv/test-u8-conv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u8-conv-to-enc$(EXEEXT): $(test_u8_conv_to_enc_OBJECTS) $(test_u8_conv_to_enc_DEPENDENCIES)
+ @rm -f test-u8-conv-to-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_conv_to_enc_OBJECTS) $(test_u8_conv_to_enc_LDADD) $(LIBS)
+unicase/test-u8-is-cased.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-is-cased$(EXEEXT): $(test_u8_is_cased_OBJECTS) $(test_u8_is_cased_DEPENDENCIES)
+ @rm -f test-u8-is-cased$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_is_cased_OBJECTS) $(test_u8_is_cased_LDADD) $(LIBS)
+unicase/test-u8-is-casefolded.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-is-casefolded$(EXEEXT): $(test_u8_is_casefolded_OBJECTS) $(test_u8_is_casefolded_DEPENDENCIES)
+ @rm -f test-u8-is-casefolded$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_is_casefolded_OBJECTS) $(test_u8_is_casefolded_LDADD) $(LIBS)
+unicase/test-u8-is-lowercase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-is-lowercase$(EXEEXT): $(test_u8_is_lowercase_OBJECTS) $(test_u8_is_lowercase_DEPENDENCIES)
+ @rm -f test-u8-is-lowercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_is_lowercase_OBJECTS) $(test_u8_is_lowercase_LDADD) $(LIBS)
+unicase/test-u8-is-titlecase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-is-titlecase$(EXEEXT): $(test_u8_is_titlecase_OBJECTS) $(test_u8_is_titlecase_DEPENDENCIES)
+ @rm -f test-u8-is-titlecase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_is_titlecase_OBJECTS) $(test_u8_is_titlecase_LDADD) $(LIBS)
+unicase/test-u8-is-uppercase.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-is-uppercase$(EXEEXT): $(test_u8_is_uppercase_OBJECTS) $(test_u8_is_uppercase_DEPENDENCIES)
+ @rm -f test-u8-is-uppercase$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_is_uppercase_OBJECTS) $(test_u8_is_uppercase_LDADD) $(LIBS)
+uninorm/test-u8-normcmp.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u8-normcmp$(EXEEXT): $(test_u8_normcmp_OBJECTS) $(test_u8_normcmp_DEPENDENCIES)
+ @rm -f test-u8-normcmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_normcmp_OBJECTS) $(test_u8_normcmp_LDADD) $(LIBS)
+uninorm/test-u8-normcoll.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-u8-normcoll$(EXEEXT): $(test_u8_normcoll_OBJECTS) $(test_u8_normcoll_DEPENDENCIES)
+ @rm -f test-u8-normcoll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_normcoll_OBJECTS) $(test_u8_normcoll_LDADD) $(LIBS)
+unilbrk/test-u8-possible-linebreaks.$(OBJEXT): \
+ unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-u8-possible-linebreaks$(EXEEXT): $(test_u8_possible_linebreaks_OBJECTS) $(test_u8_possible_linebreaks_DEPENDENCIES)
+ @rm -f test-u8-possible-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_possible_linebreaks_OBJECTS) $(test_u8_possible_linebreaks_LDADD) $(LIBS)
+uniconv/test-u8-strconv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u8-strconv-from-enc$(EXEEXT): $(test_u8_strconv_from_enc_OBJECTS) $(test_u8_strconv_from_enc_DEPENDENCIES)
+ @rm -f test-u8-strconv-from-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_strconv_from_enc_OBJECTS) $(test_u8_strconv_from_enc_LDADD) $(LIBS)
+uniconv/test-u8-strconv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
+ uniconv/$(DEPDIR)/$(am__dirstamp)
+test-u8-strconv-to-enc$(EXEEXT): $(test_u8_strconv_to_enc_OBJECTS) $(test_u8_strconv_to_enc_DEPENDENCIES)
+ @rm -f test-u8-strconv-to-enc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_strconv_to_enc_OBJECTS) $(test_u8_strconv_to_enc_LDADD) $(LIBS)
+uniwidth/test-u8-strwidth.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-u8-strwidth$(EXEEXT): $(test_u8_strwidth_OBJECTS) $(test_u8_strwidth_DEPENDENCIES)
+ @rm -f test-u8-strwidth$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_strwidth_OBJECTS) $(test_u8_strwidth_LDADD) $(LIBS)
+unicase/test-u8-tolower.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-tolower$(EXEEXT): $(test_u8_tolower_OBJECTS) $(test_u8_tolower_DEPENDENCIES)
+ @rm -f test-u8-tolower$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_tolower_OBJECTS) $(test_u8_tolower_LDADD) $(LIBS)
+unicase/test-u8-totitle.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-totitle$(EXEEXT): $(test_u8_totitle_OBJECTS) $(test_u8_totitle_DEPENDENCIES)
+ @rm -f test-u8-totitle$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_totitle_OBJECTS) $(test_u8_totitle_LDADD) $(LIBS)
+unicase/test-u8-toupper.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-u8-toupper$(EXEEXT): $(test_u8_toupper_OBJECTS) $(test_u8_toupper_DEPENDENCIES)
+ @rm -f test-u8-toupper$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_toupper_OBJECTS) $(test_u8_toupper_LDADD) $(LIBS)
+unistdio/test-u8-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u8-vasnprintf1$(EXEEXT): $(test_u8_vasnprintf1_OBJECTS) $(test_u8_vasnprintf1_DEPENDENCIES)
+ @rm -f test-u8-vasnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_vasnprintf1_OBJECTS) $(test_u8_vasnprintf1_LDADD) $(LIBS)
+unistdio/test-u8-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u8-vasnprintf2$(EXEEXT): $(test_u8_vasnprintf2_OBJECTS) $(test_u8_vasnprintf2_DEPENDENCIES)
+ @rm -f test-u8-vasnprintf2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_vasnprintf2_OBJECTS) $(test_u8_vasnprintf2_LDADD) $(LIBS)
+unistdio/test-u8-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u8-vasnprintf3$(EXEEXT): $(test_u8_vasnprintf3_OBJECTS) $(test_u8_vasnprintf3_DEPENDENCIES)
+ @rm -f test-u8-vasnprintf3$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_vasnprintf3_OBJECTS) $(test_u8_vasnprintf3_LDADD) $(LIBS)
+unistdio/test-u8-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u8-vasprintf1$(EXEEXT): $(test_u8_vasprintf1_OBJECTS) $(test_u8_vasprintf1_DEPENDENCIES)
+ @rm -f test-u8-vasprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_vasprintf1_OBJECTS) $(test_u8_vasprintf1_LDADD) $(LIBS)
+unistdio/test-u8-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u8-vsnprintf1$(EXEEXT): $(test_u8_vsnprintf1_OBJECTS) $(test_u8_vsnprintf1_DEPENDENCIES)
+ @rm -f test-u8-vsnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_vsnprintf1_OBJECTS) $(test_u8_vsnprintf1_LDADD) $(LIBS)
+unistdio/test-u8-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-u8-vsprintf1$(EXEEXT): $(test_u8_vsprintf1_OBJECTS) $(test_u8_vsprintf1_DEPENDENCIES)
+ @rm -f test-u8-vsprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_vsprintf1_OBJECTS) $(test_u8_vsprintf1_LDADD) $(LIBS)
+uniwidth/test-u8-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-u8-width$(EXEEXT): $(test_u8_width_OBJECTS) $(test_u8_width_DEPENDENCIES)
+ @rm -f test-u8-width$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_width_OBJECTS) $(test_u8_width_LDADD) $(LIBS)
+unilbrk/test-u8-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
+ unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-u8-width-linebreaks$(EXEEXT): $(test_u8_width_linebreaks_OBJECTS) $(test_u8_width_linebreaks_DEPENDENCIES)
+ @rm -f test-u8-width-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_width_linebreaks_OBJECTS) $(test_u8_width_linebreaks_LDADD) $(LIBS)
+uniwbrk/test-u8-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
+ uniwbrk/$(DEPDIR)/$(am__dirstamp)
+test-u8-wordbreaks$(EXEEXT): $(test_u8_wordbreaks_OBJECTS) $(test_u8_wordbreaks_DEPENDENCIES)
+ @rm -f test-u8-wordbreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_u8_wordbreaks_OBJECTS) $(test_u8_wordbreaks_LDADD) $(LIBS)
+unicase/test-uc_tolower.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-uc_tolower$(EXEEXT): $(test_uc_tolower_OBJECTS) $(test_uc_tolower_DEPENDENCIES)
+ @rm -f test-uc_tolower$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_uc_tolower_OBJECTS) $(test_uc_tolower_LDADD) $(LIBS)
+unicase/test-uc_totitle.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-uc_totitle$(EXEEXT): $(test_uc_totitle_OBJECTS) $(test_uc_totitle_DEPENDENCIES)
+ @rm -f test-uc_totitle$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_uc_totitle_OBJECTS) $(test_uc_totitle_LDADD) $(LIBS)
+unicase/test-uc_toupper.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-uc_toupper$(EXEEXT): $(test_uc_toupper_OBJECTS) $(test_uc_toupper_DEPENDENCIES)
+ @rm -f test-uc_toupper$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_uc_toupper_OBJECTS) $(test_uc_toupper_LDADD) $(LIBS)
+uniwidth/test-uc_width.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-uc_width$(EXEEXT): $(test_uc_width_OBJECTS) $(test_uc_width_DEPENDENCIES)
+ @rm -f test-uc_width$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_uc_width_OBJECTS) $(test_uc_width_LDADD) $(LIBS)
+uniwidth/test-uc_width2.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ uniwidth/$(DEPDIR)/$(am__dirstamp)
+test-uc_width2$(EXEEXT): $(test_uc_width2_OBJECTS) $(test_uc_width2_DEPENDENCIES)
+ @rm -f test-uc_width2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_uc_width2_OBJECTS) $(test_uc_width2_LDADD) $(LIBS)
+unistdio/test-ulc-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-ulc-asnprintf1$(EXEEXT): $(test_ulc_asnprintf1_OBJECTS) $(test_ulc_asnprintf1_DEPENDENCIES)
+ @rm -f test-ulc-asnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_asnprintf1_OBJECTS) $(test_ulc_asnprintf1_LDADD) $(LIBS)
+unicase/test-ulc-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-ulc-casecmp$(EXEEXT): $(test_ulc_casecmp_OBJECTS) $(test_ulc_casecmp_DEPENDENCIES)
+ @rm -f test-ulc-casecmp$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_casecmp_OBJECTS) $(test_ulc_casecmp_LDADD) $(LIBS)
+unicase/test-ulc-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
+ unicase/$(DEPDIR)/$(am__dirstamp)
+test-ulc-casecoll$(EXEEXT): $(test_ulc_casecoll_OBJECTS) $(test_ulc_casecoll_DEPENDENCIES)
+ @rm -f test-ulc-casecoll$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_casecoll_OBJECTS) $(test_ulc_casecoll_LDADD) $(LIBS)
+unilbrk/test-ulc-possible-linebreaks.$(OBJEXT): \
+ unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-ulc-possible-linebreaks$(EXEEXT): $(test_ulc_possible_linebreaks_OBJECTS) $(test_ulc_possible_linebreaks_DEPENDENCIES)
+ @rm -f test-ulc-possible-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_possible_linebreaks_OBJECTS) $(test_ulc_possible_linebreaks_LDADD) $(LIBS)
+unistdio/test-ulc-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-ulc-vasnprintf1$(EXEEXT): $(test_ulc_vasnprintf1_OBJECTS) $(test_ulc_vasnprintf1_DEPENDENCIES)
+ @rm -f test-ulc-vasnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_vasnprintf1_OBJECTS) $(test_ulc_vasnprintf1_LDADD) $(LIBS)
+unistdio/test-ulc-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-ulc-vasnprintf2$(EXEEXT): $(test_ulc_vasnprintf2_OBJECTS) $(test_ulc_vasnprintf2_DEPENDENCIES)
+ @rm -f test-ulc-vasnprintf2$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_vasnprintf2_OBJECTS) $(test_ulc_vasnprintf2_LDADD) $(LIBS)
+unistdio/test-ulc-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-ulc-vasnprintf3$(EXEEXT): $(test_ulc_vasnprintf3_OBJECTS) $(test_ulc_vasnprintf3_DEPENDENCIES)
+ @rm -f test-ulc-vasnprintf3$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_vasnprintf3_OBJECTS) $(test_ulc_vasnprintf3_LDADD) $(LIBS)
+unistdio/test-ulc-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-ulc-vasprintf1$(EXEEXT): $(test_ulc_vasprintf1_OBJECTS) $(test_ulc_vasprintf1_DEPENDENCIES)
+ @rm -f test-ulc-vasprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_vasprintf1_OBJECTS) $(test_ulc_vasprintf1_LDADD) $(LIBS)
+unistdio/test-ulc-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-ulc-vsnprintf1$(EXEEXT): $(test_ulc_vsnprintf1_OBJECTS) $(test_ulc_vsnprintf1_DEPENDENCIES)
+ @rm -f test-ulc-vsnprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_vsnprintf1_OBJECTS) $(test_ulc_vsnprintf1_LDADD) $(LIBS)
+unistdio/test-ulc-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
+ unistdio/$(DEPDIR)/$(am__dirstamp)
+test-ulc-vsprintf1$(EXEEXT): $(test_ulc_vsprintf1_OBJECTS) $(test_ulc_vsprintf1_DEPENDENCIES)
+ @rm -f test-ulc-vsprintf1$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_vsprintf1_OBJECTS) $(test_ulc_vsprintf1_LDADD) $(LIBS)
+unilbrk/test-ulc-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
+ unilbrk/$(DEPDIR)/$(am__dirstamp)
+test-ulc-width-linebreaks$(EXEEXT): $(test_ulc_width_linebreaks_OBJECTS) $(test_ulc_width_linebreaks_DEPENDENCIES)
+ @rm -f test-ulc-width-linebreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_width_linebreaks_OBJECTS) $(test_ulc_width_linebreaks_LDADD) $(LIBS)
+uniwbrk/test-ulc-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
+ uniwbrk/$(DEPDIR)/$(am__dirstamp)
+test-ulc-wordbreaks$(EXEEXT): $(test_ulc_wordbreaks_OBJECTS) $(test_ulc_wordbreaks_DEPENDENCIES)
+ @rm -f test-ulc-wordbreaks$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_ulc_wordbreaks_OBJECTS) $(test_ulc_wordbreaks_LDADD) $(LIBS)
+uniname/$(am__dirstamp):
+ @$(MKDIR_P) uniname
+ @: > uniname/$(am__dirstamp)
+uniname/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) uniname/$(DEPDIR)
+ @: > uniname/$(DEPDIR)/$(am__dirstamp)
+uniname/test-uninames.$(OBJEXT): uniname/$(am__dirstamp) \
+ uniname/$(DEPDIR)/$(am__dirstamp)
+test-uninames$(EXEEXT): $(test_uninames_OBJECTS) $(test_uninames_DEPENDENCIES)
+ @rm -f test-uninames$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_uninames_OBJECTS) $(test_uninames_LDADD) $(LIBS)
+uninorm/test-uninorm-filter-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
+ uninorm/$(DEPDIR)/$(am__dirstamp)
+test-uninorm-filter-nfc$(EXEEXT): $(test_uninorm_filter_nfc_OBJECTS) $(test_uninorm_filter_nfc_DEPENDENCIES)
+ @rm -f test-uninorm-filter-nfc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_uninorm_filter_nfc_OBJECTS) $(test_uninorm_filter_nfc_LDADD) $(LIBS)
+test-unistd$(EXEEXT): $(test_unistd_OBJECTS) $(test_unistd_DEPENDENCIES)
+ @rm -f test-unistd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_unistd_OBJECTS) $(test_unistd_LDADD) $(LIBS)
+test-wchar$(EXEEXT): $(test_wchar_OBJECTS) $(test_wchar_DEPENDENCIES)
+ @rm -f test-wchar$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_wchar_OBJECTS) $(test_wchar_LDADD) $(LIBS)
+test-wctype$(EXEEXT): $(test_wctype_OBJECTS) $(test_wctype_DEPENDENCIES)
+ @rm -f test-wctype$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_wctype_OBJECTS) $(test_wctype_LDADD) $(LIBS)
+test-wcwidth$(EXEEXT): $(test_wcwidth_OBJECTS) $(test_wcwidth_DEPENDENCIES)
+ @rm -f test-wcwidth$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_wcwidth_OBJECTS) $(test_wcwidth_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f unicase/test-cased.$(OBJEXT)
+ -rm -f unicase/test-ignorable.$(OBJEXT)
+ -rm -f unicase/test-locale-language.$(OBJEXT)
+ -rm -f unicase/test-u16-casecmp.$(OBJEXT)
+ -rm -f unicase/test-u16-casecoll.$(OBJEXT)
+ -rm -f unicase/test-u16-casefold.$(OBJEXT)
+ -rm -f unicase/test-u16-is-cased.$(OBJEXT)
+ -rm -f unicase/test-u16-is-casefolded.$(OBJEXT)
+ -rm -f unicase/test-u16-is-lowercase.$(OBJEXT)
+ -rm -f unicase/test-u16-is-titlecase.$(OBJEXT)
+ -rm -f unicase/test-u16-is-uppercase.$(OBJEXT)
+ -rm -f unicase/test-u16-tolower.$(OBJEXT)
+ -rm -f unicase/test-u16-totitle.$(OBJEXT)
+ -rm -f unicase/test-u16-toupper.$(OBJEXT)
+ -rm -f unicase/test-u32-casecmp.$(OBJEXT)
+ -rm -f unicase/test-u32-casecoll.$(OBJEXT)
+ -rm -f unicase/test-u32-casefold.$(OBJEXT)
+ -rm -f unicase/test-u32-is-cased.$(OBJEXT)
+ -rm -f unicase/test-u32-is-casefolded.$(OBJEXT)
+ -rm -f unicase/test-u32-is-lowercase.$(OBJEXT)
+ -rm -f unicase/test-u32-is-titlecase.$(OBJEXT)
+ -rm -f unicase/test-u32-is-uppercase.$(OBJEXT)
+ -rm -f unicase/test-u32-tolower.$(OBJEXT)
+ -rm -f unicase/test-u32-totitle.$(OBJEXT)
+ -rm -f unicase/test-u32-toupper.$(OBJEXT)
+ -rm -f unicase/test-u8-casecmp.$(OBJEXT)
+ -rm -f unicase/test-u8-casecoll.$(OBJEXT)
+ -rm -f unicase/test-u8-casefold.$(OBJEXT)
+ -rm -f unicase/test-u8-is-cased.$(OBJEXT)
+ -rm -f unicase/test-u8-is-casefolded.$(OBJEXT)
+ -rm -f unicase/test-u8-is-lowercase.$(OBJEXT)
+ -rm -f unicase/test-u8-is-titlecase.$(OBJEXT)
+ -rm -f unicase/test-u8-is-uppercase.$(OBJEXT)
+ -rm -f unicase/test-u8-tolower.$(OBJEXT)
+ -rm -f unicase/test-u8-totitle.$(OBJEXT)
+ -rm -f unicase/test-u8-toupper.$(OBJEXT)
+ -rm -f unicase/test-uc_tolower.$(OBJEXT)
+ -rm -f unicase/test-uc_totitle.$(OBJEXT)
+ -rm -f unicase/test-uc_toupper.$(OBJEXT)
+ -rm -f unicase/test-ulc-casecmp.$(OBJEXT)
+ -rm -f unicase/test-ulc-casecoll.$(OBJEXT)
+ -rm -f uniconv/test-u16-conv-from-enc.$(OBJEXT)
+ -rm -f uniconv/test-u16-conv-to-enc.$(OBJEXT)
+ -rm -f uniconv/test-u16-strconv-from-enc.$(OBJEXT)
+ -rm -f uniconv/test-u16-strconv-to-enc.$(OBJEXT)
+ -rm -f uniconv/test-u32-conv-from-enc.$(OBJEXT)
+ -rm -f uniconv/test-u32-conv-to-enc.$(OBJEXT)
+ -rm -f uniconv/test-u32-strconv-from-enc.$(OBJEXT)
+ -rm -f uniconv/test-u32-strconv-to-enc.$(OBJEXT)
+ -rm -f uniconv/test-u8-conv-from-enc.$(OBJEXT)
+ -rm -f uniconv/test-u8-conv-to-enc.$(OBJEXT)
+ -rm -f uniconv/test-u8-strconv-from-enc.$(OBJEXT)
+ -rm -f uniconv/test-u8-strconv-to-enc.$(OBJEXT)
+ -rm -f unictype/test-bidi_byname.$(OBJEXT)
+ -rm -f unictype/test-bidi_name.$(OBJEXT)
+ -rm -f unictype/test-bidi_of.$(OBJEXT)
+ -rm -f unictype/test-bidi_test.$(OBJEXT)
+ -rm -f unictype/test-block_list.$(OBJEXT)
+ -rm -f unictype/test-block_of.$(OBJEXT)
+ -rm -f unictype/test-block_test.$(OBJEXT)
+ -rm -f unictype/test-categ_C.$(OBJEXT)
+ -rm -f unictype/test-categ_Cc.$(OBJEXT)
+ -rm -f unictype/test-categ_Cf.$(OBJEXT)
+ -rm -f unictype/test-categ_Cn.$(OBJEXT)
+ -rm -f unictype/test-categ_Co.$(OBJEXT)
+ -rm -f unictype/test-categ_Cs.$(OBJEXT)
+ -rm -f unictype/test-categ_L.$(OBJEXT)
+ -rm -f unictype/test-categ_Ll.$(OBJEXT)
+ -rm -f unictype/test-categ_Lm.$(OBJEXT)
+ -rm -f unictype/test-categ_Lo.$(OBJEXT)
+ -rm -f unictype/test-categ_Lt.$(OBJEXT)
+ -rm -f unictype/test-categ_Lu.$(OBJEXT)
+ -rm -f unictype/test-categ_M.$(OBJEXT)
+ -rm -f unictype/test-categ_Mc.$(OBJEXT)
+ -rm -f unictype/test-categ_Me.$(OBJEXT)
+ -rm -f unictype/test-categ_Mn.$(OBJEXT)
+ -rm -f unictype/test-categ_N.$(OBJEXT)
+ -rm -f unictype/test-categ_Nd.$(OBJEXT)
+ -rm -f unictype/test-categ_Nl.$(OBJEXT)
+ -rm -f unictype/test-categ_No.$(OBJEXT)
+ -rm -f unictype/test-categ_P.$(OBJEXT)
+ -rm -f unictype/test-categ_Pc.$(OBJEXT)
+ -rm -f unictype/test-categ_Pd.$(OBJEXT)
+ -rm -f unictype/test-categ_Pe.$(OBJEXT)
+ -rm -f unictype/test-categ_Pf.$(OBJEXT)
+ -rm -f unictype/test-categ_Pi.$(OBJEXT)
+ -rm -f unictype/test-categ_Po.$(OBJEXT)
+ -rm -f unictype/test-categ_Ps.$(OBJEXT)
+ -rm -f unictype/test-categ_S.$(OBJEXT)
+ -rm -f unictype/test-categ_Sc.$(OBJEXT)
+ -rm -f unictype/test-categ_Sk.$(OBJEXT)
+ -rm -f unictype/test-categ_Sm.$(OBJEXT)
+ -rm -f unictype/test-categ_So.$(OBJEXT)
+ -rm -f unictype/test-categ_Z.$(OBJEXT)
+ -rm -f unictype/test-categ_Zl.$(OBJEXT)
+ -rm -f unictype/test-categ_Zp.$(OBJEXT)
+ -rm -f unictype/test-categ_Zs.$(OBJEXT)
+ -rm -f unictype/test-categ_and.$(OBJEXT)
+ -rm -f unictype/test-categ_and_not.$(OBJEXT)
+ -rm -f unictype/test-categ_byname.$(OBJEXT)
+ -rm -f unictype/test-categ_name.$(OBJEXT)
+ -rm -f unictype/test-categ_none.$(OBJEXT)
+ -rm -f unictype/test-categ_of.$(OBJEXT)
+ -rm -f unictype/test-categ_or.$(OBJEXT)
+ -rm -f unictype/test-categ_test_withtable.$(OBJEXT)
+ -rm -f unictype/test-combining.$(OBJEXT)
+ -rm -f unictype/test-ctype_alnum.$(OBJEXT)
+ -rm -f unictype/test-ctype_alpha.$(OBJEXT)
+ -rm -f unictype/test-ctype_blank.$(OBJEXT)
+ -rm -f unictype/test-ctype_cntrl.$(OBJEXT)
+ -rm -f unictype/test-ctype_digit.$(OBJEXT)
+ -rm -f unictype/test-ctype_graph.$(OBJEXT)
+ -rm -f unictype/test-ctype_lower.$(OBJEXT)
+ -rm -f unictype/test-ctype_print.$(OBJEXT)
+ -rm -f unictype/test-ctype_punct.$(OBJEXT)
+ -rm -f unictype/test-ctype_space.$(OBJEXT)
+ -rm -f unictype/test-ctype_upper.$(OBJEXT)
+ -rm -f unictype/test-ctype_xdigit.$(OBJEXT)
+ -rm -f unictype/test-decdigit.$(OBJEXT)
+ -rm -f unictype/test-digit.$(OBJEXT)
+ -rm -f unictype/test-mirror.$(OBJEXT)
+ -rm -f unictype/test-numeric.$(OBJEXT)
+ -rm -f unictype/test-pr_alphabetic.$(OBJEXT)
+ -rm -f unictype/test-pr_ascii_hex_digit.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_arabic_digit.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_arabic_right_to_left.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_block_separator.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_boundary_neutral.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_common_separator.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_control.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_embedding_or_override.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_eur_num_separator.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_eur_num_terminator.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_european_digit.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_hebrew_right_to_left.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_left_to_right.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_non_spacing_mark.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_other_neutral.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_pdf.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_segment_separator.$(OBJEXT)
+ -rm -f unictype/test-pr_bidi_whitespace.$(OBJEXT)
+ -rm -f unictype/test-pr_byname.$(OBJEXT)
+ -rm -f unictype/test-pr_combining.$(OBJEXT)
+ -rm -f unictype/test-pr_composite.$(OBJEXT)
+ -rm -f unictype/test-pr_currency_symbol.$(OBJEXT)
+ -rm -f unictype/test-pr_dash.$(OBJEXT)
+ -rm -f unictype/test-pr_decimal_digit.$(OBJEXT)
+ -rm -f unictype/test-pr_default_ignorable_code_point.$(OBJEXT)
+ -rm -f unictype/test-pr_deprecated.$(OBJEXT)
+ -rm -f unictype/test-pr_diacritic.$(OBJEXT)
+ -rm -f unictype/test-pr_extender.$(OBJEXT)
+ -rm -f unictype/test-pr_format_control.$(OBJEXT)
+ -rm -f unictype/test-pr_grapheme_base.$(OBJEXT)
+ -rm -f unictype/test-pr_grapheme_extend.$(OBJEXT)
+ -rm -f unictype/test-pr_grapheme_link.$(OBJEXT)
+ -rm -f unictype/test-pr_hex_digit.$(OBJEXT)
+ -rm -f unictype/test-pr_hyphen.$(OBJEXT)
+ -rm -f unictype/test-pr_id_continue.$(OBJEXT)
+ -rm -f unictype/test-pr_id_start.$(OBJEXT)
+ -rm -f unictype/test-pr_ideographic.$(OBJEXT)
+ -rm -f unictype/test-pr_ids_binary_operator.$(OBJEXT)
+ -rm -f unictype/test-pr_ids_trinary_operator.$(OBJEXT)
+ -rm -f unictype/test-pr_ignorable_control.$(OBJEXT)
+ -rm -f unictype/test-pr_iso_control.$(OBJEXT)
+ -rm -f unictype/test-pr_join_control.$(OBJEXT)
+ -rm -f unictype/test-pr_left_of_pair.$(OBJEXT)
+ -rm -f unictype/test-pr_line_separator.$(OBJEXT)
+ -rm -f unictype/test-pr_logical_order_exception.$(OBJEXT)
+ -rm -f unictype/test-pr_lowercase.$(OBJEXT)
+ -rm -f unictype/test-pr_math.$(OBJEXT)
+ -rm -f unictype/test-pr_non_break.$(OBJEXT)
+ -rm -f unictype/test-pr_not_a_character.$(OBJEXT)
+ -rm -f unictype/test-pr_numeric.$(OBJEXT)
+ -rm -f unictype/test-pr_other_alphabetic.$(OBJEXT)
+ -rm -f unictype/test-pr_other_default_ignorable_code_point.$(OBJEXT)
+ -rm -f unictype/test-pr_other_grapheme_extend.$(OBJEXT)
+ -rm -f unictype/test-pr_other_id_continue.$(OBJEXT)
+ -rm -f unictype/test-pr_other_id_start.$(OBJEXT)
+ -rm -f unictype/test-pr_other_lowercase.$(OBJEXT)
+ -rm -f unictype/test-pr_other_math.$(OBJEXT)
+ -rm -f unictype/test-pr_other_uppercase.$(OBJEXT)
+ -rm -f unictype/test-pr_paired_punctuation.$(OBJEXT)
+ -rm -f unictype/test-pr_paragraph_separator.$(OBJEXT)
+ -rm -f unictype/test-pr_pattern_syntax.$(OBJEXT)
+ -rm -f unictype/test-pr_pattern_white_space.$(OBJEXT)
+ -rm -f unictype/test-pr_private_use.$(OBJEXT)
+ -rm -f unictype/test-pr_punctuation.$(OBJEXT)
+ -rm -f unictype/test-pr_quotation_mark.$(OBJEXT)
+ -rm -f unictype/test-pr_radical.$(OBJEXT)
+ -rm -f unictype/test-pr_sentence_terminal.$(OBJEXT)
+ -rm -f unictype/test-pr_soft_dotted.$(OBJEXT)
+ -rm -f unictype/test-pr_space.$(OBJEXT)
+ -rm -f unictype/test-pr_terminal_punctuation.$(OBJEXT)
+ -rm -f unictype/test-pr_test.$(OBJEXT)
+ -rm -f unictype/test-pr_titlecase.$(OBJEXT)
+ -rm -f unictype/test-pr_unassigned_code_value.$(OBJEXT)
+ -rm -f unictype/test-pr_unified_ideograph.$(OBJEXT)
+ -rm -f unictype/test-pr_uppercase.$(OBJEXT)
+ -rm -f unictype/test-pr_variation_selector.$(OBJEXT)
+ -rm -f unictype/test-pr_white_space.$(OBJEXT)
+ -rm -f unictype/test-pr_xid_continue.$(OBJEXT)
+ -rm -f unictype/test-pr_xid_start.$(OBJEXT)
+ -rm -f unictype/test-pr_zero_width.$(OBJEXT)
+ -rm -f unictype/test-scripts.$(OBJEXT)
+ -rm -f unictype/test-sy_c_ident.$(OBJEXT)
+ -rm -f unictype/test-sy_c_whitespace.$(OBJEXT)
+ -rm -f unictype/test-sy_java_ident.$(OBJEXT)
+ -rm -f unictype/test-sy_java_whitespace.$(OBJEXT)
+ -rm -f unilbrk/test-u16-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/test-u16-width-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/test-u32-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/test-u32-width-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/test-u8-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/test-u8-width-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/test-ulc-possible-linebreaks.$(OBJEXT)
+ -rm -f unilbrk/test-ulc-width-linebreaks.$(OBJEXT)
+ -rm -f uniname/test-uninames.$(OBJEXT)
+ -rm -f uninorm/test-canonical-decomposition.$(OBJEXT)
+ -rm -f uninorm/test-compat-decomposition.$(OBJEXT)
+ -rm -f uninorm/test-composition.$(OBJEXT)
+ -rm -f uninorm/test-decomposing-form.$(OBJEXT)
+ -rm -f uninorm/test-decomposition.$(OBJEXT)
+ -rm -f uninorm/test-nfc.$(OBJEXT)
+ -rm -f uninorm/test-nfd.$(OBJEXT)
+ -rm -f uninorm/test-nfkc.$(OBJEXT)
+ -rm -f uninorm/test-nfkd.$(OBJEXT)
+ -rm -f uninorm/test-u16-nfc.$(OBJEXT)
+ -rm -f uninorm/test-u16-nfd.$(OBJEXT)
+ -rm -f uninorm/test-u16-nfkc.$(OBJEXT)
+ -rm -f uninorm/test-u16-nfkd.$(OBJEXT)
+ -rm -f uninorm/test-u16-normcmp.$(OBJEXT)
+ -rm -f uninorm/test-u16-normcoll.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfc-big.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfc.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfd-big.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfd.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfkc-big.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfkc.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfkd-big.$(OBJEXT)
+ -rm -f uninorm/test-u32-nfkd.$(OBJEXT)
+ -rm -f uninorm/test-u32-normalize-big.$(OBJEXT)
+ -rm -f uninorm/test-u32-normcmp.$(OBJEXT)
+ -rm -f uninorm/test-u32-normcoll.$(OBJEXT)
+ -rm -f uninorm/test-u8-nfc.$(OBJEXT)
+ -rm -f uninorm/test-u8-nfd.$(OBJEXT)
+ -rm -f uninorm/test-u8-nfkc.$(OBJEXT)
+ -rm -f uninorm/test-u8-nfkd.$(OBJEXT)
+ -rm -f uninorm/test-u8-normcmp.$(OBJEXT)
+ -rm -f uninorm/test-u8-normcoll.$(OBJEXT)
+ -rm -f uninorm/test-uninorm-filter-nfc.$(OBJEXT)
+ -rm -f unistdio/test-u16-asnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u16-vasnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u16-vasnprintf2.$(OBJEXT)
+ -rm -f unistdio/test-u16-vasnprintf3.$(OBJEXT)
+ -rm -f unistdio/test-u16-vasprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u16-vsnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u16-vsprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u32-asnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u32-vasnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u32-vasnprintf2.$(OBJEXT)
+ -rm -f unistdio/test-u32-vasnprintf3.$(OBJEXT)
+ -rm -f unistdio/test-u32-vasprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u32-vsnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u32-vsprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u8-asnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u8-vasnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u8-vasnprintf2.$(OBJEXT)
+ -rm -f unistdio/test-u8-vasnprintf3.$(OBJEXT)
+ -rm -f unistdio/test-u8-vasprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u8-vsnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-u8-vsprintf1.$(OBJEXT)
+ -rm -f unistdio/test-ulc-asnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-ulc-vasnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-ulc-vasnprintf2.$(OBJEXT)
+ -rm -f unistdio/test-ulc-vasnprintf3.$(OBJEXT)
+ -rm -f unistdio/test-ulc-vasprintf1.$(OBJEXT)
+ -rm -f unistdio/test-ulc-vsnprintf1.$(OBJEXT)
+ -rm -f unistdio/test-ulc-vsprintf1.$(OBJEXT)
+ -rm -f uniwbrk/test-u16-wordbreaks.$(OBJEXT)
+ -rm -f uniwbrk/test-u32-wordbreaks.$(OBJEXT)
+ -rm -f uniwbrk/test-u8-wordbreaks.$(OBJEXT)
+ -rm -f uniwbrk/test-ulc-wordbreaks.$(OBJEXT)
+ -rm -f uniwidth/test-u16-strwidth.$(OBJEXT)
+ -rm -f uniwidth/test-u16-width.$(OBJEXT)
+ -rm -f uniwidth/test-u32-strwidth.$(OBJEXT)
+ -rm -f uniwidth/test-u32-width.$(OBJEXT)
+ -rm -f uniwidth/test-u8-strwidth.$(OBJEXT)
+ -rm -f uniwidth/test-u8-width.$(OBJEXT)
+ -rm -f uniwidth/test-uc_width.$(OBJEXT)
+ -rm -f uniwidth/test-uc_width2.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alloca-opt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-array-mergesort.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-ctype.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strncasecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-environ.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-errno.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-frexpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fseterr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isnand-nolibm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isnanf-nolibm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isnanl-nolibm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-locale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localename.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloca.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-math.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsinit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-memchr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-printf-frexp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-printf-frexpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-signbit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdbool.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdint.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdlib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconveh.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconveha.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-string.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unistd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wchar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wctype.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcwidth.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-cased.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-ignorable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-locale-language.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-casecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-casecoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-casefold.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-is-cased.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-is-casefolded.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-is-lowercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-is-titlecase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-is-uppercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-tolower.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-totitle.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u16-toupper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-casecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-casecoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-casefold.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-is-cased.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-is-casefolded.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-is-lowercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-is-titlecase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-is-uppercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-tolower.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-totitle.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u32-toupper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-casecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-casecoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-casefold.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-is-cased.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-is-casefolded.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-is-lowercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-is-titlecase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-is-uppercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-tolower.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-totitle.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-u8-toupper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-uc_tolower.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-uc_totitle.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-uc_toupper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-ulc-casecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unicase/$(DEPDIR)/test-ulc-casecoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u16-conv-from-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u16-conv-to-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u16-strconv-from-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u16-strconv-to-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u32-conv-from-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u32-conv-to-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u32-strconv-from-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u32-strconv-to-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u8-conv-from-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u8-conv-to-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u8-strconv-from-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u8-strconv-to-enc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_name.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_of.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-block_list.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-block_of.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-block_test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_C.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Cc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Cf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Cn.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Co.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Cs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_L.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Ll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Lm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Lo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Lt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Lu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_M.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Mc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Me.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Mn.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_N.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Nd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Nl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_No.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_P.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Pc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Pd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Pe.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Pf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Pi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Po.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Ps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_S.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Sc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Sk.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Sm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_So.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Z.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Zl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Zp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Zs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_and.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_and_not.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_name.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_none.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_of.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_or.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_test_withtable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-combining.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_alnum.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_alpha.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_blank.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_cntrl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_graph.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_lower.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_print.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_punct.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_space.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_upper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_xdigit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-decdigit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-mirror.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-numeric.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_alphabetic.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_ascii_hex_digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_arabic_digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_arabic_right_to_left.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_block_separator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_boundary_neutral.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_common_separator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_control.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_embedding_or_override.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_eur_num_separator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_eur_num_terminator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_european_digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_hebrew_right_to_left.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_left_to_right.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_non_spacing_mark.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_other_neutral.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_pdf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_segment_separator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_whitespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_combining.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_composite.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_currency_symbol.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_dash.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_decimal_digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_default_ignorable_code_point.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_deprecated.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_diacritic.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_extender.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_format_control.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_grapheme_base.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_grapheme_extend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_grapheme_link.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_hex_digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_hyphen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_id_continue.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_id_start.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_ideographic.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_ids_binary_operator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_ids_trinary_operator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_ignorable_control.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_iso_control.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_join_control.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_left_of_pair.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_line_separator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_logical_order_exception.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_lowercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_math.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_non_break.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_not_a_character.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_numeric.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_alphabetic.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_default_ignorable_code_point.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_grapheme_extend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_id_continue.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_id_start.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_lowercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_math.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_other_uppercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_paired_punctuation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_paragraph_separator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_pattern_syntax.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_pattern_white_space.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_private_use.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_punctuation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_quotation_mark.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_radical.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_sentence_terminal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_soft_dotted.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_space.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_terminal_punctuation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_titlecase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_unassigned_code_value.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_unified_ideograph.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_uppercase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_variation_selector.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_white_space.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_xid_continue.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_xid_start.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_zero_width.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-scripts.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-sy_c_ident.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-sy_c_whitespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-sy_java_ident.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-sy_java_whitespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u16-possible-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u16-width-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u32-possible-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u32-width-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u8-possible-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u8-width-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-ulc-possible-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-ulc-width-linebreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniname/$(DEPDIR)/test-uninames.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-canonical-decomposition.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-compat-decomposition.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-composition.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-decomposing-form.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-decomposition.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-nfc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-nfd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-nfkc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-nfkd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u16-nfc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u16-nfd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u16-nfkc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u16-nfkd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u16-normcmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u16-normcoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfc-big.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfd-big.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfkc-big.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfkc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfkd-big.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-nfkd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-normalize-big.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-normcmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u32-normcoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u8-nfc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u8-nfd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u8-nfkc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u8-nfkd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u8-normcmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-u8-normcoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uninorm/$(DEPDIR)/test-uninorm-filter-nfc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u16-asnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u16-vasnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u16-vasnprintf2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u16-vasnprintf3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u16-vasprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u16-vsnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u16-vsprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u32-asnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u32-vasnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u32-vasnprintf2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u32-vasnprintf3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u32-vasprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u32-vsnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u32-vsprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u8-asnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u8-vasnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u8-vasnprintf2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u8-vasnprintf3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u8-vasprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u8-vsnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-u8-vsprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-ulc-asnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-ulc-vasnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-ulc-vasnprintf2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-ulc-vasnprintf3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-ulc-vasprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-ulc-vsnprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistdio/$(DEPDIR)/test-ulc-vsprintf1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwbrk/$(DEPDIR)/test-u16-wordbreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwbrk/$(DEPDIR)/test-u32-wordbreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwbrk/$(DEPDIR)/test-u8-wordbreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwbrk/$(DEPDIR)/test-ulc-wordbreaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-u16-strwidth.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-u16-width.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-u32-strwidth.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-u32-width.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-u8-strwidth.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-u8-width.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-uc_width.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-uc_width2.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f unicase/$(DEPDIR)/$(am__dirstamp)
+ -rm -f unicase/$(am__dirstamp)
+ -rm -f uniconv/$(DEPDIR)/$(am__dirstamp)
+ -rm -f uniconv/$(am__dirstamp)
+ -rm -f unictype/$(DEPDIR)/$(am__dirstamp)
+ -rm -f unictype/$(am__dirstamp)
+ -rm -f unilbrk/$(DEPDIR)/$(am__dirstamp)
+ -rm -f unilbrk/$(am__dirstamp)
+ -rm -f uniname/$(DEPDIR)/$(am__dirstamp)
+ -rm -f uniname/$(am__dirstamp)
+ -rm -f uninorm/$(DEPDIR)/$(am__dirstamp)
+ -rm -f uninorm/$(am__dirstamp)
+ -rm -f unistdio/$(DEPDIR)/$(am__dirstamp)
+ -rm -f unistdio/$(am__dirstamp)
+ -rm -f uniwbrk/$(DEPDIR)/$(am__dirstamp)
+ -rm -f uniwbrk/$(am__dirstamp)
+ -rm -f uniwidth/$(DEPDIR)/$(am__dirstamp)
+ -rm -f uniwidth/$(am__dirstamp)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
+ clean-libtool clean-local clean-noinstLIBRARIES \
+ clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -rf ./$(DEPDIR) unicase/$(DEPDIR) uniconv/$(DEPDIR) unictype/$(DEPDIR) unilbrk/$(DEPDIR) uniname/$(DEPDIR) uninorm/$(DEPDIR) unistdio/$(DEPDIR) uniwbrk/$(DEPDIR) uniwidth/$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -rf ./$(DEPDIR) unicase/$(DEPDIR) uniconv/$(DEPDIR) unictype/$(DEPDIR) unilbrk/$(DEPDIR) uniname/$(DEPDIR) uninorm/$(DEPDIR) unistdio/$(DEPDIR) uniwbrk/$(DEPDIR) uniwidth/$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-local
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
+ check-am ctags-recursive install install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-TESTS check-am clean \
+ clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
+ clean-libtool clean-local clean-noinstLIBRARIES \
+ clean-noinstPROGRAMS ctags ctags-recursive distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
+ tags-recursive uninstall uninstall-am
+
+
+# We need the following in order to create <locale.h> when the system
+# doesn't have one that provides all definitions.
+locale.h: locale.in.h
+ rm -f $@-t $@
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
+ < $(srcdir)/locale.in.h; \
+ } > $@-t
+ mv $@-t $@
+
+# Clean up after Solaris cc.
+clean-local:
+ rm -rf SunWS_cache
+
+mostlyclean-local: mostlyclean-generic
+ @for dir in '' $(MOSTLYCLEANDIRS); do \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ :
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/error.c b/tests/error.c
new file mode 100644
index 0000000..3177bd5
--- /dev/null
+++ b/tests/error.c
@@ -0,0 +1,338 @@
+/* Error handler for noninteractive utilities
+ Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
+
+#if !_LIBC
+# include <config.h>
+#endif
+
+#include "error.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if !_LIBC && ENABLE_NLS
+# include "gettext.h"
+# define _(msgid) gettext (msgid)
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+# include <stdbool.h>
+# include <stdint.h>
+# include <wchar.h>
+# define mbsrtowcs __mbsrtowcs
+#endif
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+#ifndef _
+# define _(String) String
+#endif
+
+/* If NULL, error will flush stdout, then print on stderr the program
+ name, a colon and a space. Otherwise, error will call this
+ function without parameters instead. */
+void (*error_print_progname) (void);
+
+/* This variable is incremented each time `error' is called. */
+unsigned int error_message_count;
+
+#ifdef _LIBC
+/* In the GNU C library, there is a predefined variable for this. */
+
+# define program_name program_invocation_name
+# include <errno.h>
+# include <limits.h>
+# include <libio/libioP.h>
+
+/* In GNU libc we want do not want to use the common name `error' directly.
+ Instead make it a weak alias. */
+extern void __error (int status, int errnum, const char *message, ...)
+ __attribute__ ((__format__ (__printf__, 3, 4)));
+extern void __error_at_line (int status, int errnum, const char *file_name,
+ unsigned int line_number, const char *message,
+ ...)
+ __attribute__ ((__format__ (__printf__, 5, 6)));;
+# define error __error
+# define error_at_line __error_at_line
+
+# include <libio/iolibio.h>
+# define fflush(s) INTUSE(_IO_fflush) (s)
+# undef putc
+# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
+
+# include <bits/libc-lock.h>
+
+#else /* not _LIBC */
+
+# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
+# ifndef HAVE_DECL_STRERROR_R
+"this configure-time declaration test was not run"
+# endif
+char *strerror_r ();
+# endif
+
+/* The calling program should define program_name and set it to the
+ name of the executing program. */
+extern char *program_name;
+
+# if HAVE_STRERROR_R || defined strerror_r
+# define __strerror_r strerror_r
+# endif /* HAVE_STRERROR_R || defined strerror_r */
+#endif /* not _LIBC */
+
+static void
+print_errno_message (int errnum)
+{
+ char const *s;
+
+#if defined HAVE_STRERROR_R || _LIBC
+ char errbuf[1024];
+# if STRERROR_R_CHAR_P || _LIBC
+ s = __strerror_r (errnum, errbuf, sizeof errbuf);
+# else
+ if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
+ s = errbuf;
+ else
+ s = 0;
+# endif
+#else
+ s = strerror (errnum);
+#endif
+
+#if !_LIBC
+ if (! s)
+ s = _("Unknown system error");
+#endif
+
+#if _LIBC
+ __fxprintf (NULL, ": %s", s);
+#else
+ fprintf (stderr, ": %s", s);
+#endif
+}
+
+static void
+error_tail (int status, int errnum, const char *message, va_list args)
+{
+#if _LIBC
+ if (_IO_fwide (stderr, 0) > 0)
+ {
+# define ALLOCA_LIMIT 2000
+ size_t len = strlen (message) + 1;
+ wchar_t *wmessage = NULL;
+ mbstate_t st;
+ size_t res;
+ const char *tmp;
+ bool use_malloc = false;
+
+ while (1)
+ {
+ if (__libc_use_alloca (len * sizeof (wchar_t)))
+ wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
+ else
+ {
+ if (!use_malloc)
+ wmessage = NULL;
+
+ wchar_t *p = (wchar_t *) realloc (wmessage,
+ len * sizeof (wchar_t));
+ if (p == NULL)
+ {
+ free (wmessage);
+ fputws_unlocked (L"out of memory\n", stderr);
+ return;
+ }
+ wmessage = p;
+ use_malloc = true;
+ }
+
+ memset (&st, '\0', sizeof (st));
+ tmp = message;
+
+ res = mbsrtowcs (wmessage, &tmp, len, &st);
+ if (res != len)
+ break;
+
+ if (__builtin_expect (len >= SIZE_MAX / 2, 0))
+ {
+ /* This really should not happen if everything is fine. */
+ res = (size_t) -1;
+ break;
+ }
+
+ len *= 2;
+ }
+
+ if (res == (size_t) -1)
+ {
+ /* The string cannot be converted. */
+ if (use_malloc)
+ {
+ free (wmessage);
+ use_malloc = false;
+ }
+ wmessage = (wchar_t *) L"???";
+ }
+
+ __vfwprintf (stderr, wmessage, args);
+
+ if (use_malloc)
+ free (wmessage);
+ }
+ else
+#endif
+ vfprintf (stderr, message, args);
+ va_end (args);
+
+ ++error_message_count;
+ if (errnum)
+ print_errno_message (errnum);
+#if _LIBC
+ __fxprintf (NULL, "\n");
+#else
+ putc ('\n', stderr);
+#endif
+ fflush (stderr);
+ if (status)
+ exit (status);
+}
+
+
+/* Print the program name and error message MESSAGE, which is a printf-style
+ format string with optional args.
+ If ERRNUM is nonzero, print its corresponding system error message.
+ Exit with status STATUS if it is nonzero. */
+void
+error (int status, int errnum, const char *message, ...)
+{
+ va_list args;
+
+#if defined _LIBC && defined __libc_ptf_call
+ /* We do not want this call to be cut short by a thread
+ cancellation. Therefore disable cancellation for now. */
+ int state = PTHREAD_CANCEL_ENABLE;
+ __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+ 0);
+#endif
+
+ fflush (stdout);
+#ifdef _LIBC
+ _IO_flockfile (stderr);
+#endif
+ if (error_print_progname)
+ (*error_print_progname) ();
+ else
+ {
+#if _LIBC
+ __fxprintf (NULL, "%s: ", program_name);
+#else
+ fprintf (stderr, "%s: ", program_name);
+#endif
+ }
+
+ va_start (args, message);
+ error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+ _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+ __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+/* Sometimes we want to have at most one error per line. This
+ variable controls whether this mode is selected or not. */
+int error_one_per_line;
+
+void
+error_at_line (int status, int errnum, const char *file_name,
+ unsigned int line_number, const char *message, ...)
+{
+ va_list args;
+
+ if (error_one_per_line)
+ {
+ static const char *old_file_name;
+ static unsigned int old_line_number;
+
+ if (old_line_number == line_number
+ && (file_name == old_file_name
+ || strcmp (old_file_name, file_name) == 0))
+ /* Simply return and print nothing. */
+ return;
+
+ old_file_name = file_name;
+ old_line_number = line_number;
+ }
+
+#if defined _LIBC && defined __libc_ptf_call
+ /* We do not want this call to be cut short by a thread
+ cancellation. Therefore disable cancellation for now. */
+ int state = PTHREAD_CANCEL_ENABLE;
+ __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+ 0);
+#endif
+
+ fflush (stdout);
+#ifdef _LIBC
+ _IO_flockfile (stderr);
+#endif
+ if (error_print_progname)
+ (*error_print_progname) ();
+ else
+ {
+#if _LIBC
+ __fxprintf (NULL, "%s:", program_name);
+#else
+ fprintf (stderr, "%s:", program_name);
+#endif
+ }
+
+#if _LIBC
+ __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ",
+ file_name, line_number);
+#else
+ fprintf (stderr, file_name != NULL ? "%s:%d: " : " ",
+ file_name, line_number);
+#endif
+
+ va_start (args, message);
+ error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+ _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+ __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+#ifdef _LIBC
+/* Make the weak alias. */
+# undef error
+# undef error_at_line
+weak_alias (__error, error)
+weak_alias (__error_at_line, error_at_line)
+#endif
diff --git a/tests/error.h b/tests/error.h
new file mode 100644
index 0000000..6d49681
--- /dev/null
+++ b/tests/error.h
@@ -0,0 +1,65 @@
+/* Declaration for error-reporting function
+ Copyright (C) 1995, 1996, 1997, 2003, 2006, 2008 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _ERROR_H
+#define _ERROR_H 1
+
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later. */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+# define __attribute__(Spec) /* empty */
+# endif
+/* The __-protected variants of `format' and `printf' attributes
+ are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+# define __format__ format
+# define __printf__ printf
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Print a message with `fprintf (stderr, FORMAT, ...)';
+ if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+ If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
+
+extern void error (int __status, int __errnum, const char *__format, ...)
+ __attribute__ ((__format__ (__printf__, 3, 4)));
+
+extern void error_at_line (int __status, int __errnum, const char *__fname,
+ unsigned int __lineno, const char *__format, ...)
+ __attribute__ ((__format__ (__printf__, 5, 6)));
+
+/* If NULL, error will flush stdout, then print on stderr the program
+ name, a colon and a space. Otherwise, error will call this
+ function without parameters instead. */
+extern void (*error_print_progname) (void);
+
+/* This variable is incremented each time `error' is called. */
+extern unsigned int error_message_count;
+
+/* Sometimes we want to have at most one error per line. This
+ variable controls whether this mode is selected or not. */
+extern int error_one_per_line;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* error.h */
diff --git a/tests/exitfail.c b/tests/exitfail.c
new file mode 100644
index 0000000..6d1fe4a
--- /dev/null
+++ b/tests/exitfail.c
@@ -0,0 +1,24 @@
+/* Failure exit status
+
+ Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "exitfail.h"
+
+#include <stdlib.h>
+
+int volatile exit_failure = EXIT_FAILURE;
diff --git a/tests/exitfail.h b/tests/exitfail.h
new file mode 100644
index 0000000..713f259
--- /dev/null
+++ b/tests/exitfail.h
@@ -0,0 +1,18 @@
+/* Failure exit status
+
+ Copyright (C) 2002 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+extern int volatile exit_failure;
diff --git a/tests/gettext.h b/tests/gettext.h
new file mode 100644
index 0000000..8cf2dca
--- /dev/null
+++ b/tests/gettext.h
@@ -0,0 +1,279 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+ Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option. */
+#if ENABLE_NLS
+
+/* Get declarations of GNU message catalog functions. */
+# include <libintl.h>
+
+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+ the gettext() and ngettext() macros. This is an alternative to calling
+ textdomain(), and is useful for libraries. */
+# ifdef DEFAULT_TEXT_DOMAIN
+# undef gettext
+# define gettext(Msgid) \
+ dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+# undef ngettext
+# define ngettext(Msgid1, Msgid2, N) \
+ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+# endif
+
+#else
+
+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+ chokes if dcgettext is defined as a macro. So include it now, to make
+ later inclusions of <locale.h> a NOP. We don't include <libintl.h>
+ as well because people using "gettext.h" will not include <libintl.h>,
+ and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+ is OK. */
+#if defined(__sun)
+# include <locale.h>
+#endif
+
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+ <libintl.h>, which chokes if dcgettext is defined as a macro. So include
+ it now, to make later inclusions of <libintl.h> a NOP. */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+# include <libintl.h>
+# endif
+#endif
+
+/* Disabled NLS.
+ The casts to 'const char *' serve the purpose of producing warnings
+ for invalid uses of the value returned from these functions.
+ On pre-ANSI systems without 'const', the config.h file is supposed to
+ contain "#define const". */
+# undef gettext
+# define gettext(Msgid) ((const char *) (Msgid))
+# undef dgettext
+# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
+# undef dcgettext
+# define dcgettext(Domainname, Msgid, Category) \
+ ((void) (Category), dgettext (Domainname, Msgid))
+# undef ngettext
+# define ngettext(Msgid1, Msgid2, N) \
+ ((N) == 1 \
+ ? ((void) (Msgid2), (const char *) (Msgid1)) \
+ : ((void) (Msgid1), (const char *) (Msgid2)))
+# undef dngettext
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+ ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
+# undef dcngettext
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+ ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
+# undef textdomain
+# define textdomain(Domainname) ((const char *) (Domainname))
+# undef bindtextdomain
+# define bindtextdomain(Domainname, Dirname) \
+ ((void) (Domainname), (const char *) (Dirname))
+# undef bind_textdomain_codeset
+# define bind_textdomain_codeset(Domainname, Codeset) \
+ ((void) (Domainname), (const char *) (Codeset))
+
+#endif
+
+/* A pseudo function call that serves as a marker for the automated
+ extraction of messages, but does not call gettext(). The run-time
+ translation is done at a different place in the code.
+ The argument, String, should be a literal string. Concatenated strings
+ and other string expressions won't work.
+ The macro's expansion is not parenthesized, so that it is suitable as
+ initializer for static 'char[]' or 'const char[]' variables. */
+#define gettext_noop(String) String
+
+/* The separator between msgctxt and msgid in a .mo file. */
+#define GETTEXT_CONTEXT_GLUE "\004"
+
+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+ MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be
+ short and rarely need to change.
+ The letter 'p' stands for 'particular' or 'special'. */
+#ifdef DEFAULT_TEXT_DOMAIN
+# define pgettext(Msgctxt, Msgid) \
+ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#else
+# define pgettext(Msgctxt, Msgid) \
+ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#endif
+#define dpgettext(Domainname, Msgctxt, Msgid) \
+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+#ifdef DEFAULT_TEXT_DOMAIN
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#else
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#endif
+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+pgettext_aux (const char *domain,
+ const char *msg_ctxt_id, const char *msgid,
+ int category)
+{
+ const char *translation = dcgettext (domain, msg_ctxt_id, category);
+ if (translation == msg_ctxt_id)
+ return msgid;
+ else
+ return translation;
+}
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+npgettext_aux (const char *domain,
+ const char *msg_ctxt_id, const char *msgid,
+ const char *msgid_plural, unsigned long int n,
+ int category)
+{
+ const char *translation =
+ dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+ if (translation == msg_ctxt_id || translation == msgid_plural)
+ return (n == 1 ? msgid : msgid_plural);
+ else
+ return translation;
+}
+
+/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID
+ can be arbitrary expressions. But for string literals these macros are
+ less efficient than those above. */
+
+#include <string.h>
+
+#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
+ (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
+ /* || __STDC_VERSION__ >= 199901L */ )
+
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+#include <stdlib.h>
+#endif
+
+#define pgettext_expr(Msgctxt, Msgid) \
+ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcpgettext_expr (const char *domain,
+ const char *msgctxt, const char *msgid,
+ int category)
+{
+ size_t msgctxt_len = strlen (msgctxt) + 1;
+ size_t msgid_len = strlen (msgid) + 1;
+ const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+ char buf[1024];
+ char *msg_ctxt_id =
+ (msgctxt_len + msgid_len <= sizeof (buf)
+ ? buf
+ : (char *) malloc (msgctxt_len + msgid_len));
+ if (msg_ctxt_id != NULL)
+#endif
+ {
+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+ msg_ctxt_id[msgctxt_len - 1] = '\004';
+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+ translation = dcgettext (domain, msg_ctxt_id, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ if (msg_ctxt_id != buf)
+ free (msg_ctxt_id);
+#endif
+ if (translation != msg_ctxt_id)
+ return translation;
+ }
+ return msgid;
+}
+
+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcnpgettext_expr (const char *domain,
+ const char *msgctxt, const char *msgid,
+ const char *msgid_plural, unsigned long int n,
+ int category)
+{
+ size_t msgctxt_len = strlen (msgctxt) + 1;
+ size_t msgid_len = strlen (msgid) + 1;
+ const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+ char buf[1024];
+ char *msg_ctxt_id =
+ (msgctxt_len + msgid_len <= sizeof (buf)
+ ? buf
+ : (char *) malloc (msgctxt_len + msgid_len));
+ if (msg_ctxt_id != NULL)
+#endif
+ {
+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+ msg_ctxt_id[msgctxt_len - 1] = '\004';
+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+ translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ if (msg_ctxt_id != buf)
+ free (msg_ctxt_id);
+#endif
+ if (!(translation == msg_ctxt_id || translation == msgid_plural))
+ return translation;
+ }
+ return (n == 1 ? msgid : msgid_plural);
+}
+
+#endif /* _LIBGETTEXT_H */
diff --git a/tests/intprops.h b/tests/intprops.h
new file mode 100644
index 0000000..002161e
--- /dev/null
+++ b/tests/intprops.h
@@ -0,0 +1,77 @@
+/* intprops.h -- properties of integer types
+
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert. */
+
+#include <limits.h>
+
+/* The extra casts in the following macros work around compiler bugs,
+ e.g., in Cray C 5.0.3.0. */
+
+/* True if the arithmetic type T is an integer type. bool counts as
+ an integer. */
+#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
+
+/* True if negative values of the signed integer type T use two's
+ complement, ones' complement, or signed magnitude representation,
+ respectively. Much GNU code assumes two's complement, but some
+ people like to be portable to all possible C hosts. */
+#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
+#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
+#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
+
+/* True if the arithmetic type T is signed. */
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
+/* The maximum and minimum values for the integer type T. These
+ macros have undefined behavior if T is signed and has padding bits.
+ If this is a problem for you, please let us know how to fix it for
+ your host. */
+#define TYPE_MINIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) 0 \
+ : TYPE_SIGNED_MAGNITUDE (t) \
+ ? ~ (t) 0 \
+ : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+#define TYPE_MAXIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) -1 \
+ : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
+
+/* Return zero if T can be determined to be an unsigned type.
+ Otherwise, return 1.
+ When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a
+ tighter bound. Otherwise, it overestimates the true bound by one byte
+ when applied to unsigned types of size 2, 4, 16, ... bytes.
+ The symbol signed_type_or_expr__ is private to this header file. */
+#if __GNUC__ >= 2
+# define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t))
+#else
+# define signed_type_or_expr__(t) 1
+#endif
+
+/* Bound on length of the string representing an integer type or expression T.
+ Subtract 1 for the sign bit if T is signed; log10 (2.0) < 146/485;
+ add 1 for integer division truncation; add 1 more for a minus sign
+ if needed. */
+#define INT_STRLEN_BOUND(t) \
+ ((sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) * 146 / 485 \
+ + signed_type_or_expr__ (t) + 1)
+
+/* Bound on buffer size needed to represent an integer type or expression T,
+ including the terminating null. */
+#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
diff --git a/tests/locale.in.h b/tests/locale.in.h
new file mode 100644
index 0000000..10629f6
--- /dev/null
+++ b/tests/locale.in.h
@@ -0,0 +1,36 @@
+/* A POSIX <locale.h>.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _GL_LOCALE_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_LOCALE_H@
+
+#ifndef _GL_LOCALE_H
+#define _GL_LOCALE_H
+
+/* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C.
+ On systems that don't define it, use the same value as GNU libintl. */
+#if !defined LC_MESSAGES
+# define LC_MESSAGES 1729
+#endif
+
+#endif /* _GL_LOCALE_H */
+#endif /* _GL_LOCALE_H */
diff --git a/tests/nan.h b/tests/nan.h
new file mode 100644
index 0000000..8aa8bf0
--- /dev/null
+++ b/tests/nan.h
@@ -0,0 +1,60 @@
+/* Macros for not-a-number.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+/* NaNf () returns a 'float' not-a-number. */
+
+/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
+#ifdef __DECC
+static float
+NaNf ()
+{
+ static float zero = 0.0f;
+ return zero / zero;
+}
+#else
+# define NaNf() (0.0f / 0.0f)
+#endif
+
+
+/* NaNd () returns a 'double' not-a-number. */
+
+/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
+#ifdef __DECC
+static double
+NaNd ()
+{
+ static double zero = 0.0;
+ return zero / zero;
+}
+#else
+# define NaNd() (0.0 / 0.0)
+#endif
+
+
+/* NaNl () returns a 'long double' not-a-number. */
+
+/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the
+ runtime type conversion. */
+#ifdef __sgi
+static long double NaNl ()
+{
+ double zero = 0.0;
+ return zero / zero;
+}
+#else
+# define NaNl() (0.0L / 0.0L)
+#endif
diff --git a/tests/progname.c b/tests/progname.c
new file mode 100644
index 0000000..9854b5e
--- /dev/null
+++ b/tests/progname.c
@@ -0,0 +1,63 @@
+/* Program name management.
+ Copyright (C) 2001-2003, 2005-2009 Free Software Foundation, Inc.
+ Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+#include <config.h>
+
+/* Specification. */
+#undef ENABLE_RELOCATABLE /* avoid defining set_program_name as a macro */
+#include "progname.h"
+
+#include <string.h>
+
+
+/* String containing name the program is called with.
+ To be initialized by main(). */
+const char *program_name = NULL;
+
+/* Set program_name, based on argv[0]. */
+void
+set_program_name (const char *argv0)
+{
+ /* libtool creates a temporary executable whose name is sometimes prefixed
+ with "lt-" (depends on the platform). It also makes argv[0] absolute.
+ But the name of the temporary executable is a detail that should not be
+ visible to the end user and to the test suite.
+ Remove this "<dirname>/.libs/" or "<dirname>/.libs/lt-" prefix here. */
+ const char *slash;
+ const char *base;
+
+ slash = strrchr (argv0, '/');
+ base = (slash != NULL ? slash + 1 : argv0);
+ if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0)
+ {
+ argv0 = base;
+ if (strncmp (base, "lt-", 3) == 0)
+ argv0 = base + 3;
+ }
+
+ /* But don't strip off a leading <dirname>/ in general, because when the user
+ runs
+ /some/hidden/place/bin/cp foo foo
+ he should get the error message
+ /some/hidden/place/bin/cp: `foo' and `foo' are the same file
+ not
+ cp: `foo' and `foo' are the same file
+ */
+
+ program_name = argv0;
+}
diff --git a/tests/progname.h b/tests/progname.h
new file mode 100644
index 0000000..82615c6
--- /dev/null
+++ b/tests/progname.h
@@ -0,0 +1,60 @@
+/* Program name management.
+ Copyright (C) 2001-2004, 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _PROGNAME_H
+#define _PROGNAME_H
+
+/* Programs using this file should do the following in main():
+ set_program_name (argv[0]);
+ */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* String containing name the program is called with. */
+extern const char *program_name;
+
+/* Set program_name, based on argv[0]. */
+extern void set_program_name (const char *argv0);
+
+#if ENABLE_RELOCATABLE
+
+/* Set program_name, based on argv[0], and original installation prefix and
+ directory, for relocatability. */
+extern void set_program_name_and_installdir (const char *argv0,
+ const char *orig_installprefix,
+ const char *orig_installdir);
+#undef set_program_name
+#define set_program_name(ARG0) \
+ set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR)
+
+/* Return the full pathname of the current executable, based on the earlier
+ call to set_program_name_and_installdir. Return NULL if unknown. */
+extern char *get_full_program_name (void);
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _PROGNAME_H */
diff --git a/tests/setenv.c b/tests/setenv.c
new file mode 100644
index 0000000..83b52b8
--- /dev/null
+++ b/tests/setenv.c
@@ -0,0 +1,330 @@
+/* Copyright (C) 1992,1995-1999,2000-2003,2005-2008 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#if !_LIBC
+# include <config.h>
+#endif
+#include <alloca.h>
+
+/* Specification. */
+#include <stdlib.h>
+
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(ev) ((errno) = (ev))
+#endif
+
+#include <string.h>
+#if _LIBC || HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#if _LIBC || !HAVE_SETENV
+
+#if !_LIBC
+# include "malloca.h"
+#endif
+
+#if !_LIBC
+# define __environ environ
+#endif
+
+#if _LIBC
+/* This lock protects against simultaneous modifications of `environ'. */
+# include <bits/libc-lock.h>
+__libc_lock_define_initialized (static, envlock)
+# define LOCK __libc_lock_lock (envlock)
+# define UNLOCK __libc_lock_unlock (envlock)
+#else
+# define LOCK
+# define UNLOCK
+#endif
+
+/* In the GNU C library we must keep the namespace clean. */
+#ifdef _LIBC
+# define setenv __setenv
+# define clearenv __clearenv
+# define tfind __tfind
+# define tsearch __tsearch
+#endif
+
+/* In the GNU C library implementation we try to be more clever and
+ allow arbitrarily many changes of the environment given that the used
+ values are from a small set. Outside glibc this will eat up all
+ memory after a while. */
+#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \
+ && defined __GNUC__)
+# define USE_TSEARCH 1
+# include <search.h>
+typedef int (*compar_fn_t) (const void *, const void *);
+
+/* This is a pointer to the root of the search tree with the known
+ values. */
+static void *known_values;
+
+# define KNOWN_VALUE(Str) \
+ ({ \
+ void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \
+ value != NULL ? *(char **) value : NULL; \
+ })
+# define STORE_VALUE(Str) \
+ tsearch (Str, &known_values, (compar_fn_t) strcmp)
+
+#else
+# undef USE_TSEARCH
+
+# define KNOWN_VALUE(Str) NULL
+# define STORE_VALUE(Str) do { } while (0)
+
+#endif
+
+
+/* If this variable is not a null pointer we allocated the current
+ environment. */
+static char **last_environ;
+
+
+/* This function is used by `setenv' and `putenv'. The difference between
+ the two functions is that for the former must create a new string which
+ is then placed in the environment, while the argument of `putenv'
+ must be used directly. This is all complicated by the fact that we try
+ to reuse values once generated for a `setenv' call since we can never
+ free the strings. */
+int
+__add_to_environ (const char *name, const char *value, const char *combined,
+ int replace)
+{
+ register char **ep;
+ register size_t size;
+ const size_t namelen = strlen (name);
+ const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
+
+ LOCK;
+
+ /* We have to get the pointer now that we have the lock and not earlier
+ since another thread might have created a new environment. */
+ ep = __environ;
+
+ size = 0;
+ if (ep != NULL)
+ {
+ for (; *ep != NULL; ++ep)
+ if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
+ break;
+ else
+ ++size;
+ }
+
+ if (ep == NULL || *ep == NULL)
+ {
+ char **new_environ;
+#ifdef USE_TSEARCH
+ char *new_value;
+#endif
+
+ /* We allocated this space; we can extend it. */
+ new_environ =
+ (char **) (last_environ == NULL
+ ? malloc ((size + 2) * sizeof (char *))
+ : realloc (last_environ, (size + 2) * sizeof (char *)));
+ if (new_environ == NULL)
+ {
+ UNLOCK;
+ return -1;
+ }
+
+ /* If the whole entry is given add it. */
+ if (combined != NULL)
+ /* We must not add the string to the search tree since it belongs
+ to the user. */
+ new_environ[size] = (char *) combined;
+ else
+ {
+ /* See whether the value is already known. */
+#ifdef USE_TSEARCH
+# ifdef _LIBC
+ new_value = (char *) alloca (namelen + 1 + vallen);
+ __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
+ value, vallen);
+# else
+ new_value = (char *) malloca (namelen + 1 + vallen);
+ if (new_value == NULL)
+ {
+ __set_errno (ENOMEM);
+ UNLOCK;
+ return -1;
+ }
+ memcpy (new_value, name, namelen);
+ new_value[namelen] = '=';
+ memcpy (&new_value[namelen + 1], value, vallen);
+# endif
+
+ new_environ[size] = KNOWN_VALUE (new_value);
+ if (new_environ[size] == NULL)
+#endif
+ {
+ new_environ[size] = (char *) malloc (namelen + 1 + vallen);
+ if (new_environ[size] == NULL)
+ {
+#if defined USE_TSEARCH && !defined _LIBC
+ freea (new_value);
+#endif
+ __set_errno (ENOMEM);
+ UNLOCK;
+ return -1;
+ }
+
+#ifdef USE_TSEARCH
+ memcpy (new_environ[size], new_value, namelen + 1 + vallen);
+#else
+ memcpy (new_environ[size], name, namelen);
+ new_environ[size][namelen] = '=';
+ memcpy (&new_environ[size][namelen + 1], value, vallen);
+#endif
+ /* And save the value now. We cannot do this when we remove
+ the string since then we cannot decide whether it is a
+ user string or not. */
+ STORE_VALUE (new_environ[size]);
+ }
+#if defined USE_TSEARCH && !defined _LIBC
+ freea (new_value);
+#endif
+ }
+
+ if (__environ != last_environ)
+ memcpy ((char *) new_environ, (char *) __environ,
+ size * sizeof (char *));
+
+ new_environ[size + 1] = NULL;
+
+ last_environ = __environ = new_environ;
+ }
+ else if (replace)
+ {
+ char *np;
+
+ /* Use the user string if given. */
+ if (combined != NULL)
+ np = (char *) combined;
+ else
+ {
+#ifdef USE_TSEARCH
+ char *new_value;
+# ifdef _LIBC
+ new_value = alloca (namelen + 1 + vallen);
+ __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
+ value, vallen);
+# else
+ new_value = malloca (namelen + 1 + vallen);
+ if (new_value == NULL)
+ {
+ __set_errno (ENOMEM);
+ UNLOCK;
+ return -1;
+ }
+ memcpy (new_value, name, namelen);
+ new_value[namelen] = '=';
+ memcpy (&new_value[namelen + 1], value, vallen);
+# endif
+
+ np = KNOWN_VALUE (new_value);
+ if (np == NULL)
+#endif
+ {
+ np = malloc (namelen + 1 + vallen);
+ if (np == NULL)
+ {
+#if defined USE_TSEARCH && !defined _LIBC
+ freea (new_value);
+#endif
+ __set_errno (ENOMEM);
+ UNLOCK;
+ return -1;
+ }
+
+#ifdef USE_TSEARCH
+ memcpy (np, new_value, namelen + 1 + vallen);
+#else
+ memcpy (np, name, namelen);
+ np[namelen] = '=';
+ memcpy (&np[namelen + 1], value, vallen);
+#endif
+ /* And remember the value. */
+ STORE_VALUE (np);
+ }
+#if defined USE_TSEARCH && !defined _LIBC
+ freea (new_value);
+#endif
+ }
+
+ *ep = np;
+ }
+
+ UNLOCK;
+
+ return 0;
+}
+
+int
+setenv (const char *name, const char *value, int replace)
+{
+ return __add_to_environ (name, value, NULL, replace);
+}
+
+/* The `clearenv' was planned to be added to POSIX.1 but probably
+ never made it. Nevertheless the POSIX.9 standard (POSIX bindings
+ for Fortran 77) requires this function. */
+int
+clearenv (void)
+{
+ LOCK;
+
+ if (__environ == last_environ && __environ != NULL)
+ {
+ /* We allocated this environment so we can free it. */
+ free (__environ);
+ last_environ = NULL;
+ }
+
+ /* Clear the environment pointer removes the whole environment. */
+ __environ = NULL;
+
+ UNLOCK;
+
+ return 0;
+}
+
+#ifdef _LIBC
+static void
+free_mem (void)
+{
+ /* Remove all traces. */
+ clearenv ();
+
+ /* Now remove the search tree. */
+ __tdestroy (known_values, free);
+ known_values = NULL;
+}
+text_set_element (__libc_subfreeres, free_mem);
+
+
+# undef setenv
+# undef clearenv
+weak_alias (__setenv, setenv)
+weak_alias (__clearenv, clearenv)
+#endif
+
+#endif /* _LIBC || !HAVE_SETENV */
diff --git a/tests/strerror.c b/tests/strerror.c
new file mode 100644
index 0000000..dfe6c25
--- /dev/null
+++ b/tests/strerror.c
@@ -0,0 +1,347 @@
+/* strerror.c --- POSIX compatible system error routine
+
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <string.h>
+
+#if REPLACE_STRERROR
+
+# include <errno.h>
+# include <stdio.h>
+
+# if GNULIB_defined_ESOCK /* native Windows platforms */
+# if HAVE_WINSOCK2_H
+# include <winsock2.h>
+# endif
+# endif
+
+# include "intprops.h"
+
+# undef strerror
+# if ! HAVE_DECL_STRERROR
+# define strerror(n) NULL
+# endif
+
+char *
+rpl_strerror (int n)
+{
+ char const *msg = NULL;
+ /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */
+ switch (n)
+ {
+# if GNULIB_defined_ETXTBSY
+ case ETXTBSY:
+ msg = "Text file busy";
+ break;
+# endif
+
+# if GNULIB_defined_ESOCK /* native Windows platforms */
+ /* EWOULDBLOCK is the same as EAGAIN. */
+ case EINPROGRESS:
+ msg = "Operation now in progress";
+ break;
+ case EALREADY:
+ msg = "Operation already in progress";
+ break;
+ case ENOTSOCK:
+ msg = "Socket operation on non-socket";
+ break;
+ case EDESTADDRREQ:
+ msg = "Destination address required";
+ break;
+ case EMSGSIZE:
+ msg = "Message too long";
+ break;
+ case EPROTOTYPE:
+ msg = "Protocol wrong type for socket";
+ break;
+ case ENOPROTOOPT:
+ msg = "Protocol not available";
+ break;
+ case EPROTONOSUPPORT:
+ msg = "Protocol not supported";
+ break;
+ case ESOCKTNOSUPPORT:
+ msg = "Socket type not supported";
+ break;
+ case EOPNOTSUPP:
+ msg = "Operation not supported";
+ break;
+ case EPFNOSUPPORT:
+ msg = "Protocol family not supported";
+ break;
+ case EAFNOSUPPORT:
+ msg = "Address family not supported by protocol";
+ break;
+ case EADDRINUSE:
+ msg = "Address already in use";
+ break;
+ case EADDRNOTAVAIL:
+ msg = "Cannot assign requested address";
+ break;
+ case ENETDOWN:
+ msg = "Network is down";
+ break;
+ case ENETUNREACH:
+ msg = "Network is unreachable";
+ break;
+ case ENETRESET:
+ msg = "Network dropped connection on reset";
+ break;
+ case ECONNABORTED:
+ msg = "Software caused connection abort";
+ break;
+ case ECONNRESET:
+ msg = "Connection reset by peer";
+ break;
+ case ENOBUFS:
+ msg = "No buffer space available";
+ break;
+ case EISCONN:
+ msg = "Transport endpoint is already connected";
+ break;
+ case ENOTCONN:
+ msg = "Transport endpoint is not connected";
+ break;
+ case ESHUTDOWN:
+ msg = "Cannot send after transport endpoint shutdown";
+ break;
+ case ETOOMANYREFS:
+ msg = "Too many references: cannot splice";
+ break;
+ case ETIMEDOUT:
+ msg = "Connection timed out";
+ break;
+ case ECONNREFUSED:
+ msg = "Connection refused";
+ break;
+ case ELOOP:
+ msg = "Too many levels of symbolic links";
+ break;
+ case EHOSTDOWN:
+ msg = "Host is down";
+ break;
+ case EHOSTUNREACH:
+ msg = "No route to host";
+ break;
+ case EPROCLIM:
+ msg = "Too many processes";
+ break;
+ case EUSERS:
+ msg = "Too many users";
+ break;
+ case EDQUOT:
+ msg = "Disk quota exceeded";
+ break;
+ case ESTALE:
+ msg = "Stale NFS file handle";
+ break;
+ case EREMOTE:
+ msg = "Object is remote";
+ break;
+# if HAVE_WINSOCK2_H
+ /* WSA_INVALID_HANDLE maps to EBADF */
+ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+ /* WSA_INVALID_PARAMETER maps to EINVAL */
+ case WSA_OPERATION_ABORTED:
+ msg = "Overlapped operation aborted";
+ break;
+ case WSA_IO_INCOMPLETE:
+ msg = "Overlapped I/O event object not in signaled state";
+ break;
+ case WSA_IO_PENDING:
+ msg = "Overlapped operations will complete later";
+ break;
+ /* WSAEINTR maps to EINTR */
+ /* WSAEBADF maps to EBADF */
+ /* WSAEACCES maps to EACCES */
+ /* WSAEFAULT maps to EFAULT */
+ /* WSAEINVAL maps to EINVAL */
+ /* WSAEMFILE maps to EMFILE */
+ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
+ /* WSAEINPROGRESS is EINPROGRESS */
+ /* WSAEALREADY is EALREADY */
+ /* WSAENOTSOCK is ENOTSOCK */
+ /* WSAEDESTADDRREQ is EDESTADDRREQ */
+ /* WSAEMSGSIZE is EMSGSIZE */
+ /* WSAEPROTOTYPE is EPROTOTYPE */
+ /* WSAENOPROTOOPT is ENOPROTOOPT */
+ /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */
+ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
+ /* WSAEOPNOTSUPP is EOPNOTSUPP */
+ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
+ /* WSAEAFNOSUPPORT is EAFNOSUPPORT */
+ /* WSAEADDRINUSE is EADDRINUSE */
+ /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */
+ /* WSAENETDOWN is ENETDOWN */
+ /* WSAENETUNREACH is ENETUNREACH */
+ /* WSAENETRESET is ENETRESET */
+ /* WSAECONNABORTED is ECONNABORTED */
+ /* WSAECONNRESET is ECONNRESET */
+ /* WSAENOBUFS is ENOBUFS */
+ /* WSAEISCONN is EISCONN */
+ /* WSAENOTCONN is ENOTCONN */
+ /* WSAESHUTDOWN is ESHUTDOWN */
+ /* WSAETOOMANYREFS is ETOOMANYREFS */
+ /* WSAETIMEDOUT is ETIMEDOUT */
+ /* WSAECONNREFUSED is ECONNREFUSED */
+ /* WSAELOOP is ELOOP */
+ /* WSAENAMETOOLONG maps to ENAMETOOLONG */
+ /* WSAEHOSTDOWN is EHOSTDOWN */
+ /* WSAEHOSTUNREACH is EHOSTUNREACH */
+ /* WSAENOTEMPTY maps to ENOTEMPTY */
+ /* WSAEPROCLIM is EPROCLIM */
+ /* WSAEUSERS is EUSERS */
+ /* WSAEDQUOT is EDQUOT */
+ /* WSAESTALE is ESTALE */
+ /* WSAEREMOTE is EREMOTE */
+ case WSASYSNOTREADY:
+ msg = "Network subsystem is unavailable";
+ break;
+ case WSAVERNOTSUPPORTED:
+ msg = "Winsock.dll version out of range";
+ break;
+ case WSANOTINITIALISED:
+ msg = "Successful WSAStartup not yet performed";
+ break;
+ case WSAEDISCON:
+ msg = "Graceful shutdown in progress";
+ break;
+ case WSAENOMORE: case WSA_E_NO_MORE:
+ msg = "No more results";
+ break;
+ case WSAECANCELLED: case WSA_E_CANCELLED:
+ msg = "Call was canceled";
+ break;
+ case WSAEINVALIDPROCTABLE:
+ msg = "Procedure call table is invalid";
+ break;
+ case WSAEINVALIDPROVIDER:
+ msg = "Service provider is invalid";
+ break;
+ case WSAEPROVIDERFAILEDINIT:
+ msg = "Service provider failed to initialize";
+ break;
+ case WSASYSCALLFAILURE:
+ msg = "System call failure";
+ break;
+ case WSASERVICE_NOT_FOUND:
+ msg = "Service not found";
+ break;
+ case WSATYPE_NOT_FOUND:
+ msg = "Class type not found";
+ break;
+ case WSAEREFUSED:
+ msg = "Database query was refused";
+ break;
+ case WSAHOST_NOT_FOUND:
+ msg = "Host not found";
+ break;
+ case WSATRY_AGAIN:
+ msg = "Nonauthoritative host not found";
+ break;
+ case WSANO_RECOVERY:
+ msg = "Nonrecoverable error";
+ break;
+ case WSANO_DATA:
+ msg = "Valid name, no data record of requested type";
+ break;
+ /* WSA_QOS_* omitted */
+# endif
+# endif
+
+# if GNULIB_defined_ENOMSG
+ case ENOMSG:
+ msg = "No message of desired type";
+ break;
+# endif
+
+# if GNULIB_defined_EIDRM
+ case EIDRM:
+ msg = "Identifier removed";
+ break;
+# endif
+
+# if GNULIB_defined_ENOLINK
+ case ENOLINK:
+ msg = "Link has been severed";
+ break;
+# endif
+
+# if GNULIB_defined_EPROTO
+ case EPROTO:
+ msg = "Protocol error";
+ break;
+# endif
+
+# if GNULIB_defined_EMULTIHOP
+ case EMULTIHOP:
+ msg = "Multihop attempted";
+ break;
+# endif
+
+# if GNULIB_defined_EBADMSG
+ case EBADMSG:
+ msg = "Bad message";
+ break;
+# endif
+
+# if GNULIB_defined_EOVERFLOW
+ case EOVERFLOW:
+ msg = "Value too large for defined data type";
+ break;
+# endif
+
+# if GNULIB_defined_ENOTSUP
+ case ENOTSUP:
+ msg = "Not supported";
+ break;
+# endif
+
+# if GNULIB_defined_ESTALE
+ case ESTALE:
+ msg = "Stale NFS file handle";
+ break;
+# endif
+
+# if GNULIB_defined_ECANCELED
+ case ECANCELED:
+ msg = "Operation canceled";
+ break;
+# endif
+ }
+
+ if (msg)
+ return (char *) msg;
+
+ {
+ char *result = strerror (n);
+
+ if (result == NULL || result[0] == '\0')
+ {
+ static char const fmt[] = "Unknown error (%d)";
+ static char msg_buf[sizeof fmt + INT_STRLEN_BOUND (n)];
+ sprintf (msg_buf, fmt, n);
+ return msg_buf;
+ }
+
+ return result;
+ }
+}
+
+#endif
diff --git a/tests/test-alloca-opt.c b/tests/test-alloca-opt.c
new file mode 100644
index 0000000..68d906d
--- /dev/null
+++ b/tests/test-alloca-opt.c
@@ -0,0 +1,62 @@
+/* Test of optional automatic memory allocation.
+ Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <alloca.h>
+
+#if HAVE_ALLOCA
+
+static void
+do_allocation (int n)
+{
+ void *ptr = alloca (n);
+ (void) ptr;
+}
+
+void (*func) (int) = do_allocation;
+
+#endif
+
+int
+main ()
+{
+#if HAVE_ALLOCA
+ int i;
+
+ /* Repeat a lot of times, to make sure there's no memory leak. */
+ for (i = 0; i < 100000; i++)
+ {
+ /* Try various values.
+ n = 0 gave a crash on Alpha with gcc-2.5.8.
+ Some versions of MacOS X have a stack size limit of 512 KB. */
+ func (34);
+ func (134);
+ func (399);
+ func (510823);
+ func (129321);
+ func (0);
+ func (4070);
+ func (4095);
+ func (1);
+ func (16582);
+ }
+#endif
+
+ return 0;
+}
diff --git a/tests/test-array-mergesort.c b/tests/test-array-mergesort.c
new file mode 100644
index 0000000..8a47b67
--- /dev/null
+++ b/tests/test-array-mergesort.c
@@ -0,0 +1,395 @@
+/* Test of stable-sorting of an array using mergesort.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <stddef.h>
+
+struct foo { double x; double index; };
+#define ELEMENT struct foo
+#define COMPARE(a,b) ((a)->x < (b)->x ? -1 : (a)->x > (b)->x ? 1 : 0)
+#define STATIC static
+#include "array-mergesort.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define NMAX 257
+static const struct foo data[NMAX] =
+{
+ { 2, 0 },
+ { 28, 1 },
+ { 36, 2 },
+ { 43, 3 },
+ { 20, 4 },
+ { 37, 5 },
+ { 19, 6 },
+ { 37, 7 },
+ { 30, 8 },
+ { 18, 9 },
+ { 30, 10 },
+ { 49, 11 },
+ { 16, 12 },
+ { 22, 13 },
+ { 23, 14 },
+ { 3, 15 },
+ { 39, 16 },
+ { 48, 17 },
+ { 18, 18 },
+ { 18, 19 },
+ { 45, 20 },
+ { 39, 21 },
+ { 1, 22 },
+ { 44, 23 },
+ { 24, 24 },
+ { 21, 25 },
+ { 29, 26 },
+ { 3, 27 },
+ { 34, 28 },
+ { 15, 29 },
+ { 39, 30 },
+ { 11, 31 },
+ { 29, 32 },
+ { 27, 33 },
+ { 43, 34 },
+ { 31, 35 },
+ { 28, 36 },
+ { 12, 37 },
+ { 16, 38 },
+ { 34, 39 },
+ { 25, 40 },
+ { 31, 41 },
+ { 29, 42 },
+ { 36, 43 },
+ { 17, 44 },
+ { 18, 45 },
+ { 44, 46 },
+ { 22, 47 },
+ { 23, 48 },
+ { 32, 49 },
+ { 16, 50 },
+ { 47, 51 },
+ { 28, 52 },
+ { 46, 53 },
+ { 49, 54 },
+ { 24, 55 },
+ { 0, 56 },
+ { 20, 57 },
+ { 25, 58 },
+ { 42, 59 },
+ { 48, 60 },
+ { 16, 61 },
+ { 26, 62 },
+ { 32, 63 },
+ { 24, 64 },
+ { 17, 65 },
+ { 47, 66 },
+ { 47, 67 },
+ { 12, 68 },
+ { 33, 69 },
+ { 41, 70 },
+ { 36, 71 },
+ { 8, 72 },
+ { 15, 73 },
+ { 0, 74 },
+ { 32, 75 },
+ { 28, 76 },
+ { 11, 77 },
+ { 46, 78 },
+ { 34, 79 },
+ { 5, 80 },
+ { 20, 81 },
+ { 47, 82 },
+ { 25, 83 },
+ { 7, 84 },
+ { 29, 85 },
+ { 40, 86 },
+ { 5, 87 },
+ { 12, 88 },
+ { 30, 89 },
+ { 1, 90 },
+ { 22, 91 },
+ { 29, 92 },
+ { 42, 93 },
+ { 49, 94 },
+ { 30, 95 },
+ { 40, 96 },
+ { 33, 97 },
+ { 36, 98 },
+ { 12, 99 },
+ { 8, 100 },
+ { 33, 101 },
+ { 5, 102 },
+ { 31, 103 },
+ { 27, 104 },
+ { 19, 105 },
+ { 43, 106 },
+ { 37, 107 },
+ { 9, 108 },
+ { 40, 109 },
+ { 0, 110 },
+ { 35, 111 },
+ { 32, 112 },
+ { 6, 113 },
+ { 27, 114 },
+ { 28, 115 },
+ { 30, 116 },
+ { 37, 117 },
+ { 32, 118 },
+ { 41, 119 },
+ { 14, 120 },
+ { 44, 121 },
+ { 22, 122 },
+ { 26, 123 },
+ { 2, 124 },
+ { 43, 125 },
+ { 20, 126 },
+ { 32, 127 },
+ { 24, 128 },
+ { 33, 129 },
+ { 7, 130 },
+ { 17, 131 },
+ { 10, 132 },
+ { 47, 133 },
+ { 14, 134 },
+ { 29, 135 },
+ { 19, 136 },
+ { 25, 137 },
+ { 25, 138 },
+ { 13, 139 },
+ { 25, 140 },
+ { 32, 141 },
+ { 8, 142 },
+ { 37, 143 },
+ { 31, 144 },
+ { 32, 145 },
+ { 5, 146 },
+ { 45, 147 },
+ { 35, 148 },
+ { 47, 149 },
+ { 3, 150 },
+ { 4, 151 },
+ { 37, 152 },
+ { 43, 153 },
+ { 39, 154 },
+ { 18, 155 },
+ { 13, 156 },
+ { 15, 157 },
+ { 41, 158 },
+ { 34, 159 },
+ { 4, 160 },
+ { 33, 161 },
+ { 20, 162 },
+ { 4, 163 },
+ { 38, 164 },
+ { 47, 165 },
+ { 30, 166 },
+ { 41, 167 },
+ { 23, 168 },
+ { 40, 169 },
+ { 23, 170 },
+ { 35, 171 },
+ { 47, 172 },
+ { 32, 173 },
+ { 15, 174 },
+ { 15, 175 },
+ { 41, 176 },
+ { 35, 177 },
+ { 6, 178 },
+ { 18, 179 },
+ { 35, 180 },
+ { 39, 181 },
+ { 34, 182 },
+ { 6, 183 },
+ { 34, 184 },
+ { 37, 185 },
+ { 15, 186 },
+ { 6, 187 },
+ { 12, 188 },
+ { 39, 189 },
+ { 9, 190 },
+ { 48, 191 },
+ { 37, 192 },
+ { 28, 193 },
+ { 32, 194 },
+ { 1, 195 },
+ { 45, 196 },
+ { 21, 197 },
+ { 11, 198 },
+ { 32, 199 },
+ { 43, 200 },
+ { 35, 201 },
+ { 25, 202 },
+ { 4, 203 },
+ { 20, 204 },
+ { 10, 205 },
+ { 22, 206 },
+ { 44, 207 },
+ { 30, 208 },
+ { 16, 209 },
+ { 42, 210 },
+ { 13, 211 },
+ { 29, 212 },
+ { 23, 213 },
+ { 30, 214 },
+ { 25, 215 },
+ { 49, 216 },
+ { 0, 217 },
+ { 49, 218 },
+ { 29, 219 },
+ { 37, 220 },
+ { 6, 221 },
+ { 27, 222 },
+ { 31, 223 },
+ { 17, 224 },
+ { 45, 225 },
+ { 25, 226 },
+ { 15, 227 },
+ { 34, 228 },
+ { 7, 229 },
+ { 7, 230 },
+ { 4, 231 },
+ { 31, 232 },
+ { 40, 233 },
+ { 17, 234 },
+ { 2, 235 },
+ { 34, 236 },
+ { 17, 237 },
+ { 25, 238 },
+ { 5, 239 },
+ { 48, 240 },
+ { 31, 241 },
+ { 41, 242 },
+ { 45, 243 },
+ { 33, 244 },
+ { 46, 245 },
+ { 19, 246 },
+ { 17, 247 },
+ { 38, 248 },
+ { 43, 249 },
+ { 16, 250 },
+ { 5, 251 },
+ { 21, 252 },
+ { 0, 253 },
+ { 47, 254 },
+ { 40, 255 },
+ { 22, 256 }
+};
+
+static int
+cmp_double (const void *a, const void *b)
+{
+ return (*(const double *)a < *(const double *)b ? -1 :
+ *(const double *)a > *(const double *)b ? 1 :
+ 0);
+}
+
+int
+main ()
+{
+ size_t n;
+
+ /* Test merge_sort_fromto. */
+ for (n = 1; n <= NMAX; n++)
+ {
+ struct foo *dst;
+ struct foo *tmp;
+ double *qsort_result;
+ size_t i;
+
+ dst = (struct foo *) malloc ((n + 1) * sizeof (struct foo));
+ dst[n].x = 0x4A6A71FE; /* canary */
+ tmp = (struct foo *) malloc ((n / 2 + 1) * sizeof (struct foo));
+ tmp[n / 2].x = 0x587EF149; /* canary */
+
+ merge_sort_fromto (data, dst, n, tmp);
+
+ /* Verify the canaries. */
+ ASSERT (dst[n].x == 0x4A6A71FE);
+ ASSERT (tmp[n / 2].x == 0x587EF149);
+
+ /* Verify the result. */
+ qsort_result = (double *) malloc (n * sizeof (double));
+ for (i = 0; i < n; i++)
+ qsort_result[i] = data[i].x;
+ qsort (qsort_result, n, sizeof (double), cmp_double);
+ for (i = 0; i < n; i++)
+ ASSERT (dst[i].x == qsort_result[i]);
+
+ /* Verify the stability. */
+ for (i = 0; i < n; i++)
+ if (i > 0 && dst[i - 1].x == dst[i].x)
+ ASSERT (dst[i - 1].index < dst[i].index);
+
+ free (qsort_result);
+ free (tmp);
+ free (dst);
+ }
+
+ /* Test merge_sort_inplace. */
+ for (n = 1; n <= NMAX; n++)
+ {
+ struct foo *src;
+ struct foo *tmp;
+ double *qsort_result;
+ size_t i;
+
+ src = (struct foo *) malloc ((n + 1) * sizeof (struct foo));
+ src[n].x = 0x4A6A71FE; /* canary */
+ tmp = (struct foo *) malloc ((n + 1) * sizeof (struct foo));
+ tmp[n].x = 0x587EF149; /* canary */
+
+ for (i = 0; i < n; i++)
+ src[i] = data[i];
+
+ merge_sort_inplace (src, n, tmp);
+
+ /* Verify the canaries. */
+ ASSERT (src[n].x == 0x4A6A71FE);
+ ASSERT (tmp[n].x == 0x587EF149);
+
+ /* Verify the result. */
+ qsort_result = (double *) malloc (n * sizeof (double));
+ for (i = 0; i < n; i++)
+ qsort_result[i] = data[i].x;
+ qsort (qsort_result, n, sizeof (double), cmp_double);
+ for (i = 0; i < n; i++)
+ ASSERT (src[i].x == qsort_result[i]);
+
+ /* Verify the stability. */
+ for (i = 0; i < n; i++)
+ if (i > 0 && src[i - 1].x == src[i].x)
+ ASSERT (src[i - 1].index < src[i].index);
+
+ free (qsort_result);
+ free (tmp);
+ free (src);
+ }
+
+ return 0;
+}
diff --git a/tests/test-c-ctype.c b/tests/test-c-ctype.c
new file mode 100644
index 0000000..6d7fe1b
--- /dev/null
+++ b/tests/test-c-ctype.c
@@ -0,0 +1,398 @@
+/* Test of character handling in C locale.
+ Copyright (C) 2005, 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2005. */
+
+#include <config.h>
+
+#include "c-ctype.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_all (void)
+{
+ int c;
+
+ for (c = -0x80; c < 0x100; c++)
+ {
+ ASSERT (c_isascii (c) == (c >= 0 && c < 0x80));
+
+ switch (c)
+ {
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
+ case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
+ case 's': case 't': case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ ASSERT (c_isalnum (c) == 1);
+ break;
+ default:
+ ASSERT (c_isalnum (c) == 0);
+ break;
+ }
+
+ switch (c)
+ {
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
+ case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
+ case 's': case 't': case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ ASSERT (c_isalpha (c) == 1);
+ break;
+ default:
+ ASSERT (c_isalpha (c) == 0);
+ break;
+ }
+
+ switch (c)
+ {
+ case '\t': case ' ':
+ ASSERT (c_isblank (c) == 1);
+ break;
+ default:
+ ASSERT (c_isblank (c) == 0);
+ break;
+ }
+
+ ASSERT (c_iscntrl (c) == ((c >= 0 && c < 0x20) || c == 0x7f));
+
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ ASSERT (c_isdigit (c) == 1);
+ break;
+ default:
+ ASSERT (c_isdigit (c) == 0);
+ break;
+ }
+
+ switch (c)
+ {
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
+ case 's': case 't': case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ ASSERT (c_islower (c) == 1);
+ break;
+ default:
+ ASSERT (c_islower (c) == 0);
+ break;
+ }
+
+ ASSERT (c_isgraph (c) == ((c >= 0x20 && c < 0x7f) && c != ' '));
+
+ ASSERT (c_isprint (c) == (c >= 0x20 && c < 0x7f));
+
+ ASSERT (c_ispunct (c) == (c_isgraph (c) && !c_isalnum (c)));
+
+ switch (c)
+ {
+ case ' ': case '\t': case '\n': case '\v': case '\f': case '\r':
+ ASSERT (c_isspace (c) == 1);
+ break;
+ default:
+ ASSERT (c_isspace (c) == 0);
+ break;
+ }
+
+ switch (c)
+ {
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
+ case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ ASSERT (c_isupper (c) == 1);
+ break;
+ default:
+ ASSERT (c_isupper (c) == 0);
+ break;
+ }
+
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ ASSERT (c_isxdigit (c) == 1);
+ break;
+ default:
+ ASSERT (c_isxdigit (c) == 0);
+ break;
+ }
+
+ switch (c)
+ {
+ case 'A':
+ ASSERT (c_tolower (c) == 'a');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'B':
+ ASSERT (c_tolower (c) == 'b');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'C':
+ ASSERT (c_tolower (c) == 'c');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'D':
+ ASSERT (c_tolower (c) == 'd');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'E':
+ ASSERT (c_tolower (c) == 'e');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'F':
+ ASSERT (c_tolower (c) == 'f');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'G':
+ ASSERT (c_tolower (c) == 'g');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'H':
+ ASSERT (c_tolower (c) == 'h');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'I':
+ ASSERT (c_tolower (c) == 'i');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'J':
+ ASSERT (c_tolower (c) == 'j');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'K':
+ ASSERT (c_tolower (c) == 'k');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'L':
+ ASSERT (c_tolower (c) == 'l');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'M':
+ ASSERT (c_tolower (c) == 'm');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'N':
+ ASSERT (c_tolower (c) == 'n');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'O':
+ ASSERT (c_tolower (c) == 'o');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'P':
+ ASSERT (c_tolower (c) == 'p');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'Q':
+ ASSERT (c_tolower (c) == 'q');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'R':
+ ASSERT (c_tolower (c) == 'r');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'S':
+ ASSERT (c_tolower (c) == 's');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'T':
+ ASSERT (c_tolower (c) == 't');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'U':
+ ASSERT (c_tolower (c) == 'u');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'V':
+ ASSERT (c_tolower (c) == 'v');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'W':
+ ASSERT (c_tolower (c) == 'w');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'X':
+ ASSERT (c_tolower (c) == 'x');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'Y':
+ ASSERT (c_tolower (c) == 'y');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'Z':
+ ASSERT (c_tolower (c) == 'z');
+ ASSERT (c_toupper (c) == c);
+ break;
+ case 'a':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'A');
+ break;
+ case 'b':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'B');
+ break;
+ case 'c':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'C');
+ break;
+ case 'd':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'D');
+ break;
+ case 'e':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'E');
+ break;
+ case 'f':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'F');
+ break;
+ case 'g':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'G');
+ break;
+ case 'h':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'H');
+ break;
+ case 'i':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'I');
+ break;
+ case 'j':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'J');
+ break;
+ case 'k':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'K');
+ break;
+ case 'l':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'L');
+ break;
+ case 'm':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'M');
+ break;
+ case 'n':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'N');
+ break;
+ case 'o':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'O');
+ break;
+ case 'p':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'P');
+ break;
+ case 'q':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'Q');
+ break;
+ case 'r':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'R');
+ break;
+ case 's':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'S');
+ break;
+ case 't':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'T');
+ break;
+ case 'u':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'U');
+ break;
+ case 'v':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'V');
+ break;
+ case 'w':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'W');
+ break;
+ case 'x':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'X');
+ break;
+ case 'y':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'Y');
+ break;
+ case 'z':
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == 'Z');
+ break;
+ default:
+ ASSERT (c_tolower (c) == c);
+ ASSERT (c_toupper (c) == c);
+ break;
+ }
+ }
+}
+
+int
+main ()
+{
+ test_all ();
+
+ setlocale (LC_ALL, "de_DE");
+ test_all ();
+
+ setlocale (LC_ALL, "ja_JP.EUC-JP");
+ test_all ();
+
+ return 0;
+}
diff --git a/tests/test-c-strcase.sh b/tests/test-c-strcase.sh
new file mode 100755
index 0000000..5fcf906
--- /dev/null
+++ b/tests/test-c-strcase.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test in the C locale.
+./test-c-strcasecmp${EXEEXT} || exit 1
+./test-c-strncasecmp${EXEEXT} || exit 1
+
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR != none; then
+ LC_ALL=$LOCALE_FR ./test-c-strcasecmp${EXEEXT} locale || exit 1
+ LC_ALL=$LOCALE_FR ./test-c-strncasecmp${EXEEXT} locale || exit 1
+fi
+
+# Test in a Turkish UTF-8 locale.
+: ${LOCALE_TR_UTF8=tr_TR.UTF-8}
+if test $LOCALE_TR_UTF8 != none; then
+ LC_ALL=$LOCALE_TR_UTF8 ./test-c-strcasecmp${EXEEXT} locale || exit 1
+ LC_ALL=$LOCALE_TR_UTF8 ./test-c-strncasecmp${EXEEXT} locale || exit 1
+fi
+
+exit 0
diff --git a/tests/test-c-strcasecmp.c b/tests/test-c-strcasecmp.c
new file mode 100644
index 0000000..16244b9
--- /dev/null
+++ b/tests/test-c-strcasecmp.c
@@ -0,0 +1,77 @@
+/* Test of case-insensitive string comparison function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "c-strcase.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main (int argc, char *argv[])
+{
+ if (argc > 1)
+ {
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+ }
+
+ ASSERT (c_strcasecmp ("paragraph", "Paragraph") == 0);
+
+ ASSERT (c_strcasecmp ("paragrapH", "parAgRaph") == 0);
+
+ ASSERT (c_strcasecmp ("paragraph", "paraLyzed") < 0);
+ ASSERT (c_strcasecmp ("paraLyzed", "paragraph") > 0);
+
+ ASSERT (c_strcasecmp ("para", "paragraph") < 0);
+ ASSERT (c_strcasecmp ("paragraph", "para") > 0);
+
+ /* The following tests shows how c_strcasecmp() is different from
+ strcasecmp(). */
+
+ ASSERT (c_strcasecmp ("\311mile", "\351mile") < 0);
+ ASSERT (c_strcasecmp ("\351mile", "\311mile") > 0);
+
+ /* The following tests shows how c_strcasecmp() is different from
+ mbscasecmp(). */
+
+ ASSERT (c_strcasecmp ("\303\266zg\303\274r", "\303\226ZG\303\234R") > 0); /* özgür */
+ ASSERT (c_strcasecmp ("\303\226ZG\303\234R", "\303\266zg\303\274r") < 0); /* özgür */
+
+ /* This test shows how strings of different size cannot compare equal. */
+ ASSERT (c_strcasecmp ("turkish", "TURK\304\260SH") < 0);
+ ASSERT (c_strcasecmp ("TURK\304\260SH", "turkish") > 0);
+
+ return 0;
+}
diff --git a/tests/test-c-strncasecmp.c b/tests/test-c-strncasecmp.c
new file mode 100644
index 0000000..7d6dbf5
--- /dev/null
+++ b/tests/test-c-strncasecmp.c
@@ -0,0 +1,91 @@
+/* Test of case-insensitive string comparison function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "c-strcase.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main (int argc, char *argv[])
+{
+ if (argc > 1)
+ {
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+ }
+
+ ASSERT (c_strncasecmp ("paragraph", "Paragraph", 1000000) == 0);
+ ASSERT (c_strncasecmp ("paragraph", "Paragraph", 9) == 0);
+
+ ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 1000000) == 0);
+ ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 9) == 0);
+
+ ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 10) < 0);
+ ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 9) < 0);
+ ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 5) < 0);
+ ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 4) == 0);
+ ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 10) > 0);
+ ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 9) > 0);
+ ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 5) > 0);
+ ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 4) == 0);
+
+ ASSERT (c_strncasecmp ("para", "paragraph", 10) < 0);
+ ASSERT (c_strncasecmp ("para", "paragraph", 9) < 0);
+ ASSERT (c_strncasecmp ("para", "paragraph", 5) < 0);
+ ASSERT (c_strncasecmp ("para", "paragraph", 4) == 0);
+ ASSERT (c_strncasecmp ("paragraph", "para", 10) > 0);
+ ASSERT (c_strncasecmp ("paragraph", "para", 9) > 0);
+ ASSERT (c_strncasecmp ("paragraph", "para", 5) > 0);
+ ASSERT (c_strncasecmp ("paragraph", "para", 4) == 0);
+
+ /* The following tests shows how c_strncasecmp() is different from
+ strncasecmp(). */
+
+ ASSERT (c_strncasecmp ("\311mily", "\351mile", 4) < 0);
+ ASSERT (c_strncasecmp ("\351mile", "\311mily", 4) > 0);
+
+ /* The following tests shows how c_strncasecmp() is different from
+ mbsncasecmp(). */
+
+ ASSERT (c_strncasecmp ("\303\266zg\303\274r", "\303\226ZG\303\234R", 99) > 0); /* özgür */
+ ASSERT (c_strncasecmp ("\303\226ZG\303\234R", "\303\266zg\303\274r", 99) < 0); /* özgür */
+
+ /* This test shows how strings of different size cannot compare equal. */
+ ASSERT (c_strncasecmp ("turkish", "TURK\304\260SH", 7) < 0);
+ ASSERT (c_strncasecmp ("TURK\304\260SH", "turkish", 7) > 0);
+
+ return 0;
+}
diff --git a/tests/test-environ.c b/tests/test-environ.c
new file mode 100644
index 0000000..d9501bb
--- /dev/null
+++ b/tests/test-environ.c
@@ -0,0 +1,44 @@
+/* Test of environ variable.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include <unistd.h>
+
+#include <string.h>
+
+int
+main ()
+{
+ /* The environment variables that are set even in the weirdest situations
+ are HOME and PATH.
+ POSIX says that HOME is initialized by the system, and that PATH may be
+ unset. But in practice it's more frequent to see HOME unset and PATH
+ set. So we test the presence of PATH. */
+ char **remaining_variables = environ;
+ char *string;
+
+ for (; (string = *remaining_variables) != NULL; remaining_variables++)
+ {
+ if (strncmp (string, "PATH=", 5) == 0)
+ /* Found the PATH environment variable. */
+ return 0;
+ }
+ /* Failed to find the PATH environment variable. */
+ return 1;
+}
diff --git a/tests/test-errno.c b/tests/test-errno.c
new file mode 100644
index 0000000..4642027
--- /dev/null
+++ b/tests/test-errno.c
@@ -0,0 +1,117 @@
+/* Test of <errno.h> substitute.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include <errno.h>
+
+/* Verify that the POSIX mandated errno values exist and can be used as
+ initializers outside of a function.
+ The variable names happen to match the Linux/x86 error numbers. */
+int e1 = EPERM;
+int e2 = ENOENT;
+int e3 = ESRCH;
+int e4 = EINTR;
+int e5 = EIO;
+int e6 = ENXIO;
+int e7 = E2BIG;
+int e8 = ENOEXEC;
+int e9 = EBADF;
+int e10 = ECHILD;
+int e11 = EAGAIN;
+int e11a = EWOULDBLOCK;
+int e12 = ENOMEM;
+int e13 = EACCES;
+int e14 = EFAULT;
+int e16 = EBUSY;
+int e17 = EEXIST;
+int e18 = EXDEV;
+int e19 = ENODEV;
+int e20 = ENOTDIR;
+int e21 = EISDIR;
+int e22 = EINVAL;
+int e23 = ENFILE;
+int e24 = EMFILE;
+int e25 = ENOTTY;
+int e26 = ETXTBSY;
+int e27 = EFBIG;
+int e28 = ENOSPC;
+int e29 = ESPIPE;
+int e30 = EROFS;
+int e31 = EMLINK;
+int e32 = EPIPE;
+int e33 = EDOM;
+int e34 = ERANGE;
+int e35 = EDEADLK;
+int e36 = ENAMETOOLONG;
+int e37 = ENOLCK;
+int e38 = ENOSYS;
+int e39 = ENOTEMPTY;
+int e40 = ELOOP;
+int e42 = ENOMSG;
+int e43 = EIDRM;
+int e67 = ENOLINK;
+int e71 = EPROTO;
+int e72 = EMULTIHOP;
+int e74 = EBADMSG;
+int e75 = EOVERFLOW;
+int e84 = EILSEQ;
+int e88 = ENOTSOCK;
+int e89 = EDESTADDRREQ;
+int e90 = EMSGSIZE;
+int e91 = EPROTOTYPE;
+int e92 = ENOPROTOOPT;
+int e93 = EPROTONOSUPPORT;
+int e95 = EOPNOTSUPP;
+int e95a = ENOTSUP;
+int e97 = EAFNOSUPPORT;
+int e98 = EADDRINUSE;
+int e99 = EADDRNOTAVAIL;
+int e100 = ENETDOWN;
+int e101 = ENETUNREACH;
+int e102 = ENETRESET;
+int e103 = ECONNABORTED;
+int e104 = ECONNRESET;
+int e105 = ENOBUFS;
+int e106 = EISCONN;
+int e107 = ENOTCONN;
+int e110 = ETIMEDOUT;
+int e111 = ECONNREFUSED;
+int e113 = EHOSTUNREACH;
+int e114 = EALREADY;
+int e115 = EINPROGRESS;
+int e116 = ESTALE;
+int e122 = EDQUOT;
+int e125 = ECANCELED;
+
+/* Don't verify that these errno values are all different, except for possibly
+ EWOULDBLOCK == EAGAIN. Even Linux/x86 does not pass this check: it has
+ ENOTSUP == EOPNOTSUPP. */
+
+int
+main ()
+{
+ /* Verify that errno can be assigned. */
+ errno = EOVERFLOW;
+
+ /* snprintf() callers want to distinguish EINVAL and EOVERFLOW. */
+ if (errno == EINVAL)
+ return 1;
+
+ return 0;
+}
diff --git a/tests/test-frexpl.c b/tests/test-frexpl.c
new file mode 100644
index 0000000..d4babb8
--- /dev/null
+++ b/tests/test-frexpl.c
@@ -0,0 +1,233 @@
+/* Test of splitting a 'long double' into fraction and mantissa.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <math.h>
+
+#include <float.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "fpucw.h"
+#include "isnanl-nolibm.h"
+#include "nan.h"
+
+/* Avoid some warnings from "gcc -Wshadow".
+ This file doesn't use the exp() function. */
+#undef exp
+#define exp exponent
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* On MIPS IRIX machines, LDBL_MIN_EXP is -1021, but the smallest reliable
+ exponent for 'long double' is -964. Similarly, on PowerPC machines,
+ LDBL_MIN_EXP is -1021, but the smallest reliable exponent for 'long double'
+ is -968. For exponents below that, the precision may be truncated to the
+ precision used for 'double'. */
+#ifdef __sgi
+# define MIN_NORMAL_EXP (LDBL_MIN_EXP + 57)
+#elif defined __ppc || defined __ppc__ || defined __powerpc || defined __powerpc__
+# define MIN_NORMAL_EXP (LDBL_MIN_EXP + 53)
+#else
+# define MIN_NORMAL_EXP LDBL_MIN_EXP
+#endif
+
+/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
+ So we use minus_zero instead.
+ IRIX cc can't put -0.0L into .data, but can compute at runtime.
+ Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
+ platforms, such as when cross-compiling to PowerPC on MacOS X 10.5. */
+#if defined __hpux || defined __sgi
+static long double
+compute_minus_zero (void)
+{
+ return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
+#else
+long double minus_zero = -0.0L;
+#endif
+
+static long double
+my_ldexp (long double x, int d)
+{
+ for (; d > 0; d--)
+ x *= 2.0L;
+ for (; d < 0; d++)
+ x *= 0.5L;
+ return x;
+}
+
+int
+main ()
+{
+ int i;
+ long double x;
+ DECL_LONG_DOUBLE_ROUNDING
+
+ BEGIN_LONG_DOUBLE_ROUNDING ();
+
+ { /* NaN. */
+ int exp = -9999;
+ long double mantissa;
+ x = NaNl ();
+ mantissa = frexpl (x, &exp);
+ ASSERT (isnanl (mantissa));
+ }
+
+ { /* Positive infinity. */
+ int exp = -9999;
+ long double mantissa;
+ x = 1.0L / 0.0L;
+ mantissa = frexpl (x, &exp);
+ ASSERT (mantissa == x);
+ }
+
+ { /* Negative infinity. */
+ int exp = -9999;
+ long double mantissa;
+ x = -1.0L / 0.0L;
+ mantissa = frexpl (x, &exp);
+ ASSERT (mantissa == x);
+ }
+
+ { /* Positive zero. */
+ int exp = -9999;
+ long double mantissa;
+ x = 0.0L;
+ mantissa = frexpl (x, &exp);
+ ASSERT (exp == 0);
+ ASSERT (mantissa == x);
+ ASSERT (!signbit (mantissa));
+ }
+
+ { /* Negative zero. */
+ int exp = -9999;
+ long double mantissa;
+ x = minus_zero;
+ mantissa = frexpl (x, &exp);
+ ASSERT (exp == 0);
+ ASSERT (mantissa == x);
+ ASSERT (signbit (mantissa));
+ }
+
+ for (i = 1, x = 1.0L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == 0.5L);
+ }
+ for (i = 1, x = 1.0L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == 0.5L);
+ }
+ for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == 0.5L);
+ }
+
+ for (i = 1, x = -1.0L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == -0.5L);
+ }
+ for (i = 1, x = -1.0L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == -0.5L);
+ }
+ for (; i >= LDBL_MIN_EXP - 100 && x < 0.0L; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == -0.5L);
+ }
+
+ for (i = 1, x = 1.01L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == 0.505L);
+ }
+ for (i = 1, x = 1.01L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == 0.505L);
+ }
+ for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa >= 0.5L);
+ ASSERT (mantissa < 1.0L);
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ for (i = 1, x = 1.73205L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == 0.866025L);
+ }
+ for (i = 1, x = 1.73205L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == 0.866025L);
+ }
+ for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = frexpl (x, &exp);
+ ASSERT (exp == i || exp == i + 1);
+ ASSERT (mantissa >= 0.5L);
+ ASSERT (mantissa < 1.0L);
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ return 0;
+}
diff --git a/tests/test-fseterr.c b/tests/test-fseterr.c
new file mode 100644
index 0000000..475979b
--- /dev/null
+++ b/tests/test-fseterr.c
@@ -0,0 +1,44 @@
+/* Test setting the error indicator of a stream.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "fseterr.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+ /* All streams are initially created with the error indicator cleared. */
+ if (ferror (stdout))
+ abort ();
+
+ /* Verify that fseterr() works. */
+ fseterr (stdout);
+ if (!ferror (stdout))
+ abort ();
+
+ /* Verify fseterr's effect can be undone by clearerr(). */
+ clearerr (stdout);
+ if (ferror (stdout))
+ abort ();
+
+ return 0;
+}
diff --git a/tests/test-iconv.c b/tests/test-iconv.c
new file mode 100644
index 0000000..8bac176
--- /dev/null
+++ b/tests/test-iconv.c
@@ -0,0 +1,149 @@
+/* Test of character set conversion.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#if HAVE_ICONV
+# include <iconv.h>
+#endif
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ and UTF-8. */
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO-8859-1", "UTF-8");
+
+ ASSERT (cd_88591_to_utf8 != (iconv_t)(-1));
+ ASSERT (cd_utf8_to_88591 != (iconv_t)(-1));
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ ASSERT (res == 0 && inbytesleft == 0);
+ ASSERT (outptr == buf + strlen (expected));
+ ASSERT (memcmp (buf, expected, strlen (expected)) == 0);
+ }
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with E2BIG. */
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ ASSERT (res == (size_t)(-1) && errno == E2BIG);
+ ASSERT (inbytesleft == 1);
+ ASSERT (outbytesleft == 1);
+ ASSERT ((unsigned char) buf[1] == 0xAD);
+ ASSERT ((unsigned char) buf[0] == 0xDE);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ {
+ static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ ASSERT (res == 0 && inbytesleft == 0);
+ ASSERT (outptr == buf + strlen (expected));
+ ASSERT (memcmp (buf, expected, strlen (expected)) == 0);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == (size_t)(-1))
+ {
+ ASSERT (errno == EILSEQ);
+ ASSERT (inbytesleft == strlen (input) && outptr == buf);
+ }
+ else
+ {
+ ASSERT (res == 1);
+ ASSERT (inbytesleft == 0);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ {
+ static const char input[] = "\342";
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ (ICONV_CONST char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ ASSERT (res == (size_t)(-1) && errno == EINVAL);
+ ASSERT (inbytesleft == 1 && outptr == buf);
+ }
+
+ iconv_close (cd_88591_to_utf8);
+ iconv_close (cd_utf8_to_88591);
+#endif
+
+ return 0;
+}
diff --git a/tests/test-isnand-nolibm.c b/tests/test-isnand-nolibm.c
new file mode 100644
index 0000000..fd739ca
--- /dev/null
+++ b/tests/test-isnand-nolibm.c
@@ -0,0 +1,22 @@
+/* Test of isnand() substitute.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "isnand-nolibm.h"
+
+#include "test-isnand.h"
+
diff --git a/tests/test-isnand.h b/tests/test-isnand.h
new file mode 100644
index 0000000..09c5e97
--- /dev/null
+++ b/tests/test-isnand.h
@@ -0,0 +1,78 @@
+/* Test of isnand() substitute.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "nan.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+ So we use -zero instead. */
+double zero = 0.0;
+
+int
+main ()
+{
+ /* Finite values. */
+ ASSERT (!isnand (3.141));
+ ASSERT (!isnand (3.141e30));
+ ASSERT (!isnand (3.141e-30));
+ ASSERT (!isnand (-2.718));
+ ASSERT (!isnand (-2.718e30));
+ ASSERT (!isnand (-2.718e-30));
+ ASSERT (!isnand (0.0));
+ ASSERT (!isnand (-zero));
+ /* Infinite values. */
+ ASSERT (!isnand (1.0 / 0.0));
+ ASSERT (!isnand (-1.0 / 0.0));
+ /* Quiet NaN. */
+ ASSERT (isnand (NaNd ()));
+#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
+ /* Signalling NaN. */
+ {
+ #define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+ memory_double m;
+ m.value = NaNd ();
+# if DBL_EXPBIT0_BIT > 0
+ m.word[DBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (DBL_EXPBIT0_BIT - 1);
+# else
+ m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+# endif
+ m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ |= (unsigned int) 1 << DBL_EXPBIT0_BIT;
+ ASSERT (isnand (m.value));
+ }
+#endif
+ return 0;
+}
diff --git a/tests/test-isnanf-nolibm.c b/tests/test-isnanf-nolibm.c
new file mode 100644
index 0000000..0105ce9
--- /dev/null
+++ b/tests/test-isnanf-nolibm.c
@@ -0,0 +1,21 @@
+/* Test of isnanf() substitute.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "isnanf-nolibm.h"
+
+#include "test-isnanf.h"
diff --git a/tests/test-isnanf.h b/tests/test-isnanf.h
new file mode 100644
index 0000000..f3f387c
--- /dev/null
+++ b/tests/test-isnanf.h
@@ -0,0 +1,80 @@
+/* Test of isnanf() substitute.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "nan.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
+ So we use -zero instead. */
+float zero = 0.0f;
+
+int
+main ()
+{
+ /* Finite values. */
+ ASSERT (!isnanf (3.141f));
+ ASSERT (!isnanf (3.141e30f));
+ ASSERT (!isnanf (3.141e-30f));
+ ASSERT (!isnanf (-2.718f));
+ ASSERT (!isnanf (-2.718e30f));
+ ASSERT (!isnanf (-2.718e-30f));
+ ASSERT (!isnanf (0.0f));
+ ASSERT (!isnanf (-zero));
+ /* Infinite values. */
+ ASSERT (!isnanf (1.0f / 0.0f));
+ ASSERT (!isnanf (-1.0f / 0.0f));
+ /* Quiet NaN. */
+ ASSERT (isnanf (NaNf ()));
+#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
+ /* Signalling NaN. */
+ {
+ #define NWORDS \
+ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ typedef union { float value; unsigned int word[NWORDS]; } memory_float;
+ memory_float m;
+ m.value = NaNf ();
+# if FLT_EXPBIT0_BIT > 0
+ m.word[FLT_EXPBIT0_WORD] ^= (unsigned int) 1 << (FLT_EXPBIT0_BIT - 1);
+# else
+ m.word[FLT_EXPBIT0_WORD + (FLT_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+# endif
+ if (FLT_EXPBIT0_WORD < NWORDS / 2)
+ m.word[FLT_EXPBIT0_WORD + 1] |= (unsigned int) 1 << FLT_EXPBIT0_BIT;
+ else
+ m.word[0] |= (unsigned int) 1;
+ ASSERT (isnanf (m.value));
+ }
+#endif
+ return 0;
+}
diff --git a/tests/test-isnanl-nolibm.c b/tests/test-isnanl-nolibm.c
new file mode 100644
index 0000000..70c984d
--- /dev/null
+++ b/tests/test-isnanl-nolibm.c
@@ -0,0 +1,23 @@
+/* Test of isnanl() substitute.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "isnanl-nolibm.h"
+
+#include "test-isnanl.h"
diff --git a/tests/test-isnanl.h b/tests/test-isnanl.h
new file mode 100644
index 0000000..baf04db
--- /dev/null
+++ b/tests/test-isnanl.h
@@ -0,0 +1,154 @@
+/* Test of isnanl() substitute.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <float.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "nan.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
+ So we use minus_zero instead.
+ IRIX cc can't put -0.0L into .data, but can compute at runtime.
+ Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
+ platforms, such as when cross-compiling to PowerPC on MacOS X 10.5. */
+#if defined __hpux || defined __sgi
+static long double
+compute_minus_zero (void)
+{
+ return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
+#else
+long double minus_zero = -0.0L;
+#endif
+
+int
+main ()
+{
+ #define NWORDS \
+ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ typedef union { unsigned int word[NWORDS]; long double value; }
+ memory_long_double;
+
+ /* Finite values. */
+ ASSERT (!isnanl (3.141L));
+ ASSERT (!isnanl (3.141e30L));
+ ASSERT (!isnanl (3.141e-30L));
+ ASSERT (!isnanl (-2.718L));
+ ASSERT (!isnanl (-2.718e30L));
+ ASSERT (!isnanl (-2.718e-30L));
+ ASSERT (!isnanl (0.0L));
+ ASSERT (!isnanl (minus_zero));
+ /* Infinite values. */
+ ASSERT (!isnanl (1.0L / 0.0L));
+ ASSERT (!isnanl (-1.0L / 0.0L));
+ /* Quiet NaN. */
+ ASSERT (isnanl (NaNl ()));
+
+#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
+ /* A bit pattern that is different from a Quiet NaN. With a bit of luck,
+ it's a Signalling NaN. */
+ {
+ memory_long_double m;
+ m.value = NaNl ();
+# if LDBL_EXPBIT0_BIT > 0
+ m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 1);
+# else
+ m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+# endif
+ m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ |= (unsigned int) 1 << LDBL_EXPBIT0_BIT;
+ ASSERT (isnanl (m.value));
+ }
+#endif
+
+#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+/* Representation of an 80-bit 'long double' as an initializer for a sequence
+ of 'unsigned int' words. */
+# ifdef WORDS_BIGENDIAN
+# define LDBL80_WORDS(exponent,manthi,mantlo) \
+ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
+ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \
+ (unsigned int) (mantlo) << 16 \
+ }
+# else
+# define LDBL80_WORDS(exponent,manthi,mantlo) \
+ { mantlo, manthi, exponent }
+# endif
+ { /* Quiet NaN. */
+ static memory_long_double x =
+ { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
+ ASSERT (isnanl (x.value));
+ }
+ {
+ /* Signalling NaN. */
+ static memory_long_double x =
+ { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
+ ASSERT (isnanl (x.value));
+ }
+ /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
+ Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
+ Intel IA-64 Architecture Software Developer's Manual, Volume 1:
+ Application Architecture.
+ Table 5-2 "Floating-Point Register Encodings"
+ Figure 5-6 "Memory to Floating-Point Register Data Translation"
+ */
+ { /* Pseudo-NaN. */
+ static memory_long_double x =
+ { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
+ ASSERT (isnanl (x.value));
+ }
+ { /* Pseudo-Infinity. */
+ static memory_long_double x =
+ { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
+ ASSERT (isnanl (x.value));
+ }
+ { /* Pseudo-Zero. */
+ static memory_long_double x =
+ { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
+ ASSERT (isnanl (x.value));
+ }
+ { /* Unnormalized number. */
+ static memory_long_double x =
+ { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
+ ASSERT (isnanl (x.value));
+ }
+ { /* Pseudo-Denormal. */
+ static memory_long_double x =
+ { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
+ ASSERT (isnanl (x.value));
+ }
+#endif
+
+ return 0;
+}
diff --git a/tests/test-locale.c b/tests/test-locale.c
new file mode 100644
index 0000000..625cc43
--- /dev/null
+++ b/tests/test-locale.c
@@ -0,0 +1,44 @@
+/* Test of <locale.h> substitute.
+ Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <locale.h>
+
+#include "verify.h"
+
+int a[] =
+ {
+ LC_ALL,
+ LC_COLLATE,
+ LC_CTYPE,
+ LC_MESSAGES,
+ LC_MONETARY,
+ LC_NUMERIC,
+ LC_TIME
+ };
+
+/* Check that NULL can be passed through varargs as a pointer type,
+ per POSIX 2008. */
+verify (sizeof NULL == sizeof (void *));
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/tests/test-localename.c b/tests/test-localename.c
new file mode 100644
index 0000000..82f786b
--- /dev/null
+++ b/tests/test-localename.c
@@ -0,0 +1,122 @@
+/* Test of gl_locale_name function.
+ Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "localename.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Check that gl_locale_name returns non-NULL. */
+ ASSERT (gl_locale_name (LC_MESSAGES, "LC_MESSAGES") != NULL);
+
+ /* Check that when all environment variables are unset,
+ gl_locale_name_posix returns NULL. */
+ unsetenv ("LC_ALL");
+ unsetenv ("LC_CTYPE");
+ unsetenv ("LC_MESSAGES");
+ unsetenv ("LC_NUMERIC");
+ unsetenv ("LANG");
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"),
+ gl_locale_name_default ()) == 0);
+ ASSERT (strcmp (gl_locale_name (LC_NUMERIC, "LC_NUMERIC"),
+ gl_locale_name_default ()) == 0);
+
+ /* Check that an empty environment variable is treated like an unset
+ environment variable. */
+
+ setenv ("LC_ALL", "", 1);
+ unsetenv ("LC_CTYPE");
+ unsetenv ("LC_MESSAGES");
+ unsetenv ("LANG");
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"),
+ gl_locale_name_default ()) == 0);
+
+ unsetenv ("LC_ALL");
+ setenv ("LC_CTYPE", "", 1);
+ unsetenv ("LC_MESSAGES");
+ unsetenv ("LANG");
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"),
+ gl_locale_name_default ()) == 0);
+
+ unsetenv ("LC_ALL");
+ unsetenv ("LC_CTYPE");
+ setenv ("LC_MESSAGES", "", 1);
+ unsetenv ("LANG");
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"),
+ gl_locale_name_default ()) == 0);
+
+ unsetenv ("LC_ALL");
+ unsetenv ("LC_CTYPE");
+ unsetenv ("LC_MESSAGES");
+ setenv ("LANG", "", 1);
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"),
+ gl_locale_name_default ()) == 0);
+
+ /* Check that LC_ALL overrides the others, and LANG is overridden by the
+ others. */
+
+ setenv ("LC_ALL", "C", 1);
+ unsetenv ("LC_CTYPE");
+ unsetenv ("LC_MESSAGES");
+ unsetenv ("LANG");
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"), "C") == 0);
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0);
+
+ unsetenv ("LC_ALL");
+ setenv ("LC_CTYPE", "C", 1);
+ setenv ("LC_MESSAGES", "C", 1);
+ unsetenv ("LANG");
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"), "C") == 0);
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0);
+
+ unsetenv ("LC_ALL");
+ unsetenv ("LC_CTYPE");
+ unsetenv ("LC_MESSAGES");
+ setenv ("LANG", "C", 1);
+ setlocale (LC_ALL, "");
+ ASSERT (strcmp (gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"), "C") == 0);
+ ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0);
+
+ return 0;
+}
diff --git a/tests/test-malloca.c b/tests/test-malloca.c
new file mode 100644
index 0000000..7de6c68
--- /dev/null
+++ b/tests/test-malloca.c
@@ -0,0 +1,59 @@
+/* Test of safe automatic memory allocation.
+ Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2005. */
+
+#include <config.h>
+
+#include "malloca.h"
+
+#include <stdlib.h>
+
+static void
+do_allocation (int n)
+{
+ void *ptr = malloca (n);
+ freea (ptr);
+ ptr = safe_alloca (n);
+}
+
+void (*func) (int) = do_allocation;
+
+int
+main ()
+{
+ int i;
+
+ /* Repeat a lot of times, to make sure there's no memory leak. */
+ for (i = 0; i < 50000; i++)
+ {
+ /* Try various values.
+ n = 0 gave a crash on Alpha with gcc-2.5.8.
+ Some versions of MacOS X have a stack size limit of 512 KB. */
+ func (34);
+ func (134);
+ func (399);
+ func (510823);
+ func (129321);
+ func (0);
+ func (4070);
+ func (4095);
+ func (1);
+ func (16582);
+ }
+
+ return 0;
+}
diff --git a/tests/test-math.c b/tests/test-math.c
new file mode 100644
index 0000000..aa51f85
--- /dev/null
+++ b/tests/test-math.c
@@ -0,0 +1,53 @@
+/* Test of <math.h> substitute.
+ Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <math.h>
+
+#ifndef NAN
+# error NAN should be defined
+choke me
+#endif
+
+#if 0
+/* Check that NAN expands into a constant expression. */
+static float n = NAN;
+#endif
+
+/* Compare two numbers with ==.
+ This is a separate function because IRIX 6.5 "cc -O" miscompiles an
+ 'x == x' test. */
+static int
+numeric_equal (double x, double y)
+{
+ return x == y;
+}
+
+int
+main ()
+{
+ double d = NAN;
+ double zero = 0.0;
+ if (numeric_equal (d, d))
+ return 1;
+ d = HUGE_VAL;
+ if (!numeric_equal (d, 1.0 / zero))
+ return 1;
+ return 0;
+}
diff --git a/tests/test-mbrtowc.c b/tests/test-mbrtowc.c
new file mode 100644
index 0000000..8f1f1be
--- /dev/null
+++ b/tests/test-mbrtowc.c
@@ -0,0 +1,330 @@
+/* Test of conversion of multibyte character to wide character.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include <wchar.h>
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main (int argc, char *argv[])
+{
+ mbstate_t state;
+ wchar_t wc;
+ size_t ret;
+
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ /* Test zero-length input. */
+ {
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, "x", 0, &state);
+ /* gnulib's implementation returns (size_t)(-2).
+ The AIX 5.1 implementation returns (size_t)(-1).
+ glibc's implementation returns 0. */
+ ASSERT (ret == (size_t)(-2) || ret == (size_t)(-1) || ret == 0);
+ ASSERT (mbsinit (&state));
+ }
+
+ /* Test NUL byte input. */
+ {
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, "", 1, &state);
+ ASSERT (ret == 0);
+ ASSERT (wc == 0);
+ ASSERT (mbsinit (&state));
+ ret = mbrtowc (NULL, "", 1, &state);
+ ASSERT (ret == 0);
+ ASSERT (mbsinit (&state));
+ }
+
+ /* Test single-byte input. */
+ {
+ int c;
+ char buf[1];
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ for (c = 0; c < 0x100; c++)
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ /* c is in the ISO C "basic character set". */
+ buf[0] = c;
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, buf, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == c);
+ ASSERT (mbsinit (&state));
+ ret = mbrtowc (NULL, buf, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (mbsinit (&state));
+ break;
+ }
+ }
+
+ /* Test special calling convention, passing a NULL pointer. */
+ {
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, NULL, 5, &state);
+ ASSERT (ret == 0);
+ ASSERT (wc == (wchar_t) 0xBADFACE);
+ ASSERT (mbsinit (&state));
+ }
+
+ if (argc > 1)
+ switch (argv[1][0])
+ {
+ case '1':
+ /* Locale encoding is ISO-8859-1 or ISO-8859-15. */
+ {
+ char input[] = "B\374\337er"; /* "Büßer" */
+ memset (&state, '\0', sizeof (mbstate_t));
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'B');
+ ASSERT (mbsinit (&state));
+ input[0] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 1, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wctob (wc) == (unsigned char) '\374');
+ ASSERT (mbsinit (&state));
+ input[1] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 2, 3, &state);
+ ASSERT (ret == 1);
+ ASSERT (wctob (wc) == (unsigned char) '\337');
+ ASSERT (mbsinit (&state));
+ input[2] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 3, 2, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'e');
+ ASSERT (mbsinit (&state));
+ input[3] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 4, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'r');
+ ASSERT (mbsinit (&state));
+ }
+ return 0;
+
+ case '2':
+ /* Locale encoding is UTF-8. */
+ {
+ char input[] = "B\303\274\303\237er"; /* "Büßer" */
+ memset (&state, '\0', sizeof (mbstate_t));
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'B');
+ ASSERT (mbsinit (&state));
+ input[0] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 1, 1, &state);
+ ASSERT (ret == (size_t)(-2));
+ ASSERT (wc == (wchar_t) 0xBADFACE);
+ ASSERT (!mbsinit (&state));
+ input[1] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 2, 5, &state);
+ ASSERT (ret == 1);
+ ASSERT (wctob (wc) == EOF);
+ ASSERT (mbsinit (&state));
+ input[2] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 3, 4, &state);
+ ASSERT (ret == 2);
+ ASSERT (wctob (wc) == EOF);
+ ASSERT (mbsinit (&state));
+ input[3] = '\0';
+ input[4] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 5, 2, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'e');
+ ASSERT (mbsinit (&state));
+ input[5] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 6, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'r');
+ ASSERT (mbsinit (&state));
+ }
+ return 0;
+
+ case '3':
+ /* Locale encoding is EUC-JP. */
+ {
+ char input[] = "<\306\374\313\334\270\354>"; /* "<日本語>" */
+ memset (&state, '\0', sizeof (mbstate_t));
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == '<');
+ ASSERT (mbsinit (&state));
+ input[0] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 1, 2, &state);
+ ASSERT (ret == 2);
+ ASSERT (wctob (wc) == EOF);
+ ASSERT (mbsinit (&state));
+ input[1] = '\0';
+ input[2] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 3, 1, &state);
+ ASSERT (ret == (size_t)(-2));
+ ASSERT (wc == (wchar_t) 0xBADFACE);
+ ASSERT (!mbsinit (&state));
+ input[3] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 4, 4, &state);
+ ASSERT (ret == 1);
+ ASSERT (wctob (wc) == EOF);
+ ASSERT (mbsinit (&state));
+ input[4] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 5, 3, &state);
+ ASSERT (ret == 2);
+ ASSERT (wctob (wc) == EOF);
+ ASSERT (mbsinit (&state));
+ input[5] = '\0';
+ input[6] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 7, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == '>');
+ ASSERT (mbsinit (&state));
+ }
+ return 0;
+
+ case '4':
+ /* Locale encoding is GB18030. */
+ {
+ char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+ memset (&state, '\0', sizeof (mbstate_t));
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'B');
+ ASSERT (mbsinit (&state));
+ input[0] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 1, 1, &state);
+ ASSERT (ret == (size_t)(-2));
+ ASSERT (wc == (wchar_t) 0xBADFACE);
+ ASSERT (!mbsinit (&state));
+ input[1] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 2, 7, &state);
+ ASSERT (ret == 1);
+ ASSERT (wctob (wc) == EOF);
+ ASSERT (mbsinit (&state));
+ input[2] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 3, 6, &state);
+ ASSERT (ret == 4);
+ ASSERT (wctob (wc) == EOF);
+ ASSERT (mbsinit (&state));
+ input[3] = '\0';
+ input[4] = '\0';
+ input[5] = '\0';
+ input[6] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 7, 2, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'e');
+ ASSERT (mbsinit (&state));
+ input[5] = '\0';
+
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input + 8, 1, &state);
+ ASSERT (ret == 1);
+ ASSERT (wc == 'r');
+ ASSERT (mbsinit (&state));
+ }
+ return 0;
+ }
+
+ return 1;
+}
diff --git a/tests/test-mbrtowc1.sh b/tests/test-mbrtowc1.sh
new file mode 100755
index 0000000..3becba3
--- /dev/null
+++ b/tests/test-mbrtowc1.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR \
+./test-mbrtowc${EXEEXT} 1
diff --git a/tests/test-mbrtowc2.sh b/tests/test-mbrtowc2.sh
new file mode 100755
index 0000000..0405aba
--- /dev/null
+++ b/tests/test-mbrtowc2.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific UTF-8 locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR_UTF8 \
+./test-mbrtowc${EXEEXT} 2
diff --git a/tests/test-mbrtowc3.sh b/tests/test-mbrtowc3.sh
new file mode 100755
index 0000000..63a89a2
--- /dev/null
+++ b/tests/test-mbrtowc3.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific EUC-JP locale is installed.
+: ${LOCALE_JA=ja_JP}
+if test $LOCALE_JA = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional japanese locale is installed"
+ else
+ echo "Skipping test: no traditional japanese locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_JA \
+./test-mbrtowc${EXEEXT} 3
diff --git a/tests/test-mbrtowc4.sh b/tests/test-mbrtowc4.sh
new file mode 100755
index 0000000..b299a2c
--- /dev/null
+++ b/tests/test-mbrtowc4.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific GB18030 locale is installed.
+: ${LOCALE_ZH_CN=zh_CN.GB18030}
+if test $LOCALE_ZH_CN = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no transitional chinese locale is installed"
+ else
+ echo "Skipping test: no transitional chinese locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_ZH_CN \
+./test-mbrtowc${EXEEXT} 4
diff --git a/tests/test-mbsinit.c b/tests/test-mbsinit.c
new file mode 100644
index 0000000..5d4c9c3
--- /dev/null
+++ b/tests/test-mbsinit.c
@@ -0,0 +1,62 @@
+/* Test of test for initial conversion state.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include <wchar.h>
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main (int argc, char *argv[])
+{
+ static mbstate_t state;
+
+ ASSERT (mbsinit (&state));
+
+ if (argc > 1)
+ {
+ static const char input[1] = "\303";
+ wchar_t wc;
+ size_t ret;
+
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ ret = mbrtowc (&wc, input, 1, &state);
+ ASSERT (ret == (size_t)(-2));
+ ASSERT (!mbsinit (&state));
+ }
+
+ return 0;
+}
diff --git a/tests/test-mbsinit.sh b/tests/test-mbsinit.sh
new file mode 100755
index 0000000..bbda48d
--- /dev/null
+++ b/tests/test-mbsinit.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific UTF-8 locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR_UTF8 \
+./test-mbsinit${EXEEXT}
diff --git a/tests/test-memchr.c b/tests/test-memchr.c
new file mode 100644
index 0000000..1124f8b
--- /dev/null
+++ b/tests/test-memchr.c
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2008-2009 Free Software Foundation
+ * Written by Eric Blake and Bruno Haible
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <string.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "zerosize-ptr.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Calculating void * + int is not portable, so this wrapper converts
+ to char * to make the tests easier to write. */
+#define MEMCHR (char *) memchr
+
+int
+main ()
+{
+ size_t n = 0x100000;
+ char *input = malloc (n);
+ ASSERT (input);
+
+ input[0] = 'a';
+ input[1] = 'b';
+ memset (input + 2, 'c', 1024);
+ memset (input + 1026, 'd', n - 1028);
+ input[n - 2] = 'e';
+ input[n - 1] = 'a';
+
+ /* Basic behavior tests. */
+ ASSERT (MEMCHR (input, 'a', n) == input);
+
+ ASSERT (MEMCHR (input, 'a', 0) == NULL);
+ ASSERT (MEMCHR (zerosize_ptr (), 'a', 0) == NULL);
+
+ ASSERT (MEMCHR (input, 'b', n) == input + 1);
+ ASSERT (MEMCHR (input, 'c', n) == input + 2);
+ ASSERT (MEMCHR (input, 'd', n) == input + 1026);
+
+ ASSERT (MEMCHR (input + 1, 'a', n - 1) == input + n - 1);
+ ASSERT (MEMCHR (input + 1, 'e', n - 1) == input + n - 2);
+
+ ASSERT (MEMCHR (input, 'f', n) == NULL);
+ ASSERT (MEMCHR (input, '\0', n) == NULL);
+
+ /* Check that a very long haystack is handled quickly if the byte is
+ found near the beginning. */
+ {
+ size_t repeat = 10000;
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (MEMCHR (input, 'c', n) == input + 2);
+ }
+ }
+
+ /* Alignment tests. */
+ {
+ int i, j;
+ for (i = 0; i < 32; i++)
+ {
+ for (j = 0; j < 256; j++)
+ input[i + j] = j;
+ for (j = 0; j < 256; j++)
+ {
+ ASSERT (MEMCHR (input + i, j, 256) == input + i + j);
+ }
+ }
+ }
+
+ /* Check that memchr() does not read past the first occurrence of the
+ byte being searched. See the Austin Group's clarification
+ <http://www.opengroup.org/austin/docs/austin_454.txt>. */
+ {
+ char *page_boundary = (char *) zerosize_ptr ();
+
+ if (page_boundary != NULL)
+ {
+ int n;
+
+ for (n = 1; n <= 500; n++)
+ {
+ char *mem = page_boundary - n;
+ memset (mem, 'X', n);
+ ASSERT (MEMCHR (mem, 'U', n) == NULL);
+
+ {
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ mem[i] = 'U';
+ ASSERT (MEMCHR (mem, 'U', 4000) == mem + i);
+ mem[i] = 'X';
+ }
+ }
+ }
+ }
+ }
+
+ free (input);
+
+ return 0;
+}
diff --git a/tests/test-printf-frexp.c b/tests/test-printf-frexp.c
new file mode 100644
index 0000000..8ba9348
--- /dev/null
+++ b/tests/test-printf-frexp.c
@@ -0,0 +1,131 @@
+/* Test of splitting a double into fraction and mantissa.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "printf-frexp.h"
+
+#include <float.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static double
+my_ldexp (double x, int d)
+{
+ for (; d > 0; d--)
+ x *= 2.0;
+ for (; d < 0; d++)
+ x *= 0.5;
+ return x;
+}
+
+int
+main ()
+{
+ int i;
+ /* The use of 'volatile' guarantees that excess precision bits are dropped
+ when dealing with denormalized numbers. It is necessary on x86 systems
+ where double-floats are not IEEE compliant by default, to avoid that the
+ results become platform and compiler option dependent. 'volatile' is a
+ portable alternative to gcc's -ffloat-store option. */
+ volatile double x;
+
+ for (i = 1, x = 1.0; i <= DBL_MAX_EXP; i++, x *= 2.0)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.0);
+ }
+ for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.0);
+ }
+ for (; i >= DBL_MIN_EXP - 100 && x > 0.0; i--, x *= 0.5)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == DBL_MIN_EXP - 1);
+ ASSERT (mantissa == my_ldexp (1.0, i - DBL_MIN_EXP));
+ }
+
+ for (i = 1, x = 1.01; i <= DBL_MAX_EXP; i++, x *= 2.0)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.01);
+ }
+ for (i = 1, x = 1.01; i >= DBL_MIN_EXP; i--, x *= 0.5)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.01);
+ }
+ for (; i >= DBL_MIN_EXP - 100 && x > 0.0; i--, x *= 0.5)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == DBL_MIN_EXP - 1);
+ ASSERT (mantissa >= my_ldexp (1.0, i - DBL_MIN_EXP));
+ ASSERT (mantissa <= my_ldexp (2.0, i - DBL_MIN_EXP));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ for (i = 1, x = 1.73205; i <= DBL_MAX_EXP; i++, x *= 2.0)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.73205);
+ }
+ for (i = 1, x = 1.73205; i >= DBL_MIN_EXP; i--, x *= 0.5)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.73205);
+ }
+ for (; i >= DBL_MIN_EXP - 100 && x > 0.0; i--, x *= 0.5)
+ {
+ int exp = -9999;
+ double mantissa = printf_frexp (x, &exp);
+ ASSERT (exp == DBL_MIN_EXP - 1);
+ ASSERT (mantissa >= my_ldexp (1.0, i - DBL_MIN_EXP));
+ ASSERT (mantissa <= my_ldexp (2.0, i - DBL_MIN_EXP));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ return 0;
+}
diff --git a/tests/test-printf-frexpl.c b/tests/test-printf-frexpl.c
new file mode 100644
index 0000000..c4c156a
--- /dev/null
+++ b/tests/test-printf-frexpl.c
@@ -0,0 +1,147 @@
+/* Test of splitting a 'long double' into fraction and mantissa.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "printf-frexpl.h"
+
+#include <float.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "fpucw.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* On MIPS IRIX machines, LDBL_MIN_EXP is -1021, but the smallest reliable
+ exponent for 'long double' is -964. Similarly, on PowerPC machines,
+ LDBL_MIN_EXP is -1021, but the smallest reliable exponent for 'long double'
+ is -968. For exponents below that, the precision may be truncated to the
+ precision used for 'double'. */
+#ifdef __sgi
+# define MIN_NORMAL_EXP (LDBL_MIN_EXP + 57)
+# define MIN_SUBNORMAL_EXP MIN_NORMAL_EXP
+#elif defined __ppc || defined __ppc__ || defined __powerpc || defined __powerpc__
+# define MIN_NORMAL_EXP (LDBL_MIN_EXP + 53)
+# define MIN_SUBNORMAL_EXP MIN_NORMAL_EXP
+#else
+# define MIN_NORMAL_EXP LDBL_MIN_EXP
+# define MIN_SUBNORMAL_EXP (LDBL_MIN_EXP - 100)
+#endif
+
+static long double
+my_ldexp (long double x, int d)
+{
+ for (; d > 0; d--)
+ x *= 2.0L;
+ for (; d < 0; d++)
+ x *= 0.5L;
+ return x;
+}
+
+int
+main ()
+{
+ int i;
+ long double x;
+ DECL_LONG_DOUBLE_ROUNDING
+
+ BEGIN_LONG_DOUBLE_ROUNDING ();
+
+ for (i = 1, x = 1.0L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.0L);
+ }
+ for (i = 1, x = 1.0L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.0L);
+ }
+ for (; i >= MIN_SUBNORMAL_EXP && x > 0.0L; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == LDBL_MIN_EXP - 1);
+ ASSERT (mantissa == my_ldexp (1.0L, i - LDBL_MIN_EXP));
+ }
+
+ for (i = 1, x = 1.01L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.01L);
+ }
+ for (i = 1, x = 1.01L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.01L);
+ }
+ for (; i >= MIN_SUBNORMAL_EXP && x > 0.0L; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == LDBL_MIN_EXP - 1);
+ ASSERT (mantissa >= my_ldexp (1.0L, i - LDBL_MIN_EXP));
+ ASSERT (mantissa <= my_ldexp (2.0L, i - LDBL_MIN_EXP));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ for (i = 1, x = 1.73205L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.73205L);
+ }
+ for (i = 1, x = 1.73205L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == i - 1);
+ ASSERT (mantissa == 1.73205L);
+ }
+ for (; i >= MIN_SUBNORMAL_EXP && x > 0.0L; i--, x *= 0.5L)
+ {
+ int exp = -9999;
+ long double mantissa = printf_frexpl (x, &exp);
+ ASSERT (exp == LDBL_MIN_EXP - 1);
+ ASSERT (mantissa >= my_ldexp (1.0L, i - LDBL_MIN_EXP));
+ ASSERT (mantissa <= my_ldexp (2.0L, i - LDBL_MIN_EXP));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ return 0;
+}
diff --git a/tests/test-signbit.c b/tests/test-signbit.c
new file mode 100644
index 0000000..97f68e6
--- /dev/null
+++ b/tests/test-signbit.c
@@ -0,0 +1,204 @@
+/* Test of signbit() substitute.
+ Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <math.h>
+
+#include <float.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+float zerof = 0.0f;
+double zerod = 0.0;
+long double zerol = 0.0L;
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
+ So we use -zerof instead. */
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+ So we use -zerod instead. */
+
+/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
+ So we use minus_zerol instead.
+ IRIX cc can't put -0.0L into .data, but can compute at runtime.
+ Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
+ platforms, such as when cross-compiling to PowerPC on MacOS X 10.5. */
+#if defined __hpux || defined __sgi
+static long double
+compute_minus_zerol (void)
+{
+ return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
+#else
+long double minus_zerol = -0.0L;
+#endif
+
+static void
+test_signbitf ()
+{
+ /* Finite values. */
+ ASSERT (!signbit (3.141f));
+ ASSERT (!signbit (3.141e30f));
+ ASSERT (!signbit (3.141e-30f));
+ ASSERT (signbit (-2.718f));
+ ASSERT (signbit (-2.718e30f));
+ ASSERT (signbit (-2.718e-30f));
+ /* Zeros. */
+ ASSERT (!signbit (0.0f));
+ if (1.0f / -zerof < 0)
+ ASSERT (signbit (-zerof));
+ else
+ ASSERT (!signbit (-zerof));
+ /* Infinite values. */
+ ASSERT (!signbit (1.0f / 0.0f));
+ ASSERT (signbit (-1.0f / 0.0f));
+ /* Quiet NaN. */
+ (void) signbit (zerof / zerof);
+#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
+ /* Signalling NaN. */
+ {
+ #define NWORDS \
+ ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ typedef union { float value; unsigned int word[NWORDS]; } memory_float;
+ memory_float m;
+ m.value = zerof / zerof;
+# if FLT_EXPBIT0_BIT > 0
+ m.word[FLT_EXPBIT0_WORD] ^= (unsigned int) 1 << (FLT_EXPBIT0_BIT - 1);
+# else
+ m.word[FLT_EXPBIT0_WORD + (FLT_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+# endif
+ if (FLT_EXPBIT0_WORD < NWORDS / 2)
+ m.word[FLT_EXPBIT0_WORD + 1] |= (unsigned int) 1 << FLT_EXPBIT0_BIT;
+ else
+ m.word[0] |= (unsigned int) 1;
+ (void) signbit (m.value);
+ #undef NWORDS
+ }
+#endif
+}
+
+static void
+test_signbitd ()
+{
+ /* Finite values. */
+ ASSERT (!signbit (3.141));
+ ASSERT (!signbit (3.141e30));
+ ASSERT (!signbit (3.141e-30));
+ ASSERT (signbit (-2.718));
+ ASSERT (signbit (-2.718e30));
+ ASSERT (signbit (-2.718e-30));
+ /* Zeros. */
+ ASSERT (!signbit (0.0));
+ if (1.0 / -zerod < 0)
+ ASSERT (signbit (-zerod));
+ else
+ ASSERT (!signbit (-zerod));
+ /* Infinite values. */
+ ASSERT (!signbit (1.0 / 0.0));
+ ASSERT (signbit (-1.0 / 0.0));
+ /* Quiet NaN. */
+ (void) signbit (zerod / zerod);
+#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
+ /* Signalling NaN. */
+ {
+ #define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+ memory_double m;
+ m.value = zerod / zerod;
+# if DBL_EXPBIT0_BIT > 0
+ m.word[DBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (DBL_EXPBIT0_BIT - 1);
+# else
+ m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+# endif
+ m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ |= (unsigned int) 1 << DBL_EXPBIT0_BIT;
+ (void) signbit (m.value);
+ #undef NWORDS
+ }
+#endif
+}
+
+static void
+test_signbitl ()
+{
+ /* Finite values. */
+ ASSERT (!signbit (3.141L));
+ ASSERT (!signbit (3.141e30L));
+ ASSERT (!signbit (3.141e-30L));
+ ASSERT (signbit (-2.718L));
+ ASSERT (signbit (-2.718e30L));
+ ASSERT (signbit (-2.718e-30L));
+ /* Zeros. */
+ ASSERT (!signbit (0.0L));
+ if (1.0L / minus_zerol < 0)
+ ASSERT (signbit (minus_zerol));
+ else
+ ASSERT (!signbit (minus_zerol));
+ /* Infinite values. */
+ ASSERT (!signbit (1.0L / 0.0L));
+ ASSERT (signbit (-1.0L / 0.0L));
+ /* Quiet NaN. */
+ (void) signbit (zerol / zerol);
+#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
+ /* Signalling NaN. */
+ {
+ #define NWORDS \
+ ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ typedef union { long double value; unsigned int word[NWORDS]; } memory_long_double;
+ memory_long_double m;
+ m.value = zerol / zerol;
+# if LDBL_EXPBIT0_BIT > 0
+ m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 1);
+# else
+ m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+# endif
+ m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)]
+ |= (unsigned int) 1 << LDBL_EXPBIT0_BIT;
+ (void) signbit (m.value);
+ #undef NWORDS
+ }
+#endif
+}
+
+int
+main ()
+{
+ test_signbitf ();
+ test_signbitd ();
+ test_signbitl ();
+ return 0;
+}
diff --git a/tests/test-stdbool.c b/tests/test-stdbool.c
new file mode 100644
index 0000000..30d5321
--- /dev/null
+++ b/tests/test-stdbool.c
@@ -0,0 +1,95 @@
+/* Test of <stdbool.h> substitute.
+ Copyright (C) 2002-2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <stdbool.h>
+
+#ifndef bool
+ "error: bool is not defined"
+#endif
+#ifndef false
+ "error: false is not defined"
+#endif
+#if false
+ "error: false is not 0"
+#endif
+#ifndef true
+ "error: true is not defined"
+#endif
+#if true != 1
+ "error: true is not 1"
+#endif
+#ifndef __bool_true_false_are_defined
+ "error: __bool_true_false_are_defined is not defined"
+#endif
+
+#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>. */
+struct s { _Bool s: 1; _Bool t; } s;
+#endif
+
+char a[true == 1 ? 1 : -1];
+char b[false == 0 ? 1 : -1];
+char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>. */
+char d[(bool) 0.5 == true ? 1 : -1];
+bool e = &s;
+#endif
+char f[(_Bool) 0.0 == false ? 1 : -1];
+char g[true];
+char h[sizeof (_Bool)];
+#if 0 /* See above. */
+char i[sizeof s.t];
+#endif
+enum { j = false, k = true, l = false * true, m = true * 256 };
+_Bool n[m];
+char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>. */
+#if defined __xlc__ || defined __GNUC__
+ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
+ reported by James Lemley on 2005-10-05; see
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ This test is not quite right, since xlc is allowed to
+ reject this program, as the initializer for xlcbug is
+ not one of the forms that C requires support for.
+ However, doing the test right would require a run-time
+ test, and that would make cross-compilation harder.
+ Let us hope that IBM fixes the xlc bug, and also adds
+ support for this kind of constant expression. In the
+ meantime, this test will reject xlc, which is OK, since
+ our stdbool.h substitute should suffice. We also test
+ this with GCC, where it should work, to detect more
+ quickly whether someone messes up the test in the
+ future. */
+ char digs[] = "0123456789";
+ int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
+#endif
+#endif
+/* Catch a bug in an HP-UX C compiler. See
+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ */
+_Bool q = true;
+_Bool *pq = &q;
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/tests/test-stdint.c b/tests/test-stdint.c
new file mode 100644
index 0000000..a2bf42a
--- /dev/null
+++ b/tests/test-stdint.c
@@ -0,0 +1,360 @@
+/* Test of <stdint.h> substitute.
+ Copyright (C) 2006-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2006. */
+
+#include <config.h>
+
+/* Whether to enable pedantic checks. */
+#define DO_PEDANTIC 0
+
+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+#include <stdint.h>
+
+#include "verify.h"
+#include "intprops.h"
+
+#if __GNUC__ >= 2 && DO_PEDANTIC
+# define verify_same_types(expr1,expr2) \
+ extern void _verify_func(__LINE__) (__typeof__ (expr1) *); \
+ extern void _verify_func(__LINE__) (__typeof__ (expr2) *);
+# define _verify_func(line) _verify_func2(line)
+# define _verify_func2(line) verify_func_ ## line
+#else
+# define verify_same_types(expr1,expr2) extern void verify_func (int)
+#endif
+
+/* 7.18.1.1. Exact-width integer types */
+/* 7.18.2.1. Limits of exact-width integer types */
+
+int8_t a1[3] = { INT8_C (17), INT8_MIN, INT8_MAX };
+verify (TYPE_MINIMUM (int8_t) == INT8_MIN);
+verify (TYPE_MAXIMUM (int8_t) == INT8_MAX);
+verify_same_types (INT8_MIN, (int8_t) 0 + 0);
+verify_same_types (INT8_MAX, (int8_t) 0 + 0);
+
+int16_t a2[3] = { INT16_C (17), INT16_MIN, INT16_MAX };
+verify (TYPE_MINIMUM (int16_t) == INT16_MIN);
+verify (TYPE_MAXIMUM (int16_t) == INT16_MAX);
+verify_same_types (INT16_MIN, (int16_t) 0 + 0);
+verify_same_types (INT16_MAX, (int16_t) 0 + 0);
+
+int32_t a3[3] = { INT32_C (17), INT32_MIN, INT32_MAX };
+verify (TYPE_MINIMUM (int32_t) == INT32_MIN);
+verify (TYPE_MAXIMUM (int32_t) == INT32_MAX);
+verify_same_types (INT32_MIN, (int32_t) 0 + 0);
+verify_same_types (INT32_MAX, (int32_t) 0 + 0);
+
+#ifdef INT64_MAX
+int64_t a4[3] = { INT64_C (17), INT64_MIN, INT64_MAX };
+verify (TYPE_MINIMUM (int64_t) == INT64_MIN);
+verify (TYPE_MAXIMUM (int64_t) == INT64_MAX);
+verify_same_types (INT64_MIN, (int64_t) 0 + 0);
+verify_same_types (INT64_MAX, (int64_t) 0 + 0);
+#endif
+
+uint8_t b1[2] = { UINT8_C (17), UINT8_MAX };
+verify (TYPE_MAXIMUM (uint8_t) == UINT8_MAX);
+verify_same_types (UINT8_MAX, (uint8_t) 0 + 0);
+
+uint16_t b2[2] = { UINT16_C (17), UINT16_MAX };
+verify (TYPE_MAXIMUM (uint16_t) == UINT16_MAX);
+verify_same_types (UINT16_MAX, (uint16_t) 0 + 0);
+
+uint32_t b3[2] = { UINT32_C (17), UINT32_MAX };
+verify (TYPE_MAXIMUM (uint32_t) == UINT32_MAX);
+verify_same_types (UINT32_MAX, (uint32_t) 0 + 0);
+
+#ifdef UINT64_MAX
+uint64_t b4[2] = { UINT64_C (17), UINT64_MAX };
+verify (TYPE_MAXIMUM (uint64_t) == UINT64_MAX);
+verify_same_types (UINT64_MAX, (uint64_t) 0 + 0);
+#endif
+
+#if INT8_MIN && INT8_MAX && INT16_MIN && INT16_MAX && INT32_MIN && INT32_MAX
+/* ok */
+#else
+err or;
+#endif
+
+#if UINT8_MAX && UINT16_MAX && UINT32_MAX
+/* ok */
+#else
+err or;
+#endif
+
+/* 7.18.1.2. Minimum-width integer types */
+/* 7.18.2.2. Limits of minimum-width integer types */
+
+int_least8_t c1[3] = { 17, INT_LEAST8_MIN, INT_LEAST8_MAX };
+verify (TYPE_MINIMUM (int_least8_t) == INT_LEAST8_MIN);
+verify (TYPE_MAXIMUM (int_least8_t) == INT_LEAST8_MAX);
+verify_same_types (INT_LEAST8_MIN, (int_least8_t) 0 + 0);
+verify_same_types (INT_LEAST8_MAX, (int_least8_t) 0 + 0);
+
+int_least16_t c2[3] = { 17, INT_LEAST16_MIN, INT_LEAST16_MAX };
+verify (TYPE_MINIMUM (int_least16_t) == INT_LEAST16_MIN);
+verify (TYPE_MAXIMUM (int_least16_t) == INT_LEAST16_MAX);
+verify_same_types (INT_LEAST16_MIN, (int_least16_t) 0 + 0);
+verify_same_types (INT_LEAST16_MAX, (int_least16_t) 0 + 0);
+
+int_least32_t c3[3] = { 17, INT_LEAST32_MIN, INT_LEAST32_MAX };
+verify (TYPE_MINIMUM (int_least32_t) == INT_LEAST32_MIN);
+verify (TYPE_MAXIMUM (int_least32_t) == INT_LEAST32_MAX);
+verify_same_types (INT_LEAST32_MIN, (int_least32_t) 0 + 0);
+verify_same_types (INT_LEAST32_MAX, (int_least32_t) 0 + 0);
+
+#ifdef INT_LEAST64_MAX
+int_least64_t c4[3] = { 17, INT_LEAST64_MIN, INT_LEAST64_MAX };
+verify (TYPE_MINIMUM (int_least64_t) == INT_LEAST64_MIN);
+verify (TYPE_MAXIMUM (int_least64_t) == INT_LEAST64_MAX);
+verify_same_types (INT_LEAST64_MIN, (int_least64_t) 0 + 0);
+verify_same_types (INT_LEAST64_MAX, (int_least64_t) 0 + 0);
+#endif
+
+uint_least8_t d1[2] = { 17, UINT_LEAST8_MAX };
+verify (TYPE_MAXIMUM (uint_least8_t) == UINT_LEAST8_MAX);
+verify_same_types (UINT_LEAST8_MAX, (uint_least8_t) 0 + 0);
+
+uint_least16_t d2[2] = { 17, UINT_LEAST16_MAX };
+verify (TYPE_MAXIMUM (uint_least16_t) == UINT_LEAST16_MAX);
+verify_same_types (UINT_LEAST16_MAX, (uint_least16_t) 0 + 0);
+
+uint_least32_t d3[2] = { 17, UINT_LEAST32_MAX };
+verify (TYPE_MAXIMUM (uint_least32_t) == UINT_LEAST32_MAX);
+verify_same_types (UINT_LEAST32_MAX, (uint_least32_t) 0 + 0);
+
+#ifdef UINT_LEAST64_MAX
+uint_least64_t d4[2] = { 17, UINT_LEAST64_MAX };
+verify (TYPE_MAXIMUM (uint_least64_t) == UINT_LEAST64_MAX);
+verify_same_types (UINT_LEAST64_MAX, (uint_least64_t) 0 + 0);
+#endif
+
+#if INT_LEAST8_MIN && INT_LEAST8_MAX && INT_LEAST16_MIN && INT_LEAST16_MAX && INT_LEAST32_MIN && INT_LEAST32_MAX
+/* ok */
+#else
+err or;
+#endif
+
+#if UINT_LEAST8_MAX && UINT_LEAST16_MAX && UINT_LEAST32_MAX
+/* ok */
+#else
+err or;
+#endif
+
+/* 7.18.1.3. Fastest minimum-width integer types */
+/* 7.18.2.3. Limits of fastest minimum-width integer types */
+
+int_fast8_t e1[3] = { 17, INT_FAST8_MIN, INT_FAST8_MAX };
+verify (TYPE_MINIMUM (int_fast8_t) == INT_FAST8_MIN);
+verify (TYPE_MAXIMUM (int_fast8_t) == INT_FAST8_MAX);
+verify_same_types (INT_FAST8_MIN, (int_fast8_t) 0 + 0);
+verify_same_types (INT_FAST8_MAX, (int_fast8_t) 0 + 0);
+
+int_fast16_t e2[3] = { 17, INT_FAST16_MIN, INT_FAST16_MAX };
+verify (TYPE_MINIMUM (int_fast16_t) == INT_FAST16_MIN);
+verify (TYPE_MAXIMUM (int_fast16_t) == INT_FAST16_MAX);
+verify_same_types (INT_FAST16_MIN, (int_fast16_t) 0 + 0);
+verify_same_types (INT_FAST16_MAX, (int_fast16_t) 0 + 0);
+
+int_fast32_t e3[3] = { 17, INT_FAST32_MIN, INT_FAST32_MAX };
+verify (TYPE_MINIMUM (int_fast32_t) == INT_FAST32_MIN);
+verify (TYPE_MAXIMUM (int_fast32_t) == INT_FAST32_MAX);
+verify_same_types (INT_FAST32_MIN, (int_fast32_t) 0 + 0);
+verify_same_types (INT_FAST32_MAX, (int_fast32_t) 0 + 0);
+
+#ifdef INT_FAST64_MAX
+int_fast64_t e4[3] = { 17, INT_FAST64_MIN, INT_FAST64_MAX };
+verify (TYPE_MINIMUM (int_fast64_t) == INT_FAST64_MIN);
+verify (TYPE_MAXIMUM (int_fast64_t) == INT_FAST64_MAX);
+verify_same_types (INT_FAST64_MIN, (int_fast64_t) 0 + 0);
+verify_same_types (INT_FAST64_MAX, (int_fast64_t) 0 + 0);
+#endif
+
+uint_fast8_t f1[2] = { 17, UINT_FAST8_MAX };
+verify (TYPE_MAXIMUM (uint_fast8_t) == UINT_FAST8_MAX);
+verify_same_types (UINT_FAST8_MAX, (uint_fast8_t) 0 + 0);
+
+uint_fast16_t f2[2] = { 17, UINT_FAST16_MAX };
+verify (TYPE_MAXIMUM (uint_fast16_t) == UINT_FAST16_MAX);
+verify_same_types (UINT_FAST16_MAX, (uint_fast16_t) 0 + 0);
+
+uint_fast32_t f3[2] = { 17, UINT_FAST32_MAX };
+verify (TYPE_MAXIMUM (uint_fast32_t) == UINT_FAST32_MAX);
+verify_same_types (UINT_FAST32_MAX, (uint_fast32_t) 0 + 0);
+
+#ifdef UINT_FAST64_MAX
+uint_fast64_t f4[2] = { 17, UINT_FAST64_MAX };
+verify (TYPE_MAXIMUM (uint_fast64_t) == UINT_FAST64_MAX);
+verify_same_types (UINT_FAST64_MAX, (uint_fast64_t) 0 + 0);
+#endif
+
+#if INT_FAST8_MIN && INT_FAST8_MAX && INT_FAST16_MIN && INT_FAST16_MAX && INT_FAST32_MIN && INT_FAST32_MAX
+/* ok */
+#else
+err or;
+#endif
+
+#if UINT_FAST8_MAX && UINT_FAST16_MAX && UINT_FAST32_MAX
+/* ok */
+#else
+err or;
+#endif
+
+/* 7.18.1.4. Integer types capable of holding object pointers */
+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
+
+intptr_t g[3] = { 17, INTPTR_MIN, INTPTR_MAX };
+verify (TYPE_MINIMUM (intptr_t) == INTPTR_MIN);
+verify (TYPE_MAXIMUM (intptr_t) == INTPTR_MAX);
+verify_same_types (INTPTR_MIN, (intptr_t) 0 + 0);
+verify_same_types (INTPTR_MAX, (intptr_t) 0 + 0);
+
+uintptr_t h[2] = { 17, UINTPTR_MAX };
+verify (TYPE_MAXIMUM (uintptr_t) == UINTPTR_MAX);
+verify_same_types (UINTPTR_MAX, (uintptr_t) 0 + 0);
+
+#if INTPTR_MIN && INTPTR_MAX && UINTPTR_MAX
+/* ok */
+#else
+err or;
+#endif
+
+/* 7.18.1.5. Greatest-width integer types */
+/* 7.18.2.5. Limits of greatest-width integer types */
+
+intmax_t i[3] = { INTMAX_C (17), INTMAX_MIN, INTMAX_MAX };
+verify (TYPE_MINIMUM (intmax_t) == INTMAX_MIN);
+verify (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX);
+verify_same_types (INTMAX_MIN, (intmax_t) 0 + 0);
+verify_same_types (INTMAX_MAX, (intmax_t) 0 + 0);
+
+uintmax_t j[2] = { UINTMAX_C (17), UINTMAX_MAX };
+verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX);
+verify_same_types (UINTMAX_MAX, (uintmax_t) 0 + 0);
+
+/* As of 2007, Sun C and HP-UX 10.20 cc don't support 'long long' constants in
+ the preprocessor. */
+#if !(defined __SUNPRO_C || (defined __hpux && !defined __GNUC__))
+#if INTMAX_MIN && INTMAX_MAX && UINTMAX_MAX
+/* ok */
+#else
+err or;
+#endif
+#endif
+
+/* 7.18.3. Limits of other integer types */
+
+#include <stddef.h>
+
+verify (TYPE_MINIMUM (ptrdiff_t) == PTRDIFF_MIN);
+verify (TYPE_MAXIMUM (ptrdiff_t) == PTRDIFF_MAX);
+verify_same_types (PTRDIFF_MIN, (ptrdiff_t) 0 + 0);
+verify_same_types (PTRDIFF_MAX, (ptrdiff_t) 0 + 0);
+
+#if PTRDIFF_MIN && PTRDIFF_MAX
+/* ok */
+#else
+err or;
+#endif
+
+#include <signal.h>
+
+verify (TYPE_MINIMUM (sig_atomic_t) == SIG_ATOMIC_MIN);
+verify (TYPE_MAXIMUM (sig_atomic_t) == SIG_ATOMIC_MAX);
+verify_same_types (SIG_ATOMIC_MIN, (sig_atomic_t) 0 + 0);
+verify_same_types (SIG_ATOMIC_MAX, (sig_atomic_t) 0 + 0);
+
+#if SIG_ATOMIC_MIN != 17 && SIG_ATOMIC_MAX
+/* ok */
+#else
+err or;
+#endif
+
+verify (TYPE_MAXIMUM (size_t) == SIZE_MAX);
+verify_same_types (SIZE_MAX, (size_t) 0 + 0);
+
+#if SIZE_MAX
+/* ok */
+#else
+err or;
+#endif
+
+#if HAVE_WCHAR_T
+verify (TYPE_MINIMUM (wchar_t) == WCHAR_MIN);
+verify (TYPE_MAXIMUM (wchar_t) == WCHAR_MAX);
+verify_same_types (WCHAR_MIN, (wchar_t) 0 + 0);
+verify_same_types (WCHAR_MAX, (wchar_t) 0 + 0);
+
+# if WCHAR_MIN != 17 && WCHAR_MAX
+/* ok */
+# else
+err or;
+# endif
+#endif
+
+#if HAVE_WINT_T
+# include <wchar.h>
+
+verify (TYPE_MINIMUM (wint_t) == WINT_MIN);
+verify (TYPE_MAXIMUM (wint_t) == WINT_MAX);
+verify_same_types (WINT_MIN, (wint_t) 0 + 0);
+verify_same_types (WINT_MAX, (wint_t) 0 + 0);
+
+# if WINT_MIN != 17 && WINT_MAX
+/* ok */
+# else
+err or;
+# endif
+#endif
+
+/* 7.18.4. Macros for integer constants */
+
+verify (INT8_C (17) == 17);
+verify_same_types (INT8_C (17), (int_least8_t)0 + 0);
+verify (UINT8_C (17) == 17);
+verify_same_types (UINT8_C (17), (uint_least8_t)0 + 0);
+
+verify (INT16_C (17) == 17);
+verify_same_types (INT16_C (17), (int_least16_t)0 + 0);
+verify (UINT16_C (17) == 17);
+verify_same_types (UINT16_C (17), (uint_least16_t)0 + 0);
+
+verify (INT32_C (17) == 17);
+verify_same_types (INT32_C (17), (int_least32_t)0 + 0);
+verify (UINT32_C (17) == 17);
+verify_same_types (UINT32_C (17), (uint_least32_t)0 + 0);
+
+#ifdef INT64_C
+verify (INT64_C (17) == 17);
+verify_same_types (INT64_C (17), (int_least64_t)0 + 0);
+#endif
+#ifdef UINT64_C
+verify (UINT64_C (17) == 17);
+verify_same_types (UINT64_C (17), (uint_least64_t)0 + 0);
+#endif
+
+verify (INTMAX_C (17) == 17);
+verify_same_types (INTMAX_C (17), (intmax_t)0 + 0);
+verify (UINTMAX_C (17) == 17);
+verify_same_types (UINTMAX_C (17), (uintmax_t)0 + 0);
+
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/tests/test-stdlib.c b/tests/test-stdlib.c
new file mode 100644
index 0000000..ae46ba1
--- /dev/null
+++ b/tests/test-stdlib.c
@@ -0,0 +1,43 @@
+/* Test of <stdlib.h> substitute.
+ Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include "verify.h"
+
+int exitcode;
+
+/* Check that NULL can be passed through varargs as a pointer type,
+ per POSIX 2008. */
+verify (sizeof NULL == sizeof (void *));
+
+int
+main ()
+{
+ /* Check that some macros are defined and different integer constants. */
+ switch (exitcode)
+ {
+ case EXIT_SUCCESS:
+ case EXIT_FAILURE:
+ break;
+ }
+
+ return 0;
+}
diff --git a/tests/test-strerror.c b/tests/test-strerror.c
new file mode 100644
index 0000000..3d9814d
--- /dev/null
+++ b/tests/test-strerror.c
@@ -0,0 +1,65 @@
+/* Test of strerror() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2007. */
+
+#include <config.h>
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main (int argc, char **argv)
+{
+ char *str;
+
+ str = strerror (EACCES);
+ ASSERT (str);
+ ASSERT (*str);
+
+ str = strerror (ETIMEDOUT);
+ ASSERT (str);
+ ASSERT (*str);
+
+ str = strerror (EOVERFLOW);
+ ASSERT (str);
+ ASSERT (*str);
+
+ str = strerror (0);
+ ASSERT (str);
+ ASSERT (*str);
+
+ str = strerror (-3);
+ ASSERT (str);
+ ASSERT (*str);
+
+ return 0;
+}
diff --git a/tests/test-striconveh.c b/tests/test-striconveh.c
new file mode 100644
index 0000000..16a16f4
--- /dev/null
+++ b/tests/test-striconveh.c
@@ -0,0 +1,922 @@
+/* Test of character set conversion with error handling.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "striconveh.h"
+
+#if HAVE_ICONV
+# include <iconv.h>
+#endif
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+ iconv_t cd_88591_to_88592 = iconv_open ("ISO-8859-2", "ISO-8859-1");
+ iconv_t cd_88592_to_88591 = iconv_open ("ISO-8859-1", "ISO-8859-2");
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO-8859-1", "UTF-8");
+ iconv_t cd_88592_to_utf8 = iconv_open ("UTF-8", "ISO-8859-2");
+ iconv_t cd_utf8_to_88592 = iconv_open ("ISO-8859-2", "UTF-8");
+ iconv_t cd_utf7_to_utf8 = iconv_open ("UTF-8", "UTF-7");
+
+ ASSERT (cd_88591_to_utf8 != (iconv_t)(-1));
+ ASSERT (cd_utf8_to_88591 != (iconv_t)(-1));
+ ASSERT (cd_88592_to_utf8 != (iconv_t)(-1));
+ ASSERT (cd_utf8_to_88592 != (iconv_t)(-1));
+
+ /* ------------------------ Test mem_cd_iconveh() ------------------------ */
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, strlen (input),
+ cd_88592_to_88591,
+ cd_88592_to_utf8, cd_utf8_to_88591,
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, strlen (input),
+ cd_88592_to_88591,
+ cd_88592_to_utf8, cd_utf8_to_88591,
+ handler,
+ offsets,
+ &result, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (retval == -1 && errno == EILSEQ);
+ ASSERT (result == NULL);
+ if (o)
+ free (offsets);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i + 5));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, strlen (input),
+ cd_88591_to_utf8,
+ cd_88591_to_utf8, (iconv_t)(-1),
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i < 12 ? i + 1 :
+ i < 18 ? i + 2 :
+ i + 3));
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, strlen (input),
+ cd_utf8_to_88591,
+ (iconv_t)(-1), cd_utf8_to_88591,
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 41; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i == 1 ? (size_t)(-1) :
+ i < 13 ? i - 1 :
+ i == 13 ? (size_t)(-1) :
+ i < 20 ? i - 2 :
+ i == 20 ? (size_t)(-1) :
+ i < 40 ? i - 3 :
+ (size_t)(-1)));
+ ASSERT (offsets[41] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, strlen (input),
+ cd_utf8_to_88591,
+ (iconv_t)(-1), cd_utf8_to_88591,
+ handler,
+ offsets,
+ &result, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (retval == -1 && errno == EILSEQ);
+ ASSERT (result == NULL);
+ if (o)
+ free (offsets);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i - 1));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i + 4));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\342";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, strlen (input),
+ cd_utf8_to_88591,
+ (iconv_t)(-1), cd_utf8_to_88591,
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == 0);
+ if (o)
+ {
+ ASSERT (offsets[0] == 0);
+ ASSERT (offsets[1] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ if (cd_utf7_to_utf8 != (iconv_t)(-1))
+ {
+ /* Disabled on Solaris, because Solaris 9 iconv() is buggy: it returns
+ -1 / EILSEQ when converting the 7th byte of the input "+VDLYP9hA". */
+# if !(defined __sun && !defined _LIBICONV_VERSION)
+ /* Test conversion from UTF-7 to UTF-8 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ /* This is base64 encoded 0x54 0x32 0xD8 0x3F 0xD8 0x40. It would
+ convert to U+5432 U+D83F U+D840 but these are Unicode surrogates. */
+ static const char input[] = "+VDLYP9hA";
+ static const char expected1[] = "\345\220\262"; /* 吲 glibc */
+ static const char expected2[] = ""; /* libiconv */
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, 7,
+ cd_utf7_to_utf8,
+ cd_utf7_to_utf8, (iconv_t)(-1),
+ handler,
+ NULL,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected1) || length == strlen (expected2));
+ ASSERT (result != NULL);
+ if (length == strlen (expected1))
+ ASSERT (memcmp (result, expected1, strlen (expected1)) == 0);
+ else
+ ASSERT (memcmp (result, expected2, strlen (expected2)) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-7 to UTF-8 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ /* This is base64 encoded 0xD8 0x3F 0xD8 0x40 0xD8 0x41. It would
+ convert to U+D83F U+D840 U+D841 but these are Unicode surrogates. */
+ static const char input[] = "+2D/YQNhB";
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_cd_iconveh (input, strlen (input),
+ cd_utf7_to_utf8,
+ cd_utf7_to_utf8, (iconv_t)(-1),
+ handler,
+ NULL,
+ &result, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (retval == -1 && errno == EILSEQ);
+ ASSERT (result == NULL);
+ break;
+ case iconveh_question_mark:
+ case iconveh_escape_sequence:
+ {
+ /* glibc result */
+ static const char expected1[] = "?????";
+ /* libiconv <= 1.12 result */
+ static const char expected2[] = "?2D/YQNhB";
+ /* libiconv behaviour changed in version 1.13: the result is
+ '?' U+0FF6 U+1036; this is U+D83F U+D840 U+D841 shifted left
+ by 6 bits. */
+ static const char expected3[] = "?\340\277\266\341\200\266";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected1)
+ || length == strlen (expected2)
+ || length == strlen (expected3));
+ ASSERT (result != NULL);
+ if (length == strlen (expected1))
+ ASSERT (memcmp (result, expected1, strlen (expected1)) == 0);
+ else if (length == strlen (expected2))
+ ASSERT (memcmp (result, expected2, strlen (expected2)) == 0);
+ else
+ ASSERT (memcmp (result, expected3, strlen (expected3)) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+# endif
+ }
+
+ /* ------------------------ Test str_cd_iconveh() ------------------------ */
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = str_cd_iconveh (input,
+ cd_88592_to_88591,
+ cd_88592_to_utf8, cd_utf8_to_88591,
+ handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ char *result = str_cd_iconveh (input,
+ cd_88592_to_88591,
+ cd_88592_to_utf8, cd_utf8_to_88591,
+ handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ char *result = str_cd_iconveh (input,
+ cd_88591_to_utf8,
+ cd_88591_to_utf8, (iconv_t)(-1),
+ handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = str_cd_iconveh (input,
+ cd_utf8_to_88591,
+ (iconv_t)(-1), cd_utf8_to_88591,
+ handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
+ char *result = str_cd_iconveh (input,
+ cd_utf8_to_88591,
+ (iconv_t)(-1), cd_utf8_to_88591,
+ handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Costs: 27 ?";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Costs: 27 \\u20AC";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\342";
+ char *result = str_cd_iconveh (input,
+ cd_utf8_to_88591,
+ (iconv_t)(-1), cd_utf8_to_88591,
+ handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "") == 0);
+ free (result);
+ }
+
+ if (cd_88591_to_88592 != (iconv_t)(-1))
+ iconv_close (cd_88591_to_88592);
+ if (cd_88592_to_88591 != (iconv_t)(-1))
+ iconv_close (cd_88592_to_88591);
+ iconv_close (cd_88591_to_utf8);
+ iconv_close (cd_utf8_to_88591);
+ iconv_close (cd_88592_to_utf8);
+ iconv_close (cd_utf8_to_88592);
+
+ /* ------------------------- Test mem_iconveh() ------------------------- */
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveh (input, strlen (input),
+ "ISO-8859-2", "ISO-8859-1",
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveh (input, strlen (input),
+ "ISO-8859-2", "ISO-8859-1",
+ handler,
+ offsets,
+ &result, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (retval == -1 && errno == EILSEQ);
+ ASSERT (result == NULL);
+ if (o)
+ free (offsets);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i + 5));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveh (input, strlen (input),
+ "ISO-8859-1", "UTF-8",
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i < 12 ? i + 1 :
+ i < 18 ? i + 2 :
+ i + 3));
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveh (input, strlen (input),
+ "UTF-8", "ISO-8859-1",
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 41; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i == 1 ? (size_t)(-1) :
+ i < 13 ? i - 1 :
+ i == 13 ? (size_t)(-1) :
+ i < 20 ? i - 2 :
+ i == 20 ? (size_t)(-1) :
+ i < 40 ? i - 3 :
+ (size_t)(-1)));
+ ASSERT (offsets[41] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveh (input, strlen (input),
+ "UTF-8", "ISO-8859-1",
+ handler,
+ offsets,
+ &result, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (retval == -1 && errno == EILSEQ);
+ ASSERT (result == NULL);
+ if (o)
+ free (offsets);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i - 1));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i + 4));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\342";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveh (input, strlen (input),
+ "UTF-8", "ISO-8859-1",
+ handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == 0);
+ if (o)
+ {
+ ASSERT (offsets[0] == 0);
+ ASSERT (offsets[1] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* ------------------------- Test str_iconveh() ------------------------- */
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = str_iconveh (input, "ISO-8859-2", "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ char *result = str_iconveh (input, "ISO-8859-2", "ISO-8859-1", handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ char *result = str_iconveh (input, "ISO-8859-1", "UTF-8", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = str_iconveh (input, "UTF-8", "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
+ char *result = str_iconveh (input, "UTF-8", "ISO-8859-1", handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Costs: 27 ?";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Costs: 27 \\u20AC";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\342";
+ char *result = str_iconveh (input, "UTF-8", "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "") == 0);
+ free (result);
+ }
+
+#endif
+
+ return 0;
+}
diff --git a/tests/test-striconveha.c b/tests/test-striconveha.c
new file mode 100644
index 0000000..47e9a46
--- /dev/null
+++ b/tests/test-striconveha.c
@@ -0,0 +1,609 @@
+/* Test of character set conversion with error handling and autodetection.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "striconveha.h"
+
+#if HAVE_ICONV
+# include <iconv.h>
+#endif
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* ------------------------- Test mem_iconveha() ------------------------- */
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "ISO-8859-2", "ISO-8859-1",
+ false, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "ISO-8859-2", "ISO-8859-1",
+ false, handler,
+ offsets,
+ &result, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (retval == -1 && errno == EILSEQ);
+ ASSERT (result == NULL);
+ if (o)
+ free (offsets);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i + 5));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "ISO-8859-1", "UTF-8",
+ false, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i < 12 ? i + 1 :
+ i < 18 ? i + 2 :
+ i + 3));
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "UTF-8", "ISO-8859-1",
+ false, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 41; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i == 1 ? (size_t)(-1) :
+ i < 13 ? i - 1 :
+ i == 13 ? (size_t)(-1) :
+ i < 20 ? i - 2 :
+ i == 20 ? (size_t)(-1) :
+ i < 40 ? i - 3 :
+ (size_t)(-1)));
+ ASSERT (offsets[41] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "UTF-8", "ISO-8859-1",
+ false, handler,
+ offsets,
+ &result, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (retval == -1 && errno == EILSEQ);
+ ASSERT (result == NULL);
+ if (o)
+ free (offsets);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i - 1));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i + 4));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\342";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "UTF-8", "ISO-8859-1",
+ false, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == 0);
+ if (o)
+ {
+ ASSERT (offsets[0] == 0);
+ ASSERT (offsets[1] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__ || defined __sun)
+ /* Test conversions from autodetect_jp to UTF-8. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "autodetect_jp", "UTF-8",
+ false, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "autodetect_jp", "UTF-8",
+ false, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "autodetect_jp", "UTF-8",
+ false, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i == 0 ? 0 :
+ i == 5 ? 3 :
+ i == 7 ? 6 :
+ i == 9 ? 9 :
+ i == 11 ? 12 :
+ i == 13 ? 15 :
+ (size_t)(-1)));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+# endif
+
+# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+ /* Test conversion from UTF-8 to ISO-8859-1 with transliteration. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
+ static const char expected[] = "Costs: 27 EUR";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ char *result = NULL;
+ size_t length = 0;
+ int retval = mem_iconveha (input, strlen (input),
+ "UTF-8", "ISO-8859-1",
+ true, handler,
+ offsets,
+ &result, &length);
+ ASSERT (retval == 0);
+ ASSERT (length == strlen (expected));
+ ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 13; i++)
+ ASSERT (offsets[i] == (i < 11 ? i : (size_t)(-1)));
+ ASSERT (offsets[13] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+# endif
+
+ /* ------------------------- Test str_iconveha() ------------------------- */
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = str_iconveha (input, "ISO-8859-2", "ISO-8859-1", false, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from ISO-8859-2 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ char *result = str_iconveha (input, "ISO-8859-2", "ISO-8859-1", false, handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ char *result = str_iconveha (input, "ISO-8859-1", "UTF-8", false, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = str_iconveha (input, "UTF-8", "ISO-8859-1", false, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
+ char *result = str_iconveha (input, "UTF-8", "ISO-8859-1", false, handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Costs: 27 ?";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Costs: 27 \\u20AC";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\342";
+ char *result = str_iconveha (input, "UTF-8", "ISO-8859-1", false, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "") == 0);
+ free (result);
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__ || defined __sun)
+ /* Test conversions from autodetect_jp to UTF-8. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ char *result = str_iconveha (input, "autodetect_jp", "UTF-8", false, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ char *result = str_iconveha (input, "autodetect_jp", "UTF-8", false, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const char expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ char *result = str_iconveha (input, "autodetect_jp", "UTF-8", false, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+# endif
+
+# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+ /* Test conversion from UTF-8 to ISO-8859-1 with transliteration. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */
+ static const char expected[] = "Costs: 27 EUR";
+ char *result = str_iconveha (input, "UTF-8", "ISO-8859-1", true, handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/test-string.c b/tests/test-string.c
new file mode 100644
index 0000000..fe53cd9
--- /dev/null
+++ b/tests/test-string.c
@@ -0,0 +1,33 @@
+/* Test of <string.h> substitute.
+ Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <string.h>
+
+#include "verify.h"
+
+/* Check that NULL can be passed through varargs as a pointer type,
+ per POSIX 2008. */
+verify (sizeof NULL == sizeof (void *));
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/tests/test-unistd.c b/tests/test-unistd.c
new file mode 100644
index 0000000..129367b
--- /dev/null
+++ b/tests/test-unistd.c
@@ -0,0 +1,56 @@
+/* Test of <unistd.h> substitute.
+ Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <unistd.h>
+
+#include "verify.h"
+
+/* Check that NULL can be passed through varargs as a pointer type,
+ per POSIX 2008. */
+verify (sizeof NULL == sizeof (void *));
+
+/* Check that the various SEEK_* macros are defined. */
+int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
+
+/* Check that the various *_FILENO macros are defined. */
+#if ! (defined STDIN_FILENO \
+ && (STDIN_FILENO + STDOUT_FILENO + STDERR_FILENO == 3))
+missing or broken *_FILENO macros
+#endif
+
+/* Check that the types are all defined. */
+size_t t1;
+ssize_t t2;
+#ifdef TODO /* Not implemented in gnulib yet */
+uid_t t3;
+gid_t t4;
+#endif
+off_t t5;
+pid_t t6;
+#ifdef TODO
+useconds_t t7;
+intptr_t t8;
+#endif
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/tests/test-wchar.c b/tests/test-wchar.c
new file mode 100644
index 0000000..19da7d9
--- /dev/null
+++ b/tests/test-wchar.c
@@ -0,0 +1,31 @@
+/* Test of <wchar.h> substitute.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <wchar.h>
+
+/* Check that the types wchar_t and wint_t are defined. */
+wchar_t a = 'c';
+wint_t b = 'x';
+
+int
+main ()
+{
+ return 0;
+}
diff --git a/tests/test-wctype.c b/tests/test-wctype.c
new file mode 100644
index 0000000..c2d8601
--- /dev/null
+++ b/tests/test-wctype.c
@@ -0,0 +1,46 @@
+/* Test of <wctype.h> substitute.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <wctype.h>
+
+/* Check that the type wint_t is defined. */
+wint_t a = 'x';
+
+int
+main ()
+{
+ /* Check that the isw* functions exist as functions or as macros. */
+ (void) iswalnum (0);
+ (void) iswalpha (0);
+#if 0 /* not portable: missing on mingw */
+ (void) iswblank (0);
+#endif
+ (void) iswcntrl (0);
+ (void) iswdigit (0);
+ (void) iswgraph (0);
+ (void) iswlower (0);
+ (void) iswprint (0);
+ (void) iswpunct (0);
+ (void) iswspace (0);
+ (void) iswupper (0);
+ (void) iswxdigit (0);
+
+ return 0;
+}
diff --git a/tests/test-wcwidth.c b/tests/test-wcwidth.c
new file mode 100644
index 0000000..582a8aa
--- /dev/null
+++ b/tests/test-wcwidth.c
@@ -0,0 +1,91 @@
+/* Test of wcwidth() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <wchar.h>
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "localcharset.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ wchar_t wc;
+
+ /* Test width of ASCII characters. */
+ for (wc = 0x20; wc < 0x7F; wc++)
+ ASSERT (wcwidth (wc) == 1);
+
+ /* Switch to an UTF-8 locale. */
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL
+ /* Check whether it's really an UTF-8 locale.
+ On OpenBSD 4.0, the setlocale call succeeds only for the LC_CTYPE
+ category and therefore returns "C/fr_FR.UTF-8/C/C/C/C", but the
+ LC_CTYPE category is effectively set to an ASCII LC_CTYPE category;
+ in particular, locale_charset() returns "ASCII". */
+ && strcmp (locale_charset (), "UTF-8") == 0)
+ {
+ /* Test width of ASCII characters. */
+ for (wc = 0x20; wc < 0x7F; wc++)
+ ASSERT (wcwidth (wc) == 1);
+
+ /* Test width of some non-spacing characters. */
+ ASSERT (wcwidth (0x0301) == 0);
+ ASSERT (wcwidth (0x05B0) == 0);
+
+ /* Test width of some format control characters. */
+ ASSERT (wcwidth (0x200E) <= 0);
+ ASSERT (wcwidth (0x2060) <= 0);
+#if 0 /* wchar_t may be only 16 bits. */
+ ASSERT (wcwidth (0xE0001) <= 0);
+ ASSERT (wcwidth (0xE0044) <= 0);
+#endif
+
+ /* Test width of some zero width characters. */
+ ASSERT (wcwidth (0x200B) == 0);
+ ASSERT (wcwidth (0xFEFF) <= 0);
+
+ /* Test width of some CJK characters. */
+ ASSERT (wcwidth (0x3000) == 2);
+ ASSERT (wcwidth (0xB250) == 2);
+ ASSERT (wcwidth (0xFF1A) == 2);
+#if 0 /* wchar_t may be only 16 bits. */
+ ASSERT (wcwidth (0x20369) == 2);
+ ASSERT (wcwidth (0x2F876) == 2);
+#endif
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-casecmp.h b/tests/unicase/test-casecmp.h
new file mode 100644
index 0000000..d057f89
--- /dev/null
+++ b/tests/unicase/test-casecmp.h
@@ -0,0 +1,69 @@
+/* Test of case and normalization insensitive comparison of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_casecmp) (const UNIT *, size_t, const UNIT *, size_t, const char *, uninorm_t, int *),
+ uninorm_t nf)
+{
+ /* Empty string. */
+ {
+ int cmp;
+
+ ASSERT (my_casecmp (NULL, 0, NULL, 0, NULL, nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ {
+ static const UNIT input[] = { 'x', 'y' };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), NULL, 0, NULL, nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_casecmp (NULL, 0, input, SIZEOF (input), NULL, nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), input, SIZEOF (input), NULL, nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Normal lexicographic order. */
+ {
+ static const UNIT input1[] = { 'A', 'm', 'e', 'r', 'i', 'c', 'a' };
+ static const UNIT input2[] = { 'A', 'm', 'i', 'g', 'o' };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1), NULL, nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+
+ /* Shorter and longer strings. */
+ {
+ static const UNIT input1[] = { 'R', 'e', 'a', 'g', 'a', 'n' };
+ static const UNIT input2[] = { 'R', 'e', 'a', 'g', 'a', 'n', 'o', 'm', 'i', 'c', 's' };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1), NULL, nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+}
diff --git a/tests/unicase/test-cased.c b/tests/unicase/test-cased.c
new file mode 100644
index 0000000..37af3d2
--- /dev/null
+++ b/tests/unicase/test-cased.c
@@ -0,0 +1,135 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x01BA },
+ { 0x01BC, 0x01BF },
+ { 0x01C4, 0x0293 },
+ { 0x0295, 0x02B8 },
+ { 0x02C0, 0x02C1 },
+ { 0x02E0, 0x02E4 },
+ { 0x0345, 0x0345 },
+ { 0x0370, 0x0373 },
+ { 0x0376, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0561, 0x0587 },
+ { 0x10A0, 0x10C5 },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x212D },
+ { 0x212F, 0x2134 },
+ { 0x2139, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x217F },
+ { 0x2183, 0x2184 },
+ { 0x24B6, 0x24E9 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66D },
+ { 0xA680, 0xA697 },
+ { 0xA722, 0xA787 },
+ { 0xA78B, 0xA78C },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0x10400, 0x1044F },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB }
+
+#define PREDICATE(c) uc_is_cased (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unicase/test-ignorable.c b/tests/unicase/test-ignorable.c
new file mode 100644
index 0000000..94f809e
--- /dev/null
+++ b/tests/unicase/test-ignorable.c
@@ -0,0 +1,246 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0027, 0x0027 },
+ { 0x002E, 0x002E },
+ { 0x003A, 0x003A },
+ { 0x005E, 0x005E },
+ { 0x0060, 0x0060 },
+ { 0x00A8, 0x00A8 },
+ { 0x00AD, 0x00AD },
+ { 0x00AF, 0x00AF },
+ { 0x00B4, 0x00B4 },
+ { 0x00B7, 0x00B8 },
+ { 0x02B9, 0x02BF },
+ { 0x02C2, 0x02DF },
+ { 0x02E5, 0x0344 },
+ { 0x0346, 0x036F },
+ { 0x0374, 0x0375 },
+ { 0x0384, 0x0385 },
+ { 0x0387, 0x0387 },
+ { 0x0483, 0x0489 },
+ { 0x0559, 0x0559 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x05F4, 0x05F4 },
+ { 0x0600, 0x0603 },
+ { 0x0610, 0x061A },
+ { 0x0640, 0x0640 },
+ { 0x064B, 0x065E },
+ { 0x0670, 0x0670 },
+ { 0x06D6, 0x06E8 },
+ { 0x06EA, 0x06ED },
+ { 0x070F, 0x070F },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0901, 0x0902 },
+ { 0x093C, 0x093C },
+ { 0x0941, 0x0948 },
+ { 0x094D, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0962, 0x0963 },
+ { 0x0971, 0x0971 },
+ { 0x0981, 0x0981 },
+ { 0x09BC, 0x09BC },
+ { 0x09C1, 0x09C4 },
+ { 0x09CD, 0x09CD },
+ { 0x09E2, 0x09E3 },
+ { 0x0A01, 0x0A02 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A41, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A82 },
+ { 0x0ABC, 0x0ABC },
+ { 0x0AC1, 0x0AC5 },
+ { 0x0AC7, 0x0AC8 },
+ { 0x0ACD, 0x0ACD },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0B01, 0x0B01 },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B3F, 0x0B3F },
+ { 0x0B41, 0x0B44 },
+ { 0x0B4D, 0x0B4D },
+ { 0x0B56, 0x0B56 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BC0, 0x0BC0 },
+ { 0x0BCD, 0x0BCD },
+ { 0x0C3E, 0x0C40 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CBF, 0x0CBF },
+ { 0x0CC6, 0x0CC6 },
+ { 0x0CCC, 0x0CCD },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0D41, 0x0D44 },
+ { 0x0D4D, 0x0D4D },
+ { 0x0D62, 0x0D63 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DD2, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A },
+ { 0x0E46, 0x0E4E },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EC8, 0x0ECD },
+ { 0x0F18, 0x0F19 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F71, 0x0F7E },
+ { 0x0F80, 0x0F84 },
+ { 0x0F86, 0x0F87 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x102D, 0x1030 },
+ { 0x1032, 0x1037 },
+ { 0x1039, 0x103A },
+ { 0x103D, 0x103E },
+ { 0x1058, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x1082 },
+ { 0x1085, 0x1086 },
+ { 0x108D, 0x108D },
+ { 0x10FC, 0x10FC },
+ { 0x135F, 0x135F },
+ { 0x1712, 0x1714 },
+ { 0x1732, 0x1734 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B4, 0x17B5 },
+ { 0x17B7, 0x17BD },
+ { 0x17C6, 0x17C6 },
+ { 0x17C9, 0x17D3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DD, 0x17DD },
+ { 0x180B, 0x180D },
+ { 0x1843, 0x1843 },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x1922 },
+ { 0x1927, 0x1928 },
+ { 0x1932, 0x1932 },
+ { 0x1939, 0x193B },
+ { 0x1A17, 0x1A18 },
+ { 0x1B00, 0x1B03 },
+ { 0x1B34, 0x1B34 },
+ { 0x1B36, 0x1B3A },
+ { 0x1B3C, 0x1B3C },
+ { 0x1B42, 0x1B42 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1B81 },
+ { 0x1BA2, 0x1BA5 },
+ { 0x1BA8, 0x1BA9 },
+ { 0x1C2C, 0x1C33 },
+ { 0x1C36, 0x1C37 },
+ { 0x1C78, 0x1C7D },
+ { 0x1DC0, 0x1DE6 },
+ { 0x1DFE, 0x1DFF },
+ { 0x1FBD, 0x1FBD },
+ { 0x1FBF, 0x1FC1 },
+ { 0x1FCD, 0x1FCF },
+ { 0x1FDD, 0x1FDF },
+ { 0x1FED, 0x1FEF },
+ { 0x1FFD, 0x1FFE },
+ { 0x200B, 0x200F },
+ { 0x2018, 0x2019 },
+ { 0x2024, 0x2024 },
+ { 0x2027, 0x2027 },
+ { 0x202A, 0x202E },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x206F },
+ { 0x20D0, 0x20F0 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2DE0, 0x2DFF },
+ { 0x2E2F, 0x2E2F },
+ { 0x3005, 0x3005 },
+ { 0x302A, 0x302F },
+ { 0x3031, 0x3035 },
+ { 0x303B, 0x303B },
+ { 0x3099, 0x309E },
+ { 0x30FC, 0x30FE },
+ { 0xA015, 0xA015 },
+ { 0xA60C, 0xA60C },
+ { 0xA66F, 0xA672 },
+ { 0xA67C, 0xA67D },
+ { 0xA67F, 0xA67F },
+ { 0xA700, 0xA721 },
+ { 0xA788, 0xA78A },
+ { 0xA802, 0xA802 },
+ { 0xA806, 0xA806 },
+ { 0xA80B, 0xA80B },
+ { 0xA825, 0xA826 },
+ { 0xA8C4, 0xA8C4 },
+ { 0xA926, 0xA92D },
+ { 0xA947, 0xA951 },
+ { 0xAA29, 0xAA2E },
+ { 0xAA31, 0xAA32 },
+ { 0xAA35, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4C },
+ { 0xFB1E, 0xFB1E },
+ { 0xFE00, 0xFE0F },
+ { 0xFE13, 0xFE13 },
+ { 0xFE20, 0xFE26 },
+ { 0xFE52, 0xFE52 },
+ { 0xFE55, 0xFE55 },
+ { 0xFEFF, 0xFEFF },
+ { 0xFF07, 0xFF07 },
+ { 0xFF0E, 0xFF0E },
+ { 0xFF1A, 0xFF1A },
+ { 0xFF3E, 0xFF3E },
+ { 0xFF40, 0xFF40 },
+ { 0xFF70, 0xFF70 },
+ { 0xFF9E, 0xFF9F },
+ { 0xFFE3, 0xFFE3 },
+ { 0xFFF9, 0xFFFB },
+ { 0x101FD, 0x101FD },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x1D167, 0x1D169 },
+ { 0x1D173, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_case_ignorable (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unicase/test-is-cased.h b/tests/unicase/test-is-cased.h
new file mode 100644
index 0000000..474b8a4
--- /dev/null
+++ b/tests/unicase/test-is-cased.h
@@ -0,0 +1,58 @@
+/* Test of test whether case matters for a Unicode string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_is) (const UNIT *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.0, chapter 3. */
+ {
+ static const UNIT input[] = { 'A', 'B', 'C' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'a', 'b', 'c' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'a', 'B', 'c' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'a', 'B', 'c', '1', '2', '3' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { '1', '2', '3' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+}
diff --git a/tests/unicase/test-is-casefolded.h b/tests/unicase/test-is-casefolded.h
new file mode 100644
index 0000000..99638c6
--- /dev/null
+++ b/tests/unicase/test-is-casefolded.h
@@ -0,0 +1,43 @@
+/* Test of test whether a Unicode string is already case-folded.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_is) (const UNIT *, size_t, const char *, bool *))
+{
+ {
+ static const UNIT input[] = { 'J', 'O', 'H', 'N', ' ', 'S', 'M', 'I', 'T', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'J', 'o', 'h', 'n', ' ', 'S', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'j', 'o', 'h', 'n', ' ', 's', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+}
diff --git a/tests/unicase/test-is-lowercase.h b/tests/unicase/test-is-lowercase.h
new file mode 100644
index 0000000..cc37471
--- /dev/null
+++ b/tests/unicase/test-is-lowercase.h
@@ -0,0 +1,95 @@
+/* Test of test whether a Unicode string is entirely lower case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_is) (const UNIT *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.0, chapter 3. */
+ {
+ static const UNIT input[] = { 'a' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'J', 'O', 'H', 'N', ' ', 'S', 'M', 'I', 'T', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'J', 'o', 'h', 'n', ' ', 'S', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'j', 'o', 'h', 'n', ' ', 's', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'a', '2' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { '3' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const UNIT input[] = { 'H', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'h', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'H', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'h', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+}
diff --git a/tests/unicase/test-is-titlecase.h b/tests/unicase/test-is-titlecase.h
new file mode 100644
index 0000000..b36abab
--- /dev/null
+++ b/tests/unicase/test-is-titlecase.h
@@ -0,0 +1,95 @@
+/* Test of test whether a Unicode string is entirely title case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_is) (const UNIT *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.0, chapter 3. */
+ {
+ static const UNIT input[] = { 'A' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'J', 'O', 'H', 'N', ' ', 'S', 'M', 'I', 'T', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'J', 'o', 'h', 'n', ' ', 'S', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'j', 'o', 'h', 'n', ' ', 's', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'A', '2' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { '3' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const UNIT input[] = { 'H', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'h', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'H', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'h', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+}
diff --git a/tests/unicase/test-is-uppercase.h b/tests/unicase/test-is-uppercase.h
new file mode 100644
index 0000000..d1b7ca1
--- /dev/null
+++ b/tests/unicase/test-is-uppercase.h
@@ -0,0 +1,95 @@
+/* Test of test whether a Unicode string is entirely upper case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_is) (const UNIT *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.0, chapter 3. */
+ {
+ static const UNIT input[] = { 'A' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'J', 'O', 'H', 'N', ' ', 'S', 'M', 'I', 'T', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'J', 'o', 'h', 'n', ' ', 'S', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'j', 'o', 'h', 'n', ' ', 's', 'm', 'i', 't', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'A', '2' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { '3' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const UNIT input[] = { 'H', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const UNIT input[] = { 'h', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'H', 'h' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const UNIT input[] = { 'h', 'H' };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+}
diff --git a/tests/unicase/test-locale-language.c b/tests/unicase/test-locale-language.c
new file mode 100644
index 0000000..e8fe181
--- /dev/null
+++ b/tests/unicase/test-locale-language.c
@@ -0,0 +1,56 @@
+/* Test of language code determination.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main (int argc, char *argv[])
+{
+ const char *expected;
+ const char *language;
+
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ expected = argv[1];
+
+ language = uc_locale_language ();
+ ASSERT (strcmp (language, expected) == 0);
+
+ return 0;
+}
diff --git a/tests/unicase/test-locale-language.sh b/tests/unicase/test-locale-language.sh
new file mode 100755
index 0000000..0a04a0d
--- /dev/null
+++ b/tests/unicase/test-locale-language.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+LC_ALL=C ./test-locale-language${EXEEXT} '' || exit 1
+
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ./test-locale-language${EXEEXT} fr || exit 1
+fi
+
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 != none; then
+ LC_ALL=$LOCALE_FR_UTF8 ./test-locale-language${EXEEXT} fr || exit 1
+fi
+
+: ${LOCALE_JA=ja_JP}
+if test $LOCALE_JA != none; then
+ LC_ALL=$LOCALE_JA ./test-locale-language${EXEEXT} ja || exit 1
+fi
+
+: ${LOCALE_TR_UTF8=tr_TR.UTF-8}
+if test $LOCALE_TR_UTF8 != none; then
+ LC_ALL=$LOCALE_TR_UTF8 ./test-locale-language${EXEEXT} tr || exit 1
+fi
+
+: ${LOCALE_ZH_CN=zh_CN.GB18030}
+if test $LOCALE_ZH_CN != none; then
+ LC_ALL=$LOCALE_ZH_CN ./test-locale-language${EXEEXT} zh || exit 1
+fi
+
+exit 0
diff --git a/tests/unicase/test-mapping-part1.h b/tests/unicase/test-mapping-part1.h
new file mode 100644
index 0000000..4b7ac8e
--- /dev/null
+++ b/tests/unicase/test-mapping-part1.h
@@ -0,0 +1,45 @@
+/* Test of single character case mapping functions.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed for c = 0x%04X\n", \
+ __FILE__, __LINE__, c); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+/* Pair of Unicode characters. */
+typedef struct { ucs4_t ch; ucs4_t value; } pair_t;
+
+/* Characters and their mapping values, ignoring no-op mappings, in increasing
+ order. */
+static const pair_t mapping[] =
+ {
diff --git a/tests/unicase/test-mapping-part2.h b/tests/unicase/test-mapping-part2.h
new file mode 100644
index 0000000..ef43cdd
--- /dev/null
+++ b/tests/unicase/test-mapping-part2.h
@@ -0,0 +1,37 @@
+/* Test of single character case mapping functions.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ };
+
+int
+main ()
+{
+ unsigned int c;
+ size_t i;
+
+ c = 0;
+ for (i = 0; i < SIZEOF (mapping); i++)
+ {
+ for (; c < mapping[i].ch; c++)
+ ASSERT (MAP (c) == c);
+ ASSERT (MAP (c) == mapping[i].value);
+ c++;
+ }
+ for (; c < 0x110000; c++)
+ ASSERT (MAP (c) == c);
+
+ return 0;
+}
diff --git a/tests/unicase/test-predicate-part1.h b/tests/unicase/test-predicate-part1.h
new file mode 100644
index 0000000..76d804e
--- /dev/null
+++ b/tests/unicase/test-predicate-part1.h
@@ -0,0 +1,45 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unicase/caseprop.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed for c = 0x%04X\n", \
+ __FILE__, __LINE__, c); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+/* Interval of Unicode characters. */
+typedef struct { ucs4_t start; ucs4_t end; } interval_t;
+
+/* Set of Unicode characters, described as list of intervals, in increasing
+ order. */
+static const interval_t set[] =
+ {
diff --git a/tests/unicase/test-predicate-part2.h b/tests/unicase/test-predicate-part2.h
new file mode 100644
index 0000000..60b7c24
--- /dev/null
+++ b/tests/unicase/test-predicate-part2.h
@@ -0,0 +1,37 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ };
+
+int
+main ()
+{
+ unsigned int c;
+ size_t i;
+
+ c = 0;
+ for (i = 0; i < SIZEOF (set); i++)
+ {
+ for (; c < set[i].start; c++)
+ ASSERT (!PREDICATE (c));
+ for (; c <= set[i].end; c++)
+ ASSERT (PREDICATE (c));
+ }
+ for (; c < 0x110000; c++)
+ ASSERT (!PREDICATE (c));
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-casecmp.c b/tests/unicase/test-u16-casecmp.c
new file mode 100644
index 0000000..f079bbf
--- /dev/null
+++ b/tests/unicase/test-u16-casecmp.c
@@ -0,0 +1,336 @@
+/* Test of case and normalization insensitive comparison of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint16_t
+#include "test-casecmp.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_casecmp) (const uint16_t *, size_t, const uint16_t *, size_t, const char *, uninorm_t, int *))
+{
+ /* Normalization effects. */
+ {
+ static const uint16_t input1[] = { 'H', 0x00F6, 'h', 'l', 'e' };
+ static const uint16_t input2[] = { 'H', 'O', 0x0308, 'h', 'L', 'e' };
+ static const uint16_t input3[] = { 'H', 0x00F6, 'h', 'l', 'e', 'n' };
+ static const uint16_t input4[] = { 'H', 'O', 0x0308, 'h', 'L', 'e', 'n' };
+ static const uint16_t input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input3, SIZEOF (input3), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input4, SIZEOF (input4), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint16_t input1[] = { 0x00C4 };
+ static const uint16_t input2[] = { 0x0041, 0x0308 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint16_t input1[] = { 0x01DE };
+ static const uint16_t input2[] = { 0x0041, 0x0308, 0x0304 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint16_t input1[] = { 0x1FC1 };
+ static const uint16_t input2[] = { 0x00A8, 0x0342 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint16_t input1[] = { 0xAE00 };
+ static const uint16_t input2[] = { 0xADF8, 0x11AF };
+ static const uint16_t input3[] = { 0x1100, 0x1173, 0x11AF };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEU */
+ static const uint16_t input1[] = { 0xADF8 };
+ static const uint16_t input2[] = { 0x1100, 0x1173 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input1[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t input2[] =
+ { 'g', 'r', 0x00FC, 0x0073, 0x0073, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0x0437, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t input3[] =
+ { 'G', 'R', 0x00DC, 0x0053, 0x0053, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0x0417, 0x0414, 0x0420, 0x0410, 0x0412, 0x0421, 0x0422, 0x0412, 0x0423,
+ 0x0419, 0x0422, 0x0415, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'Q', 'R', 'T', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint16_t input1[] = { 0x0149 };
+ static const uint16_t input2[] = { 0x02BC, 0x006E };
+ static const uint16_t input3[] = { 0x02BC, 0x004E };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint16_t input1[] = { 0x0390 };
+ static const uint16_t input2[] = { 0x03B9, 0x0308, 0x0301 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint16_t input[] = { 0x0049 };
+ static const uint16_t casefolded[] = { 0x0069 };
+ static const uint16_t casefolded_tr[] = { 0x0131 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint16_t input[] = { 0x0069 };
+ static const uint16_t casefolded[] = { 0x0049 };
+ static const uint16_t casefolded_tr[] = { 0x0130 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint16_t input[] = { 0x0130 };
+ static const uint16_t casefolded[] = { 0x0069, 0x0307 };
+ static const uint16_t casefolded_tr[] = { 0x0069 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint16_t input[] = { 0x0131 };
+ static const uint16_t casefolded[] = { 0x0049 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* "topkapı" */
+ static const uint16_t input[] =
+ { 0x0054, 0x004F, 0x0050, 0x004B, 0x0041, 0x0050, 0x0049 };
+ static const uint16_t casefolded[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint16_t input1[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint16_t input2[] = { 0x0068, 0x0065, 0x0069, 0x0073, 0x0073 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint16_t input1[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint16_t input2[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C3, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C3
+ };
+ static const uint16_t input3[] =
+ {
+ 0x03A0, 0x0395, 0x03A1, 0x0399, 0x03A3, 0x03A3, 0x038C, 0x03A4,
+ 0x0395, 0x03A1, 0x0395, 0x03A3, 0x0020, 0x03A0, 0x039B, 0x0397,
+ 0x03A1, 0x039F, 0x03A6, 0x039F, 0x03A1, 0x038A, 0x0395, 0x03A3
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint16_t input[] = { 0x01F0, 0x0323 };
+ static const uint16_t casefolded[] = { 0x006A, 0x030C, 0x0323 };
+ static const uint16_t casefolded_decomposed[] = { 0x006A, 0x0323, 0x030C };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp != 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u16_casecmp, UNINORM_NFD);
+ test_nonascii (u16_casecmp);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-casecoll.c b/tests/unicase/test-u16-casecoll.c
new file mode 100644
index 0000000..5428cf0
--- /dev/null
+++ b/tests/unicase/test-u16-casecoll.c
@@ -0,0 +1,54 @@
+/* Test of locale dependent, case and normalization insensitive comparison of
+ UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint16_t
+#include "test-casecmp.h"
+#undef UNIT
+
+int
+main ()
+{
+ /* In the "C" locale, strcoll is equivalent to strcmp, therefore u8_casecoll
+ on ASCII strings should behave like strcasecmp. */
+ test_ascii (u16_casecoll, UNINORM_NFC);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-casefold.c b/tests/unicase/test-u16-casefold.c
new file mode 100644
index 0000000..3f4f633
--- /dev/null
+++ b/tests/unicase/test-u16-casefold.c
@@ -0,0 +1,214 @@
+/* Test of casefolding mapping for UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_casefold (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_casefold (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_casefold (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t casefolded[] =
+ { 'g', 'r', 0x00FC, 0x0073, 0x0073, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0x0437, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint16_t input[] = { 0x0149 };
+ static const uint16_t casefolded[] = { 0x02BC, 0x006E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint16_t input[] = { 0x0390 };
+ static const uint16_t casefolded[] = { 0x03B9, 0x0308, 0x0301 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint16_t input[] = { 0x0049 };
+ static const uint16_t casefolded[] = { 0x0069 };
+ static const uint16_t casefolded_tr[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded_tr, SIZEOF (casefolded_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint16_t input[] = { 0x0069 };
+ static const uint16_t casefolded[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint16_t input[] = { 0x0130 };
+ static const uint16_t casefolded[] = { 0x0069, 0x0307 };
+ static const uint16_t casefolded_tr[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded_tr, SIZEOF (casefolded_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint16_t input[] = { 0x0131 };
+ static const uint16_t casefolded[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint16_t input[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ static const uint16_t casefolded[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint16_t input[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint16_t casefolded[] = { 0x0068, 0x0065, 0x0069, 0x0073, 0x0073 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint16_t input[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint16_t casefolded[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C3, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C3
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint16_t input[] = { 0x01F0, 0x0323 };
+ static const uint16_t casefolded[] = { 0x006A, 0x030C, 0x0323 };
+ static const uint16_t casefolded_decomposed[] = { 0x006A, 0x0323, 0x030C };
+ static const uint16_t casefolded_normalized[] = { 0x01F0, 0x0323 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFD, casefolded_decomposed, SIZEOF (casefolded_decomposed)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casefolded_normalized, SIZEOF (casefolded_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-is-cased.c b/tests/unicase/test-u16-is-cased.c
new file mode 100644
index 0000000..a4b9dc3
--- /dev/null
+++ b/tests/unicase/test-u16-is-cased.c
@@ -0,0 +1,51 @@
+/* Test of test whether case matters for an UTF-16 string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint16_t
+#include "test-is-cased.h"
+#undef UNIT
+
+int
+main ()
+{
+ test_ascii (u16_is_cased);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-is-casefolded.c b/tests/unicase/test-u16-is-casefolded.c
new file mode 100644
index 0000000..8c0122d
--- /dev/null
+++ b/tests/unicase/test-u16-is-casefolded.c
@@ -0,0 +1,65 @@
+/* Test of test whether an UTF-16 string is already case-folded.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint16_t
+#include "test-is-casefolded.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint16_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint16_t input[] = { 0x00DF };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u16_is_casefolded);
+ test_nonascii (u16_is_casefolded);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-is-lowercase.c b/tests/unicase/test-u16-is-lowercase.c
new file mode 100644
index 0000000..f7bea49
--- /dev/null
+++ b/tests/unicase/test-u16-is-lowercase.c
@@ -0,0 +1,93 @@
+/* Test of test whether an UTF-16 string is entirely lower case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint16_t
+#include "test-is-lowercase.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint16_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint16_t input[] = { 0x24D7 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint16_t input[] = { 0x24BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const uint16_t input[] = { 0x02B0 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint16_t input[] = { 0x1D34 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint16_t input[] = { 0x02BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u16_is_lowercase);
+ test_nonascii (u16_is_lowercase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-is-titlecase.c b/tests/unicase/test-u16-is-titlecase.c
new file mode 100644
index 0000000..6b1c6d1
--- /dev/null
+++ b/tests/unicase/test-u16-is-titlecase.c
@@ -0,0 +1,51 @@
+/* Test of test whether an UTF-16 string is entirely title case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint16_t
+#include "test-is-titlecase.h"
+#undef UNIT
+
+int
+main ()
+{
+ test_ascii (u16_is_titlecase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-is-uppercase.c b/tests/unicase/test-u16-is-uppercase.c
new file mode 100644
index 0000000..1acf705
--- /dev/null
+++ b/tests/unicase/test-u16-is-uppercase.c
@@ -0,0 +1,93 @@
+/* Test of test whether an UTF-16 string is entirely upper case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint16_t
+#include "test-is-uppercase.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint16_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint16_t input[] = { 0x24D7 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const uint16_t input[] = { 0x24BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint16_t input[] = { 0x02B0 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint16_t input[] = { 0x1D34 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint16_t input[] = { 0x02BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u16_is_uppercase);
+ test_nonascii (u16_is_uppercase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-tolower.c b/tests/unicase/test-u16-tolower.c
new file mode 100644
index 0000000..5ec764c
--- /dev/null
+++ b/tests/unicase/test-u16-tolower.c
@@ -0,0 +1,251 @@
+/* Test of lowercase mapping for UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_tolower (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_tolower (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_tolower (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t casemapped[] =
+ { 'g', 'r', 0x00FC, 0x00DF, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0x0437, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint16_t input[] = { 0x0049 };
+ static const uint16_t casemapped[] = { 0x0069 };
+ static const uint16_t casemapped_tr[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint16_t input[] = { 0x0069 };
+ static const uint16_t casemapped[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint16_t input[] = { 0x0130 };
+ static const uint16_t casemapped[] = { 0x0069, 0x0307 };
+ static const uint16_t casemapped_tr[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint16_t input[] = { 0x0131 };
+ static const uint16_t casemapped[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "TOPKAPI" */
+ static const uint16_t input[] =
+ { 0x0054, 0x004F, 0x0050, 0x004B, 0x0041, 0x0050, 0x0049 };
+ static const uint16_t casemapped[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "HEIß" */
+ static const uint16_t input[] = { 0x0048, 0x0045, 0x0049, 0x00DF };
+ static const uint16_t casemapped[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "ΠΕΡΙΣΣΌΤΕΡΕΣ ΠΛΗΡΟΦΟΡΊΕΣ" */
+ static const uint16_t input[] =
+ {
+ 0x03A0, 0x0395, 0x03A1, 0x0399, 0x03A3, 0x03A3, 0x038C, 0x03A4,
+ 0x0395, 0x03A1, 0x0395, 0x03A3, 0x0020, 0x03A0, 0x039B, 0x0397,
+ 0x03A1, 0x039F, 0x03A6, 0x039F, 0x03A1, 0x038A, 0x0395, 0x03A3
+ };
+ static const uint16_t casemapped[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "Σ" -> "σ" */
+ static const uint16_t input[] = { 0x03A3 };
+ static const uint16_t casemapped[] = { 0x03C3 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ" -> "ας" */
+ static const uint16_t input[] = { 0x0391, 0x03A3 };
+ static const uint16_t casemapped[] = { 0x03B1, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ /* It's a final sigma only if not followed by a case-ignorable sequence and
+ then a cased letter. Note that U+0345 and U+037A are simultaneously
+ case-ignorable and cased (which is a bit paradoxical). */
+ { /* "ΑΣΑ" -> "ασα" */
+ static const uint16_t input[] = { 0x0391, 0x03A3, 0x0391 };
+ static const uint16_t casemapped[] = { 0x03B1, 0x03C3, 0x03B1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:" -> "ας:" */
+ static const uint16_t input[] = { 0x0391, 0x03A3, 0x003A };
+ static const uint16_t casemapped[] = { 0x03B1, 0x03C2, 0x003A };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:Α" -> "ασ:α" */
+ static const uint16_t input[] = { 0x0391, 0x03A3, 0x003A, 0x0391 };
+ static const uint16_t casemapped[] = { 0x03B1, 0x03C3, 0x003A, 0x03B1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:ͺ" -> "ασ:ͺ" */
+ static const uint16_t input[] = { 0x0391, 0x03A3, 0x003A, 0x037A };
+ static const uint16_t casemapped[] = { 0x03B1, 0x03C3, 0x003A, 0x037A };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:ͺ " -> "ασ:ͺ " */
+ static const uint16_t input[] = { 0x0391, 0x03A3, 0x003A, 0x037A, 0x0020 };
+ static const uint16_t casemapped[] = { 0x03B1, 0x03C3, 0x003A, 0x037A, 0x0020 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ /* It's a final sigma only if preceded by a case-ignorable sequence and
+ a cased letter before it. Note that U+0345 and U+037A are simultaneously
+ case-ignorable and cased (which is a bit paradoxical). */
+ { /* ":Σ" -> ":σ" */
+ static const uint16_t input[] = { 0x003A, 0x03A3 };
+ static const uint16_t casemapped[] = { 0x003A, 0x03C3 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "Α:Σ" -> "α:ς" */
+ static const uint16_t input[] = { 0x0391, 0x003A, 0x03A3 };
+ static const uint16_t casemapped[] = { 0x03B1, 0x003A, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ͺ:Σ" -> "ͺ:ς" */
+ static const uint16_t input[] = { 0x037A, 0x003A, 0x03A3 };
+ static const uint16_t casemapped[] = { 0x037A, 0x003A, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* " ͺ:Σ" -> " ͺ:ς" */
+ static const uint16_t input[] = { 0x0020, 0x037A, 0x003A, 0x03A3 };
+ static const uint16_t casemapped[] = { 0x0020, 0x037A, 0x003A, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-totitle.c b/tests/unicase/test-u16-totitle.c
new file mode 100644
index 0000000..3839c90
--- /dev/null
+++ b/tests/unicase/test-u16-totitle.c
@@ -0,0 +1,211 @@
+/* Test of titlecase mapping for UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_totitle (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_totitle (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_totitle (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "GRÜß GOTT. ЗДРАВСТВУЙТЕ! X=(-B±SQRT(B²-4AC))/(2A) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'R', 0x00DC, 0x00DF, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0x0417, 0x0414, 0x0420, 0x0410, 0x0412, 0x0421, 0x0422, 0x0412, 0x0423,
+ 0x0419, 0x0422, 0x0415, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'Q', 'R', 'T', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t casemapped[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'q', 'r', 't', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'c', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint16_t input[] = { 0x0149 };
+ static const uint16_t casemapped[] = { 0x02BC, 0x004E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint16_t input[] = { 0x0390 };
+ static const uint16_t casemapped[] = { 0x0399, 0x0308, 0x0301 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint16_t input[] = { 0x0049 };
+ static const uint16_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint16_t input[] = { 0x0069 };
+ static const uint16_t casemapped[] = { 0x0049 };
+ static const uint16_t casemapped_tr[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint16_t input[] = { 0x0130 };
+ static const uint16_t casemapped[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint16_t input[] = { 0x0131 };
+ static const uint16_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint16_t input[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ static const uint16_t casemapped[] =
+ { 0x0054, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint16_t input[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint16_t casemapped[] = { 0x0048, 0x0065, 0x0069, 0x00DF };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint16_t input[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint16_t casemapped[] =
+ {
+ 0x03A0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03A0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint16_t input[] = { 0x01F0, 0x0323 };
+ static const uint16_t casemapped[] = { 0x004A, 0x030C, 0x0323 };
+ static const uint16_t casemapped_normalized[] = { 0x004A, 0x0323, 0x030C };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casemapped_normalized, SIZEOF (casemapped_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u16-toupper.c b/tests/unicase/test-u16-toupper.c
new file mode 100644
index 0000000..ed9fd6b
--- /dev/null
+++ b/tests/unicase/test-u16-toupper.c
@@ -0,0 +1,211 @@
+/* Test of uppercase mapping for UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_toupper (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_toupper (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_toupper (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t casemapped[] =
+ { 'G', 'R', 0x00DC, 0x0053, 0x0053, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0x0417, 0x0414, 0x0420, 0x0410, 0x0412, 0x0421, 0x0422, 0x0412, 0x0423,
+ 0x0419, 0x0422, 0x0415, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'Q', 'R', 'T', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint16_t input[] = { 0x0149 };
+ static const uint16_t casemapped[] = { 0x02BC, 0x004E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint16_t input[] = { 0x0390 };
+ static const uint16_t casemapped[] = { 0x0399, 0x0308, 0x0301 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint16_t input[] = { 0x0049 };
+ static const uint16_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint16_t input[] = { 0x0069 };
+ static const uint16_t casemapped[] = { 0x0049 };
+ static const uint16_t casemapped_tr[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint16_t input[] = { 0x0130 };
+ static const uint16_t casemapped[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint16_t input[] = { 0x0131 };
+ static const uint16_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint16_t input[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ static const uint16_t casemapped[] =
+ { 0x0054, 0x004F, 0x0050, 0x004B, 0x0041, 0x0050, 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint16_t input[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint16_t casemapped[] = { 0x0048, 0x0045, 0x0049, 0x0053, 0x0053 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint16_t input[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint16_t casemapped[] =
+ {
+ 0x03A0, 0x0395, 0x03A1, 0x0399, 0x03A3, 0x03A3, 0x038C, 0x03A4,
+ 0x0395, 0x03A1, 0x0395, 0x03A3, 0x0020, 0x03A0, 0x039B, 0x0397,
+ 0x03A1, 0x039F, 0x03A6, 0x039F, 0x03A1, 0x038A, 0x0395, 0x03A3
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint16_t input[] = { 0x01F0, 0x0323 };
+ static const uint16_t casemapped[] = { 0x004A, 0x030C, 0x0323 };
+ static const uint16_t casemapped_normalized[] = { 0x004A, 0x0323, 0x030C };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casemapped_normalized, SIZEOF (casemapped_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-casecmp.c b/tests/unicase/test-u32-casecmp.c
new file mode 100644
index 0000000..8d58bc7
--- /dev/null
+++ b/tests/unicase/test-u32-casecmp.c
@@ -0,0 +1,336 @@
+/* Test of case and normalization insensitive comparison of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint32_t
+#include "test-casecmp.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_casecmp) (const uint32_t *, size_t, const uint32_t *, size_t, const char *, uninorm_t, int *))
+{
+ /* Normalization effects. */
+ {
+ static const uint32_t input1[] = { 'H', 0x00F6, 'h', 'l', 'e' };
+ static const uint32_t input2[] = { 'H', 'O', 0x0308, 'h', 'L', 'e' };
+ static const uint32_t input3[] = { 'H', 0x00F6, 'h', 'l', 'e', 'n' };
+ static const uint32_t input4[] = { 'H', 'O', 0x0308, 'h', 'L', 'e', 'n' };
+ static const uint32_t input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input3, SIZEOF (input3), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input4, SIZEOF (input4), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint32_t input1[] = { 0x00C4 };
+ static const uint32_t input2[] = { 0x0041, 0x0308 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint32_t input1[] = { 0x01DE };
+ static const uint32_t input2[] = { 0x0041, 0x0308, 0x0304 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint32_t input1[] = { 0x1FC1 };
+ static const uint32_t input2[] = { 0x00A8, 0x0342 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint32_t input1[] = { 0xAE00 };
+ static const uint32_t input2[] = { 0xADF8, 0x11AF };
+ static const uint32_t input3[] = { 0x1100, 0x1173, 0x11AF };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEU */
+ static const uint32_t input1[] = { 0xADF8 };
+ static const uint32_t input2[] = { 0x1100, 0x1173 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input1[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t input2[] =
+ { 'g', 'r', 0x00FC, 0x0073, 0x0073, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0x0437, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t input3[] =
+ { 'G', 'R', 0x00DC, 0x0053, 0x0053, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0x0417, 0x0414, 0x0420, 0x0410, 0x0412, 0x0421, 0x0422, 0x0412, 0x0423,
+ 0x0419, 0x0422, 0x0415, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'Q', 'R', 'T', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint32_t input1[] = { 0x0149 };
+ static const uint32_t input2[] = { 0x02BC, 0x006E };
+ static const uint32_t input3[] = { 0x02BC, 0x004E };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint32_t input1[] = { 0x0390 };
+ static const uint32_t input2[] = { 0x03B9, 0x0308, 0x0301 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint32_t input[] = { 0x0049 };
+ static const uint32_t casefolded[] = { 0x0069 };
+ static const uint32_t casefolded_tr[] = { 0x0131 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint32_t input[] = { 0x0069 };
+ static const uint32_t casefolded[] = { 0x0049 };
+ static const uint32_t casefolded_tr[] = { 0x0130 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint32_t input[] = { 0x0130 };
+ static const uint32_t casefolded[] = { 0x0069, 0x0307 };
+ static const uint32_t casefolded_tr[] = { 0x0069 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint32_t input[] = { 0x0131 };
+ static const uint32_t casefolded[] = { 0x0049 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* "topkapı" */
+ static const uint32_t input[] =
+ { 0x0054, 0x004F, 0x0050, 0x004B, 0x0041, 0x0050, 0x0049 };
+ static const uint32_t casefolded[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint32_t input1[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint32_t input2[] = { 0x0068, 0x0065, 0x0069, 0x0073, 0x0073 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint32_t input1[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint32_t input2[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C3, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C3
+ };
+ static const uint32_t input3[] =
+ {
+ 0x03A0, 0x0395, 0x03A1, 0x0399, 0x03A3, 0x03A3, 0x038C, 0x03A4,
+ 0x0395, 0x03A1, 0x0395, 0x03A3, 0x0020, 0x03A0, 0x039B, 0x0397,
+ 0x03A1, 0x039F, 0x03A6, 0x039F, 0x03A1, 0x038A, 0x0395, 0x03A3
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint32_t input[] = { 0x01F0, 0x0323 };
+ static const uint32_t casefolded[] = { 0x006A, 0x030C, 0x0323 };
+ static const uint32_t casefolded_decomposed[] = { 0x006A, 0x0323, 0x030C };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp != 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u32_casecmp, UNINORM_NFD);
+ test_nonascii (u32_casecmp);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-casecoll.c b/tests/unicase/test-u32-casecoll.c
new file mode 100644
index 0000000..23edfbd
--- /dev/null
+++ b/tests/unicase/test-u32-casecoll.c
@@ -0,0 +1,54 @@
+/* Test of locale dependent, case and normalization insensitive comparison of
+ UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint32_t
+#include "test-casecmp.h"
+#undef UNIT
+
+int
+main ()
+{
+ /* In the "C" locale, strcoll is equivalent to strcmp, therefore u8_casecoll
+ on ASCII strings should behave like strcasecmp. */
+ test_ascii (u32_casecoll, UNINORM_NFC);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-casefold.c b/tests/unicase/test-u32-casefold.c
new file mode 100644
index 0000000..d48e8dc
--- /dev/null
+++ b/tests/unicase/test-u32-casefold.c
@@ -0,0 +1,214 @@
+/* Test of casefolding mapping for UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_casefold (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_casefold (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_casefold (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t casefolded[] =
+ { 'g', 'r', 0x00FC, 0x0073, 0x0073, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0x0437, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint32_t input[] = { 0x0149 };
+ static const uint32_t casefolded[] = { 0x02BC, 0x006E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint32_t input[] = { 0x0390 };
+ static const uint32_t casefolded[] = { 0x03B9, 0x0308, 0x0301 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint32_t input[] = { 0x0049 };
+ static const uint32_t casefolded[] = { 0x0069 };
+ static const uint32_t casefolded_tr[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded_tr, SIZEOF (casefolded_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint32_t input[] = { 0x0069 };
+ static const uint32_t casefolded[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint32_t input[] = { 0x0130 };
+ static const uint32_t casefolded[] = { 0x0069, 0x0307 };
+ static const uint32_t casefolded_tr[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded_tr, SIZEOF (casefolded_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint32_t input[] = { 0x0131 };
+ static const uint32_t casefolded[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint32_t input[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ static const uint32_t casefolded[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint32_t input[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint32_t casefolded[] = { 0x0068, 0x0065, 0x0069, 0x0073, 0x0073 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint32_t input[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint32_t casefolded[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C3, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C3
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint32_t input[] = { 0x01F0, 0x0323 };
+ static const uint32_t casefolded[] = { 0x006A, 0x030C, 0x0323 };
+ static const uint32_t casefolded_decomposed[] = { 0x006A, 0x0323, 0x030C };
+ static const uint32_t casefolded_normalized[] = { 0x01F0, 0x0323 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFD, casefolded_decomposed, SIZEOF (casefolded_decomposed)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casefolded_normalized, SIZEOF (casefolded_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-is-cased.c b/tests/unicase/test-u32-is-cased.c
new file mode 100644
index 0000000..d8353fc
--- /dev/null
+++ b/tests/unicase/test-u32-is-cased.c
@@ -0,0 +1,51 @@
+/* Test of test whether case matters for an UTF-32 string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint32_t
+#include "test-is-cased.h"
+#undef UNIT
+
+int
+main ()
+{
+ test_ascii (u32_is_cased);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-is-casefolded.c b/tests/unicase/test-u32-is-casefolded.c
new file mode 100644
index 0000000..d79241d
--- /dev/null
+++ b/tests/unicase/test-u32-is-casefolded.c
@@ -0,0 +1,65 @@
+/* Test of test whether an UTF-32 string is already case-folded.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint32_t
+#include "test-is-casefolded.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint32_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint32_t input[] = { 0x00DF };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u32_is_casefolded);
+ test_nonascii (u32_is_casefolded);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-is-lowercase.c b/tests/unicase/test-u32-is-lowercase.c
new file mode 100644
index 0000000..2cff392
--- /dev/null
+++ b/tests/unicase/test-u32-is-lowercase.c
@@ -0,0 +1,93 @@
+/* Test of test whether an UTF-32 string is entirely lower case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint32_t
+#include "test-is-lowercase.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint32_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint32_t input[] = { 0x24D7 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint32_t input[] = { 0x24BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const uint32_t input[] = { 0x02B0 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint32_t input[] = { 0x1D34 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint32_t input[] = { 0x02BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u32_is_lowercase);
+ test_nonascii (u32_is_lowercase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-is-titlecase.c b/tests/unicase/test-u32-is-titlecase.c
new file mode 100644
index 0000000..2c287e9
--- /dev/null
+++ b/tests/unicase/test-u32-is-titlecase.c
@@ -0,0 +1,51 @@
+/* Test of test whether an UTF-32 string is entirely title case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint32_t
+#include "test-is-titlecase.h"
+#undef UNIT
+
+int
+main ()
+{
+ test_ascii (u32_is_titlecase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-is-uppercase.c b/tests/unicase/test-u32-is-uppercase.c
new file mode 100644
index 0000000..0044ec1
--- /dev/null
+++ b/tests/unicase/test-u32-is-uppercase.c
@@ -0,0 +1,93 @@
+/* Test of test whether an UTF-32 string is entirely upper case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint32_t
+#include "test-is-uppercase.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint32_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint32_t input[] = { 0x24D7 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const uint32_t input[] = { 0x24BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint32_t input[] = { 0x02B0 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint32_t input[] = { 0x1D34 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint32_t input[] = { 0x02BD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u32_is_uppercase);
+ test_nonascii (u32_is_uppercase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-tolower.c b/tests/unicase/test-u32-tolower.c
new file mode 100644
index 0000000..7f348da
--- /dev/null
+++ b/tests/unicase/test-u32-tolower.c
@@ -0,0 +1,251 @@
+/* Test of lowercase mapping for UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_tolower (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_tolower (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_tolower (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t casemapped[] =
+ { 'g', 'r', 0x00FC, 0x00DF, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0x0437, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint32_t input[] = { 0x0049 };
+ static const uint32_t casemapped[] = { 0x0069 };
+ static const uint32_t casemapped_tr[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint32_t input[] = { 0x0069 };
+ static const uint32_t casemapped[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint32_t input[] = { 0x0130 };
+ static const uint32_t casemapped[] = { 0x0069, 0x0307 };
+ static const uint32_t casemapped_tr[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint32_t input[] = { 0x0131 };
+ static const uint32_t casemapped[] = { 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "TOPKAPI" */
+ static const uint32_t input[] =
+ { 0x0054, 0x004F, 0x0050, 0x004B, 0x0041, 0x0050, 0x0049 };
+ static const uint32_t casemapped[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "HEIß" */
+ static const uint32_t input[] = { 0x0048, 0x0045, 0x0049, 0x00DF };
+ static const uint32_t casemapped[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "ΠΕΡΙΣΣΌΤΕΡΕΣ ΠΛΗΡΟΦΟΡΊΕΣ" */
+ static const uint32_t input[] =
+ {
+ 0x03A0, 0x0395, 0x03A1, 0x0399, 0x03A3, 0x03A3, 0x038C, 0x03A4,
+ 0x0395, 0x03A1, 0x0395, 0x03A3, 0x0020, 0x03A0, 0x039B, 0x0397,
+ 0x03A1, 0x039F, 0x03A6, 0x039F, 0x03A1, 0x038A, 0x0395, 0x03A3
+ };
+ static const uint32_t casemapped[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "Σ" -> "σ" */
+ static const uint32_t input[] = { 0x03A3 };
+ static const uint32_t casemapped[] = { 0x03C3 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ" -> "ας" */
+ static const uint32_t input[] = { 0x0391, 0x03A3 };
+ static const uint32_t casemapped[] = { 0x03B1, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ /* It's a final sigma only if not followed by a case-ignorable sequence and
+ then a cased letter. Note that U+0345 and U+037A are simultaneously
+ case-ignorable and cased (which is a bit paradoxical). */
+ { /* "ΑΣΑ" -> "ασα" */
+ static const uint32_t input[] = { 0x0391, 0x03A3, 0x0391 };
+ static const uint32_t casemapped[] = { 0x03B1, 0x03C3, 0x03B1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:" -> "ας:" */
+ static const uint32_t input[] = { 0x0391, 0x03A3, 0x003A };
+ static const uint32_t casemapped[] = { 0x03B1, 0x03C2, 0x003A };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:Α" -> "ασ:α" */
+ static const uint32_t input[] = { 0x0391, 0x03A3, 0x003A, 0x0391 };
+ static const uint32_t casemapped[] = { 0x03B1, 0x03C3, 0x003A, 0x03B1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:ͺ" -> "ασ:ͺ" */
+ static const uint32_t input[] = { 0x0391, 0x03A3, 0x003A, 0x037A };
+ static const uint32_t casemapped[] = { 0x03B1, 0x03C3, 0x003A, 0x037A };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:ͺ " -> "ασ:ͺ " */
+ static const uint32_t input[] = { 0x0391, 0x03A3, 0x003A, 0x037A, 0x0020 };
+ static const uint32_t casemapped[] = { 0x03B1, 0x03C3, 0x003A, 0x037A, 0x0020 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ /* It's a final sigma only if preceded by a case-ignorable sequence and
+ a cased letter before it. Note that U+0345 and U+037A are simultaneously
+ case-ignorable and cased (which is a bit paradoxical). */
+ { /* ":Σ" -> ":σ" */
+ static const uint32_t input[] = { 0x003A, 0x03A3 };
+ static const uint32_t casemapped[] = { 0x003A, 0x03C3 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "Α:Σ" -> "α:ς" */
+ static const uint32_t input[] = { 0x0391, 0x003A, 0x03A3 };
+ static const uint32_t casemapped[] = { 0x03B1, 0x003A, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ͺ:Σ" -> "ͺ:ς" */
+ static const uint32_t input[] = { 0x037A, 0x003A, 0x03A3 };
+ static const uint32_t casemapped[] = { 0x037A, 0x003A, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* " ͺ:Σ" -> " ͺ:ς" */
+ static const uint32_t input[] = { 0x0020, 0x037A, 0x003A, 0x03A3 };
+ static const uint32_t casemapped[] = { 0x0020, 0x037A, 0x003A, 0x03C2 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-totitle.c b/tests/unicase/test-u32-totitle.c
new file mode 100644
index 0000000..82c4b0f
--- /dev/null
+++ b/tests/unicase/test-u32-totitle.c
@@ -0,0 +1,211 @@
+/* Test of titlecase mapping for UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_totitle (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_totitle (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_totitle (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "GRÜß GOTT. ЗДРАВСТВУЙТЕ! X=(-B±SQRT(B²-4AC))/(2A) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'R', 0x00DC, 0x00DF, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0x0417, 0x0414, 0x0420, 0x0410, 0x0412, 0x0421, 0x0422, 0x0412, 0x0423,
+ 0x0419, 0x0422, 0x0415, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'Q', 'R', 'T', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t casemapped[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'q', 'r', 't', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'c', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint32_t input[] = { 0x0149 };
+ static const uint32_t casemapped[] = { 0x02BC, 0x004E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint32_t input[] = { 0x0390 };
+ static const uint32_t casemapped[] = { 0x0399, 0x0308, 0x0301 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint32_t input[] = { 0x0049 };
+ static const uint32_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint32_t input[] = { 0x0069 };
+ static const uint32_t casemapped[] = { 0x0049 };
+ static const uint32_t casemapped_tr[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint32_t input[] = { 0x0130 };
+ static const uint32_t casemapped[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint32_t input[] = { 0x0131 };
+ static const uint32_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint32_t input[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ static const uint32_t casemapped[] =
+ { 0x0054, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint32_t input[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint32_t casemapped[] = { 0x0048, 0x0065, 0x0069, 0x00DF };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint32_t input[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint32_t casemapped[] =
+ {
+ 0x03A0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03A0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint32_t input[] = { 0x01F0, 0x0323 };
+ static const uint32_t casemapped[] = { 0x004A, 0x030C, 0x0323 };
+ static const uint32_t casemapped_normalized[] = { 0x004A, 0x0323, 0x030C };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casemapped_normalized, SIZEOF (casemapped_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u32-toupper.c b/tests/unicase/test-u32-toupper.c
new file mode 100644
index 0000000..dbc1619
--- /dev/null
+++ b/tests/unicase/test-u32-toupper.c
@@ -0,0 +1,211 @@
+/* Test of uppercase mapping for UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_toupper (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_toupper (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_toupper (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t casemapped[] =
+ { 'G', 'R', 0x00DC, 0x0053, 0x0053, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0x0417, 0x0414, 0x0420, 0x0410, 0x0412, 0x0421, 0x0422, 0x0412, 0x0423,
+ 0x0419, 0x0422, 0x0415, '!', ' ',
+ 'X', '=', '(', '-', 'B', 0x00B1, 'S', 'Q', 'R', 'T', '(', 'B', 0x00B2,
+ '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint32_t input[] = { 0x0149 };
+ static const uint32_t casemapped[] = { 0x02BC, 0x004E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint32_t input[] = { 0x0390 };
+ static const uint32_t casemapped[] = { 0x0399, 0x0308, 0x0301 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint32_t input[] = { 0x0049 };
+ static const uint32_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint32_t input[] = { 0x0069 };
+ static const uint32_t casemapped[] = { 0x0049 };
+ static const uint32_t casemapped_tr[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint32_t input[] = { 0x0130 };
+ static const uint32_t casemapped[] = { 0x0130 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint32_t input[] = { 0x0131 };
+ static const uint32_t casemapped[] = { 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint32_t input[] =
+ { 0x0074, 0x006F, 0x0070, 0x006B, 0x0061, 0x0070, 0x0131 };
+ static const uint32_t casemapped[] =
+ { 0x0054, 0x004F, 0x0050, 0x004B, 0x0041, 0x0050, 0x0049 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint32_t input[] = { 0x0068, 0x0065, 0x0069, 0x00DF };
+ static const uint32_t casemapped[] = { 0x0048, 0x0045, 0x0049, 0x0053, 0x0053 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint32_t input[] =
+ {
+ 0x03C0, 0x03B5, 0x03C1, 0x03B9, 0x03C3, 0x03C3, 0x03CC, 0x03C4,
+ 0x03B5, 0x03C1, 0x03B5, 0x03C2, 0x0020, 0x03C0, 0x03BB, 0x03B7,
+ 0x03C1, 0x03BF, 0x03C6, 0x03BF, 0x03C1, 0x03AF, 0x03B5, 0x03C2
+ };
+ static const uint32_t casemapped[] =
+ {
+ 0x03A0, 0x0395, 0x03A1, 0x0399, 0x03A3, 0x03A3, 0x038C, 0x03A4,
+ 0x0395, 0x03A1, 0x0395, 0x03A3, 0x0020, 0x03A0, 0x039B, 0x0397,
+ 0x03A1, 0x039F, 0x03A6, 0x039F, 0x03A1, 0x038A, 0x0395, 0x03A3
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint32_t input[] = { 0x01F0, 0x0323 };
+ static const uint32_t casemapped[] = { 0x004A, 0x030C, 0x0323 };
+ static const uint32_t casemapped_normalized[] = { 0x004A, 0x0323, 0x030C };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casemapped_normalized, SIZEOF (casemapped_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-casecmp.c b/tests/unicase/test-u8-casecmp.c
new file mode 100644
index 0000000..dbcc9d7
--- /dev/null
+++ b/tests/unicase/test-u8-casecmp.c
@@ -0,0 +1,345 @@
+/* Test of case and normalization insensitive comparison of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint8_t
+#include "test-casecmp.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_casecmp) (const uint8_t *, size_t, const uint8_t *, size_t, const char *, uninorm_t, int *))
+{
+ /* Normalization effects. */
+ {
+ static const uint8_t input1[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e' };
+ static const uint8_t input2[] = { 'H', 'O', 0xCC, 0x88, 'h', 'L', 'e' };
+ static const uint8_t input3[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e', 'n' };
+ static const uint8_t input4[] = { 'H', 'O', 0xCC, 0x88, 'h', 'L', 'e', 'n' };
+ static const uint8_t input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input3, SIZEOF (input3), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input4, SIZEOF (input4), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint8_t input1[] = { 0xC3, 0x84 };
+ static const uint8_t input2[] = { 0x41, 0xCC, 0x88 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint8_t input1[] = { 0xC7, 0x9E };
+ static const uint8_t input2[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint8_t input1[] = { 0xE1, 0xBF, 0x81 };
+ static const uint8_t input2[] = { 0xC2, 0xA8, 0xCD, 0x82 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint8_t input1[] = { 0xEA, 0xB8, 0x80 };
+ static const uint8_t input2[] = { 0xEA, 0xB7, 0xB8, 0xE1, 0x86, 0xAF };
+ static const uint8_t input3[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEU */
+ static const uint8_t input1[] = { 0xEA, 0xB7, 0xB8 };
+ static const uint8_t input2[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input1[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t input2[] =
+ { 'g', 'r', 0xC3, 0xBC, 0x73, 0x73, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0xD0, 0xB7, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t input3[] =
+ { 'G', 'R', 0xC3, 0x9C, 0x53, 0x53, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0x94, 0xD0, 0xA0, 0xD0, 0x90, 0xD0, 0x92, 0xD0, 0xA1,
+ 0xD0, 0xA2, 0xD0, 0x92, 0xD0, 0xA3, 0xD0, 0x99, 0xD0, 0xA2, 0xD0, 0x95,
+ '!', ' ', 'X', '=', '(', '-', 'B', 0xC2, 0xB1, 'S', 'Q', 'R', 'T', '(',
+ 'B', 0xC2, 0xB2, '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint8_t input1[] = { 0xC5, 0x89 };
+ static const uint8_t input2[] = { 0xCA, 0xBC, 0x6E };
+ static const uint8_t input3[] = { 0xCA, 0xBC, 0x4E };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint8_t input1[] = { 0xCE, 0x90 };
+ static const uint8_t input2[] = { 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint8_t input[] = { 0x49 };
+ static const uint8_t casefolded[] = { 0x69 };
+ static const uint8_t casefolded_tr[] = { 0xC4, 0xB1 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint8_t input[] = { 0x69 };
+ static const uint8_t casefolded[] = { 0x49 };
+ static const uint8_t casefolded_tr[] = { 0xC4, 0xB0 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint8_t input[] = { 0xC4, 0xB0 };
+ static const uint8_t casefolded[] = { 0x69, 0xCC, 0x87 };
+ static const uint8_t casefolded_tr[] = { 0x69 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint8_t input[] = { 0xC4, 0xB1 };
+ static const uint8_t casefolded[] = { 0x49 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* "topkapı" */
+ static const uint8_t input[] =
+ { 0x54, 0x4F, 0x50, 0x4B, 0x41, 0x50, 0x49 };
+ static const uint8_t casefolded[] =
+ { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint8_t input1[] = { 0x68, 0x65, 0x69, 0xC3, 0x9F };
+ static const uint8_t input2[] = { 0x68, 0x65, 0x69, 0x73, 0x73 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint8_t input1[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
+ };
+ static const uint8_t input2[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x83,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x83
+ };
+ static const uint8_t input3[] =
+ {
+ 0xCE, 0xA0, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x99, 0xCE, 0xA3, 0xCE, 0xA3,
+ 0xCE, 0x8C, 0xCE, 0xA4, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x95, 0xCE, 0xA3,
+ ' ', 0xCE, 0xA0, 0xCE, 0x9B, 0xCE, 0x97, 0xCE, 0xA1, 0xCE, 0x9F,
+ 0xCE, 0xA6, 0xCE, 0x9F, 0xCE, 0xA1, 0xCE, 0x8A, 0xCE, 0x95, 0xCE, 0xA3
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint8_t input[] = { 0xC7, 0xB0, 0xCC, 0xA3 };
+ static const uint8_t casefolded[] = { 0x6A, 0xCC, 0x8C, 0xCC, 0xA3 };
+ static const uint8_t casefolded_decomposed[] = { 0x6A, 0xCC, 0xA3, 0xCC, 0x8C };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp != 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u8_casecmp, UNINORM_NFD);
+ test_nonascii (u8_casecmp);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-casecoll.c b/tests/unicase/test-u8-casecoll.c
new file mode 100644
index 0000000..e1b0c57
--- /dev/null
+++ b/tests/unicase/test-u8-casecoll.c
@@ -0,0 +1,54 @@
+/* Test of locale dependent, case and normalization insensitive comparison of
+ UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint8_t
+#include "test-casecmp.h"
+#undef UNIT
+
+int
+main ()
+{
+ /* In the "C" locale, strcoll is equivalent to strcmp, therefore u8_casecoll
+ on ASCII strings should behave like strcasecmp. */
+ test_ascii (u8_casecoll, UNINORM_NFC);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-casefold.c b/tests/unicase/test-u8-casefold.c
new file mode 100644
index 0000000..225b997
--- /dev/null
+++ b/tests/unicase/test-u8-casefold.c
@@ -0,0 +1,220 @@
+/* Test of casefolding mapping for UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_casefold (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_casefold (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_casefold (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t casefolded[] =
+ { 'g', 'r', 0xC3, 0xBC, 0x73, 0x73, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0xD0, 0xB7, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint8_t input[] = { 0xC5, 0x89 };
+ static const uint8_t casefolded[] = { 0xCA, 0xBC, 0x6E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint8_t input[] = { 0xCE, 0x90 };
+ static const uint8_t casefolded[] = { 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint8_t input[] = { 0x49 };
+ static const uint8_t casefolded[] = { 0x69 };
+ static const uint8_t casefolded_tr[] = { 0xC4, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded_tr, SIZEOF (casefolded_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint8_t input[] = { 0x69 };
+ static const uint8_t casefolded[] = { 0x69 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint8_t input[] = { 0xC4, 0xB0 };
+ static const uint8_t casefolded[] = { 0x69, 0xCC, 0x87 };
+ static const uint8_t casefolded_tr[] = { 0x69 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded_tr, SIZEOF (casefolded_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint8_t input[] = { 0xC4, 0xB1 };
+ static const uint8_t casefolded[] = { 0xC4, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint8_t input[] =
+ { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ static const uint8_t casefolded[] =
+ { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint8_t input[] = { 0x68, 0x65, 0x69, 0xC3, 0x9F };
+ static const uint8_t casefolded[] = { 0x68, 0x65, 0x69, 0x73, 0x73 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint8_t input[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
+ };
+ static const uint8_t casefolded[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x83,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x83
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint8_t input[] = { 0xC7, 0xB0, 0xCC, 0xA3 };
+ static const uint8_t casefolded[] = { 0x6A, 0xCC, 0x8C, 0xCC, 0xA3 };
+ static const uint8_t casefolded_decomposed[] = { 0x6A, 0xCC, 0xA3, 0xCC, 0x8C };
+ static const uint8_t casefolded_normalized[] = { 0xC7, 0xB0, 0xCC, 0xA3 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casefolded, SIZEOF (casefolded)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFD, casefolded_decomposed, SIZEOF (casefolded_decomposed)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casefolded_normalized, SIZEOF (casefolded_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-is-cased.c b/tests/unicase/test-u8-is-cased.c
new file mode 100644
index 0000000..984f81b
--- /dev/null
+++ b/tests/unicase/test-u8-is-cased.c
@@ -0,0 +1,51 @@
+/* Test of test whether case matters for an UTF-8 string.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint8_t
+#include "test-is-cased.h"
+#undef UNIT
+
+int
+main ()
+{
+ test_ascii (u8_is_cased);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-is-casefolded.c b/tests/unicase/test-u8-is-casefolded.c
new file mode 100644
index 0000000..b727f6b
--- /dev/null
+++ b/tests/unicase/test-u8-is-casefolded.c
@@ -0,0 +1,65 @@
+/* Test of test whether an UTF-8 string is already case-folded.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint8_t
+#include "test-is-casefolded.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint8_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint8_t input[] = { 0xC3, 0x9F };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u8_is_casefolded);
+ test_nonascii (u8_is_casefolded);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-is-lowercase.c b/tests/unicase/test-u8-is-lowercase.c
new file mode 100644
index 0000000..230e77c
--- /dev/null
+++ b/tests/unicase/test-u8-is-lowercase.c
@@ -0,0 +1,93 @@
+/* Test of test whether an UTF-8 string is entirely lower case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint8_t
+#include "test-is-lowercase.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint8_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint8_t input[] = { 0xE2, 0x93, 0x97 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint8_t input[] = { 0xE2, 0x92, 0xBD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const uint8_t input[] = { 0xCA, 0xB0 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint8_t input[] = { 0xE1, 0x80, 0xB4 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint8_t input[] = { 0xCA, 0xBD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u8_is_lowercase);
+ test_nonascii (u8_is_lowercase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-is-titlecase.c b/tests/unicase/test-u8-is-titlecase.c
new file mode 100644
index 0000000..fb803ea
--- /dev/null
+++ b/tests/unicase/test-u8-is-titlecase.c
@@ -0,0 +1,51 @@
+/* Test of test whether an UTF-8 string is entirely title case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint8_t
+#include "test-is-titlecase.h"
+#undef UNIT
+
+int
+main ()
+{
+ test_ascii (u8_is_titlecase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-is-uppercase.c b/tests/unicase/test-u8-is-uppercase.c
new file mode 100644
index 0000000..c66bf39
--- /dev/null
+++ b/tests/unicase/test-u8-is-uppercase.c
@@ -0,0 +1,93 @@
+/* Test of test whether an UTF-8 string is entirely upper case.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT uint8_t
+#include "test-is-uppercase.h"
+#undef UNIT
+
+static void
+test_nonascii (int (*my_is) (const uint8_t *, size_t, const char *, bool *))
+{
+ /* Test cases from Unicode 5.1.0. */
+ {
+ static const uint8_t input[] = { 0xE2, 0x93, 0x97 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == false);
+ }
+ {
+ static const uint8_t input[] = { 0xE2, 0x92, 0xBD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint8_t input[] = { 0xCA, 0xB0 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint8_t input[] = { 0xE1, 0x80, 0xB4 };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+ {
+ static const uint8_t input[] = { 0xCA, 0xBD };
+ bool result;
+
+ ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
+ ASSERT (result == true);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u8_is_uppercase);
+ test_nonascii (u8_is_uppercase);
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-tolower.c b/tests/unicase/test-u8-tolower.c
new file mode 100644
index 0000000..6c0a5df
--- /dev/null
+++ b/tests/unicase/test-u8-tolower.c
@@ -0,0 +1,257 @@
+/* Test of lowercase mapping for UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_tolower (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_tolower (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_tolower (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t casemapped[] =
+ { 'g', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0xD0, 0xB7, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint8_t input[] = { 0x49 };
+ static const uint8_t casemapped[] = { 0x69 };
+ static const uint8_t casemapped_tr[] = { 0xC4, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint8_t input[] = { 0x69 };
+ static const uint8_t casemapped[] = { 0x69 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint8_t input[] = { 0xC4, 0xB0 };
+ static const uint8_t casemapped[] = { 0x69, 0xCC, 0x87 };
+ static const uint8_t casemapped_tr[] = { 0x69 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint8_t input[] = { 0xC4, 0xB1};
+ static const uint8_t casemapped[] = { 0xC4, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "TOPKAPI" */
+ static const uint8_t input[] =
+ { 0x54, 0x4F, 0x50, 0x4B, 0x41, 0x50, 0x49 };
+ static const uint8_t casemapped[] =
+ { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "HEIß" */
+ static const uint8_t input[] = { 0x48, 0x45, 0x49, 0xC3, 0x9F };
+ static const uint8_t casemapped[] = { 0x68, 0x65, 0x69, 0xC3, 0x9F };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "ΠΕΡΙΣΣΌΤΕΡΕΣ ΠΛΗΡΟΦΟΡΊΕΣ" */
+ static const uint8_t input[] =
+ {
+ 0xCE, 0xA0, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x99, 0xCE, 0xA3, 0xCE, 0xA3,
+ 0xCE, 0x8C, 0xCE, 0xA4, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x95, 0xCE, 0xA3,
+ ' ', 0xCE, 0xA0, 0xCE, 0x9B, 0xCE, 0x97, 0xCE, 0xA1, 0xCE, 0x9F,
+ 0xCE, 0xA6, 0xCE, 0x9F, 0xCE, 0xA1, 0xCE, 0x8A, 0xCE, 0x95, 0xCE, 0xA3
+ };
+ static const uint8_t casemapped[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "Σ" -> "σ" */
+ static const uint8_t input[] = { 0xCE, 0xA3 };
+ static const uint8_t casemapped[] = { 0xCF, 0x83 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ" -> "ας" */
+ static const uint8_t input[] = { 0xCE, 0x91, 0xCE, 0xA3 };
+ static const uint8_t casemapped[] = { 0xCE, 0xB1, 0xCF, 0x82 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ /* It's a final sigma only if not followed by a case-ignorable sequence and
+ then a cased letter. Note that U+0345 and U+037A are simultaneously
+ case-ignorable and cased (which is a bit paradoxical). */
+ { /* "ΑΣΑ" -> "ασα" */
+ static const uint8_t input[] = { 0xCE, 0x91, 0xCE, 0xA3, 0xCE, 0x91 };
+ static const uint8_t casemapped[] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:" -> "ας:" */
+ static const uint8_t input[] = { 0xCE, 0x91, 0xCE, 0xA3, 0x3A };
+ static const uint8_t casemapped[] = { 0xCE, 0xB1, 0xCF, 0x82, 0x3A };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:Α" -> "ασ:α" */
+ static const uint8_t input[] = { 0xCE, 0x91, 0xCE, 0xA3, 0x3A, 0xCE, 0x91 };
+ static const uint8_t casemapped[] = { 0xCE, 0xB1, 0xCF, 0x83, 0x3A, 0xCE, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:ͺ" -> "ασ:ͺ" */
+ static const uint8_t input[] = { 0xCE, 0x91, 0xCE, 0xA3, 0x3A, 0xCD, 0xBA };
+ static const uint8_t casemapped[] = { 0xCE, 0xB1, 0xCF, 0x83, 0x3A, 0xCD, 0xBA };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ΑΣ:ͺ " -> "ασ:ͺ " */
+ static const uint8_t input[] = { 0xCE, 0x91, 0xCE, 0xA3, 0x3A, 0xCD, 0xBA, 0x20 };
+ static const uint8_t casemapped[] = { 0xCE, 0xB1, 0xCF, 0x83, 0x3A, 0xCD, 0xBA, 0x20 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ /* It's a final sigma only if preceded by a case-ignorable sequence and
+ a cased letter before it. Note that U+0345 and U+037A are simultaneously
+ case-ignorable and cased (which is a bit paradoxical). */
+ { /* ":Σ" -> ":σ" */
+ static const uint8_t input[] = { 0x3A, 0xCE, 0xA3 };
+ static const uint8_t casemapped[] = { 0x3A, 0xCF, 0x83 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "Α:Σ" -> "α:ς" */
+ static const uint8_t input[] = { 0xCE, 0x91, 0x3A, 0xCE, 0xA3 };
+ static const uint8_t casemapped[] = { 0xCE, 0xB1, 0x3A, 0xCF, 0x82 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "ͺ:Σ" -> "ͺ:ς" */
+ static const uint8_t input[] = { 0xCD, 0xBA, 0x3A, 0xCE, 0xA3 };
+ static const uint8_t casemapped[] = { 0xCD, 0xBA, 0x3A, 0xCF, 0x82 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* " ͺ:Σ" -> " ͺ:ς" */
+ static const uint8_t input[] = { 0x20, 0xCD, 0xBA, 0x3A, 0xCE, 0xA3 };
+ static const uint8_t casemapped[] = { 0x20, 0xCD, 0xBA, 0x3A, 0xCF, 0x82 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-totitle.c b/tests/unicase/test-u8-totitle.c
new file mode 100644
index 0000000..c2506ac
--- /dev/null
+++ b/tests/unicase/test-u8-totitle.c
@@ -0,0 +1,217 @@
+/* Test of titlecase mapping for UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_totitle (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_totitle (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_totitle (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "GRÜß GOTT. ЗДРАВСТВУЙТЕ! X=(-B±SQRT(B²-4AC))/(2A) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'R', 0xC3, 0x9C, 0xC3, 0x9F, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0x94, 0xD0, 0xA0, 0xD0, 0x90, 0xD0, 0x92, 0xD0, 0xA1,
+ 0xD0, 0xA2, 0xD0, 0x92, 0xD0, 0xA3, 0xD0, 0x99, 0xD0, 0xA2, 0xD0, 0x95,
+ '!', ' ', 'X', '=', '(', '-', 'B', 0xC2, 0xB1, 'S', 'Q', 'R', 'T', '(',
+ 'B', 0xC2, 0xB2, '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t casemapped[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'X', '=', '(', '-', 'B', 0xC2, 0xB1, 'S', 'q', 'r', 't', '(',
+ 'B', 0xC2, 0xB2, '-', '4', 'A', 'c', ')', ')', '/', '(', '2', 'A', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint8_t input[] = { 0xC5, 0x89 };
+ static const uint8_t casemapped[] = { 0xCA, 0xBC, 0x4E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint8_t input[] = { 0xCE, 0x90 };
+ static const uint8_t casemapped[] = { 0xCE, 0x99, 0xCC, 0x88, 0xCC, 0x81 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint8_t input[] = { 0x49 };
+ static const uint8_t casemapped[] = { 0x49 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint8_t input[] = { 0x69 };
+ static const uint8_t casemapped[] = { 0x49 };
+ static const uint8_t casemapped_tr[] = { 0xC4, 0xB0 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint8_t input[] = { 0xC4, 0xB0 };
+ static const uint8_t casemapped[] = { 0xC4, 0xB0 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint8_t input[] = { 0xC4, 0xB1 };
+ static const uint8_t casemapped[] = { 0x49 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint8_t input[] =
+ { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ static const uint8_t casemapped[] =
+ { 0x54, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint8_t input[] = { 0x68, 0x65, 0x69, 0xC3, 0x9F };
+ static const uint8_t casemapped[] = { 0x48, 0x65, 0x69, 0xC3, 0x9F };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint8_t input[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
+ };
+ static const uint8_t casemapped[] =
+ {
+ 0xCE, 0xA0, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
+ ' ', 0xCE, 0xA0, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint8_t input[] = { 0xC7, 0xB0, 0xCC, 0xA3 };
+ static const uint8_t casemapped[] = { 0x4A, 0xCC, 0x8C, 0xCC, 0xA3 };
+ static const uint8_t casemapped_normalized[] = { 0x4A, 0xCC, 0xA3, 0xCC, 0x8C };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casemapped_normalized, SIZEOF (casemapped_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-u8-toupper.c b/tests/unicase/test-u8-toupper.c
new file mode 100644
index 0000000..41e536b
--- /dev/null
+++ b/tests/unicase/test-u8-toupper.c
@@ -0,0 +1,217 @@
+/* Test of uppercase mapping for UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const char *iso639_language, uninorm_t nf,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_toupper (input, input_length, iso639_language, nf, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_toupper (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_toupper (input, input_length, iso639_language, nf, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, NULL, NULL, 0) == 0);
+ ASSERT (check (NULL, 0, NULL, UNINORM_NFC, NULL, 0) == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t casemapped[] =
+ { 'G', 'R', 0xC3, 0x9C, 0x53, 0x53, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0x94, 0xD0, 0xA0, 0xD0, 0x90, 0xD0, 0x92, 0xD0, 0xA1,
+ 0xD0, 0xA2, 0xD0, 0x92, 0xD0, 0xA3, 0xD0, 0x99, 0xD0, 0xA2, 0xD0, 0x95,
+ '!', ' ', 'X', '=', '(', '-', 'B', 0xC2, 0xB1, 'S', 'Q', 'R', 'T', '(',
+ 'B', 0xC2, 0xB2, '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const uint8_t input[] = { 0xC5, 0x89 };
+ static const uint8_t casemapped[] = { 0xCA, 0xBC, 0x4E };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const uint8_t input[] = { 0xCE, 0x90 };
+ static const uint8_t casemapped[] = { 0xCE, 0x99, 0xCC, 0x88, 0xCC, 0x81 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const uint8_t input[] = { 0x49 };
+ static const uint8_t casemapped[] = { 0x49 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const uint8_t input[] = { 0x69 };
+ static const uint8_t casemapped[] = { 0x49 };
+ static const uint8_t casemapped_tr[] = { 0xC4, 0xB0 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped_tr, SIZEOF (casemapped_tr)) == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const uint8_t input[] = { 0xC4, 0xB0 };
+ static const uint8_t casemapped[] = { 0xC4, 0xB0 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const uint8_t input[] = { 0xC4, 0xB1 };
+ static const uint8_t casemapped[] = { 0x49 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+ { /* "topkapı" */
+ static const uint8_t input[] =
+ { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ static const uint8_t casemapped[] =
+ { 0x54, 0x4F, 0x50, 0x4B, 0x41, 0x50, 0x49 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), "tr", NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const uint8_t input[] = { 0x68, 0x65, 0x69, 0xC3, 0x9F };
+ static const uint8_t casemapped[] = { 0x48, 0x45, 0x49, 0x53, 0x53 };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const uint8_t input[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
+ };
+ static const uint8_t casemapped[] =
+ {
+ 0xCE, 0xA0, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x99, 0xCE, 0xA3, 0xCE, 0xA3,
+ 0xCE, 0x8C, 0xCE, 0xA4, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x95, 0xCE, 0xA3,
+ ' ', 0xCE, 0xA0, 0xCE, 0x9B, 0xCE, 0x97, 0xCE, 0xA1, 0xCE, 0x9F,
+ 0xCE, 0xA6, 0xCE, 0x9F, 0xCE, 0xA1, 0xCE, 0x8A, 0xCE, 0x95, 0xCE, 0xA3
+ };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const uint8_t input[] = { 0xC7, 0xB0, 0xCC, 0xA3 };
+ static const uint8_t casemapped[] = { 0x4A, 0xCC, 0x8C, 0xCC, 0xA3 };
+ static const uint8_t casemapped_normalized[] = { 0x4A, 0xCC, 0xA3, 0xCC, 0x8C };
+ ASSERT (check (input, SIZEOF (input), NULL, NULL, casemapped, SIZEOF (casemapped)) == 0);
+ ASSERT (check (input, SIZEOF (input), NULL, UNINORM_NFC, casemapped_normalized, SIZEOF (casemapped_normalized)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unicase/test-uc_tolower.c b/tests/unicase/test-uc_tolower.c
new file mode 100644
index 0000000..302e26b
--- /dev/null
+++ b/tests/unicase/test-uc_tolower.c
@@ -0,0 +1,1047 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character mapping functions.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Generated automatically by gen-case.c for Unicode 5.1.0. */
+
+#include "test-mapping-part1.h"
+
+ { 0x0041, 0x0061 },
+ { 0x0042, 0x0062 },
+ { 0x0043, 0x0063 },
+ { 0x0044, 0x0064 },
+ { 0x0045, 0x0065 },
+ { 0x0046, 0x0066 },
+ { 0x0047, 0x0067 },
+ { 0x0048, 0x0068 },
+ { 0x0049, 0x0069 },
+ { 0x004A, 0x006A },
+ { 0x004B, 0x006B },
+ { 0x004C, 0x006C },
+ { 0x004D, 0x006D },
+ { 0x004E, 0x006E },
+ { 0x004F, 0x006F },
+ { 0x0050, 0x0070 },
+ { 0x0051, 0x0071 },
+ { 0x0052, 0x0072 },
+ { 0x0053, 0x0073 },
+ { 0x0054, 0x0074 },
+ { 0x0055, 0x0075 },
+ { 0x0056, 0x0076 },
+ { 0x0057, 0x0077 },
+ { 0x0058, 0x0078 },
+ { 0x0059, 0x0079 },
+ { 0x005A, 0x007A },
+ { 0x00C0, 0x00E0 },
+ { 0x00C1, 0x00E1 },
+ { 0x00C2, 0x00E2 },
+ { 0x00C3, 0x00E3 },
+ { 0x00C4, 0x00E4 },
+ { 0x00C5, 0x00E5 },
+ { 0x00C6, 0x00E6 },
+ { 0x00C7, 0x00E7 },
+ { 0x00C8, 0x00E8 },
+ { 0x00C9, 0x00E9 },
+ { 0x00CA, 0x00EA },
+ { 0x00CB, 0x00EB },
+ { 0x00CC, 0x00EC },
+ { 0x00CD, 0x00ED },
+ { 0x00CE, 0x00EE },
+ { 0x00CF, 0x00EF },
+ { 0x00D0, 0x00F0 },
+ { 0x00D1, 0x00F1 },
+ { 0x00D2, 0x00F2 },
+ { 0x00D3, 0x00F3 },
+ { 0x00D4, 0x00F4 },
+ { 0x00D5, 0x00F5 },
+ { 0x00D6, 0x00F6 },
+ { 0x00D8, 0x00F8 },
+ { 0x00D9, 0x00F9 },
+ { 0x00DA, 0x00FA },
+ { 0x00DB, 0x00FB },
+ { 0x00DC, 0x00FC },
+ { 0x00DD, 0x00FD },
+ { 0x00DE, 0x00FE },
+ { 0x0100, 0x0101 },
+ { 0x0102, 0x0103 },
+ { 0x0104, 0x0105 },
+ { 0x0106, 0x0107 },
+ { 0x0108, 0x0109 },
+ { 0x010A, 0x010B },
+ { 0x010C, 0x010D },
+ { 0x010E, 0x010F },
+ { 0x0110, 0x0111 },
+ { 0x0112, 0x0113 },
+ { 0x0114, 0x0115 },
+ { 0x0116, 0x0117 },
+ { 0x0118, 0x0119 },
+ { 0x011A, 0x011B },
+ { 0x011C, 0x011D },
+ { 0x011E, 0x011F },
+ { 0x0120, 0x0121 },
+ { 0x0122, 0x0123 },
+ { 0x0124, 0x0125 },
+ { 0x0126, 0x0127 },
+ { 0x0128, 0x0129 },
+ { 0x012A, 0x012B },
+ { 0x012C, 0x012D },
+ { 0x012E, 0x012F },
+ { 0x0130, 0x0069 },
+ { 0x0132, 0x0133 },
+ { 0x0134, 0x0135 },
+ { 0x0136, 0x0137 },
+ { 0x0139, 0x013A },
+ { 0x013B, 0x013C },
+ { 0x013D, 0x013E },
+ { 0x013F, 0x0140 },
+ { 0x0141, 0x0142 },
+ { 0x0143, 0x0144 },
+ { 0x0145, 0x0146 },
+ { 0x0147, 0x0148 },
+ { 0x014A, 0x014B },
+ { 0x014C, 0x014D },
+ { 0x014E, 0x014F },
+ { 0x0150, 0x0151 },
+ { 0x0152, 0x0153 },
+ { 0x0154, 0x0155 },
+ { 0x0156, 0x0157 },
+ { 0x0158, 0x0159 },
+ { 0x015A, 0x015B },
+ { 0x015C, 0x015D },
+ { 0x015E, 0x015F },
+ { 0x0160, 0x0161 },
+ { 0x0162, 0x0163 },
+ { 0x0164, 0x0165 },
+ { 0x0166, 0x0167 },
+ { 0x0168, 0x0169 },
+ { 0x016A, 0x016B },
+ { 0x016C, 0x016D },
+ { 0x016E, 0x016F },
+ { 0x0170, 0x0171 },
+ { 0x0172, 0x0173 },
+ { 0x0174, 0x0175 },
+ { 0x0176, 0x0177 },
+ { 0x0178, 0x00FF },
+ { 0x0179, 0x017A },
+ { 0x017B, 0x017C },
+ { 0x017D, 0x017E },
+ { 0x0181, 0x0253 },
+ { 0x0182, 0x0183 },
+ { 0x0184, 0x0185 },
+ { 0x0186, 0x0254 },
+ { 0x0187, 0x0188 },
+ { 0x0189, 0x0256 },
+ { 0x018A, 0x0257 },
+ { 0x018B, 0x018C },
+ { 0x018E, 0x01DD },
+ { 0x018F, 0x0259 },
+ { 0x0190, 0x025B },
+ { 0x0191, 0x0192 },
+ { 0x0193, 0x0260 },
+ { 0x0194, 0x0263 },
+ { 0x0196, 0x0269 },
+ { 0x0197, 0x0268 },
+ { 0x0198, 0x0199 },
+ { 0x019C, 0x026F },
+ { 0x019D, 0x0272 },
+ { 0x019F, 0x0275 },
+ { 0x01A0, 0x01A1 },
+ { 0x01A2, 0x01A3 },
+ { 0x01A4, 0x01A5 },
+ { 0x01A6, 0x0280 },
+ { 0x01A7, 0x01A8 },
+ { 0x01A9, 0x0283 },
+ { 0x01AC, 0x01AD },
+ { 0x01AE, 0x0288 },
+ { 0x01AF, 0x01B0 },
+ { 0x01B1, 0x028A },
+ { 0x01B2, 0x028B },
+ { 0x01B3, 0x01B4 },
+ { 0x01B5, 0x01B6 },
+ { 0x01B7, 0x0292 },
+ { 0x01B8, 0x01B9 },
+ { 0x01BC, 0x01BD },
+ { 0x01C4, 0x01C6 },
+ { 0x01C5, 0x01C6 },
+ { 0x01C7, 0x01C9 },
+ { 0x01C8, 0x01C9 },
+ { 0x01CA, 0x01CC },
+ { 0x01CB, 0x01CC },
+ { 0x01CD, 0x01CE },
+ { 0x01CF, 0x01D0 },
+ { 0x01D1, 0x01D2 },
+ { 0x01D3, 0x01D4 },
+ { 0x01D5, 0x01D6 },
+ { 0x01D7, 0x01D8 },
+ { 0x01D9, 0x01DA },
+ { 0x01DB, 0x01DC },
+ { 0x01DE, 0x01DF },
+ { 0x01E0, 0x01E1 },
+ { 0x01E2, 0x01E3 },
+ { 0x01E4, 0x01E5 },
+ { 0x01E6, 0x01E7 },
+ { 0x01E8, 0x01E9 },
+ { 0x01EA, 0x01EB },
+ { 0x01EC, 0x01ED },
+ { 0x01EE, 0x01EF },
+ { 0x01F1, 0x01F3 },
+ { 0x01F2, 0x01F3 },
+ { 0x01F4, 0x01F5 },
+ { 0x01F6, 0x0195 },
+ { 0x01F7, 0x01BF },
+ { 0x01F8, 0x01F9 },
+ { 0x01FA, 0x01FB },
+ { 0x01FC, 0x01FD },
+ { 0x01FE, 0x01FF },
+ { 0x0200, 0x0201 },
+ { 0x0202, 0x0203 },
+ { 0x0204, 0x0205 },
+ { 0x0206, 0x0207 },
+ { 0x0208, 0x0209 },
+ { 0x020A, 0x020B },
+ { 0x020C, 0x020D },
+ { 0x020E, 0x020F },
+ { 0x0210, 0x0211 },
+ { 0x0212, 0x0213 },
+ { 0x0214, 0x0215 },
+ { 0x0216, 0x0217 },
+ { 0x0218, 0x0219 },
+ { 0x021A, 0x021B },
+ { 0x021C, 0x021D },
+ { 0x021E, 0x021F },
+ { 0x0220, 0x019E },
+ { 0x0222, 0x0223 },
+ { 0x0224, 0x0225 },
+ { 0x0226, 0x0227 },
+ { 0x0228, 0x0229 },
+ { 0x022A, 0x022B },
+ { 0x022C, 0x022D },
+ { 0x022E, 0x022F },
+ { 0x0230, 0x0231 },
+ { 0x0232, 0x0233 },
+ { 0x023A, 0x2C65 },
+ { 0x023B, 0x023C },
+ { 0x023D, 0x019A },
+ { 0x023E, 0x2C66 },
+ { 0x0241, 0x0242 },
+ { 0x0243, 0x0180 },
+ { 0x0244, 0x0289 },
+ { 0x0245, 0x028C },
+ { 0x0246, 0x0247 },
+ { 0x0248, 0x0249 },
+ { 0x024A, 0x024B },
+ { 0x024C, 0x024D },
+ { 0x024E, 0x024F },
+ { 0x0370, 0x0371 },
+ { 0x0372, 0x0373 },
+ { 0x0376, 0x0377 },
+ { 0x0386, 0x03AC },
+ { 0x0388, 0x03AD },
+ { 0x0389, 0x03AE },
+ { 0x038A, 0x03AF },
+ { 0x038C, 0x03CC },
+ { 0x038E, 0x03CD },
+ { 0x038F, 0x03CE },
+ { 0x0391, 0x03B1 },
+ { 0x0392, 0x03B2 },
+ { 0x0393, 0x03B3 },
+ { 0x0394, 0x03B4 },
+ { 0x0395, 0x03B5 },
+ { 0x0396, 0x03B6 },
+ { 0x0397, 0x03B7 },
+ { 0x0398, 0x03B8 },
+ { 0x0399, 0x03B9 },
+ { 0x039A, 0x03BA },
+ { 0x039B, 0x03BB },
+ { 0x039C, 0x03BC },
+ { 0x039D, 0x03BD },
+ { 0x039E, 0x03BE },
+ { 0x039F, 0x03BF },
+ { 0x03A0, 0x03C0 },
+ { 0x03A1, 0x03C1 },
+ { 0x03A3, 0x03C3 },
+ { 0x03A4, 0x03C4 },
+ { 0x03A5, 0x03C5 },
+ { 0x03A6, 0x03C6 },
+ { 0x03A7, 0x03C7 },
+ { 0x03A8, 0x03C8 },
+ { 0x03A9, 0x03C9 },
+ { 0x03AA, 0x03CA },
+ { 0x03AB, 0x03CB },
+ { 0x03CF, 0x03D7 },
+ { 0x03D8, 0x03D9 },
+ { 0x03DA, 0x03DB },
+ { 0x03DC, 0x03DD },
+ { 0x03DE, 0x03DF },
+ { 0x03E0, 0x03E1 },
+ { 0x03E2, 0x03E3 },
+ { 0x03E4, 0x03E5 },
+ { 0x03E6, 0x03E7 },
+ { 0x03E8, 0x03E9 },
+ { 0x03EA, 0x03EB },
+ { 0x03EC, 0x03ED },
+ { 0x03EE, 0x03EF },
+ { 0x03F4, 0x03B8 },
+ { 0x03F7, 0x03F8 },
+ { 0x03F9, 0x03F2 },
+ { 0x03FA, 0x03FB },
+ { 0x03FD, 0x037B },
+ { 0x03FE, 0x037C },
+ { 0x03FF, 0x037D },
+ { 0x0400, 0x0450 },
+ { 0x0401, 0x0451 },
+ { 0x0402, 0x0452 },
+ { 0x0403, 0x0453 },
+ { 0x0404, 0x0454 },
+ { 0x0405, 0x0455 },
+ { 0x0406, 0x0456 },
+ { 0x0407, 0x0457 },
+ { 0x0408, 0x0458 },
+ { 0x0409, 0x0459 },
+ { 0x040A, 0x045A },
+ { 0x040B, 0x045B },
+ { 0x040C, 0x045C },
+ { 0x040D, 0x045D },
+ { 0x040E, 0x045E },
+ { 0x040F, 0x045F },
+ { 0x0410, 0x0430 },
+ { 0x0411, 0x0431 },
+ { 0x0412, 0x0432 },
+ { 0x0413, 0x0433 },
+ { 0x0414, 0x0434 },
+ { 0x0415, 0x0435 },
+ { 0x0416, 0x0436 },
+ { 0x0417, 0x0437 },
+ { 0x0418, 0x0438 },
+ { 0x0419, 0x0439 },
+ { 0x041A, 0x043A },
+ { 0x041B, 0x043B },
+ { 0x041C, 0x043C },
+ { 0x041D, 0x043D },
+ { 0x041E, 0x043E },
+ { 0x041F, 0x043F },
+ { 0x0420, 0x0440 },
+ { 0x0421, 0x0441 },
+ { 0x0422, 0x0442 },
+ { 0x0423, 0x0443 },
+ { 0x0424, 0x0444 },
+ { 0x0425, 0x0445 },
+ { 0x0426, 0x0446 },
+ { 0x0427, 0x0447 },
+ { 0x0428, 0x0448 },
+ { 0x0429, 0x0449 },
+ { 0x042A, 0x044A },
+ { 0x042B, 0x044B },
+ { 0x042C, 0x044C },
+ { 0x042D, 0x044D },
+ { 0x042E, 0x044E },
+ { 0x042F, 0x044F },
+ { 0x0460, 0x0461 },
+ { 0x0462, 0x0463 },
+ { 0x0464, 0x0465 },
+ { 0x0466, 0x0467 },
+ { 0x0468, 0x0469 },
+ { 0x046A, 0x046B },
+ { 0x046C, 0x046D },
+ { 0x046E, 0x046F },
+ { 0x0470, 0x0471 },
+ { 0x0472, 0x0473 },
+ { 0x0474, 0x0475 },
+ { 0x0476, 0x0477 },
+ { 0x0478, 0x0479 },
+ { 0x047A, 0x047B },
+ { 0x047C, 0x047D },
+ { 0x047E, 0x047F },
+ { 0x0480, 0x0481 },
+ { 0x048A, 0x048B },
+ { 0x048C, 0x048D },
+ { 0x048E, 0x048F },
+ { 0x0490, 0x0491 },
+ { 0x0492, 0x0493 },
+ { 0x0494, 0x0495 },
+ { 0x0496, 0x0497 },
+ { 0x0498, 0x0499 },
+ { 0x049A, 0x049B },
+ { 0x049C, 0x049D },
+ { 0x049E, 0x049F },
+ { 0x04A0, 0x04A1 },
+ { 0x04A2, 0x04A3 },
+ { 0x04A4, 0x04A5 },
+ { 0x04A6, 0x04A7 },
+ { 0x04A8, 0x04A9 },
+ { 0x04AA, 0x04AB },
+ { 0x04AC, 0x04AD },
+ { 0x04AE, 0x04AF },
+ { 0x04B0, 0x04B1 },
+ { 0x04B2, 0x04B3 },
+ { 0x04B4, 0x04B5 },
+ { 0x04B6, 0x04B7 },
+ { 0x04B8, 0x04B9 },
+ { 0x04BA, 0x04BB },
+ { 0x04BC, 0x04BD },
+ { 0x04BE, 0x04BF },
+ { 0x04C0, 0x04CF },
+ { 0x04C1, 0x04C2 },
+ { 0x04C3, 0x04C4 },
+ { 0x04C5, 0x04C6 },
+ { 0x04C7, 0x04C8 },
+ { 0x04C9, 0x04CA },
+ { 0x04CB, 0x04CC },
+ { 0x04CD, 0x04CE },
+ { 0x04D0, 0x04D1 },
+ { 0x04D2, 0x04D3 },
+ { 0x04D4, 0x04D5 },
+ { 0x04D6, 0x04D7 },
+ { 0x04D8, 0x04D9 },
+ { 0x04DA, 0x04DB },
+ { 0x04DC, 0x04DD },
+ { 0x04DE, 0x04DF },
+ { 0x04E0, 0x04E1 },
+ { 0x04E2, 0x04E3 },
+ { 0x04E4, 0x04E5 },
+ { 0x04E6, 0x04E7 },
+ { 0x04E8, 0x04E9 },
+ { 0x04EA, 0x04EB },
+ { 0x04EC, 0x04ED },
+ { 0x04EE, 0x04EF },
+ { 0x04F0, 0x04F1 },
+ { 0x04F2, 0x04F3 },
+ { 0x04F4, 0x04F5 },
+ { 0x04F6, 0x04F7 },
+ { 0x04F8, 0x04F9 },
+ { 0x04FA, 0x04FB },
+ { 0x04FC, 0x04FD },
+ { 0x04FE, 0x04FF },
+ { 0x0500, 0x0501 },
+ { 0x0502, 0x0503 },
+ { 0x0504, 0x0505 },
+ { 0x0506, 0x0507 },
+ { 0x0508, 0x0509 },
+ { 0x050A, 0x050B },
+ { 0x050C, 0x050D },
+ { 0x050E, 0x050F },
+ { 0x0510, 0x0511 },
+ { 0x0512, 0x0513 },
+ { 0x0514, 0x0515 },
+ { 0x0516, 0x0517 },
+ { 0x0518, 0x0519 },
+ { 0x051A, 0x051B },
+ { 0x051C, 0x051D },
+ { 0x051E, 0x051F },
+ { 0x0520, 0x0521 },
+ { 0x0522, 0x0523 },
+ { 0x0531, 0x0561 },
+ { 0x0532, 0x0562 },
+ { 0x0533, 0x0563 },
+ { 0x0534, 0x0564 },
+ { 0x0535, 0x0565 },
+ { 0x0536, 0x0566 },
+ { 0x0537, 0x0567 },
+ { 0x0538, 0x0568 },
+ { 0x0539, 0x0569 },
+ { 0x053A, 0x056A },
+ { 0x053B, 0x056B },
+ { 0x053C, 0x056C },
+ { 0x053D, 0x056D },
+ { 0x053E, 0x056E },
+ { 0x053F, 0x056F },
+ { 0x0540, 0x0570 },
+ { 0x0541, 0x0571 },
+ { 0x0542, 0x0572 },
+ { 0x0543, 0x0573 },
+ { 0x0544, 0x0574 },
+ { 0x0545, 0x0575 },
+ { 0x0546, 0x0576 },
+ { 0x0547, 0x0577 },
+ { 0x0548, 0x0578 },
+ { 0x0549, 0x0579 },
+ { 0x054A, 0x057A },
+ { 0x054B, 0x057B },
+ { 0x054C, 0x057C },
+ { 0x054D, 0x057D },
+ { 0x054E, 0x057E },
+ { 0x054F, 0x057F },
+ { 0x0550, 0x0580 },
+ { 0x0551, 0x0581 },
+ { 0x0552, 0x0582 },
+ { 0x0553, 0x0583 },
+ { 0x0554, 0x0584 },
+ { 0x0555, 0x0585 },
+ { 0x0556, 0x0586 },
+ { 0x10A0, 0x2D00 },
+ { 0x10A1, 0x2D01 },
+ { 0x10A2, 0x2D02 },
+ { 0x10A3, 0x2D03 },
+ { 0x10A4, 0x2D04 },
+ { 0x10A5, 0x2D05 },
+ { 0x10A6, 0x2D06 },
+ { 0x10A7, 0x2D07 },
+ { 0x10A8, 0x2D08 },
+ { 0x10A9, 0x2D09 },
+ { 0x10AA, 0x2D0A },
+ { 0x10AB, 0x2D0B },
+ { 0x10AC, 0x2D0C },
+ { 0x10AD, 0x2D0D },
+ { 0x10AE, 0x2D0E },
+ { 0x10AF, 0x2D0F },
+ { 0x10B0, 0x2D10 },
+ { 0x10B1, 0x2D11 },
+ { 0x10B2, 0x2D12 },
+ { 0x10B3, 0x2D13 },
+ { 0x10B4, 0x2D14 },
+ { 0x10B5, 0x2D15 },
+ { 0x10B6, 0x2D16 },
+ { 0x10B7, 0x2D17 },
+ { 0x10B8, 0x2D18 },
+ { 0x10B9, 0x2D19 },
+ { 0x10BA, 0x2D1A },
+ { 0x10BB, 0x2D1B },
+ { 0x10BC, 0x2D1C },
+ { 0x10BD, 0x2D1D },
+ { 0x10BE, 0x2D1E },
+ { 0x10BF, 0x2D1F },
+ { 0x10C0, 0x2D20 },
+ { 0x10C1, 0x2D21 },
+ { 0x10C2, 0x2D22 },
+ { 0x10C3, 0x2D23 },
+ { 0x10C4, 0x2D24 },
+ { 0x10C5, 0x2D25 },
+ { 0x1E00, 0x1E01 },
+ { 0x1E02, 0x1E03 },
+ { 0x1E04, 0x1E05 },
+ { 0x1E06, 0x1E07 },
+ { 0x1E08, 0x1E09 },
+ { 0x1E0A, 0x1E0B },
+ { 0x1E0C, 0x1E0D },
+ { 0x1E0E, 0x1E0F },
+ { 0x1E10, 0x1E11 },
+ { 0x1E12, 0x1E13 },
+ { 0x1E14, 0x1E15 },
+ { 0x1E16, 0x1E17 },
+ { 0x1E18, 0x1E19 },
+ { 0x1E1A, 0x1E1B },
+ { 0x1E1C, 0x1E1D },
+ { 0x1E1E, 0x1E1F },
+ { 0x1E20, 0x1E21 },
+ { 0x1E22, 0x1E23 },
+ { 0x1E24, 0x1E25 },
+ { 0x1E26, 0x1E27 },
+ { 0x1E28, 0x1E29 },
+ { 0x1E2A, 0x1E2B },
+ { 0x1E2C, 0x1E2D },
+ { 0x1E2E, 0x1E2F },
+ { 0x1E30, 0x1E31 },
+ { 0x1E32, 0x1E33 },
+ { 0x1E34, 0x1E35 },
+ { 0x1E36, 0x1E37 },
+ { 0x1E38, 0x1E39 },
+ { 0x1E3A, 0x1E3B },
+ { 0x1E3C, 0x1E3D },
+ { 0x1E3E, 0x1E3F },
+ { 0x1E40, 0x1E41 },
+ { 0x1E42, 0x1E43 },
+ { 0x1E44, 0x1E45 },
+ { 0x1E46, 0x1E47 },
+ { 0x1E48, 0x1E49 },
+ { 0x1E4A, 0x1E4B },
+ { 0x1E4C, 0x1E4D },
+ { 0x1E4E, 0x1E4F },
+ { 0x1E50, 0x1E51 },
+ { 0x1E52, 0x1E53 },
+ { 0x1E54, 0x1E55 },
+ { 0x1E56, 0x1E57 },
+ { 0x1E58, 0x1E59 },
+ { 0x1E5A, 0x1E5B },
+ { 0x1E5C, 0x1E5D },
+ { 0x1E5E, 0x1E5F },
+ { 0x1E60, 0x1E61 },
+ { 0x1E62, 0x1E63 },
+ { 0x1E64, 0x1E65 },
+ { 0x1E66, 0x1E67 },
+ { 0x1E68, 0x1E69 },
+ { 0x1E6A, 0x1E6B },
+ { 0x1E6C, 0x1E6D },
+ { 0x1E6E, 0x1E6F },
+ { 0x1E70, 0x1E71 },
+ { 0x1E72, 0x1E73 },
+ { 0x1E74, 0x1E75 },
+ { 0x1E76, 0x1E77 },
+ { 0x1E78, 0x1E79 },
+ { 0x1E7A, 0x1E7B },
+ { 0x1E7C, 0x1E7D },
+ { 0x1E7E, 0x1E7F },
+ { 0x1E80, 0x1E81 },
+ { 0x1E82, 0x1E83 },
+ { 0x1E84, 0x1E85 },
+ { 0x1E86, 0x1E87 },
+ { 0x1E88, 0x1E89 },
+ { 0x1E8A, 0x1E8B },
+ { 0x1E8C, 0x1E8D },
+ { 0x1E8E, 0x1E8F },
+ { 0x1E90, 0x1E91 },
+ { 0x1E92, 0x1E93 },
+ { 0x1E94, 0x1E95 },
+ { 0x1E9E, 0x00DF },
+ { 0x1EA0, 0x1EA1 },
+ { 0x1EA2, 0x1EA3 },
+ { 0x1EA4, 0x1EA5 },
+ { 0x1EA6, 0x1EA7 },
+ { 0x1EA8, 0x1EA9 },
+ { 0x1EAA, 0x1EAB },
+ { 0x1EAC, 0x1EAD },
+ { 0x1EAE, 0x1EAF },
+ { 0x1EB0, 0x1EB1 },
+ { 0x1EB2, 0x1EB3 },
+ { 0x1EB4, 0x1EB5 },
+ { 0x1EB6, 0x1EB7 },
+ { 0x1EB8, 0x1EB9 },
+ { 0x1EBA, 0x1EBB },
+ { 0x1EBC, 0x1EBD },
+ { 0x1EBE, 0x1EBF },
+ { 0x1EC0, 0x1EC1 },
+ { 0x1EC2, 0x1EC3 },
+ { 0x1EC4, 0x1EC5 },
+ { 0x1EC6, 0x1EC7 },
+ { 0x1EC8, 0x1EC9 },
+ { 0x1ECA, 0x1ECB },
+ { 0x1ECC, 0x1ECD },
+ { 0x1ECE, 0x1ECF },
+ { 0x1ED0, 0x1ED1 },
+ { 0x1ED2, 0x1ED3 },
+ { 0x1ED4, 0x1ED5 },
+ { 0x1ED6, 0x1ED7 },
+ { 0x1ED8, 0x1ED9 },
+ { 0x1EDA, 0x1EDB },
+ { 0x1EDC, 0x1EDD },
+ { 0x1EDE, 0x1EDF },
+ { 0x1EE0, 0x1EE1 },
+ { 0x1EE2, 0x1EE3 },
+ { 0x1EE4, 0x1EE5 },
+ { 0x1EE6, 0x1EE7 },
+ { 0x1EE8, 0x1EE9 },
+ { 0x1EEA, 0x1EEB },
+ { 0x1EEC, 0x1EED },
+ { 0x1EEE, 0x1EEF },
+ { 0x1EF0, 0x1EF1 },
+ { 0x1EF2, 0x1EF3 },
+ { 0x1EF4, 0x1EF5 },
+ { 0x1EF6, 0x1EF7 },
+ { 0x1EF8, 0x1EF9 },
+ { 0x1EFA, 0x1EFB },
+ { 0x1EFC, 0x1EFD },
+ { 0x1EFE, 0x1EFF },
+ { 0x1F08, 0x1F00 },
+ { 0x1F09, 0x1F01 },
+ { 0x1F0A, 0x1F02 },
+ { 0x1F0B, 0x1F03 },
+ { 0x1F0C, 0x1F04 },
+ { 0x1F0D, 0x1F05 },
+ { 0x1F0E, 0x1F06 },
+ { 0x1F0F, 0x1F07 },
+ { 0x1F18, 0x1F10 },
+ { 0x1F19, 0x1F11 },
+ { 0x1F1A, 0x1F12 },
+ { 0x1F1B, 0x1F13 },
+ { 0x1F1C, 0x1F14 },
+ { 0x1F1D, 0x1F15 },
+ { 0x1F28, 0x1F20 },
+ { 0x1F29, 0x1F21 },
+ { 0x1F2A, 0x1F22 },
+ { 0x1F2B, 0x1F23 },
+ { 0x1F2C, 0x1F24 },
+ { 0x1F2D, 0x1F25 },
+ { 0x1F2E, 0x1F26 },
+ { 0x1F2F, 0x1F27 },
+ { 0x1F38, 0x1F30 },
+ { 0x1F39, 0x1F31 },
+ { 0x1F3A, 0x1F32 },
+ { 0x1F3B, 0x1F33 },
+ { 0x1F3C, 0x1F34 },
+ { 0x1F3D, 0x1F35 },
+ { 0x1F3E, 0x1F36 },
+ { 0x1F3F, 0x1F37 },
+ { 0x1F48, 0x1F40 },
+ { 0x1F49, 0x1F41 },
+ { 0x1F4A, 0x1F42 },
+ { 0x1F4B, 0x1F43 },
+ { 0x1F4C, 0x1F44 },
+ { 0x1F4D, 0x1F45 },
+ { 0x1F59, 0x1F51 },
+ { 0x1F5B, 0x1F53 },
+ { 0x1F5D, 0x1F55 },
+ { 0x1F5F, 0x1F57 },
+ { 0x1F68, 0x1F60 },
+ { 0x1F69, 0x1F61 },
+ { 0x1F6A, 0x1F62 },
+ { 0x1F6B, 0x1F63 },
+ { 0x1F6C, 0x1F64 },
+ { 0x1F6D, 0x1F65 },
+ { 0x1F6E, 0x1F66 },
+ { 0x1F6F, 0x1F67 },
+ { 0x1F88, 0x1F80 },
+ { 0x1F89, 0x1F81 },
+ { 0x1F8A, 0x1F82 },
+ { 0x1F8B, 0x1F83 },
+ { 0x1F8C, 0x1F84 },
+ { 0x1F8D, 0x1F85 },
+ { 0x1F8E, 0x1F86 },
+ { 0x1F8F, 0x1F87 },
+ { 0x1F98, 0x1F90 },
+ { 0x1F99, 0x1F91 },
+ { 0x1F9A, 0x1F92 },
+ { 0x1F9B, 0x1F93 },
+ { 0x1F9C, 0x1F94 },
+ { 0x1F9D, 0x1F95 },
+ { 0x1F9E, 0x1F96 },
+ { 0x1F9F, 0x1F97 },
+ { 0x1FA8, 0x1FA0 },
+ { 0x1FA9, 0x1FA1 },
+ { 0x1FAA, 0x1FA2 },
+ { 0x1FAB, 0x1FA3 },
+ { 0x1FAC, 0x1FA4 },
+ { 0x1FAD, 0x1FA5 },
+ { 0x1FAE, 0x1FA6 },
+ { 0x1FAF, 0x1FA7 },
+ { 0x1FB8, 0x1FB0 },
+ { 0x1FB9, 0x1FB1 },
+ { 0x1FBA, 0x1F70 },
+ { 0x1FBB, 0x1F71 },
+ { 0x1FBC, 0x1FB3 },
+ { 0x1FC8, 0x1F72 },
+ { 0x1FC9, 0x1F73 },
+ { 0x1FCA, 0x1F74 },
+ { 0x1FCB, 0x1F75 },
+ { 0x1FCC, 0x1FC3 },
+ { 0x1FD8, 0x1FD0 },
+ { 0x1FD9, 0x1FD1 },
+ { 0x1FDA, 0x1F76 },
+ { 0x1FDB, 0x1F77 },
+ { 0x1FE8, 0x1FE0 },
+ { 0x1FE9, 0x1FE1 },
+ { 0x1FEA, 0x1F7A },
+ { 0x1FEB, 0x1F7B },
+ { 0x1FEC, 0x1FE5 },
+ { 0x1FF8, 0x1F78 },
+ { 0x1FF9, 0x1F79 },
+ { 0x1FFA, 0x1F7C },
+ { 0x1FFB, 0x1F7D },
+ { 0x1FFC, 0x1FF3 },
+ { 0x2126, 0x03C9 },
+ { 0x212A, 0x006B },
+ { 0x212B, 0x00E5 },
+ { 0x2132, 0x214E },
+ { 0x2160, 0x2170 },
+ { 0x2161, 0x2171 },
+ { 0x2162, 0x2172 },
+ { 0x2163, 0x2173 },
+ { 0x2164, 0x2174 },
+ { 0x2165, 0x2175 },
+ { 0x2166, 0x2176 },
+ { 0x2167, 0x2177 },
+ { 0x2168, 0x2178 },
+ { 0x2169, 0x2179 },
+ { 0x216A, 0x217A },
+ { 0x216B, 0x217B },
+ { 0x216C, 0x217C },
+ { 0x216D, 0x217D },
+ { 0x216E, 0x217E },
+ { 0x216F, 0x217F },
+ { 0x2183, 0x2184 },
+ { 0x24B6, 0x24D0 },
+ { 0x24B7, 0x24D1 },
+ { 0x24B8, 0x24D2 },
+ { 0x24B9, 0x24D3 },
+ { 0x24BA, 0x24D4 },
+ { 0x24BB, 0x24D5 },
+ { 0x24BC, 0x24D6 },
+ { 0x24BD, 0x24D7 },
+ { 0x24BE, 0x24D8 },
+ { 0x24BF, 0x24D9 },
+ { 0x24C0, 0x24DA },
+ { 0x24C1, 0x24DB },
+ { 0x24C2, 0x24DC },
+ { 0x24C3, 0x24DD },
+ { 0x24C4, 0x24DE },
+ { 0x24C5, 0x24DF },
+ { 0x24C6, 0x24E0 },
+ { 0x24C7, 0x24E1 },
+ { 0x24C8, 0x24E2 },
+ { 0x24C9, 0x24E3 },
+ { 0x24CA, 0x24E4 },
+ { 0x24CB, 0x24E5 },
+ { 0x24CC, 0x24E6 },
+ { 0x24CD, 0x24E7 },
+ { 0x24CE, 0x24E8 },
+ { 0x24CF, 0x24E9 },
+ { 0x2C00, 0x2C30 },
+ { 0x2C01, 0x2C31 },
+ { 0x2C02, 0x2C32 },
+ { 0x2C03, 0x2C33 },
+ { 0x2C04, 0x2C34 },
+ { 0x2C05, 0x2C35 },
+ { 0x2C06, 0x2C36 },
+ { 0x2C07, 0x2C37 },
+ { 0x2C08, 0x2C38 },
+ { 0x2C09, 0x2C39 },
+ { 0x2C0A, 0x2C3A },
+ { 0x2C0B, 0x2C3B },
+ { 0x2C0C, 0x2C3C },
+ { 0x2C0D, 0x2C3D },
+ { 0x2C0E, 0x2C3E },
+ { 0x2C0F, 0x2C3F },
+ { 0x2C10, 0x2C40 },
+ { 0x2C11, 0x2C41 },
+ { 0x2C12, 0x2C42 },
+ { 0x2C13, 0x2C43 },
+ { 0x2C14, 0x2C44 },
+ { 0x2C15, 0x2C45 },
+ { 0x2C16, 0x2C46 },
+ { 0x2C17, 0x2C47 },
+ { 0x2C18, 0x2C48 },
+ { 0x2C19, 0x2C49 },
+ { 0x2C1A, 0x2C4A },
+ { 0x2C1B, 0x2C4B },
+ { 0x2C1C, 0x2C4C },
+ { 0x2C1D, 0x2C4D },
+ { 0x2C1E, 0x2C4E },
+ { 0x2C1F, 0x2C4F },
+ { 0x2C20, 0x2C50 },
+ { 0x2C21, 0x2C51 },
+ { 0x2C22, 0x2C52 },
+ { 0x2C23, 0x2C53 },
+ { 0x2C24, 0x2C54 },
+ { 0x2C25, 0x2C55 },
+ { 0x2C26, 0x2C56 },
+ { 0x2C27, 0x2C57 },
+ { 0x2C28, 0x2C58 },
+ { 0x2C29, 0x2C59 },
+ { 0x2C2A, 0x2C5A },
+ { 0x2C2B, 0x2C5B },
+ { 0x2C2C, 0x2C5C },
+ { 0x2C2D, 0x2C5D },
+ { 0x2C2E, 0x2C5E },
+ { 0x2C60, 0x2C61 },
+ { 0x2C62, 0x026B },
+ { 0x2C63, 0x1D7D },
+ { 0x2C64, 0x027D },
+ { 0x2C67, 0x2C68 },
+ { 0x2C69, 0x2C6A },
+ { 0x2C6B, 0x2C6C },
+ { 0x2C6D, 0x0251 },
+ { 0x2C6E, 0x0271 },
+ { 0x2C6F, 0x0250 },
+ { 0x2C72, 0x2C73 },
+ { 0x2C75, 0x2C76 },
+ { 0x2C80, 0x2C81 },
+ { 0x2C82, 0x2C83 },
+ { 0x2C84, 0x2C85 },
+ { 0x2C86, 0x2C87 },
+ { 0x2C88, 0x2C89 },
+ { 0x2C8A, 0x2C8B },
+ { 0x2C8C, 0x2C8D },
+ { 0x2C8E, 0x2C8F },
+ { 0x2C90, 0x2C91 },
+ { 0x2C92, 0x2C93 },
+ { 0x2C94, 0x2C95 },
+ { 0x2C96, 0x2C97 },
+ { 0x2C98, 0x2C99 },
+ { 0x2C9A, 0x2C9B },
+ { 0x2C9C, 0x2C9D },
+ { 0x2C9E, 0x2C9F },
+ { 0x2CA0, 0x2CA1 },
+ { 0x2CA2, 0x2CA3 },
+ { 0x2CA4, 0x2CA5 },
+ { 0x2CA6, 0x2CA7 },
+ { 0x2CA8, 0x2CA9 },
+ { 0x2CAA, 0x2CAB },
+ { 0x2CAC, 0x2CAD },
+ { 0x2CAE, 0x2CAF },
+ { 0x2CB0, 0x2CB1 },
+ { 0x2CB2, 0x2CB3 },
+ { 0x2CB4, 0x2CB5 },
+ { 0x2CB6, 0x2CB7 },
+ { 0x2CB8, 0x2CB9 },
+ { 0x2CBA, 0x2CBB },
+ { 0x2CBC, 0x2CBD },
+ { 0x2CBE, 0x2CBF },
+ { 0x2CC0, 0x2CC1 },
+ { 0x2CC2, 0x2CC3 },
+ { 0x2CC4, 0x2CC5 },
+ { 0x2CC6, 0x2CC7 },
+ { 0x2CC8, 0x2CC9 },
+ { 0x2CCA, 0x2CCB },
+ { 0x2CCC, 0x2CCD },
+ { 0x2CCE, 0x2CCF },
+ { 0x2CD0, 0x2CD1 },
+ { 0x2CD2, 0x2CD3 },
+ { 0x2CD4, 0x2CD5 },
+ { 0x2CD6, 0x2CD7 },
+ { 0x2CD8, 0x2CD9 },
+ { 0x2CDA, 0x2CDB },
+ { 0x2CDC, 0x2CDD },
+ { 0x2CDE, 0x2CDF },
+ { 0x2CE0, 0x2CE1 },
+ { 0x2CE2, 0x2CE3 },
+ { 0xA640, 0xA641 },
+ { 0xA642, 0xA643 },
+ { 0xA644, 0xA645 },
+ { 0xA646, 0xA647 },
+ { 0xA648, 0xA649 },
+ { 0xA64A, 0xA64B },
+ { 0xA64C, 0xA64D },
+ { 0xA64E, 0xA64F },
+ { 0xA650, 0xA651 },
+ { 0xA652, 0xA653 },
+ { 0xA654, 0xA655 },
+ { 0xA656, 0xA657 },
+ { 0xA658, 0xA659 },
+ { 0xA65A, 0xA65B },
+ { 0xA65C, 0xA65D },
+ { 0xA65E, 0xA65F },
+ { 0xA662, 0xA663 },
+ { 0xA664, 0xA665 },
+ { 0xA666, 0xA667 },
+ { 0xA668, 0xA669 },
+ { 0xA66A, 0xA66B },
+ { 0xA66C, 0xA66D },
+ { 0xA680, 0xA681 },
+ { 0xA682, 0xA683 },
+ { 0xA684, 0xA685 },
+ { 0xA686, 0xA687 },
+ { 0xA688, 0xA689 },
+ { 0xA68A, 0xA68B },
+ { 0xA68C, 0xA68D },
+ { 0xA68E, 0xA68F },
+ { 0xA690, 0xA691 },
+ { 0xA692, 0xA693 },
+ { 0xA694, 0xA695 },
+ { 0xA696, 0xA697 },
+ { 0xA722, 0xA723 },
+ { 0xA724, 0xA725 },
+ { 0xA726, 0xA727 },
+ { 0xA728, 0xA729 },
+ { 0xA72A, 0xA72B },
+ { 0xA72C, 0xA72D },
+ { 0xA72E, 0xA72F },
+ { 0xA732, 0xA733 },
+ { 0xA734, 0xA735 },
+ { 0xA736, 0xA737 },
+ { 0xA738, 0xA739 },
+ { 0xA73A, 0xA73B },
+ { 0xA73C, 0xA73D },
+ { 0xA73E, 0xA73F },
+ { 0xA740, 0xA741 },
+ { 0xA742, 0xA743 },
+ { 0xA744, 0xA745 },
+ { 0xA746, 0xA747 },
+ { 0xA748, 0xA749 },
+ { 0xA74A, 0xA74B },
+ { 0xA74C, 0xA74D },
+ { 0xA74E, 0xA74F },
+ { 0xA750, 0xA751 },
+ { 0xA752, 0xA753 },
+ { 0xA754, 0xA755 },
+ { 0xA756, 0xA757 },
+ { 0xA758, 0xA759 },
+ { 0xA75A, 0xA75B },
+ { 0xA75C, 0xA75D },
+ { 0xA75E, 0xA75F },
+ { 0xA760, 0xA761 },
+ { 0xA762, 0xA763 },
+ { 0xA764, 0xA765 },
+ { 0xA766, 0xA767 },
+ { 0xA768, 0xA769 },
+ { 0xA76A, 0xA76B },
+ { 0xA76C, 0xA76D },
+ { 0xA76E, 0xA76F },
+ { 0xA779, 0xA77A },
+ { 0xA77B, 0xA77C },
+ { 0xA77D, 0x1D79 },
+ { 0xA77E, 0xA77F },
+ { 0xA780, 0xA781 },
+ { 0xA782, 0xA783 },
+ { 0xA784, 0xA785 },
+ { 0xA786, 0xA787 },
+ { 0xA78B, 0xA78C },
+ { 0xFF21, 0xFF41 },
+ { 0xFF22, 0xFF42 },
+ { 0xFF23, 0xFF43 },
+ { 0xFF24, 0xFF44 },
+ { 0xFF25, 0xFF45 },
+ { 0xFF26, 0xFF46 },
+ { 0xFF27, 0xFF47 },
+ { 0xFF28, 0xFF48 },
+ { 0xFF29, 0xFF49 },
+ { 0xFF2A, 0xFF4A },
+ { 0xFF2B, 0xFF4B },
+ { 0xFF2C, 0xFF4C },
+ { 0xFF2D, 0xFF4D },
+ { 0xFF2E, 0xFF4E },
+ { 0xFF2F, 0xFF4F },
+ { 0xFF30, 0xFF50 },
+ { 0xFF31, 0xFF51 },
+ { 0xFF32, 0xFF52 },
+ { 0xFF33, 0xFF53 },
+ { 0xFF34, 0xFF54 },
+ { 0xFF35, 0xFF55 },
+ { 0xFF36, 0xFF56 },
+ { 0xFF37, 0xFF57 },
+ { 0xFF38, 0xFF58 },
+ { 0xFF39, 0xFF59 },
+ { 0xFF3A, 0xFF5A },
+ { 0x10400, 0x10428 },
+ { 0x10401, 0x10429 },
+ { 0x10402, 0x1042A },
+ { 0x10403, 0x1042B },
+ { 0x10404, 0x1042C },
+ { 0x10405, 0x1042D },
+ { 0x10406, 0x1042E },
+ { 0x10407, 0x1042F },
+ { 0x10408, 0x10430 },
+ { 0x10409, 0x10431 },
+ { 0x1040A, 0x10432 },
+ { 0x1040B, 0x10433 },
+ { 0x1040C, 0x10434 },
+ { 0x1040D, 0x10435 },
+ { 0x1040E, 0x10436 },
+ { 0x1040F, 0x10437 },
+ { 0x10410, 0x10438 },
+ { 0x10411, 0x10439 },
+ { 0x10412, 0x1043A },
+ { 0x10413, 0x1043B },
+ { 0x10414, 0x1043C },
+ { 0x10415, 0x1043D },
+ { 0x10416, 0x1043E },
+ { 0x10417, 0x1043F },
+ { 0x10418, 0x10440 },
+ { 0x10419, 0x10441 },
+ { 0x1041A, 0x10442 },
+ { 0x1041B, 0x10443 },
+ { 0x1041C, 0x10444 },
+ { 0x1041D, 0x10445 },
+ { 0x1041E, 0x10446 },
+ { 0x1041F, 0x10447 },
+ { 0x10420, 0x10448 },
+ { 0x10421, 0x10449 },
+ { 0x10422, 0x1044A },
+ { 0x10423, 0x1044B },
+ { 0x10424, 0x1044C },
+ { 0x10425, 0x1044D },
+ { 0x10426, 0x1044E },
+ { 0x10427, 0x1044F }
+
+#define MAP(c) uc_tolower (c)
+#include "test-mapping-part2.h"
diff --git a/tests/unicase/test-uc_totitle.c b/tests/unicase/test-uc_totitle.c
new file mode 100644
index 0000000..9064a41
--- /dev/null
+++ b/tests/unicase/test-uc_totitle.c
@@ -0,0 +1,1055 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character mapping functions.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Generated automatically by gen-case.c for Unicode 5.1.0. */
+
+#include "test-mapping-part1.h"
+
+ { 0x0061, 0x0041 },
+ { 0x0062, 0x0042 },
+ { 0x0063, 0x0043 },
+ { 0x0064, 0x0044 },
+ { 0x0065, 0x0045 },
+ { 0x0066, 0x0046 },
+ { 0x0067, 0x0047 },
+ { 0x0068, 0x0048 },
+ { 0x0069, 0x0049 },
+ { 0x006A, 0x004A },
+ { 0x006B, 0x004B },
+ { 0x006C, 0x004C },
+ { 0x006D, 0x004D },
+ { 0x006E, 0x004E },
+ { 0x006F, 0x004F },
+ { 0x0070, 0x0050 },
+ { 0x0071, 0x0051 },
+ { 0x0072, 0x0052 },
+ { 0x0073, 0x0053 },
+ { 0x0074, 0x0054 },
+ { 0x0075, 0x0055 },
+ { 0x0076, 0x0056 },
+ { 0x0077, 0x0057 },
+ { 0x0078, 0x0058 },
+ { 0x0079, 0x0059 },
+ { 0x007A, 0x005A },
+ { 0x00B5, 0x039C },
+ { 0x00E0, 0x00C0 },
+ { 0x00E1, 0x00C1 },
+ { 0x00E2, 0x00C2 },
+ { 0x00E3, 0x00C3 },
+ { 0x00E4, 0x00C4 },
+ { 0x00E5, 0x00C5 },
+ { 0x00E6, 0x00C6 },
+ { 0x00E7, 0x00C7 },
+ { 0x00E8, 0x00C8 },
+ { 0x00E9, 0x00C9 },
+ { 0x00EA, 0x00CA },
+ { 0x00EB, 0x00CB },
+ { 0x00EC, 0x00CC },
+ { 0x00ED, 0x00CD },
+ { 0x00EE, 0x00CE },
+ { 0x00EF, 0x00CF },
+ { 0x00F0, 0x00D0 },
+ { 0x00F1, 0x00D1 },
+ { 0x00F2, 0x00D2 },
+ { 0x00F3, 0x00D3 },
+ { 0x00F4, 0x00D4 },
+ { 0x00F5, 0x00D5 },
+ { 0x00F6, 0x00D6 },
+ { 0x00F8, 0x00D8 },
+ { 0x00F9, 0x00D9 },
+ { 0x00FA, 0x00DA },
+ { 0x00FB, 0x00DB },
+ { 0x00FC, 0x00DC },
+ { 0x00FD, 0x00DD },
+ { 0x00FE, 0x00DE },
+ { 0x00FF, 0x0178 },
+ { 0x0101, 0x0100 },
+ { 0x0103, 0x0102 },
+ { 0x0105, 0x0104 },
+ { 0x0107, 0x0106 },
+ { 0x0109, 0x0108 },
+ { 0x010B, 0x010A },
+ { 0x010D, 0x010C },
+ { 0x010F, 0x010E },
+ { 0x0111, 0x0110 },
+ { 0x0113, 0x0112 },
+ { 0x0115, 0x0114 },
+ { 0x0117, 0x0116 },
+ { 0x0119, 0x0118 },
+ { 0x011B, 0x011A },
+ { 0x011D, 0x011C },
+ { 0x011F, 0x011E },
+ { 0x0121, 0x0120 },
+ { 0x0123, 0x0122 },
+ { 0x0125, 0x0124 },
+ { 0x0127, 0x0126 },
+ { 0x0129, 0x0128 },
+ { 0x012B, 0x012A },
+ { 0x012D, 0x012C },
+ { 0x012F, 0x012E },
+ { 0x0131, 0x0049 },
+ { 0x0133, 0x0132 },
+ { 0x0135, 0x0134 },
+ { 0x0137, 0x0136 },
+ { 0x013A, 0x0139 },
+ { 0x013C, 0x013B },
+ { 0x013E, 0x013D },
+ { 0x0140, 0x013F },
+ { 0x0142, 0x0141 },
+ { 0x0144, 0x0143 },
+ { 0x0146, 0x0145 },
+ { 0x0148, 0x0147 },
+ { 0x014B, 0x014A },
+ { 0x014D, 0x014C },
+ { 0x014F, 0x014E },
+ { 0x0151, 0x0150 },
+ { 0x0153, 0x0152 },
+ { 0x0155, 0x0154 },
+ { 0x0157, 0x0156 },
+ { 0x0159, 0x0158 },
+ { 0x015B, 0x015A },
+ { 0x015D, 0x015C },
+ { 0x015F, 0x015E },
+ { 0x0161, 0x0160 },
+ { 0x0163, 0x0162 },
+ { 0x0165, 0x0164 },
+ { 0x0167, 0x0166 },
+ { 0x0169, 0x0168 },
+ { 0x016B, 0x016A },
+ { 0x016D, 0x016C },
+ { 0x016F, 0x016E },
+ { 0x0171, 0x0170 },
+ { 0x0173, 0x0172 },
+ { 0x0175, 0x0174 },
+ { 0x0177, 0x0176 },
+ { 0x017A, 0x0179 },
+ { 0x017C, 0x017B },
+ { 0x017E, 0x017D },
+ { 0x017F, 0x0053 },
+ { 0x0180, 0x0243 },
+ { 0x0183, 0x0182 },
+ { 0x0185, 0x0184 },
+ { 0x0188, 0x0187 },
+ { 0x018C, 0x018B },
+ { 0x0192, 0x0191 },
+ { 0x0195, 0x01F6 },
+ { 0x0199, 0x0198 },
+ { 0x019A, 0x023D },
+ { 0x019E, 0x0220 },
+ { 0x01A1, 0x01A0 },
+ { 0x01A3, 0x01A2 },
+ { 0x01A5, 0x01A4 },
+ { 0x01A8, 0x01A7 },
+ { 0x01AD, 0x01AC },
+ { 0x01B0, 0x01AF },
+ { 0x01B4, 0x01B3 },
+ { 0x01B6, 0x01B5 },
+ { 0x01B9, 0x01B8 },
+ { 0x01BD, 0x01BC },
+ { 0x01BF, 0x01F7 },
+ { 0x01C4, 0x01C5 },
+ { 0x01C6, 0x01C5 },
+ { 0x01C7, 0x01C8 },
+ { 0x01C9, 0x01C8 },
+ { 0x01CA, 0x01CB },
+ { 0x01CC, 0x01CB },
+ { 0x01CE, 0x01CD },
+ { 0x01D0, 0x01CF },
+ { 0x01D2, 0x01D1 },
+ { 0x01D4, 0x01D3 },
+ { 0x01D6, 0x01D5 },
+ { 0x01D8, 0x01D7 },
+ { 0x01DA, 0x01D9 },
+ { 0x01DC, 0x01DB },
+ { 0x01DD, 0x018E },
+ { 0x01DF, 0x01DE },
+ { 0x01E1, 0x01E0 },
+ { 0x01E3, 0x01E2 },
+ { 0x01E5, 0x01E4 },
+ { 0x01E7, 0x01E6 },
+ { 0x01E9, 0x01E8 },
+ { 0x01EB, 0x01EA },
+ { 0x01ED, 0x01EC },
+ { 0x01EF, 0x01EE },
+ { 0x01F1, 0x01F2 },
+ { 0x01F3, 0x01F2 },
+ { 0x01F5, 0x01F4 },
+ { 0x01F9, 0x01F8 },
+ { 0x01FB, 0x01FA },
+ { 0x01FD, 0x01FC },
+ { 0x01FF, 0x01FE },
+ { 0x0201, 0x0200 },
+ { 0x0203, 0x0202 },
+ { 0x0205, 0x0204 },
+ { 0x0207, 0x0206 },
+ { 0x0209, 0x0208 },
+ { 0x020B, 0x020A },
+ { 0x020D, 0x020C },
+ { 0x020F, 0x020E },
+ { 0x0211, 0x0210 },
+ { 0x0213, 0x0212 },
+ { 0x0215, 0x0214 },
+ { 0x0217, 0x0216 },
+ { 0x0219, 0x0218 },
+ { 0x021B, 0x021A },
+ { 0x021D, 0x021C },
+ { 0x021F, 0x021E },
+ { 0x0223, 0x0222 },
+ { 0x0225, 0x0224 },
+ { 0x0227, 0x0226 },
+ { 0x0229, 0x0228 },
+ { 0x022B, 0x022A },
+ { 0x022D, 0x022C },
+ { 0x022F, 0x022E },
+ { 0x0231, 0x0230 },
+ { 0x0233, 0x0232 },
+ { 0x023C, 0x023B },
+ { 0x0242, 0x0241 },
+ { 0x0247, 0x0246 },
+ { 0x0249, 0x0248 },
+ { 0x024B, 0x024A },
+ { 0x024D, 0x024C },
+ { 0x024F, 0x024E },
+ { 0x0250, 0x2C6F },
+ { 0x0251, 0x2C6D },
+ { 0x0253, 0x0181 },
+ { 0x0254, 0x0186 },
+ { 0x0256, 0x0189 },
+ { 0x0257, 0x018A },
+ { 0x0259, 0x018F },
+ { 0x025B, 0x0190 },
+ { 0x0260, 0x0193 },
+ { 0x0263, 0x0194 },
+ { 0x0268, 0x0197 },
+ { 0x0269, 0x0196 },
+ { 0x026B, 0x2C62 },
+ { 0x026F, 0x019C },
+ { 0x0271, 0x2C6E },
+ { 0x0272, 0x019D },
+ { 0x0275, 0x019F },
+ { 0x027D, 0x2C64 },
+ { 0x0280, 0x01A6 },
+ { 0x0283, 0x01A9 },
+ { 0x0288, 0x01AE },
+ { 0x0289, 0x0244 },
+ { 0x028A, 0x01B1 },
+ { 0x028B, 0x01B2 },
+ { 0x028C, 0x0245 },
+ { 0x0292, 0x01B7 },
+ { 0x0345, 0x0399 },
+ { 0x0371, 0x0370 },
+ { 0x0373, 0x0372 },
+ { 0x0377, 0x0376 },
+ { 0x037B, 0x03FD },
+ { 0x037C, 0x03FE },
+ { 0x037D, 0x03FF },
+ { 0x03AC, 0x0386 },
+ { 0x03AD, 0x0388 },
+ { 0x03AE, 0x0389 },
+ { 0x03AF, 0x038A },
+ { 0x03B1, 0x0391 },
+ { 0x03B2, 0x0392 },
+ { 0x03B3, 0x0393 },
+ { 0x03B4, 0x0394 },
+ { 0x03B5, 0x0395 },
+ { 0x03B6, 0x0396 },
+ { 0x03B7, 0x0397 },
+ { 0x03B8, 0x0398 },
+ { 0x03B9, 0x0399 },
+ { 0x03BA, 0x039A },
+ { 0x03BB, 0x039B },
+ { 0x03BC, 0x039C },
+ { 0x03BD, 0x039D },
+ { 0x03BE, 0x039E },
+ { 0x03BF, 0x039F },
+ { 0x03C0, 0x03A0 },
+ { 0x03C1, 0x03A1 },
+ { 0x03C2, 0x03A3 },
+ { 0x03C3, 0x03A3 },
+ { 0x03C4, 0x03A4 },
+ { 0x03C5, 0x03A5 },
+ { 0x03C6, 0x03A6 },
+ { 0x03C7, 0x03A7 },
+ { 0x03C8, 0x03A8 },
+ { 0x03C9, 0x03A9 },
+ { 0x03CA, 0x03AA },
+ { 0x03CB, 0x03AB },
+ { 0x03CC, 0x038C },
+ { 0x03CD, 0x038E },
+ { 0x03CE, 0x038F },
+ { 0x03D0, 0x0392 },
+ { 0x03D1, 0x0398 },
+ { 0x03D5, 0x03A6 },
+ { 0x03D6, 0x03A0 },
+ { 0x03D7, 0x03CF },
+ { 0x03D9, 0x03D8 },
+ { 0x03DB, 0x03DA },
+ { 0x03DD, 0x03DC },
+ { 0x03DF, 0x03DE },
+ { 0x03E1, 0x03E0 },
+ { 0x03E3, 0x03E2 },
+ { 0x03E5, 0x03E4 },
+ { 0x03E7, 0x03E6 },
+ { 0x03E9, 0x03E8 },
+ { 0x03EB, 0x03EA },
+ { 0x03ED, 0x03EC },
+ { 0x03EF, 0x03EE },
+ { 0x03F0, 0x039A },
+ { 0x03F1, 0x03A1 },
+ { 0x03F2, 0x03F9 },
+ { 0x03F5, 0x0395 },
+ { 0x03F8, 0x03F7 },
+ { 0x03FB, 0x03FA },
+ { 0x0430, 0x0410 },
+ { 0x0431, 0x0411 },
+ { 0x0432, 0x0412 },
+ { 0x0433, 0x0413 },
+ { 0x0434, 0x0414 },
+ { 0x0435, 0x0415 },
+ { 0x0436, 0x0416 },
+ { 0x0437, 0x0417 },
+ { 0x0438, 0x0418 },
+ { 0x0439, 0x0419 },
+ { 0x043A, 0x041A },
+ { 0x043B, 0x041B },
+ { 0x043C, 0x041C },
+ { 0x043D, 0x041D },
+ { 0x043E, 0x041E },
+ { 0x043F, 0x041F },
+ { 0x0440, 0x0420 },
+ { 0x0441, 0x0421 },
+ { 0x0442, 0x0422 },
+ { 0x0443, 0x0423 },
+ { 0x0444, 0x0424 },
+ { 0x0445, 0x0425 },
+ { 0x0446, 0x0426 },
+ { 0x0447, 0x0427 },
+ { 0x0448, 0x0428 },
+ { 0x0449, 0x0429 },
+ { 0x044A, 0x042A },
+ { 0x044B, 0x042B },
+ { 0x044C, 0x042C },
+ { 0x044D, 0x042D },
+ { 0x044E, 0x042E },
+ { 0x044F, 0x042F },
+ { 0x0450, 0x0400 },
+ { 0x0451, 0x0401 },
+ { 0x0452, 0x0402 },
+ { 0x0453, 0x0403 },
+ { 0x0454, 0x0404 },
+ { 0x0455, 0x0405 },
+ { 0x0456, 0x0406 },
+ { 0x0457, 0x0407 },
+ { 0x0458, 0x0408 },
+ { 0x0459, 0x0409 },
+ { 0x045A, 0x040A },
+ { 0x045B, 0x040B },
+ { 0x045C, 0x040C },
+ { 0x045D, 0x040D },
+ { 0x045E, 0x040E },
+ { 0x045F, 0x040F },
+ { 0x0461, 0x0460 },
+ { 0x0463, 0x0462 },
+ { 0x0465, 0x0464 },
+ { 0x0467, 0x0466 },
+ { 0x0469, 0x0468 },
+ { 0x046B, 0x046A },
+ { 0x046D, 0x046C },
+ { 0x046F, 0x046E },
+ { 0x0471, 0x0470 },
+ { 0x0473, 0x0472 },
+ { 0x0475, 0x0474 },
+ { 0x0477, 0x0476 },
+ { 0x0479, 0x0478 },
+ { 0x047B, 0x047A },
+ { 0x047D, 0x047C },
+ { 0x047F, 0x047E },
+ { 0x0481, 0x0480 },
+ { 0x048B, 0x048A },
+ { 0x048D, 0x048C },
+ { 0x048F, 0x048E },
+ { 0x0491, 0x0490 },
+ { 0x0493, 0x0492 },
+ { 0x0495, 0x0494 },
+ { 0x0497, 0x0496 },
+ { 0x0499, 0x0498 },
+ { 0x049B, 0x049A },
+ { 0x049D, 0x049C },
+ { 0x049F, 0x049E },
+ { 0x04A1, 0x04A0 },
+ { 0x04A3, 0x04A2 },
+ { 0x04A5, 0x04A4 },
+ { 0x04A7, 0x04A6 },
+ { 0x04A9, 0x04A8 },
+ { 0x04AB, 0x04AA },
+ { 0x04AD, 0x04AC },
+ { 0x04AF, 0x04AE },
+ { 0x04B1, 0x04B0 },
+ { 0x04B3, 0x04B2 },
+ { 0x04B5, 0x04B4 },
+ { 0x04B7, 0x04B6 },
+ { 0x04B9, 0x04B8 },
+ { 0x04BB, 0x04BA },
+ { 0x04BD, 0x04BC },
+ { 0x04BF, 0x04BE },
+ { 0x04C2, 0x04C1 },
+ { 0x04C4, 0x04C3 },
+ { 0x04C6, 0x04C5 },
+ { 0x04C8, 0x04C7 },
+ { 0x04CA, 0x04C9 },
+ { 0x04CC, 0x04CB },
+ { 0x04CE, 0x04CD },
+ { 0x04CF, 0x04C0 },
+ { 0x04D1, 0x04D0 },
+ { 0x04D3, 0x04D2 },
+ { 0x04D5, 0x04D4 },
+ { 0x04D7, 0x04D6 },
+ { 0x04D9, 0x04D8 },
+ { 0x04DB, 0x04DA },
+ { 0x04DD, 0x04DC },
+ { 0x04DF, 0x04DE },
+ { 0x04E1, 0x04E0 },
+ { 0x04E3, 0x04E2 },
+ { 0x04E5, 0x04E4 },
+ { 0x04E7, 0x04E6 },
+ { 0x04E9, 0x04E8 },
+ { 0x04EB, 0x04EA },
+ { 0x04ED, 0x04EC },
+ { 0x04EF, 0x04EE },
+ { 0x04F1, 0x04F0 },
+ { 0x04F3, 0x04F2 },
+ { 0x04F5, 0x04F4 },
+ { 0x04F7, 0x04F6 },
+ { 0x04F9, 0x04F8 },
+ { 0x04FB, 0x04FA },
+ { 0x04FD, 0x04FC },
+ { 0x04FF, 0x04FE },
+ { 0x0501, 0x0500 },
+ { 0x0503, 0x0502 },
+ { 0x0505, 0x0504 },
+ { 0x0507, 0x0506 },
+ { 0x0509, 0x0508 },
+ { 0x050B, 0x050A },
+ { 0x050D, 0x050C },
+ { 0x050F, 0x050E },
+ { 0x0511, 0x0510 },
+ { 0x0513, 0x0512 },
+ { 0x0515, 0x0514 },
+ { 0x0517, 0x0516 },
+ { 0x0519, 0x0518 },
+ { 0x051B, 0x051A },
+ { 0x051D, 0x051C },
+ { 0x051F, 0x051E },
+ { 0x0521, 0x0520 },
+ { 0x0523, 0x0522 },
+ { 0x0561, 0x0531 },
+ { 0x0562, 0x0532 },
+ { 0x0563, 0x0533 },
+ { 0x0564, 0x0534 },
+ { 0x0565, 0x0535 },
+ { 0x0566, 0x0536 },
+ { 0x0567, 0x0537 },
+ { 0x0568, 0x0538 },
+ { 0x0569, 0x0539 },
+ { 0x056A, 0x053A },
+ { 0x056B, 0x053B },
+ { 0x056C, 0x053C },
+ { 0x056D, 0x053D },
+ { 0x056E, 0x053E },
+ { 0x056F, 0x053F },
+ { 0x0570, 0x0540 },
+ { 0x0571, 0x0541 },
+ { 0x0572, 0x0542 },
+ { 0x0573, 0x0543 },
+ { 0x0574, 0x0544 },
+ { 0x0575, 0x0545 },
+ { 0x0576, 0x0546 },
+ { 0x0577, 0x0547 },
+ { 0x0578, 0x0548 },
+ { 0x0579, 0x0549 },
+ { 0x057A, 0x054A },
+ { 0x057B, 0x054B },
+ { 0x057C, 0x054C },
+ { 0x057D, 0x054D },
+ { 0x057E, 0x054E },
+ { 0x057F, 0x054F },
+ { 0x0580, 0x0550 },
+ { 0x0581, 0x0551 },
+ { 0x0582, 0x0552 },
+ { 0x0583, 0x0553 },
+ { 0x0584, 0x0554 },
+ { 0x0585, 0x0555 },
+ { 0x0586, 0x0556 },
+ { 0x1D79, 0xA77D },
+ { 0x1D7D, 0x2C63 },
+ { 0x1E01, 0x1E00 },
+ { 0x1E03, 0x1E02 },
+ { 0x1E05, 0x1E04 },
+ { 0x1E07, 0x1E06 },
+ { 0x1E09, 0x1E08 },
+ { 0x1E0B, 0x1E0A },
+ { 0x1E0D, 0x1E0C },
+ { 0x1E0F, 0x1E0E },
+ { 0x1E11, 0x1E10 },
+ { 0x1E13, 0x1E12 },
+ { 0x1E15, 0x1E14 },
+ { 0x1E17, 0x1E16 },
+ { 0x1E19, 0x1E18 },
+ { 0x1E1B, 0x1E1A },
+ { 0x1E1D, 0x1E1C },
+ { 0x1E1F, 0x1E1E },
+ { 0x1E21, 0x1E20 },
+ { 0x1E23, 0x1E22 },
+ { 0x1E25, 0x1E24 },
+ { 0x1E27, 0x1E26 },
+ { 0x1E29, 0x1E28 },
+ { 0x1E2B, 0x1E2A },
+ { 0x1E2D, 0x1E2C },
+ { 0x1E2F, 0x1E2E },
+ { 0x1E31, 0x1E30 },
+ { 0x1E33, 0x1E32 },
+ { 0x1E35, 0x1E34 },
+ { 0x1E37, 0x1E36 },
+ { 0x1E39, 0x1E38 },
+ { 0x1E3B, 0x1E3A },
+ { 0x1E3D, 0x1E3C },
+ { 0x1E3F, 0x1E3E },
+ { 0x1E41, 0x1E40 },
+ { 0x1E43, 0x1E42 },
+ { 0x1E45, 0x1E44 },
+ { 0x1E47, 0x1E46 },
+ { 0x1E49, 0x1E48 },
+ { 0x1E4B, 0x1E4A },
+ { 0x1E4D, 0x1E4C },
+ { 0x1E4F, 0x1E4E },
+ { 0x1E51, 0x1E50 },
+ { 0x1E53, 0x1E52 },
+ { 0x1E55, 0x1E54 },
+ { 0x1E57, 0x1E56 },
+ { 0x1E59, 0x1E58 },
+ { 0x1E5B, 0x1E5A },
+ { 0x1E5D, 0x1E5C },
+ { 0x1E5F, 0x1E5E },
+ { 0x1E61, 0x1E60 },
+ { 0x1E63, 0x1E62 },
+ { 0x1E65, 0x1E64 },
+ { 0x1E67, 0x1E66 },
+ { 0x1E69, 0x1E68 },
+ { 0x1E6B, 0x1E6A },
+ { 0x1E6D, 0x1E6C },
+ { 0x1E6F, 0x1E6E },
+ { 0x1E71, 0x1E70 },
+ { 0x1E73, 0x1E72 },
+ { 0x1E75, 0x1E74 },
+ { 0x1E77, 0x1E76 },
+ { 0x1E79, 0x1E78 },
+ { 0x1E7B, 0x1E7A },
+ { 0x1E7D, 0x1E7C },
+ { 0x1E7F, 0x1E7E },
+ { 0x1E81, 0x1E80 },
+ { 0x1E83, 0x1E82 },
+ { 0x1E85, 0x1E84 },
+ { 0x1E87, 0x1E86 },
+ { 0x1E89, 0x1E88 },
+ { 0x1E8B, 0x1E8A },
+ { 0x1E8D, 0x1E8C },
+ { 0x1E8F, 0x1E8E },
+ { 0x1E91, 0x1E90 },
+ { 0x1E93, 0x1E92 },
+ { 0x1E95, 0x1E94 },
+ { 0x1E9B, 0x1E60 },
+ { 0x1EA1, 0x1EA0 },
+ { 0x1EA3, 0x1EA2 },
+ { 0x1EA5, 0x1EA4 },
+ { 0x1EA7, 0x1EA6 },
+ { 0x1EA9, 0x1EA8 },
+ { 0x1EAB, 0x1EAA },
+ { 0x1EAD, 0x1EAC },
+ { 0x1EAF, 0x1EAE },
+ { 0x1EB1, 0x1EB0 },
+ { 0x1EB3, 0x1EB2 },
+ { 0x1EB5, 0x1EB4 },
+ { 0x1EB7, 0x1EB6 },
+ { 0x1EB9, 0x1EB8 },
+ { 0x1EBB, 0x1EBA },
+ { 0x1EBD, 0x1EBC },
+ { 0x1EBF, 0x1EBE },
+ { 0x1EC1, 0x1EC0 },
+ { 0x1EC3, 0x1EC2 },
+ { 0x1EC5, 0x1EC4 },
+ { 0x1EC7, 0x1EC6 },
+ { 0x1EC9, 0x1EC8 },
+ { 0x1ECB, 0x1ECA },
+ { 0x1ECD, 0x1ECC },
+ { 0x1ECF, 0x1ECE },
+ { 0x1ED1, 0x1ED0 },
+ { 0x1ED3, 0x1ED2 },
+ { 0x1ED5, 0x1ED4 },
+ { 0x1ED7, 0x1ED6 },
+ { 0x1ED9, 0x1ED8 },
+ { 0x1EDB, 0x1EDA },
+ { 0x1EDD, 0x1EDC },
+ { 0x1EDF, 0x1EDE },
+ { 0x1EE1, 0x1EE0 },
+ { 0x1EE3, 0x1EE2 },
+ { 0x1EE5, 0x1EE4 },
+ { 0x1EE7, 0x1EE6 },
+ { 0x1EE9, 0x1EE8 },
+ { 0x1EEB, 0x1EEA },
+ { 0x1EED, 0x1EEC },
+ { 0x1EEF, 0x1EEE },
+ { 0x1EF1, 0x1EF0 },
+ { 0x1EF3, 0x1EF2 },
+ { 0x1EF5, 0x1EF4 },
+ { 0x1EF7, 0x1EF6 },
+ { 0x1EF9, 0x1EF8 },
+ { 0x1EFB, 0x1EFA },
+ { 0x1EFD, 0x1EFC },
+ { 0x1EFF, 0x1EFE },
+ { 0x1F00, 0x1F08 },
+ { 0x1F01, 0x1F09 },
+ { 0x1F02, 0x1F0A },
+ { 0x1F03, 0x1F0B },
+ { 0x1F04, 0x1F0C },
+ { 0x1F05, 0x1F0D },
+ { 0x1F06, 0x1F0E },
+ { 0x1F07, 0x1F0F },
+ { 0x1F10, 0x1F18 },
+ { 0x1F11, 0x1F19 },
+ { 0x1F12, 0x1F1A },
+ { 0x1F13, 0x1F1B },
+ { 0x1F14, 0x1F1C },
+ { 0x1F15, 0x1F1D },
+ { 0x1F20, 0x1F28 },
+ { 0x1F21, 0x1F29 },
+ { 0x1F22, 0x1F2A },
+ { 0x1F23, 0x1F2B },
+ { 0x1F24, 0x1F2C },
+ { 0x1F25, 0x1F2D },
+ { 0x1F26, 0x1F2E },
+ { 0x1F27, 0x1F2F },
+ { 0x1F30, 0x1F38 },
+ { 0x1F31, 0x1F39 },
+ { 0x1F32, 0x1F3A },
+ { 0x1F33, 0x1F3B },
+ { 0x1F34, 0x1F3C },
+ { 0x1F35, 0x1F3D },
+ { 0x1F36, 0x1F3E },
+ { 0x1F37, 0x1F3F },
+ { 0x1F40, 0x1F48 },
+ { 0x1F41, 0x1F49 },
+ { 0x1F42, 0x1F4A },
+ { 0x1F43, 0x1F4B },
+ { 0x1F44, 0x1F4C },
+ { 0x1F45, 0x1F4D },
+ { 0x1F51, 0x1F59 },
+ { 0x1F53, 0x1F5B },
+ { 0x1F55, 0x1F5D },
+ { 0x1F57, 0x1F5F },
+ { 0x1F60, 0x1F68 },
+ { 0x1F61, 0x1F69 },
+ { 0x1F62, 0x1F6A },
+ { 0x1F63, 0x1F6B },
+ { 0x1F64, 0x1F6C },
+ { 0x1F65, 0x1F6D },
+ { 0x1F66, 0x1F6E },
+ { 0x1F67, 0x1F6F },
+ { 0x1F70, 0x1FBA },
+ { 0x1F71, 0x1FBB },
+ { 0x1F72, 0x1FC8 },
+ { 0x1F73, 0x1FC9 },
+ { 0x1F74, 0x1FCA },
+ { 0x1F75, 0x1FCB },
+ { 0x1F76, 0x1FDA },
+ { 0x1F77, 0x1FDB },
+ { 0x1F78, 0x1FF8 },
+ { 0x1F79, 0x1FF9 },
+ { 0x1F7A, 0x1FEA },
+ { 0x1F7B, 0x1FEB },
+ { 0x1F7C, 0x1FFA },
+ { 0x1F7D, 0x1FFB },
+ { 0x1F80, 0x1F88 },
+ { 0x1F81, 0x1F89 },
+ { 0x1F82, 0x1F8A },
+ { 0x1F83, 0x1F8B },
+ { 0x1F84, 0x1F8C },
+ { 0x1F85, 0x1F8D },
+ { 0x1F86, 0x1F8E },
+ { 0x1F87, 0x1F8F },
+ { 0x1F90, 0x1F98 },
+ { 0x1F91, 0x1F99 },
+ { 0x1F92, 0x1F9A },
+ { 0x1F93, 0x1F9B },
+ { 0x1F94, 0x1F9C },
+ { 0x1F95, 0x1F9D },
+ { 0x1F96, 0x1F9E },
+ { 0x1F97, 0x1F9F },
+ { 0x1FA0, 0x1FA8 },
+ { 0x1FA1, 0x1FA9 },
+ { 0x1FA2, 0x1FAA },
+ { 0x1FA3, 0x1FAB },
+ { 0x1FA4, 0x1FAC },
+ { 0x1FA5, 0x1FAD },
+ { 0x1FA6, 0x1FAE },
+ { 0x1FA7, 0x1FAF },
+ { 0x1FB0, 0x1FB8 },
+ { 0x1FB1, 0x1FB9 },
+ { 0x1FB3, 0x1FBC },
+ { 0x1FBE, 0x0399 },
+ { 0x1FC3, 0x1FCC },
+ { 0x1FD0, 0x1FD8 },
+ { 0x1FD1, 0x1FD9 },
+ { 0x1FE0, 0x1FE8 },
+ { 0x1FE1, 0x1FE9 },
+ { 0x1FE5, 0x1FEC },
+ { 0x1FF3, 0x1FFC },
+ { 0x214E, 0x2132 },
+ { 0x2170, 0x2160 },
+ { 0x2171, 0x2161 },
+ { 0x2172, 0x2162 },
+ { 0x2173, 0x2163 },
+ { 0x2174, 0x2164 },
+ { 0x2175, 0x2165 },
+ { 0x2176, 0x2166 },
+ { 0x2177, 0x2167 },
+ { 0x2178, 0x2168 },
+ { 0x2179, 0x2169 },
+ { 0x217A, 0x216A },
+ { 0x217B, 0x216B },
+ { 0x217C, 0x216C },
+ { 0x217D, 0x216D },
+ { 0x217E, 0x216E },
+ { 0x217F, 0x216F },
+ { 0x2184, 0x2183 },
+ { 0x24D0, 0x24B6 },
+ { 0x24D1, 0x24B7 },
+ { 0x24D2, 0x24B8 },
+ { 0x24D3, 0x24B9 },
+ { 0x24D4, 0x24BA },
+ { 0x24D5, 0x24BB },
+ { 0x24D6, 0x24BC },
+ { 0x24D7, 0x24BD },
+ { 0x24D8, 0x24BE },
+ { 0x24D9, 0x24BF },
+ { 0x24DA, 0x24C0 },
+ { 0x24DB, 0x24C1 },
+ { 0x24DC, 0x24C2 },
+ { 0x24DD, 0x24C3 },
+ { 0x24DE, 0x24C4 },
+ { 0x24DF, 0x24C5 },
+ { 0x24E0, 0x24C6 },
+ { 0x24E1, 0x24C7 },
+ { 0x24E2, 0x24C8 },
+ { 0x24E3, 0x24C9 },
+ { 0x24E4, 0x24CA },
+ { 0x24E5, 0x24CB },
+ { 0x24E6, 0x24CC },
+ { 0x24E7, 0x24CD },
+ { 0x24E8, 0x24CE },
+ { 0x24E9, 0x24CF },
+ { 0x2C30, 0x2C00 },
+ { 0x2C31, 0x2C01 },
+ { 0x2C32, 0x2C02 },
+ { 0x2C33, 0x2C03 },
+ { 0x2C34, 0x2C04 },
+ { 0x2C35, 0x2C05 },
+ { 0x2C36, 0x2C06 },
+ { 0x2C37, 0x2C07 },
+ { 0x2C38, 0x2C08 },
+ { 0x2C39, 0x2C09 },
+ { 0x2C3A, 0x2C0A },
+ { 0x2C3B, 0x2C0B },
+ { 0x2C3C, 0x2C0C },
+ { 0x2C3D, 0x2C0D },
+ { 0x2C3E, 0x2C0E },
+ { 0x2C3F, 0x2C0F },
+ { 0x2C40, 0x2C10 },
+ { 0x2C41, 0x2C11 },
+ { 0x2C42, 0x2C12 },
+ { 0x2C43, 0x2C13 },
+ { 0x2C44, 0x2C14 },
+ { 0x2C45, 0x2C15 },
+ { 0x2C46, 0x2C16 },
+ { 0x2C47, 0x2C17 },
+ { 0x2C48, 0x2C18 },
+ { 0x2C49, 0x2C19 },
+ { 0x2C4A, 0x2C1A },
+ { 0x2C4B, 0x2C1B },
+ { 0x2C4C, 0x2C1C },
+ { 0x2C4D, 0x2C1D },
+ { 0x2C4E, 0x2C1E },
+ { 0x2C4F, 0x2C1F },
+ { 0x2C50, 0x2C20 },
+ { 0x2C51, 0x2C21 },
+ { 0x2C52, 0x2C22 },
+ { 0x2C53, 0x2C23 },
+ { 0x2C54, 0x2C24 },
+ { 0x2C55, 0x2C25 },
+ { 0x2C56, 0x2C26 },
+ { 0x2C57, 0x2C27 },
+ { 0x2C58, 0x2C28 },
+ { 0x2C59, 0x2C29 },
+ { 0x2C5A, 0x2C2A },
+ { 0x2C5B, 0x2C2B },
+ { 0x2C5C, 0x2C2C },
+ { 0x2C5D, 0x2C2D },
+ { 0x2C5E, 0x2C2E },
+ { 0x2C61, 0x2C60 },
+ { 0x2C65, 0x023A },
+ { 0x2C66, 0x023E },
+ { 0x2C68, 0x2C67 },
+ { 0x2C6A, 0x2C69 },
+ { 0x2C6C, 0x2C6B },
+ { 0x2C73, 0x2C72 },
+ { 0x2C76, 0x2C75 },
+ { 0x2C81, 0x2C80 },
+ { 0x2C83, 0x2C82 },
+ { 0x2C85, 0x2C84 },
+ { 0x2C87, 0x2C86 },
+ { 0x2C89, 0x2C88 },
+ { 0x2C8B, 0x2C8A },
+ { 0x2C8D, 0x2C8C },
+ { 0x2C8F, 0x2C8E },
+ { 0x2C91, 0x2C90 },
+ { 0x2C93, 0x2C92 },
+ { 0x2C95, 0x2C94 },
+ { 0x2C97, 0x2C96 },
+ { 0x2C99, 0x2C98 },
+ { 0x2C9B, 0x2C9A },
+ { 0x2C9D, 0x2C9C },
+ { 0x2C9F, 0x2C9E },
+ { 0x2CA1, 0x2CA0 },
+ { 0x2CA3, 0x2CA2 },
+ { 0x2CA5, 0x2CA4 },
+ { 0x2CA7, 0x2CA6 },
+ { 0x2CA9, 0x2CA8 },
+ { 0x2CAB, 0x2CAA },
+ { 0x2CAD, 0x2CAC },
+ { 0x2CAF, 0x2CAE },
+ { 0x2CB1, 0x2CB0 },
+ { 0x2CB3, 0x2CB2 },
+ { 0x2CB5, 0x2CB4 },
+ { 0x2CB7, 0x2CB6 },
+ { 0x2CB9, 0x2CB8 },
+ { 0x2CBB, 0x2CBA },
+ { 0x2CBD, 0x2CBC },
+ { 0x2CBF, 0x2CBE },
+ { 0x2CC1, 0x2CC0 },
+ { 0x2CC3, 0x2CC2 },
+ { 0x2CC5, 0x2CC4 },
+ { 0x2CC7, 0x2CC6 },
+ { 0x2CC9, 0x2CC8 },
+ { 0x2CCB, 0x2CCA },
+ { 0x2CCD, 0x2CCC },
+ { 0x2CCF, 0x2CCE },
+ { 0x2CD1, 0x2CD0 },
+ { 0x2CD3, 0x2CD2 },
+ { 0x2CD5, 0x2CD4 },
+ { 0x2CD7, 0x2CD6 },
+ { 0x2CD9, 0x2CD8 },
+ { 0x2CDB, 0x2CDA },
+ { 0x2CDD, 0x2CDC },
+ { 0x2CDF, 0x2CDE },
+ { 0x2CE1, 0x2CE0 },
+ { 0x2CE3, 0x2CE2 },
+ { 0x2D00, 0x10A0 },
+ { 0x2D01, 0x10A1 },
+ { 0x2D02, 0x10A2 },
+ { 0x2D03, 0x10A3 },
+ { 0x2D04, 0x10A4 },
+ { 0x2D05, 0x10A5 },
+ { 0x2D06, 0x10A6 },
+ { 0x2D07, 0x10A7 },
+ { 0x2D08, 0x10A8 },
+ { 0x2D09, 0x10A9 },
+ { 0x2D0A, 0x10AA },
+ { 0x2D0B, 0x10AB },
+ { 0x2D0C, 0x10AC },
+ { 0x2D0D, 0x10AD },
+ { 0x2D0E, 0x10AE },
+ { 0x2D0F, 0x10AF },
+ { 0x2D10, 0x10B0 },
+ { 0x2D11, 0x10B1 },
+ { 0x2D12, 0x10B2 },
+ { 0x2D13, 0x10B3 },
+ { 0x2D14, 0x10B4 },
+ { 0x2D15, 0x10B5 },
+ { 0x2D16, 0x10B6 },
+ { 0x2D17, 0x10B7 },
+ { 0x2D18, 0x10B8 },
+ { 0x2D19, 0x10B9 },
+ { 0x2D1A, 0x10BA },
+ { 0x2D1B, 0x10BB },
+ { 0x2D1C, 0x10BC },
+ { 0x2D1D, 0x10BD },
+ { 0x2D1E, 0x10BE },
+ { 0x2D1F, 0x10BF },
+ { 0x2D20, 0x10C0 },
+ { 0x2D21, 0x10C1 },
+ { 0x2D22, 0x10C2 },
+ { 0x2D23, 0x10C3 },
+ { 0x2D24, 0x10C4 },
+ { 0x2D25, 0x10C5 },
+ { 0xA641, 0xA640 },
+ { 0xA643, 0xA642 },
+ { 0xA645, 0xA644 },
+ { 0xA647, 0xA646 },
+ { 0xA649, 0xA648 },
+ { 0xA64B, 0xA64A },
+ { 0xA64D, 0xA64C },
+ { 0xA64F, 0xA64E },
+ { 0xA651, 0xA650 },
+ { 0xA653, 0xA652 },
+ { 0xA655, 0xA654 },
+ { 0xA657, 0xA656 },
+ { 0xA659, 0xA658 },
+ { 0xA65B, 0xA65A },
+ { 0xA65D, 0xA65C },
+ { 0xA65F, 0xA65E },
+ { 0xA663, 0xA662 },
+ { 0xA665, 0xA664 },
+ { 0xA667, 0xA666 },
+ { 0xA669, 0xA668 },
+ { 0xA66B, 0xA66A },
+ { 0xA66D, 0xA66C },
+ { 0xA681, 0xA680 },
+ { 0xA683, 0xA682 },
+ { 0xA685, 0xA684 },
+ { 0xA687, 0xA686 },
+ { 0xA689, 0xA688 },
+ { 0xA68B, 0xA68A },
+ { 0xA68D, 0xA68C },
+ { 0xA68F, 0xA68E },
+ { 0xA691, 0xA690 },
+ { 0xA693, 0xA692 },
+ { 0xA695, 0xA694 },
+ { 0xA697, 0xA696 },
+ { 0xA723, 0xA722 },
+ { 0xA725, 0xA724 },
+ { 0xA727, 0xA726 },
+ { 0xA729, 0xA728 },
+ { 0xA72B, 0xA72A },
+ { 0xA72D, 0xA72C },
+ { 0xA72F, 0xA72E },
+ { 0xA733, 0xA732 },
+ { 0xA735, 0xA734 },
+ { 0xA737, 0xA736 },
+ { 0xA739, 0xA738 },
+ { 0xA73B, 0xA73A },
+ { 0xA73D, 0xA73C },
+ { 0xA73F, 0xA73E },
+ { 0xA741, 0xA740 },
+ { 0xA743, 0xA742 },
+ { 0xA745, 0xA744 },
+ { 0xA747, 0xA746 },
+ { 0xA749, 0xA748 },
+ { 0xA74B, 0xA74A },
+ { 0xA74D, 0xA74C },
+ { 0xA74F, 0xA74E },
+ { 0xA751, 0xA750 },
+ { 0xA753, 0xA752 },
+ { 0xA755, 0xA754 },
+ { 0xA757, 0xA756 },
+ { 0xA759, 0xA758 },
+ { 0xA75B, 0xA75A },
+ { 0xA75D, 0xA75C },
+ { 0xA75F, 0xA75E },
+ { 0xA761, 0xA760 },
+ { 0xA763, 0xA762 },
+ { 0xA765, 0xA764 },
+ { 0xA767, 0xA766 },
+ { 0xA769, 0xA768 },
+ { 0xA76B, 0xA76A },
+ { 0xA76D, 0xA76C },
+ { 0xA76F, 0xA76E },
+ { 0xA77A, 0xA779 },
+ { 0xA77C, 0xA77B },
+ { 0xA77F, 0xA77E },
+ { 0xA781, 0xA780 },
+ { 0xA783, 0xA782 },
+ { 0xA785, 0xA784 },
+ { 0xA787, 0xA786 },
+ { 0xA78C, 0xA78B },
+ { 0xFF41, 0xFF21 },
+ { 0xFF42, 0xFF22 },
+ { 0xFF43, 0xFF23 },
+ { 0xFF44, 0xFF24 },
+ { 0xFF45, 0xFF25 },
+ { 0xFF46, 0xFF26 },
+ { 0xFF47, 0xFF27 },
+ { 0xFF48, 0xFF28 },
+ { 0xFF49, 0xFF29 },
+ { 0xFF4A, 0xFF2A },
+ { 0xFF4B, 0xFF2B },
+ { 0xFF4C, 0xFF2C },
+ { 0xFF4D, 0xFF2D },
+ { 0xFF4E, 0xFF2E },
+ { 0xFF4F, 0xFF2F },
+ { 0xFF50, 0xFF30 },
+ { 0xFF51, 0xFF31 },
+ { 0xFF52, 0xFF32 },
+ { 0xFF53, 0xFF33 },
+ { 0xFF54, 0xFF34 },
+ { 0xFF55, 0xFF35 },
+ { 0xFF56, 0xFF36 },
+ { 0xFF57, 0xFF37 },
+ { 0xFF58, 0xFF38 },
+ { 0xFF59, 0xFF39 },
+ { 0xFF5A, 0xFF3A },
+ { 0x10428, 0x10400 },
+ { 0x10429, 0x10401 },
+ { 0x1042A, 0x10402 },
+ { 0x1042B, 0x10403 },
+ { 0x1042C, 0x10404 },
+ { 0x1042D, 0x10405 },
+ { 0x1042E, 0x10406 },
+ { 0x1042F, 0x10407 },
+ { 0x10430, 0x10408 },
+ { 0x10431, 0x10409 },
+ { 0x10432, 0x1040A },
+ { 0x10433, 0x1040B },
+ { 0x10434, 0x1040C },
+ { 0x10435, 0x1040D },
+ { 0x10436, 0x1040E },
+ { 0x10437, 0x1040F },
+ { 0x10438, 0x10410 },
+ { 0x10439, 0x10411 },
+ { 0x1043A, 0x10412 },
+ { 0x1043B, 0x10413 },
+ { 0x1043C, 0x10414 },
+ { 0x1043D, 0x10415 },
+ { 0x1043E, 0x10416 },
+ { 0x1043F, 0x10417 },
+ { 0x10440, 0x10418 },
+ { 0x10441, 0x10419 },
+ { 0x10442, 0x1041A },
+ { 0x10443, 0x1041B },
+ { 0x10444, 0x1041C },
+ { 0x10445, 0x1041D },
+ { 0x10446, 0x1041E },
+ { 0x10447, 0x1041F },
+ { 0x10448, 0x10420 },
+ { 0x10449, 0x10421 },
+ { 0x1044A, 0x10422 },
+ { 0x1044B, 0x10423 },
+ { 0x1044C, 0x10424 },
+ { 0x1044D, 0x10425 },
+ { 0x1044E, 0x10426 },
+ { 0x1044F, 0x10427 }
+
+#define MAP(c) uc_totitle (c)
+#include "test-mapping-part2.h"
diff --git a/tests/unicase/test-uc_toupper.c b/tests/unicase/test-uc_toupper.c
new file mode 100644
index 0000000..ed242a0
--- /dev/null
+++ b/tests/unicase/test-uc_toupper.c
@@ -0,0 +1,1055 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character mapping functions.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Generated automatically by gen-case.c for Unicode 5.1.0. */
+
+#include "test-mapping-part1.h"
+
+ { 0x0061, 0x0041 },
+ { 0x0062, 0x0042 },
+ { 0x0063, 0x0043 },
+ { 0x0064, 0x0044 },
+ { 0x0065, 0x0045 },
+ { 0x0066, 0x0046 },
+ { 0x0067, 0x0047 },
+ { 0x0068, 0x0048 },
+ { 0x0069, 0x0049 },
+ { 0x006A, 0x004A },
+ { 0x006B, 0x004B },
+ { 0x006C, 0x004C },
+ { 0x006D, 0x004D },
+ { 0x006E, 0x004E },
+ { 0x006F, 0x004F },
+ { 0x0070, 0x0050 },
+ { 0x0071, 0x0051 },
+ { 0x0072, 0x0052 },
+ { 0x0073, 0x0053 },
+ { 0x0074, 0x0054 },
+ { 0x0075, 0x0055 },
+ { 0x0076, 0x0056 },
+ { 0x0077, 0x0057 },
+ { 0x0078, 0x0058 },
+ { 0x0079, 0x0059 },
+ { 0x007A, 0x005A },
+ { 0x00B5, 0x039C },
+ { 0x00E0, 0x00C0 },
+ { 0x00E1, 0x00C1 },
+ { 0x00E2, 0x00C2 },
+ { 0x00E3, 0x00C3 },
+ { 0x00E4, 0x00C4 },
+ { 0x00E5, 0x00C5 },
+ { 0x00E6, 0x00C6 },
+ { 0x00E7, 0x00C7 },
+ { 0x00E8, 0x00C8 },
+ { 0x00E9, 0x00C9 },
+ { 0x00EA, 0x00CA },
+ { 0x00EB, 0x00CB },
+ { 0x00EC, 0x00CC },
+ { 0x00ED, 0x00CD },
+ { 0x00EE, 0x00CE },
+ { 0x00EF, 0x00CF },
+ { 0x00F0, 0x00D0 },
+ { 0x00F1, 0x00D1 },
+ { 0x00F2, 0x00D2 },
+ { 0x00F3, 0x00D3 },
+ { 0x00F4, 0x00D4 },
+ { 0x00F5, 0x00D5 },
+ { 0x00F6, 0x00D6 },
+ { 0x00F8, 0x00D8 },
+ { 0x00F9, 0x00D9 },
+ { 0x00FA, 0x00DA },
+ { 0x00FB, 0x00DB },
+ { 0x00FC, 0x00DC },
+ { 0x00FD, 0x00DD },
+ { 0x00FE, 0x00DE },
+ { 0x00FF, 0x0178 },
+ { 0x0101, 0x0100 },
+ { 0x0103, 0x0102 },
+ { 0x0105, 0x0104 },
+ { 0x0107, 0x0106 },
+ { 0x0109, 0x0108 },
+ { 0x010B, 0x010A },
+ { 0x010D, 0x010C },
+ { 0x010F, 0x010E },
+ { 0x0111, 0x0110 },
+ { 0x0113, 0x0112 },
+ { 0x0115, 0x0114 },
+ { 0x0117, 0x0116 },
+ { 0x0119, 0x0118 },
+ { 0x011B, 0x011A },
+ { 0x011D, 0x011C },
+ { 0x011F, 0x011E },
+ { 0x0121, 0x0120 },
+ { 0x0123, 0x0122 },
+ { 0x0125, 0x0124 },
+ { 0x0127, 0x0126 },
+ { 0x0129, 0x0128 },
+ { 0x012B, 0x012A },
+ { 0x012D, 0x012C },
+ { 0x012F, 0x012E },
+ { 0x0131, 0x0049 },
+ { 0x0133, 0x0132 },
+ { 0x0135, 0x0134 },
+ { 0x0137, 0x0136 },
+ { 0x013A, 0x0139 },
+ { 0x013C, 0x013B },
+ { 0x013E, 0x013D },
+ { 0x0140, 0x013F },
+ { 0x0142, 0x0141 },
+ { 0x0144, 0x0143 },
+ { 0x0146, 0x0145 },
+ { 0x0148, 0x0147 },
+ { 0x014B, 0x014A },
+ { 0x014D, 0x014C },
+ { 0x014F, 0x014E },
+ { 0x0151, 0x0150 },
+ { 0x0153, 0x0152 },
+ { 0x0155, 0x0154 },
+ { 0x0157, 0x0156 },
+ { 0x0159, 0x0158 },
+ { 0x015B, 0x015A },
+ { 0x015D, 0x015C },
+ { 0x015F, 0x015E },
+ { 0x0161, 0x0160 },
+ { 0x0163, 0x0162 },
+ { 0x0165, 0x0164 },
+ { 0x0167, 0x0166 },
+ { 0x0169, 0x0168 },
+ { 0x016B, 0x016A },
+ { 0x016D, 0x016C },
+ { 0x016F, 0x016E },
+ { 0x0171, 0x0170 },
+ { 0x0173, 0x0172 },
+ { 0x0175, 0x0174 },
+ { 0x0177, 0x0176 },
+ { 0x017A, 0x0179 },
+ { 0x017C, 0x017B },
+ { 0x017E, 0x017D },
+ { 0x017F, 0x0053 },
+ { 0x0180, 0x0243 },
+ { 0x0183, 0x0182 },
+ { 0x0185, 0x0184 },
+ { 0x0188, 0x0187 },
+ { 0x018C, 0x018B },
+ { 0x0192, 0x0191 },
+ { 0x0195, 0x01F6 },
+ { 0x0199, 0x0198 },
+ { 0x019A, 0x023D },
+ { 0x019E, 0x0220 },
+ { 0x01A1, 0x01A0 },
+ { 0x01A3, 0x01A2 },
+ { 0x01A5, 0x01A4 },
+ { 0x01A8, 0x01A7 },
+ { 0x01AD, 0x01AC },
+ { 0x01B0, 0x01AF },
+ { 0x01B4, 0x01B3 },
+ { 0x01B6, 0x01B5 },
+ { 0x01B9, 0x01B8 },
+ { 0x01BD, 0x01BC },
+ { 0x01BF, 0x01F7 },
+ { 0x01C5, 0x01C4 },
+ { 0x01C6, 0x01C4 },
+ { 0x01C8, 0x01C7 },
+ { 0x01C9, 0x01C7 },
+ { 0x01CB, 0x01CA },
+ { 0x01CC, 0x01CA },
+ { 0x01CE, 0x01CD },
+ { 0x01D0, 0x01CF },
+ { 0x01D2, 0x01D1 },
+ { 0x01D4, 0x01D3 },
+ { 0x01D6, 0x01D5 },
+ { 0x01D8, 0x01D7 },
+ { 0x01DA, 0x01D9 },
+ { 0x01DC, 0x01DB },
+ { 0x01DD, 0x018E },
+ { 0x01DF, 0x01DE },
+ { 0x01E1, 0x01E0 },
+ { 0x01E3, 0x01E2 },
+ { 0x01E5, 0x01E4 },
+ { 0x01E7, 0x01E6 },
+ { 0x01E9, 0x01E8 },
+ { 0x01EB, 0x01EA },
+ { 0x01ED, 0x01EC },
+ { 0x01EF, 0x01EE },
+ { 0x01F2, 0x01F1 },
+ { 0x01F3, 0x01F1 },
+ { 0x01F5, 0x01F4 },
+ { 0x01F9, 0x01F8 },
+ { 0x01FB, 0x01FA },
+ { 0x01FD, 0x01FC },
+ { 0x01FF, 0x01FE },
+ { 0x0201, 0x0200 },
+ { 0x0203, 0x0202 },
+ { 0x0205, 0x0204 },
+ { 0x0207, 0x0206 },
+ { 0x0209, 0x0208 },
+ { 0x020B, 0x020A },
+ { 0x020D, 0x020C },
+ { 0x020F, 0x020E },
+ { 0x0211, 0x0210 },
+ { 0x0213, 0x0212 },
+ { 0x0215, 0x0214 },
+ { 0x0217, 0x0216 },
+ { 0x0219, 0x0218 },
+ { 0x021B, 0x021A },
+ { 0x021D, 0x021C },
+ { 0x021F, 0x021E },
+ { 0x0223, 0x0222 },
+ { 0x0225, 0x0224 },
+ { 0x0227, 0x0226 },
+ { 0x0229, 0x0228 },
+ { 0x022B, 0x022A },
+ { 0x022D, 0x022C },
+ { 0x022F, 0x022E },
+ { 0x0231, 0x0230 },
+ { 0x0233, 0x0232 },
+ { 0x023C, 0x023B },
+ { 0x0242, 0x0241 },
+ { 0x0247, 0x0246 },
+ { 0x0249, 0x0248 },
+ { 0x024B, 0x024A },
+ { 0x024D, 0x024C },
+ { 0x024F, 0x024E },
+ { 0x0250, 0x2C6F },
+ { 0x0251, 0x2C6D },
+ { 0x0253, 0x0181 },
+ { 0x0254, 0x0186 },
+ { 0x0256, 0x0189 },
+ { 0x0257, 0x018A },
+ { 0x0259, 0x018F },
+ { 0x025B, 0x0190 },
+ { 0x0260, 0x0193 },
+ { 0x0263, 0x0194 },
+ { 0x0268, 0x0197 },
+ { 0x0269, 0x0196 },
+ { 0x026B, 0x2C62 },
+ { 0x026F, 0x019C },
+ { 0x0271, 0x2C6E },
+ { 0x0272, 0x019D },
+ { 0x0275, 0x019F },
+ { 0x027D, 0x2C64 },
+ { 0x0280, 0x01A6 },
+ { 0x0283, 0x01A9 },
+ { 0x0288, 0x01AE },
+ { 0x0289, 0x0244 },
+ { 0x028A, 0x01B1 },
+ { 0x028B, 0x01B2 },
+ { 0x028C, 0x0245 },
+ { 0x0292, 0x01B7 },
+ { 0x0345, 0x0399 },
+ { 0x0371, 0x0370 },
+ { 0x0373, 0x0372 },
+ { 0x0377, 0x0376 },
+ { 0x037B, 0x03FD },
+ { 0x037C, 0x03FE },
+ { 0x037D, 0x03FF },
+ { 0x03AC, 0x0386 },
+ { 0x03AD, 0x0388 },
+ { 0x03AE, 0x0389 },
+ { 0x03AF, 0x038A },
+ { 0x03B1, 0x0391 },
+ { 0x03B2, 0x0392 },
+ { 0x03B3, 0x0393 },
+ { 0x03B4, 0x0394 },
+ { 0x03B5, 0x0395 },
+ { 0x03B6, 0x0396 },
+ { 0x03B7, 0x0397 },
+ { 0x03B8, 0x0398 },
+ { 0x03B9, 0x0399 },
+ { 0x03BA, 0x039A },
+ { 0x03BB, 0x039B },
+ { 0x03BC, 0x039C },
+ { 0x03BD, 0x039D },
+ { 0x03BE, 0x039E },
+ { 0x03BF, 0x039F },
+ { 0x03C0, 0x03A0 },
+ { 0x03C1, 0x03A1 },
+ { 0x03C2, 0x03A3 },
+ { 0x03C3, 0x03A3 },
+ { 0x03C4, 0x03A4 },
+ { 0x03C5, 0x03A5 },
+ { 0x03C6, 0x03A6 },
+ { 0x03C7, 0x03A7 },
+ { 0x03C8, 0x03A8 },
+ { 0x03C9, 0x03A9 },
+ { 0x03CA, 0x03AA },
+ { 0x03CB, 0x03AB },
+ { 0x03CC, 0x038C },
+ { 0x03CD, 0x038E },
+ { 0x03CE, 0x038F },
+ { 0x03D0, 0x0392 },
+ { 0x03D1, 0x0398 },
+ { 0x03D5, 0x03A6 },
+ { 0x03D6, 0x03A0 },
+ { 0x03D7, 0x03CF },
+ { 0x03D9, 0x03D8 },
+ { 0x03DB, 0x03DA },
+ { 0x03DD, 0x03DC },
+ { 0x03DF, 0x03DE },
+ { 0x03E1, 0x03E0 },
+ { 0x03E3, 0x03E2 },
+ { 0x03E5, 0x03E4 },
+ { 0x03E7, 0x03E6 },
+ { 0x03E9, 0x03E8 },
+ { 0x03EB, 0x03EA },
+ { 0x03ED, 0x03EC },
+ { 0x03EF, 0x03EE },
+ { 0x03F0, 0x039A },
+ { 0x03F1, 0x03A1 },
+ { 0x03F2, 0x03F9 },
+ { 0x03F5, 0x0395 },
+ { 0x03F8, 0x03F7 },
+ { 0x03FB, 0x03FA },
+ { 0x0430, 0x0410 },
+ { 0x0431, 0x0411 },
+ { 0x0432, 0x0412 },
+ { 0x0433, 0x0413 },
+ { 0x0434, 0x0414 },
+ { 0x0435, 0x0415 },
+ { 0x0436, 0x0416 },
+ { 0x0437, 0x0417 },
+ { 0x0438, 0x0418 },
+ { 0x0439, 0x0419 },
+ { 0x043A, 0x041A },
+ { 0x043B, 0x041B },
+ { 0x043C, 0x041C },
+ { 0x043D, 0x041D },
+ { 0x043E, 0x041E },
+ { 0x043F, 0x041F },
+ { 0x0440, 0x0420 },
+ { 0x0441, 0x0421 },
+ { 0x0442, 0x0422 },
+ { 0x0443, 0x0423 },
+ { 0x0444, 0x0424 },
+ { 0x0445, 0x0425 },
+ { 0x0446, 0x0426 },
+ { 0x0447, 0x0427 },
+ { 0x0448, 0x0428 },
+ { 0x0449, 0x0429 },
+ { 0x044A, 0x042A },
+ { 0x044B, 0x042B },
+ { 0x044C, 0x042C },
+ { 0x044D, 0x042D },
+ { 0x044E, 0x042E },
+ { 0x044F, 0x042F },
+ { 0x0450, 0x0400 },
+ { 0x0451, 0x0401 },
+ { 0x0452, 0x0402 },
+ { 0x0453, 0x0403 },
+ { 0x0454, 0x0404 },
+ { 0x0455, 0x0405 },
+ { 0x0456, 0x0406 },
+ { 0x0457, 0x0407 },
+ { 0x0458, 0x0408 },
+ { 0x0459, 0x0409 },
+ { 0x045A, 0x040A },
+ { 0x045B, 0x040B },
+ { 0x045C, 0x040C },
+ { 0x045D, 0x040D },
+ { 0x045E, 0x040E },
+ { 0x045F, 0x040F },
+ { 0x0461, 0x0460 },
+ { 0x0463, 0x0462 },
+ { 0x0465, 0x0464 },
+ { 0x0467, 0x0466 },
+ { 0x0469, 0x0468 },
+ { 0x046B, 0x046A },
+ { 0x046D, 0x046C },
+ { 0x046F, 0x046E },
+ { 0x0471, 0x0470 },
+ { 0x0473, 0x0472 },
+ { 0x0475, 0x0474 },
+ { 0x0477, 0x0476 },
+ { 0x0479, 0x0478 },
+ { 0x047B, 0x047A },
+ { 0x047D, 0x047C },
+ { 0x047F, 0x047E },
+ { 0x0481, 0x0480 },
+ { 0x048B, 0x048A },
+ { 0x048D, 0x048C },
+ { 0x048F, 0x048E },
+ { 0x0491, 0x0490 },
+ { 0x0493, 0x0492 },
+ { 0x0495, 0x0494 },
+ { 0x0497, 0x0496 },
+ { 0x0499, 0x0498 },
+ { 0x049B, 0x049A },
+ { 0x049D, 0x049C },
+ { 0x049F, 0x049E },
+ { 0x04A1, 0x04A0 },
+ { 0x04A3, 0x04A2 },
+ { 0x04A5, 0x04A4 },
+ { 0x04A7, 0x04A6 },
+ { 0x04A9, 0x04A8 },
+ { 0x04AB, 0x04AA },
+ { 0x04AD, 0x04AC },
+ { 0x04AF, 0x04AE },
+ { 0x04B1, 0x04B0 },
+ { 0x04B3, 0x04B2 },
+ { 0x04B5, 0x04B4 },
+ { 0x04B7, 0x04B6 },
+ { 0x04B9, 0x04B8 },
+ { 0x04BB, 0x04BA },
+ { 0x04BD, 0x04BC },
+ { 0x04BF, 0x04BE },
+ { 0x04C2, 0x04C1 },
+ { 0x04C4, 0x04C3 },
+ { 0x04C6, 0x04C5 },
+ { 0x04C8, 0x04C7 },
+ { 0x04CA, 0x04C9 },
+ { 0x04CC, 0x04CB },
+ { 0x04CE, 0x04CD },
+ { 0x04CF, 0x04C0 },
+ { 0x04D1, 0x04D0 },
+ { 0x04D3, 0x04D2 },
+ { 0x04D5, 0x04D4 },
+ { 0x04D7, 0x04D6 },
+ { 0x04D9, 0x04D8 },
+ { 0x04DB, 0x04DA },
+ { 0x04DD, 0x04DC },
+ { 0x04DF, 0x04DE },
+ { 0x04E1, 0x04E0 },
+ { 0x04E3, 0x04E2 },
+ { 0x04E5, 0x04E4 },
+ { 0x04E7, 0x04E6 },
+ { 0x04E9, 0x04E8 },
+ { 0x04EB, 0x04EA },
+ { 0x04ED, 0x04EC },
+ { 0x04EF, 0x04EE },
+ { 0x04F1, 0x04F0 },
+ { 0x04F3, 0x04F2 },
+ { 0x04F5, 0x04F4 },
+ { 0x04F7, 0x04F6 },
+ { 0x04F9, 0x04F8 },
+ { 0x04FB, 0x04FA },
+ { 0x04FD, 0x04FC },
+ { 0x04FF, 0x04FE },
+ { 0x0501, 0x0500 },
+ { 0x0503, 0x0502 },
+ { 0x0505, 0x0504 },
+ { 0x0507, 0x0506 },
+ { 0x0509, 0x0508 },
+ { 0x050B, 0x050A },
+ { 0x050D, 0x050C },
+ { 0x050F, 0x050E },
+ { 0x0511, 0x0510 },
+ { 0x0513, 0x0512 },
+ { 0x0515, 0x0514 },
+ { 0x0517, 0x0516 },
+ { 0x0519, 0x0518 },
+ { 0x051B, 0x051A },
+ { 0x051D, 0x051C },
+ { 0x051F, 0x051E },
+ { 0x0521, 0x0520 },
+ { 0x0523, 0x0522 },
+ { 0x0561, 0x0531 },
+ { 0x0562, 0x0532 },
+ { 0x0563, 0x0533 },
+ { 0x0564, 0x0534 },
+ { 0x0565, 0x0535 },
+ { 0x0566, 0x0536 },
+ { 0x0567, 0x0537 },
+ { 0x0568, 0x0538 },
+ { 0x0569, 0x0539 },
+ { 0x056A, 0x053A },
+ { 0x056B, 0x053B },
+ { 0x056C, 0x053C },
+ { 0x056D, 0x053D },
+ { 0x056E, 0x053E },
+ { 0x056F, 0x053F },
+ { 0x0570, 0x0540 },
+ { 0x0571, 0x0541 },
+ { 0x0572, 0x0542 },
+ { 0x0573, 0x0543 },
+ { 0x0574, 0x0544 },
+ { 0x0575, 0x0545 },
+ { 0x0576, 0x0546 },
+ { 0x0577, 0x0547 },
+ { 0x0578, 0x0548 },
+ { 0x0579, 0x0549 },
+ { 0x057A, 0x054A },
+ { 0x057B, 0x054B },
+ { 0x057C, 0x054C },
+ { 0x057D, 0x054D },
+ { 0x057E, 0x054E },
+ { 0x057F, 0x054F },
+ { 0x0580, 0x0550 },
+ { 0x0581, 0x0551 },
+ { 0x0582, 0x0552 },
+ { 0x0583, 0x0553 },
+ { 0x0584, 0x0554 },
+ { 0x0585, 0x0555 },
+ { 0x0586, 0x0556 },
+ { 0x1D79, 0xA77D },
+ { 0x1D7D, 0x2C63 },
+ { 0x1E01, 0x1E00 },
+ { 0x1E03, 0x1E02 },
+ { 0x1E05, 0x1E04 },
+ { 0x1E07, 0x1E06 },
+ { 0x1E09, 0x1E08 },
+ { 0x1E0B, 0x1E0A },
+ { 0x1E0D, 0x1E0C },
+ { 0x1E0F, 0x1E0E },
+ { 0x1E11, 0x1E10 },
+ { 0x1E13, 0x1E12 },
+ { 0x1E15, 0x1E14 },
+ { 0x1E17, 0x1E16 },
+ { 0x1E19, 0x1E18 },
+ { 0x1E1B, 0x1E1A },
+ { 0x1E1D, 0x1E1C },
+ { 0x1E1F, 0x1E1E },
+ { 0x1E21, 0x1E20 },
+ { 0x1E23, 0x1E22 },
+ { 0x1E25, 0x1E24 },
+ { 0x1E27, 0x1E26 },
+ { 0x1E29, 0x1E28 },
+ { 0x1E2B, 0x1E2A },
+ { 0x1E2D, 0x1E2C },
+ { 0x1E2F, 0x1E2E },
+ { 0x1E31, 0x1E30 },
+ { 0x1E33, 0x1E32 },
+ { 0x1E35, 0x1E34 },
+ { 0x1E37, 0x1E36 },
+ { 0x1E39, 0x1E38 },
+ { 0x1E3B, 0x1E3A },
+ { 0x1E3D, 0x1E3C },
+ { 0x1E3F, 0x1E3E },
+ { 0x1E41, 0x1E40 },
+ { 0x1E43, 0x1E42 },
+ { 0x1E45, 0x1E44 },
+ { 0x1E47, 0x1E46 },
+ { 0x1E49, 0x1E48 },
+ { 0x1E4B, 0x1E4A },
+ { 0x1E4D, 0x1E4C },
+ { 0x1E4F, 0x1E4E },
+ { 0x1E51, 0x1E50 },
+ { 0x1E53, 0x1E52 },
+ { 0x1E55, 0x1E54 },
+ { 0x1E57, 0x1E56 },
+ { 0x1E59, 0x1E58 },
+ { 0x1E5B, 0x1E5A },
+ { 0x1E5D, 0x1E5C },
+ { 0x1E5F, 0x1E5E },
+ { 0x1E61, 0x1E60 },
+ { 0x1E63, 0x1E62 },
+ { 0x1E65, 0x1E64 },
+ { 0x1E67, 0x1E66 },
+ { 0x1E69, 0x1E68 },
+ { 0x1E6B, 0x1E6A },
+ { 0x1E6D, 0x1E6C },
+ { 0x1E6F, 0x1E6E },
+ { 0x1E71, 0x1E70 },
+ { 0x1E73, 0x1E72 },
+ { 0x1E75, 0x1E74 },
+ { 0x1E77, 0x1E76 },
+ { 0x1E79, 0x1E78 },
+ { 0x1E7B, 0x1E7A },
+ { 0x1E7D, 0x1E7C },
+ { 0x1E7F, 0x1E7E },
+ { 0x1E81, 0x1E80 },
+ { 0x1E83, 0x1E82 },
+ { 0x1E85, 0x1E84 },
+ { 0x1E87, 0x1E86 },
+ { 0x1E89, 0x1E88 },
+ { 0x1E8B, 0x1E8A },
+ { 0x1E8D, 0x1E8C },
+ { 0x1E8F, 0x1E8E },
+ { 0x1E91, 0x1E90 },
+ { 0x1E93, 0x1E92 },
+ { 0x1E95, 0x1E94 },
+ { 0x1E9B, 0x1E60 },
+ { 0x1EA1, 0x1EA0 },
+ { 0x1EA3, 0x1EA2 },
+ { 0x1EA5, 0x1EA4 },
+ { 0x1EA7, 0x1EA6 },
+ { 0x1EA9, 0x1EA8 },
+ { 0x1EAB, 0x1EAA },
+ { 0x1EAD, 0x1EAC },
+ { 0x1EAF, 0x1EAE },
+ { 0x1EB1, 0x1EB0 },
+ { 0x1EB3, 0x1EB2 },
+ { 0x1EB5, 0x1EB4 },
+ { 0x1EB7, 0x1EB6 },
+ { 0x1EB9, 0x1EB8 },
+ { 0x1EBB, 0x1EBA },
+ { 0x1EBD, 0x1EBC },
+ { 0x1EBF, 0x1EBE },
+ { 0x1EC1, 0x1EC0 },
+ { 0x1EC3, 0x1EC2 },
+ { 0x1EC5, 0x1EC4 },
+ { 0x1EC7, 0x1EC6 },
+ { 0x1EC9, 0x1EC8 },
+ { 0x1ECB, 0x1ECA },
+ { 0x1ECD, 0x1ECC },
+ { 0x1ECF, 0x1ECE },
+ { 0x1ED1, 0x1ED0 },
+ { 0x1ED3, 0x1ED2 },
+ { 0x1ED5, 0x1ED4 },
+ { 0x1ED7, 0x1ED6 },
+ { 0x1ED9, 0x1ED8 },
+ { 0x1EDB, 0x1EDA },
+ { 0x1EDD, 0x1EDC },
+ { 0x1EDF, 0x1EDE },
+ { 0x1EE1, 0x1EE0 },
+ { 0x1EE3, 0x1EE2 },
+ { 0x1EE5, 0x1EE4 },
+ { 0x1EE7, 0x1EE6 },
+ { 0x1EE9, 0x1EE8 },
+ { 0x1EEB, 0x1EEA },
+ { 0x1EED, 0x1EEC },
+ { 0x1EEF, 0x1EEE },
+ { 0x1EF1, 0x1EF0 },
+ { 0x1EF3, 0x1EF2 },
+ { 0x1EF5, 0x1EF4 },
+ { 0x1EF7, 0x1EF6 },
+ { 0x1EF9, 0x1EF8 },
+ { 0x1EFB, 0x1EFA },
+ { 0x1EFD, 0x1EFC },
+ { 0x1EFF, 0x1EFE },
+ { 0x1F00, 0x1F08 },
+ { 0x1F01, 0x1F09 },
+ { 0x1F02, 0x1F0A },
+ { 0x1F03, 0x1F0B },
+ { 0x1F04, 0x1F0C },
+ { 0x1F05, 0x1F0D },
+ { 0x1F06, 0x1F0E },
+ { 0x1F07, 0x1F0F },
+ { 0x1F10, 0x1F18 },
+ { 0x1F11, 0x1F19 },
+ { 0x1F12, 0x1F1A },
+ { 0x1F13, 0x1F1B },
+ { 0x1F14, 0x1F1C },
+ { 0x1F15, 0x1F1D },
+ { 0x1F20, 0x1F28 },
+ { 0x1F21, 0x1F29 },
+ { 0x1F22, 0x1F2A },
+ { 0x1F23, 0x1F2B },
+ { 0x1F24, 0x1F2C },
+ { 0x1F25, 0x1F2D },
+ { 0x1F26, 0x1F2E },
+ { 0x1F27, 0x1F2F },
+ { 0x1F30, 0x1F38 },
+ { 0x1F31, 0x1F39 },
+ { 0x1F32, 0x1F3A },
+ { 0x1F33, 0x1F3B },
+ { 0x1F34, 0x1F3C },
+ { 0x1F35, 0x1F3D },
+ { 0x1F36, 0x1F3E },
+ { 0x1F37, 0x1F3F },
+ { 0x1F40, 0x1F48 },
+ { 0x1F41, 0x1F49 },
+ { 0x1F42, 0x1F4A },
+ { 0x1F43, 0x1F4B },
+ { 0x1F44, 0x1F4C },
+ { 0x1F45, 0x1F4D },
+ { 0x1F51, 0x1F59 },
+ { 0x1F53, 0x1F5B },
+ { 0x1F55, 0x1F5D },
+ { 0x1F57, 0x1F5F },
+ { 0x1F60, 0x1F68 },
+ { 0x1F61, 0x1F69 },
+ { 0x1F62, 0x1F6A },
+ { 0x1F63, 0x1F6B },
+ { 0x1F64, 0x1F6C },
+ { 0x1F65, 0x1F6D },
+ { 0x1F66, 0x1F6E },
+ { 0x1F67, 0x1F6F },
+ { 0x1F70, 0x1FBA },
+ { 0x1F71, 0x1FBB },
+ { 0x1F72, 0x1FC8 },
+ { 0x1F73, 0x1FC9 },
+ { 0x1F74, 0x1FCA },
+ { 0x1F75, 0x1FCB },
+ { 0x1F76, 0x1FDA },
+ { 0x1F77, 0x1FDB },
+ { 0x1F78, 0x1FF8 },
+ { 0x1F79, 0x1FF9 },
+ { 0x1F7A, 0x1FEA },
+ { 0x1F7B, 0x1FEB },
+ { 0x1F7C, 0x1FFA },
+ { 0x1F7D, 0x1FFB },
+ { 0x1F80, 0x1F88 },
+ { 0x1F81, 0x1F89 },
+ { 0x1F82, 0x1F8A },
+ { 0x1F83, 0x1F8B },
+ { 0x1F84, 0x1F8C },
+ { 0x1F85, 0x1F8D },
+ { 0x1F86, 0x1F8E },
+ { 0x1F87, 0x1F8F },
+ { 0x1F90, 0x1F98 },
+ { 0x1F91, 0x1F99 },
+ { 0x1F92, 0x1F9A },
+ { 0x1F93, 0x1F9B },
+ { 0x1F94, 0x1F9C },
+ { 0x1F95, 0x1F9D },
+ { 0x1F96, 0x1F9E },
+ { 0x1F97, 0x1F9F },
+ { 0x1FA0, 0x1FA8 },
+ { 0x1FA1, 0x1FA9 },
+ { 0x1FA2, 0x1FAA },
+ { 0x1FA3, 0x1FAB },
+ { 0x1FA4, 0x1FAC },
+ { 0x1FA5, 0x1FAD },
+ { 0x1FA6, 0x1FAE },
+ { 0x1FA7, 0x1FAF },
+ { 0x1FB0, 0x1FB8 },
+ { 0x1FB1, 0x1FB9 },
+ { 0x1FB3, 0x1FBC },
+ { 0x1FBE, 0x0399 },
+ { 0x1FC3, 0x1FCC },
+ { 0x1FD0, 0x1FD8 },
+ { 0x1FD1, 0x1FD9 },
+ { 0x1FE0, 0x1FE8 },
+ { 0x1FE1, 0x1FE9 },
+ { 0x1FE5, 0x1FEC },
+ { 0x1FF3, 0x1FFC },
+ { 0x214E, 0x2132 },
+ { 0x2170, 0x2160 },
+ { 0x2171, 0x2161 },
+ { 0x2172, 0x2162 },
+ { 0x2173, 0x2163 },
+ { 0x2174, 0x2164 },
+ { 0x2175, 0x2165 },
+ { 0x2176, 0x2166 },
+ { 0x2177, 0x2167 },
+ { 0x2178, 0x2168 },
+ { 0x2179, 0x2169 },
+ { 0x217A, 0x216A },
+ { 0x217B, 0x216B },
+ { 0x217C, 0x216C },
+ { 0x217D, 0x216D },
+ { 0x217E, 0x216E },
+ { 0x217F, 0x216F },
+ { 0x2184, 0x2183 },
+ { 0x24D0, 0x24B6 },
+ { 0x24D1, 0x24B7 },
+ { 0x24D2, 0x24B8 },
+ { 0x24D3, 0x24B9 },
+ { 0x24D4, 0x24BA },
+ { 0x24D5, 0x24BB },
+ { 0x24D6, 0x24BC },
+ { 0x24D7, 0x24BD },
+ { 0x24D8, 0x24BE },
+ { 0x24D9, 0x24BF },
+ { 0x24DA, 0x24C0 },
+ { 0x24DB, 0x24C1 },
+ { 0x24DC, 0x24C2 },
+ { 0x24DD, 0x24C3 },
+ { 0x24DE, 0x24C4 },
+ { 0x24DF, 0x24C5 },
+ { 0x24E0, 0x24C6 },
+ { 0x24E1, 0x24C7 },
+ { 0x24E2, 0x24C8 },
+ { 0x24E3, 0x24C9 },
+ { 0x24E4, 0x24CA },
+ { 0x24E5, 0x24CB },
+ { 0x24E6, 0x24CC },
+ { 0x24E7, 0x24CD },
+ { 0x24E8, 0x24CE },
+ { 0x24E9, 0x24CF },
+ { 0x2C30, 0x2C00 },
+ { 0x2C31, 0x2C01 },
+ { 0x2C32, 0x2C02 },
+ { 0x2C33, 0x2C03 },
+ { 0x2C34, 0x2C04 },
+ { 0x2C35, 0x2C05 },
+ { 0x2C36, 0x2C06 },
+ { 0x2C37, 0x2C07 },
+ { 0x2C38, 0x2C08 },
+ { 0x2C39, 0x2C09 },
+ { 0x2C3A, 0x2C0A },
+ { 0x2C3B, 0x2C0B },
+ { 0x2C3C, 0x2C0C },
+ { 0x2C3D, 0x2C0D },
+ { 0x2C3E, 0x2C0E },
+ { 0x2C3F, 0x2C0F },
+ { 0x2C40, 0x2C10 },
+ { 0x2C41, 0x2C11 },
+ { 0x2C42, 0x2C12 },
+ { 0x2C43, 0x2C13 },
+ { 0x2C44, 0x2C14 },
+ { 0x2C45, 0x2C15 },
+ { 0x2C46, 0x2C16 },
+ { 0x2C47, 0x2C17 },
+ { 0x2C48, 0x2C18 },
+ { 0x2C49, 0x2C19 },
+ { 0x2C4A, 0x2C1A },
+ { 0x2C4B, 0x2C1B },
+ { 0x2C4C, 0x2C1C },
+ { 0x2C4D, 0x2C1D },
+ { 0x2C4E, 0x2C1E },
+ { 0x2C4F, 0x2C1F },
+ { 0x2C50, 0x2C20 },
+ { 0x2C51, 0x2C21 },
+ { 0x2C52, 0x2C22 },
+ { 0x2C53, 0x2C23 },
+ { 0x2C54, 0x2C24 },
+ { 0x2C55, 0x2C25 },
+ { 0x2C56, 0x2C26 },
+ { 0x2C57, 0x2C27 },
+ { 0x2C58, 0x2C28 },
+ { 0x2C59, 0x2C29 },
+ { 0x2C5A, 0x2C2A },
+ { 0x2C5B, 0x2C2B },
+ { 0x2C5C, 0x2C2C },
+ { 0x2C5D, 0x2C2D },
+ { 0x2C5E, 0x2C2E },
+ { 0x2C61, 0x2C60 },
+ { 0x2C65, 0x023A },
+ { 0x2C66, 0x023E },
+ { 0x2C68, 0x2C67 },
+ { 0x2C6A, 0x2C69 },
+ { 0x2C6C, 0x2C6B },
+ { 0x2C73, 0x2C72 },
+ { 0x2C76, 0x2C75 },
+ { 0x2C81, 0x2C80 },
+ { 0x2C83, 0x2C82 },
+ { 0x2C85, 0x2C84 },
+ { 0x2C87, 0x2C86 },
+ { 0x2C89, 0x2C88 },
+ { 0x2C8B, 0x2C8A },
+ { 0x2C8D, 0x2C8C },
+ { 0x2C8F, 0x2C8E },
+ { 0x2C91, 0x2C90 },
+ { 0x2C93, 0x2C92 },
+ { 0x2C95, 0x2C94 },
+ { 0x2C97, 0x2C96 },
+ { 0x2C99, 0x2C98 },
+ { 0x2C9B, 0x2C9A },
+ { 0x2C9D, 0x2C9C },
+ { 0x2C9F, 0x2C9E },
+ { 0x2CA1, 0x2CA0 },
+ { 0x2CA3, 0x2CA2 },
+ { 0x2CA5, 0x2CA4 },
+ { 0x2CA7, 0x2CA6 },
+ { 0x2CA9, 0x2CA8 },
+ { 0x2CAB, 0x2CAA },
+ { 0x2CAD, 0x2CAC },
+ { 0x2CAF, 0x2CAE },
+ { 0x2CB1, 0x2CB0 },
+ { 0x2CB3, 0x2CB2 },
+ { 0x2CB5, 0x2CB4 },
+ { 0x2CB7, 0x2CB6 },
+ { 0x2CB9, 0x2CB8 },
+ { 0x2CBB, 0x2CBA },
+ { 0x2CBD, 0x2CBC },
+ { 0x2CBF, 0x2CBE },
+ { 0x2CC1, 0x2CC0 },
+ { 0x2CC3, 0x2CC2 },
+ { 0x2CC5, 0x2CC4 },
+ { 0x2CC7, 0x2CC6 },
+ { 0x2CC9, 0x2CC8 },
+ { 0x2CCB, 0x2CCA },
+ { 0x2CCD, 0x2CCC },
+ { 0x2CCF, 0x2CCE },
+ { 0x2CD1, 0x2CD0 },
+ { 0x2CD3, 0x2CD2 },
+ { 0x2CD5, 0x2CD4 },
+ { 0x2CD7, 0x2CD6 },
+ { 0x2CD9, 0x2CD8 },
+ { 0x2CDB, 0x2CDA },
+ { 0x2CDD, 0x2CDC },
+ { 0x2CDF, 0x2CDE },
+ { 0x2CE1, 0x2CE0 },
+ { 0x2CE3, 0x2CE2 },
+ { 0x2D00, 0x10A0 },
+ { 0x2D01, 0x10A1 },
+ { 0x2D02, 0x10A2 },
+ { 0x2D03, 0x10A3 },
+ { 0x2D04, 0x10A4 },
+ { 0x2D05, 0x10A5 },
+ { 0x2D06, 0x10A6 },
+ { 0x2D07, 0x10A7 },
+ { 0x2D08, 0x10A8 },
+ { 0x2D09, 0x10A9 },
+ { 0x2D0A, 0x10AA },
+ { 0x2D0B, 0x10AB },
+ { 0x2D0C, 0x10AC },
+ { 0x2D0D, 0x10AD },
+ { 0x2D0E, 0x10AE },
+ { 0x2D0F, 0x10AF },
+ { 0x2D10, 0x10B0 },
+ { 0x2D11, 0x10B1 },
+ { 0x2D12, 0x10B2 },
+ { 0x2D13, 0x10B3 },
+ { 0x2D14, 0x10B4 },
+ { 0x2D15, 0x10B5 },
+ { 0x2D16, 0x10B6 },
+ { 0x2D17, 0x10B7 },
+ { 0x2D18, 0x10B8 },
+ { 0x2D19, 0x10B9 },
+ { 0x2D1A, 0x10BA },
+ { 0x2D1B, 0x10BB },
+ { 0x2D1C, 0x10BC },
+ { 0x2D1D, 0x10BD },
+ { 0x2D1E, 0x10BE },
+ { 0x2D1F, 0x10BF },
+ { 0x2D20, 0x10C0 },
+ { 0x2D21, 0x10C1 },
+ { 0x2D22, 0x10C2 },
+ { 0x2D23, 0x10C3 },
+ { 0x2D24, 0x10C4 },
+ { 0x2D25, 0x10C5 },
+ { 0xA641, 0xA640 },
+ { 0xA643, 0xA642 },
+ { 0xA645, 0xA644 },
+ { 0xA647, 0xA646 },
+ { 0xA649, 0xA648 },
+ { 0xA64B, 0xA64A },
+ { 0xA64D, 0xA64C },
+ { 0xA64F, 0xA64E },
+ { 0xA651, 0xA650 },
+ { 0xA653, 0xA652 },
+ { 0xA655, 0xA654 },
+ { 0xA657, 0xA656 },
+ { 0xA659, 0xA658 },
+ { 0xA65B, 0xA65A },
+ { 0xA65D, 0xA65C },
+ { 0xA65F, 0xA65E },
+ { 0xA663, 0xA662 },
+ { 0xA665, 0xA664 },
+ { 0xA667, 0xA666 },
+ { 0xA669, 0xA668 },
+ { 0xA66B, 0xA66A },
+ { 0xA66D, 0xA66C },
+ { 0xA681, 0xA680 },
+ { 0xA683, 0xA682 },
+ { 0xA685, 0xA684 },
+ { 0xA687, 0xA686 },
+ { 0xA689, 0xA688 },
+ { 0xA68B, 0xA68A },
+ { 0xA68D, 0xA68C },
+ { 0xA68F, 0xA68E },
+ { 0xA691, 0xA690 },
+ { 0xA693, 0xA692 },
+ { 0xA695, 0xA694 },
+ { 0xA697, 0xA696 },
+ { 0xA723, 0xA722 },
+ { 0xA725, 0xA724 },
+ { 0xA727, 0xA726 },
+ { 0xA729, 0xA728 },
+ { 0xA72B, 0xA72A },
+ { 0xA72D, 0xA72C },
+ { 0xA72F, 0xA72E },
+ { 0xA733, 0xA732 },
+ { 0xA735, 0xA734 },
+ { 0xA737, 0xA736 },
+ { 0xA739, 0xA738 },
+ { 0xA73B, 0xA73A },
+ { 0xA73D, 0xA73C },
+ { 0xA73F, 0xA73E },
+ { 0xA741, 0xA740 },
+ { 0xA743, 0xA742 },
+ { 0xA745, 0xA744 },
+ { 0xA747, 0xA746 },
+ { 0xA749, 0xA748 },
+ { 0xA74B, 0xA74A },
+ { 0xA74D, 0xA74C },
+ { 0xA74F, 0xA74E },
+ { 0xA751, 0xA750 },
+ { 0xA753, 0xA752 },
+ { 0xA755, 0xA754 },
+ { 0xA757, 0xA756 },
+ { 0xA759, 0xA758 },
+ { 0xA75B, 0xA75A },
+ { 0xA75D, 0xA75C },
+ { 0xA75F, 0xA75E },
+ { 0xA761, 0xA760 },
+ { 0xA763, 0xA762 },
+ { 0xA765, 0xA764 },
+ { 0xA767, 0xA766 },
+ { 0xA769, 0xA768 },
+ { 0xA76B, 0xA76A },
+ { 0xA76D, 0xA76C },
+ { 0xA76F, 0xA76E },
+ { 0xA77A, 0xA779 },
+ { 0xA77C, 0xA77B },
+ { 0xA77F, 0xA77E },
+ { 0xA781, 0xA780 },
+ { 0xA783, 0xA782 },
+ { 0xA785, 0xA784 },
+ { 0xA787, 0xA786 },
+ { 0xA78C, 0xA78B },
+ { 0xFF41, 0xFF21 },
+ { 0xFF42, 0xFF22 },
+ { 0xFF43, 0xFF23 },
+ { 0xFF44, 0xFF24 },
+ { 0xFF45, 0xFF25 },
+ { 0xFF46, 0xFF26 },
+ { 0xFF47, 0xFF27 },
+ { 0xFF48, 0xFF28 },
+ { 0xFF49, 0xFF29 },
+ { 0xFF4A, 0xFF2A },
+ { 0xFF4B, 0xFF2B },
+ { 0xFF4C, 0xFF2C },
+ { 0xFF4D, 0xFF2D },
+ { 0xFF4E, 0xFF2E },
+ { 0xFF4F, 0xFF2F },
+ { 0xFF50, 0xFF30 },
+ { 0xFF51, 0xFF31 },
+ { 0xFF52, 0xFF32 },
+ { 0xFF53, 0xFF33 },
+ { 0xFF54, 0xFF34 },
+ { 0xFF55, 0xFF35 },
+ { 0xFF56, 0xFF36 },
+ { 0xFF57, 0xFF37 },
+ { 0xFF58, 0xFF38 },
+ { 0xFF59, 0xFF39 },
+ { 0xFF5A, 0xFF3A },
+ { 0x10428, 0x10400 },
+ { 0x10429, 0x10401 },
+ { 0x1042A, 0x10402 },
+ { 0x1042B, 0x10403 },
+ { 0x1042C, 0x10404 },
+ { 0x1042D, 0x10405 },
+ { 0x1042E, 0x10406 },
+ { 0x1042F, 0x10407 },
+ { 0x10430, 0x10408 },
+ { 0x10431, 0x10409 },
+ { 0x10432, 0x1040A },
+ { 0x10433, 0x1040B },
+ { 0x10434, 0x1040C },
+ { 0x10435, 0x1040D },
+ { 0x10436, 0x1040E },
+ { 0x10437, 0x1040F },
+ { 0x10438, 0x10410 },
+ { 0x10439, 0x10411 },
+ { 0x1043A, 0x10412 },
+ { 0x1043B, 0x10413 },
+ { 0x1043C, 0x10414 },
+ { 0x1043D, 0x10415 },
+ { 0x1043E, 0x10416 },
+ { 0x1043F, 0x10417 },
+ { 0x10440, 0x10418 },
+ { 0x10441, 0x10419 },
+ { 0x10442, 0x1041A },
+ { 0x10443, 0x1041B },
+ { 0x10444, 0x1041C },
+ { 0x10445, 0x1041D },
+ { 0x10446, 0x1041E },
+ { 0x10447, 0x1041F },
+ { 0x10448, 0x10420 },
+ { 0x10449, 0x10421 },
+ { 0x1044A, 0x10422 },
+ { 0x1044B, 0x10423 },
+ { 0x1044C, 0x10424 },
+ { 0x1044D, 0x10425 },
+ { 0x1044E, 0x10426 },
+ { 0x1044F, 0x10427 }
+
+#define MAP(c) uc_toupper (c)
+#include "test-mapping-part2.h"
diff --git a/tests/unicase/test-ulc-casecmp.c b/tests/unicase/test-ulc-casecmp.c
new file mode 100644
index 0000000..5450ef3
--- /dev/null
+++ b/tests/unicase/test-ulc-casecmp.c
@@ -0,0 +1,408 @@
+/* Test of case and normalization insensitive comparison of strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT char
+#include "test-casecmp.h"
+#undef UNIT
+
+static void
+test_iso_8859_1 (int (*my_casecmp) (const char *, size_t, const char *, size_t, const char *, uninorm_t, int *))
+{
+ {
+ static const char input1[] = { 'H', 0xF6, 'h', 'l', 'e' };
+ static const char input2[] = { 'H', 0xD6, 'h', 'L', 'e' };
+ static const char input3[] = { 'H', 0xF6, 'h', 'l', 'e', 'n' };
+ static const char input4[] = { 'H', 0xD6, 'h', 'L', 'e', 'n' };
+ static const char input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input3, SIZEOF (input3), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input4, SIZEOF (input4), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const char input1[] = { 0x68, 0x65, 0x69, 0xDF };
+ static const char input2[] = { 0x68, 0x65, 0x69, 0x73, 0x73 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+static void
+test_utf_8 (int (*my_casecmp) (const char *, size_t, const char *, size_t, const char *, uninorm_t, int *))
+{
+ /* Normalization effects. */
+ {
+ static const char input1[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e' };
+ static const char input2[] = { 'H', 'O', 0xCC, 0x88, 'h', 'L', 'e' };
+ static const char input3[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e', 'n' };
+ static const char input4[] = { 'H', 'O', 0xCC, 0x88, 'h', 'L', 'e', 'n' };
+ static const char input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input1, SIZEOF (input1), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input3, SIZEOF (input3), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input4, SIZEOF (input4), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input4, SIZEOF (input4), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input5, SIZEOF (input5), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const char input1[] = { 0xC3, 0x84 };
+ static const char input2[] = { 0x41, 0xCC, 0x88 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const char input1[] = { 0xC7, 0x9E };
+ static const char input2[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const char input1[] = { 0xE1, 0xBF, 0x81 };
+ static const char input2[] = { 0xC2, 0xA8, 0xCD, 0x82 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEUL */
+ static const char input1[] = { 0xEA, 0xB8, 0x80 };
+ static const char input2[] = { 0xEA, 0xB7, 0xB8, 0xE1, 0x86, 0xAF };
+ static const char input3[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEU */
+ static const char input1[] = { 0xEA, 0xB7, 0xB8 };
+ static const char input2[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Simple string. */
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const char input1[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const char input2[] =
+ { 'g', 'r', 0xC3, 0xBC, 0x73, 0x73, ' ', 'g', 'o', 't', 't', '.', ' ',
+ 0xD0, 0xB7, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1, 0x81,
+ 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9, 0xD1, 0x82, 0xD0, 0xB5,
+ '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1, 's', 'q', 'r', 't', '(',
+ 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const char input3[] =
+ { 'G', 'R', 0xC3, 0x9C, 0x53, 0x53, ' ', 'G', 'O', 'T', 'T', '.', ' ',
+ 0xD0, 0x97, 0xD0, 0x94, 0xD0, 0xA0, 0xD0, 0x90, 0xD0, 0x92, 0xD0, 0xA1,
+ 0xD0, 0xA2, 0xD0, 0x92, 0xD0, 0xA3, 0xD0, 0x99, 0xD0, 0xA2, 0xD0, 0x95,
+ '!', ' ', 'X', '=', '(', '-', 'B', 0xC2, 0xB1, 'S', 'Q', 'R', 'T', '(',
+ 'B', 0xC2, 0xB2, '-', '4', 'A', 'C', ')', ')', '/', '(', '2', 'A', ')',
+ ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC, 0xE8, 0xAA, 0x9E, ',',
+ 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C, 0xEA, 0xB8, 0x80, '\n'
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can increase the number of Unicode characters. */
+ { /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+ static const char input1[] = { 0xC5, 0x89 };
+ static const char input2[] = { 0xCA, 0xBC, 0x6E };
+ static const char input3[] = { 0xCA, 0xBC, 0x4E };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+ static const char input1[] = { 0xCE, 0x90 };
+ static const char input2[] = { 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Turkish letters i İ ı I */
+ { /* LATIN CAPITAL LETTER I */
+ static const char input[] = { 0x49 };
+ static const char casefolded[] = { 0x69 };
+ static const char casefolded_tr[] = { 0xC4, 0xB1 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER I */
+ static const char input[] = { 0x69 };
+ static const char casefolded[] = { 0x49 };
+ static const char casefolded_tr[] = { 0xC4, 0xB0 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+ static const char input[] = { 0xC4, 0xB0 };
+ static const char casefolded[] = { 0x69, 0xCC, 0x87 };
+ static const char casefolded_tr[] = { 0x69 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_tr, SIZEOF (casefolded_tr), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN SMALL LETTER DOTLESS I */
+ static const char input[] = { 0xC4, 0xB1 };
+ static const char casefolded[] = { 0x49 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* "topkapı" */
+ static const char input[] =
+ { 0x54, 0x4F, 0x50, 0x4B, 0x41, 0x50, 0x49 };
+ static const char casefolded[] =
+ { 0x74, 0x6F, 0x70, 0x6B, 0x61, 0x70, 0xC4, 0xB1 };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), "tr", NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Uppercasing can increase the number of Unicode characters. */
+ { /* "heiß" */
+ static const char input1[] = { 0x68, 0x65, 0x69, 0xC3, 0x9F };
+ static const char input2[] = { 0x68, 0x65, 0x69, 0x73, 0x73 };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mappings for some characters can depend on the surrounding characters. */
+ { /* "περισσότερες πληροφορίες" */
+ static const char input1[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x82,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x82
+ };
+ static const char input2[] =
+ {
+ 0xCF, 0x80, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x83,
+ 0xCF, 0x8C, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB5, 0xCF, 0x83,
+ ' ', 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB7, 0xCF, 0x81, 0xCE, 0xBF,
+ 0xCF, 0x86, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xAF, 0xCE, 0xB5, 0xCF, 0x83
+ };
+ static const char input3[] =
+ {
+ 0xCE, 0xA0, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x99, 0xCE, 0xA3, 0xCE, 0xA3,
+ 0xCE, 0x8C, 0xCE, 0xA4, 0xCE, 0x95, 0xCE, 0xA1, 0xCE, 0x95, 0xCE, 0xA3,
+ ' ', 0xCE, 0xA0, 0xCE, 0x9B, 0xCE, 0x97, 0xCE, 0xA1, 0xCE, 0x9F,
+ 0xCE, 0xA6, 0xCE, 0x9F, 0xCE, 0xA1, 0xCE, 0x8A, 0xCE, 0x95, 0xCE, 0xA3
+ };
+ int cmp;
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input2, SIZEOF (input2), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input1, SIZEOF (input1), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input2, SIZEOF (input2), input3, SIZEOF (input3), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Case mapping can require subsequent normalization. */
+ { /* LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW */
+ static const char input[] = { 0xC7, 0xB0, 0xCC, 0xA3 };
+ static const char casefolded[] = { 0x6A, 0xCC, 0x8C, 0xCC, 0xA3 };
+ static const char casefolded_decomposed[] = { 0x6A, 0xCC, 0xA3, 0xCC, 0x8C };
+ int cmp;
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, NULL, &cmp) == 0);
+ ASSERT (cmp != 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded, SIZEOF (casefolded), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_casecmp (input, SIZEOF (input), casefolded_decomposed, SIZEOF (casefolded_decomposed), NULL, UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_ascii (ulc_casecmp, UNINORM_NFD);
+
+ if (argc > 1)
+ switch (argv[1][0])
+ {
+ case '1':
+ /* Locale encoding is ISO-8859-1 or ISO-8859-15. */
+ test_iso_8859_1 (ulc_casecmp);
+ return 0;
+
+ case '2':
+ /* Locale encoding is UTF-8. */
+ test_utf_8 (ulc_casecmp);
+ return 0;
+ }
+
+ return 1;
+}
diff --git a/tests/unicase/test-ulc-casecmp1.sh b/tests/unicase/test-ulc-casecmp1.sh
new file mode 100755
index 0000000..7be2cca
--- /dev/null
+++ b/tests/unicase/test-ulc-casecmp1.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR \
+./test-ulc-casecmp${EXEEXT} 1
diff --git a/tests/unicase/test-ulc-casecmp2.sh b/tests/unicase/test-ulc-casecmp2.sh
new file mode 100755
index 0000000..a7f06e8
--- /dev/null
+++ b/tests/unicase/test-ulc-casecmp2.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific UTF-8 locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR_UTF8 \
+./test-ulc-casecmp${EXEEXT} 2
diff --git a/tests/unicase/test-ulc-casecoll.c b/tests/unicase/test-ulc-casecoll.c
new file mode 100644
index 0000000..a0875f4
--- /dev/null
+++ b/tests/unicase/test-ulc-casecoll.c
@@ -0,0 +1,59 @@
+/* Test of locale dependent, case and normalization insensitive comparison of
+ strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "unicase.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define UNIT char
+#include "test-casecmp.h"
+#undef UNIT
+
+int
+main ()
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ /* In the "C" locale, strcoll is equivalent to strcmp, therefore u8_casecoll
+ on ASCII strings should behave like strcasecmp. */
+ test_ascii (ulc_casecoll, UNINORM_NFC);
+
+ return 0;
+}
diff --git a/tests/unicase/test-ulc-casecoll1.sh b/tests/unicase/test-ulc-casecoll1.sh
new file mode 100755
index 0000000..3760ed8
--- /dev/null
+++ b/tests/unicase/test-ulc-casecoll1.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR \
+./test-ulc-casecoll${EXEEXT}
diff --git a/tests/unicase/test-ulc-casecoll2.sh b/tests/unicase/test-ulc-casecoll2.sh
new file mode 100755
index 0000000..b179a4c
--- /dev/null
+++ b/tests/unicase/test-ulc-casecoll2.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific UTF-8 locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR_UTF8 \
+./test-ulc-casecoll${EXEEXT}
diff --git a/tests/uniconv/test-u16-conv-from-enc.c b/tests/uniconv/test-u16-conv-from-enc.c
new file mode 100644
index 0000000..ac7617b
--- /dev/null
+++ b/tests/uniconv/test-u16-conv-from-enc.c
@@ -0,0 +1,232 @@
+/* Test of conversion to UTF-16 from legacy encodings.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const uint16_t expected[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint16_t *result = u16_conv_from_encoding ("ISO-8859-1", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ static const uint16_t expected[] =
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i'
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint16_t *result = u16_conv_from_encoding ("ISO-8859-2", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__)
+ /* Test conversions from autodetect_jp to UTF-16. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const uint16_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint16_t *result = u16_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const uint16_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint16_t *result = u16_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const uint16_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint16_t *result = u16_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u16_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i == 0 ? 0 :
+ i == 5 ? 1 :
+ i == 7 ? 2 :
+ i == 9 ? 3 :
+ i == 11 ? 4 :
+ i == 13 ? 5 :
+ (size_t)(-1)));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u16-conv-to-enc.c b/tests/uniconv/test-u16-conv-to-enc.c
new file mode 100644
index 0000000..a2dc3c6
--- /dev/null
+++ b/tests/uniconv/test-u16-conv-to-enc.c
@@ -0,0 +1,188 @@
+/* Test of conversion from UTF-16 to legacy encodings.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from UTF-16 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint16_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
+ };
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
+ size_t length;
+ char *result = u16_conv_to_encoding ("ISO-8859-1", handler,
+ input, SIZEOF (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-16 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint16_t input[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i'
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
+ size_t length = 0xdead;
+ char *result = u16_conv_to_encoding ("ISO-8859-1", handler,
+ input, SIZEOF (input),
+ offsets,
+ NULL, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL);
+ ASSERT (errno == EILSEQ);
+ ASSERT (length == 0xdead);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ static const char expected_translit[] = "Rafal Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0
+ || memcmp (result, expected_translit, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i < 5 ? i : i + 5));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from UTF-16 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint16_t input[] = { 0xD845 };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
+ size_t length;
+ char *result = u16_conv_to_encoding ("ISO-8859-1", handler,
+ input, SIZEOF (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (""));
+ if (o)
+ {
+ ASSERT (offsets[0] == 0);
+ ASSERT (offsets[1] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u16-strconv-from-enc.c b/tests/uniconv/test-u16-strconv-from-enc.c
new file mode 100644
index 0000000..f2f173a
--- /dev/null
+++ b/tests/uniconv/test-u16-strconv-from-enc.c
@@ -0,0 +1,132 @@
+/* Test of conversion to UTF-16 from legacy encodings.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const uint16_t expected[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF, 0
+ };
+ uint16_t *result = u16_strconv_from_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ static const uint16_t expected[] =
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ uint16_t *result = u16_strconv_from_encoding (input, "ISO-8859-2", handler);
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__)
+ /* Test conversions from autodetect_jp to UTF-16. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const uint16_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F, 0
+ };
+ uint16_t *result = u16_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const uint16_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F, 0
+ };
+ uint16_t *result = u16_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const uint16_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F, 0
+ };
+ uint16_t *result = u16_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u16-strconv-to-enc.c b/tests/uniconv/test-u16-strconv-to-enc.c
new file mode 100644
index 0000000..95a7206
--- /dev/null
+++ b/tests/uniconv/test-u16-strconv-to-enc.c
@@ -0,0 +1,121 @@
+/* Test of conversion from UTF-16 to legacy encodings.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from UTF-16 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint16_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF, 0
+ };
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = u16_strconv_to_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-16 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint16_t input[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ char *result = u16_strconv_to_encoding (input, "ISO-8859-1", handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ static const char expected_translit[] = "Rafal Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0
+ || strcmp (result, expected_translit) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+# if 0
+ /* Test conversion from UTF-16 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint16_t input[] = { 0xD845, 0 };
+ char *result = u16_strconv_to_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "") == 0);
+ free (result);
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u32-conv-from-enc.c b/tests/uniconv/test-u32-conv-from-enc.c
new file mode 100644
index 0000000..8f709f1
--- /dev/null
+++ b/tests/uniconv/test-u32-conv-from-enc.c
@@ -0,0 +1,232 @@
+/* Test of conversion to UTF-32 from legacy encodings.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const uint32_t expected[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint32_t *result = u32_conv_from_encoding ("ISO-8859-1", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ static const uint32_t expected[] =
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i'
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint32_t *result = u32_conv_from_encoding ("ISO-8859-2", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__)
+ /* Test conversions from autodetect_jp to UTF-16. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const uint32_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint32_t *result = u32_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const uint32_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint32_t *result = u32_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? i / 2 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const uint32_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint32_t *result = u32_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == SIZEOF (expected));
+ ASSERT (u32_cmp (result, expected, SIZEOF (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i == 0 ? 0 :
+ i == 5 ? 1 :
+ i == 7 ? 2 :
+ i == 9 ? 3 :
+ i == 11 ? 4 :
+ i == 13 ? 5 :
+ (size_t)(-1)));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u32-conv-to-enc.c b/tests/uniconv/test-u32-conv-to-enc.c
new file mode 100644
index 0000000..585b737
--- /dev/null
+++ b/tests/uniconv/test-u32-conv-to-enc.c
@@ -0,0 +1,163 @@
+/* Test of conversion from UTF-32 to legacy encodings.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from UTF-32 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint32_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF
+ };
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
+ size_t length;
+ char *result = u32_conv_to_encoding ("ISO-8859-1", handler,
+ input, SIZEOF (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-32 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint32_t input[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i'
+ };
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (SIZEOF (input)) : NULL);
+ size_t length = 0xdead;
+ char *result = u32_conv_to_encoding ("ISO-8859-1", handler,
+ input, SIZEOF (input),
+ offsets,
+ NULL, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL);
+ ASSERT (errno == EILSEQ);
+ ASSERT (length == 0xdead);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ static const char expected_translit[] = "Rafal Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0
+ || memcmp (result, expected_translit, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == i);
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i < 5 ? i : i + 5));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u32-strconv-from-enc.c b/tests/uniconv/test-u32-strconv-from-enc.c
new file mode 100644
index 0000000..96af738
--- /dev/null
+++ b/tests/uniconv/test-u32-strconv-from-enc.c
@@ -0,0 +1,132 @@
+/* Test of conversion to UTF-32 from legacy encodings.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from ISO-8859-1 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const uint32_t expected[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF, 0
+ };
+ uint32_t *result = u32_strconv_from_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from ISO-8859-2 to UTF-16 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ static const uint32_t expected[] =
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ uint32_t *result = u32_strconv_from_encoding (input, "ISO-8859-2", handler);
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__)
+ /* Test conversions from autodetect_jp to UTF-16. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const uint32_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F, 0
+ };
+ uint32_t *result = u32_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const uint32_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F, 0
+ };
+ uint32_t *result = u32_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const uint32_t expected[] = /* こんにちは */
+ {
+ 0x3053, 0x3093, 0x306B, 0x3061, 0x306F, 0
+ };
+ uint32_t *result = u32_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u32-strconv-to-enc.c b/tests/uniconv/test-u32-strconv-to-enc.c
new file mode 100644
index 0000000..eef3d04
--- /dev/null
+++ b/tests/uniconv/test-u32-strconv-to-enc.c
@@ -0,0 +1,108 @@
+/* Test of conversion from UTF-32 to legacy encodings.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from UTF-32 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint32_t input[] = /* Ärger mit bösen Bübchen ohne Augenmaß */
+ {
+ 0xC4, 'r', 'g', 'e', 'r', ' ', 'm', 'i', 't', ' ', 'b', 0xF6, 's',
+ 'e', 'n', ' ', 'B', 0xFC, 'b', 'c', 'h', 'e', 'n', ' ', 'o', 'h',
+ 'n', 'e', ' ', 'A', 'u', 'g', 'e', 'n', 'm', 'a', 0xDF, 0
+ };
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = u32_strconv_to_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-32 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint32_t input[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ char *result = u32_strconv_to_encoding (input, "ISO-8859-1", handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ static const char expected_translit[] = "Rafal Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0
+ || strcmp (result, expected_translit) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u8-conv-from-enc.c b/tests/uniconv/test-u8-conv-from-enc.c
new file mode 100644
index 0000000..0768be6
--- /dev/null
+++ b/tests/uniconv/test-u8-conv-from-enc.c
@@ -0,0 +1,218 @@
+/* Test of conversion to UTF-8 from legacy encodings.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const uint8_t expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint8_t *result = u8_conv_from_encoding ("ISO-8859-1", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == u8_strlen (expected));
+ ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 37; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i < 12 ? i + 1 :
+ i < 18 ? i + 2 :
+ i + 3));
+ ASSERT (offsets[37] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from ISO-8859-2 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint8_t *result = u8_conv_from_encoding ("ISO-8859-2", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == u8_strlen (expected));
+ ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i + 1));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__)
+ /* Test conversions from autodetect_jp to UTF-8. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint8_t *result = u8_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == u8_strlen (expected));
+ ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint8_t *result = u8_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == u8_strlen (expected));
+ ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 10; i++)
+ ASSERT (offsets[i] == ((i % 2) == 0 ? (i / 2) * 3 : (size_t)(-1)));
+ ASSERT (offsets[10] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (strlen (input)) : NULL);
+ size_t length;
+ uint8_t *result = u8_conv_from_encoding ("autodetect_jp", handler,
+ input, strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == u8_strlen (expected));
+ ASSERT (u8_cmp (result, expected, u8_strlen (expected)) == 0);
+ if (o)
+ {
+ for (i = 0; i < 16; i++)
+ ASSERT (offsets[i] == (i == 0 ? 0 :
+ i == 5 ? 3 :
+ i == 7 ? 6 :
+ i == 9 ? 9 :
+ i == 11 ? 12 :
+ i == 13 ? 15 :
+ (size_t)(-1)));
+ ASSERT (offsets[16] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u8-conv-to-enc.c b/tests/uniconv/test-u8-conv-to-enc.c
new file mode 100644
index 0000000..271fb05
--- /dev/null
+++ b/tests/uniconv/test-u8-conv-to-enc.c
@@ -0,0 +1,193 @@
+/* Test of conversion from UTF-8 to legacy encodings.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* Magic number for detecting bounds violations. */
+#define MAGIC 0x1983EFF1
+
+static size_t *
+new_offsets (size_t n)
+{
+ size_t *offsets = (size_t *) malloc ((n + 1) * sizeof (size_t));
+ offsets[n] = MAGIC;
+ return offsets;
+}
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+ size_t o;
+ size_t i;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint8_t input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (u8_strlen (input)) : NULL);
+ size_t length;
+ char *result = u8_conv_to_encoding ("ISO-8859-1", handler,
+ input, u8_strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 41; i++)
+ ASSERT (offsets[i] == (i < 1 ? i :
+ i == 1 ? (size_t)(-1) :
+ i < 13 ? i - 1 :
+ i == 13 ? (size_t)(-1) :
+ i < 20 ? i - 2 :
+ i == 20 ? (size_t)(-1) :
+ i < 40 ? i - 3 :
+ i == 40 ? (size_t)(-1) :
+ i - 4));
+ ASSERT (offsets[41] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint8_t input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (u8_strlen (input)) : NULL);
+ size_t length = 0xdead;
+ char *result = u8_conv_to_encoding ("ISO-8859-1", handler,
+ input, u8_strlen (input),
+ offsets,
+ NULL, &length);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL);
+ ASSERT (errno == EILSEQ);
+ ASSERT (length == 0xdead);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ static const char expected_translit[] = "Rafal Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0
+ || memcmp (result, expected_translit, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i - 1));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (expected));
+ ASSERT (memcmp (result, expected, length) == 0);
+ if (o)
+ {
+ for (i = 0; i < 17; i++)
+ ASSERT (offsets[i] == (i < 5 ? i :
+ i == 5 ? (size_t)(-1) :
+ i + 4));
+ ASSERT (offsets[17] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ break;
+ }
+ }
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint8_t input[] = "\342";
+ for (o = 0; o < 2; o++)
+ {
+ size_t *offsets = (o ? new_offsets (u8_strlen (input)) : NULL);
+ size_t length;
+ char *result = u8_conv_to_encoding ("ISO-8859-1", handler,
+ input, u8_strlen (input),
+ offsets,
+ NULL, &length);
+ ASSERT (result != NULL);
+ ASSERT (length == strlen (""));
+ if (o)
+ {
+ ASSERT (offsets[0] == 0);
+ ASSERT (offsets[1] == MAGIC);
+ free (offsets);
+ }
+ free (result);
+ }
+ }
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u8-strconv-from-enc.c b/tests/uniconv/test-u8-strconv-from-enc.c
new file mode 100644
index 0000000..7f70c29
--- /dev/null
+++ b/tests/uniconv/test-u8-strconv-from-enc.c
@@ -0,0 +1,114 @@
+/* Test of conversion to UTF-8 from legacy encodings.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ static const uint8_t expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ uint8_t *result = u8_strconv_from_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from ISO-8859-2 to UTF-8 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "Rafa\263 Maszkowski"; /* Rafał Maszkowski */
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski";
+ uint8_t *result = u8_strconv_from_encoding (input, "ISO-8859-2", handler);
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* autodetect_jp is only supported when iconv() support ISO-2022-JP-2. */
+# if defined _LIBICONV_VERSION || !(defined _AIX || defined __sgi || defined __hpux || defined __osf__)
+ /* Test conversions from autodetect_jp to UTF-8. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\244\263\244\363\244\313\244\301\244\317"; /* こんにちは in EUC-JP */
+ static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ uint8_t *result = u8_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\202\261\202\361\202\311\202\277\202\315"; /* こんにちは in Shift_JIS */
+ static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ uint8_t *result = u8_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const char input[] = "\033$B$3$s$K$A$O\033(B"; /* こんにちは in ISO-2022-JP-2 */
+ static const uint8_t expected[] = "\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257"; /* こんにちは */
+ uint8_t *result = u8_strconv_from_encoding (input, "autodetect_jp", handler);
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/uniconv/test-u8-strconv-to-enc.c b/tests/uniconv/test-u8-strconv-to-enc.c
new file mode 100644
index 0000000..73085b5
--- /dev/null
+++ b/tests/uniconv/test-u8-strconv-to-enc.c
@@ -0,0 +1,112 @@
+/* Test of conversion from UTF-8 to legacy encodings.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniconv.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static enum iconv_ilseq_handler handlers[] =
+ { iconveh_error, iconveh_question_mark, iconveh_escape_sequence };
+ size_t h;
+
+#if HAVE_ICONV
+ /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1,
+ ISO-8859-2, and UTF-8. */
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint8_t input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237";
+ static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char *result = u8_strconv_to_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint8_t input[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ char *result = u8_strconv_to_encoding (input, "ISO-8859-1", handler);
+ switch (handler)
+ {
+ case iconveh_error:
+ ASSERT (result == NULL && errno == EILSEQ);
+ break;
+ case iconveh_question_mark:
+ {
+ static const char expected[] = "Rafa? Maszkowski";
+ static const char expected_translit[] = "Rafal Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0
+ || strcmp (result, expected_translit) == 0);
+ free (result);
+ }
+ break;
+ case iconveh_escape_sequence:
+ {
+ static const char expected[] = "Rafa\\u0142 Maszkowski";
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, expected) == 0);
+ free (result);
+ }
+ break;
+ }
+ }
+
+# if 0
+ /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */
+ for (h = 0; h < SIZEOF (handlers); h++)
+ {
+ enum iconv_ilseq_handler handler = handlers[h];
+ static const uint8_t input[] = "\342";
+ char *result = u8_strconv_to_encoding (input, "ISO-8859-1", handler);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "") == 0);
+ free (result);
+ }
+# endif
+
+#endif
+
+ return 0;
+}
diff --git a/tests/unictype/test-bidi_byname.c b/tests/unictype/test-bidi_byname.c
new file mode 100644
index 0000000..5b1cfec
--- /dev/null
+++ b/tests/unictype/test-bidi_byname.c
@@ -0,0 +1,44 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (uc_bidi_category_byname ("NSM") == UC_BIDI_NSM);
+ ASSERT (uc_bidi_category_byname ("X") < 0);
+
+ return 0;
+}
diff --git a/tests/unictype/test-bidi_name.c b/tests/unictype/test-bidi_name.c
new file mode 100644
index 0000000..a444ec0
--- /dev/null
+++ b/tests/unictype/test-bidi_name.c
@@ -0,0 +1,44 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (strcmp (uc_bidi_category_name (UC_BIDI_NSM), "NSM") == 0);
+ ASSERT (uc_bidi_category_name (-1) == NULL);
+
+ return 0;
+}
diff --git a/tests/unictype/test-bidi_of.c b/tests/unictype/test-bidi_of.c
new file mode 100644
index 0000000..720e9f9
--- /dev/null
+++ b/tests/unictype/test-bidi_of.c
@@ -0,0 +1,45 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (uc_bidi_category ('x') == UC_BIDI_L);
+ ASSERT (uc_bidi_category (0x05D7) == UC_BIDI_R);
+ ASSERT (uc_bidi_category ('7') == UC_BIDI_EN);
+
+ return 0;
+}
diff --git a/tests/unictype/test-bidi_test.c b/tests/unictype/test-bidi_test.c
new file mode 100644
index 0000000..3404e72
--- /dev/null
+++ b/tests/unictype/test-bidi_test.c
@@ -0,0 +1,60 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (uc_is_bidi_category ('x', UC_BIDI_L));
+ ASSERT (!uc_is_bidi_category ('x', UC_BIDI_R));
+ ASSERT (!uc_is_bidi_category ('x', UC_BIDI_EN));
+
+ ASSERT (uc_is_bidi_category (0x05D7, UC_BIDI_R));
+ ASSERT (!uc_is_bidi_category (0x05D7, UC_BIDI_L));
+ ASSERT (!uc_is_bidi_category (0x05D7, UC_BIDI_EN));
+
+ ASSERT (uc_is_bidi_category ('7', UC_BIDI_EN));
+ ASSERT (!uc_is_bidi_category ('7', UC_BIDI_L));
+ ASSERT (!uc_is_bidi_category ('7', UC_BIDI_R));
+
+ {
+ unsigned int c;
+
+ for (c = 0; c < 0x110000; c++)
+ ASSERT (uc_is_bidi_category (c, uc_bidi_category (c)));
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-block_list.c b/tests/unictype/test-block_list.c
new file mode 100644
index 0000000..140b573
--- /dev/null
+++ b/tests/unictype/test-block_list.c
@@ -0,0 +1,62 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ const uc_block_t *blocks;
+ size_t nblocks;
+
+ uc_all_blocks (&blocks, &nblocks);
+
+ {
+ const uc_block_t *latin_block = NULL;
+ const uc_block_t *hebrew_block = NULL;
+ size_t i;
+
+ for (i = 0; i < nblocks; i++)
+ {
+ if (strcmp (blocks[i].name, "Latin") == 0)
+ latin_block = &blocks[i];
+ if (strcmp (blocks[i].name, "Hebrew") == 0)
+ hebrew_block = &blocks[i];
+ }
+ ASSERT (latin_block == NULL);
+ ASSERT (hebrew_block != NULL);
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-block_of.c b/tests/unictype/test-block_of.c
new file mode 100644
index 0000000..9460cde
--- /dev/null
+++ b/tests/unictype/test-block_of.c
@@ -0,0 +1,79 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (strcmp (uc_block ('x')->name, "Basic Latin") == 0);
+ ASSERT (strcmp (uc_block (0x20AC)->name, "Currency Symbols") == 0);
+
+ {
+ unsigned int c;
+
+ for (c = 0; c < 0x110000; c++)
+ {
+ const uc_block_t *block = uc_block (c);
+ ASSERT (block == NULL || uc_is_block (c, block));
+ }
+ }
+
+ {
+ const uc_block_t *blocks;
+ size_t nblocks;
+ size_t i;
+
+ uc_all_blocks (&blocks, &nblocks);
+
+ for (i = 0; i < nblocks; i++)
+ {
+ if (strcmp (blocks[i].name, "Hebrew") == 0)
+ {
+ ASSERT (uc_block (0x05DE) == &blocks[i]);
+ ASSERT (uc_is_block (0x05DE, &blocks[i]));
+ }
+ }
+
+ for (i = 0; i < nblocks; i++)
+ {
+ unsigned int c;
+
+ for (c = blocks[i].start; c <= blocks[i].end; c++)
+ ASSERT (uc_block (c) == &blocks[i]);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-block_test.c b/tests/unictype/test-block_test.c
new file mode 100644
index 0000000..b086cde
--- /dev/null
+++ b/tests/unictype/test-block_test.c
@@ -0,0 +1,54 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uc_block_t b;
+
+ b.start = 0x20000;
+ b.end = 0x2A6D6;
+ b.name = "CJK Supplemental Area";
+
+ ASSERT (!uc_is_block (0x5678, &b));
+ ASSERT (!uc_is_block (0x1FFFF, &b));
+ ASSERT (uc_is_block (0x20000, &b));
+ ASSERT (uc_is_block (0x25678, &b));
+ ASSERT (uc_is_block (0x2A6D6, &b));
+ ASSERT (!uc_is_block (0x2A6D7, &b));
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_C.c b/tests/unictype/test-categ_C.c
new file mode 100644
index 0000000..e057af8
--- /dev/null
+++ b/tests/unictype/test-categ_C.c
@@ -0,0 +1,469 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0000, 0x001F },
+ { 0x007F, 0x009F },
+ { 0x00AD, 0x00AD },
+ { 0x0378, 0x0379 },
+ { 0x037F, 0x0383 },
+ { 0x038B, 0x038B },
+ { 0x038D, 0x038D },
+ { 0x03A2, 0x03A2 },
+ { 0x0524, 0x0530 },
+ { 0x0557, 0x0558 },
+ { 0x0560, 0x0560 },
+ { 0x0588, 0x0588 },
+ { 0x058B, 0x0590 },
+ { 0x05C8, 0x05CF },
+ { 0x05EB, 0x05EF },
+ { 0x05F5, 0x0605 },
+ { 0x061C, 0x061D },
+ { 0x0620, 0x0620 },
+ { 0x065F, 0x065F },
+ { 0x06DD, 0x06DD },
+ { 0x070E, 0x070F },
+ { 0x074B, 0x074C },
+ { 0x07B2, 0x07BF },
+ { 0x07FB, 0x0900 },
+ { 0x093A, 0x093B },
+ { 0x094E, 0x094F },
+ { 0x0955, 0x0957 },
+ { 0x0973, 0x097A },
+ { 0x0980, 0x0980 },
+ { 0x0984, 0x0984 },
+ { 0x098D, 0x098E },
+ { 0x0991, 0x0992 },
+ { 0x09A9, 0x09A9 },
+ { 0x09B1, 0x09B1 },
+ { 0x09B3, 0x09B5 },
+ { 0x09BA, 0x09BB },
+ { 0x09C5, 0x09C6 },
+ { 0x09C9, 0x09CA },
+ { 0x09CF, 0x09D6 },
+ { 0x09D8, 0x09DB },
+ { 0x09DE, 0x09DE },
+ { 0x09E4, 0x09E5 },
+ { 0x09FB, 0x0A00 },
+ { 0x0A04, 0x0A04 },
+ { 0x0A0B, 0x0A0E },
+ { 0x0A11, 0x0A12 },
+ { 0x0A29, 0x0A29 },
+ { 0x0A31, 0x0A31 },
+ { 0x0A34, 0x0A34 },
+ { 0x0A37, 0x0A37 },
+ { 0x0A3A, 0x0A3B },
+ { 0x0A3D, 0x0A3D },
+ { 0x0A43, 0x0A46 },
+ { 0x0A49, 0x0A4A },
+ { 0x0A4E, 0x0A50 },
+ { 0x0A52, 0x0A58 },
+ { 0x0A5D, 0x0A5D },
+ { 0x0A5F, 0x0A65 },
+ { 0x0A76, 0x0A80 },
+ { 0x0A84, 0x0A84 },
+ { 0x0A8E, 0x0A8E },
+ { 0x0A92, 0x0A92 },
+ { 0x0AA9, 0x0AA9 },
+ { 0x0AB1, 0x0AB1 },
+ { 0x0AB4, 0x0AB4 },
+ { 0x0ABA, 0x0ABB },
+ { 0x0AC6, 0x0AC6 },
+ { 0x0ACA, 0x0ACA },
+ { 0x0ACE, 0x0ACF },
+ { 0x0AD1, 0x0ADF },
+ { 0x0AE4, 0x0AE5 },
+ { 0x0AF0, 0x0AF0 },
+ { 0x0AF2, 0x0B00 },
+ { 0x0B04, 0x0B04 },
+ { 0x0B0D, 0x0B0E },
+ { 0x0B11, 0x0B12 },
+ { 0x0B29, 0x0B29 },
+ { 0x0B31, 0x0B31 },
+ { 0x0B34, 0x0B34 },
+ { 0x0B3A, 0x0B3B },
+ { 0x0B45, 0x0B46 },
+ { 0x0B49, 0x0B4A },
+ { 0x0B4E, 0x0B55 },
+ { 0x0B58, 0x0B5B },
+ { 0x0B5E, 0x0B5E },
+ { 0x0B64, 0x0B65 },
+ { 0x0B72, 0x0B81 },
+ { 0x0B84, 0x0B84 },
+ { 0x0B8B, 0x0B8D },
+ { 0x0B91, 0x0B91 },
+ { 0x0B96, 0x0B98 },
+ { 0x0B9B, 0x0B9B },
+ { 0x0B9D, 0x0B9D },
+ { 0x0BA0, 0x0BA2 },
+ { 0x0BA5, 0x0BA7 },
+ { 0x0BAB, 0x0BAD },
+ { 0x0BBA, 0x0BBD },
+ { 0x0BC3, 0x0BC5 },
+ { 0x0BC9, 0x0BC9 },
+ { 0x0BCE, 0x0BCF },
+ { 0x0BD1, 0x0BD6 },
+ { 0x0BD8, 0x0BE5 },
+ { 0x0BFB, 0x0C00 },
+ { 0x0C04, 0x0C04 },
+ { 0x0C0D, 0x0C0D },
+ { 0x0C11, 0x0C11 },
+ { 0x0C29, 0x0C29 },
+ { 0x0C34, 0x0C34 },
+ { 0x0C3A, 0x0C3C },
+ { 0x0C45, 0x0C45 },
+ { 0x0C49, 0x0C49 },
+ { 0x0C4E, 0x0C54 },
+ { 0x0C57, 0x0C57 },
+ { 0x0C5A, 0x0C5F },
+ { 0x0C64, 0x0C65 },
+ { 0x0C70, 0x0C77 },
+ { 0x0C80, 0x0C81 },
+ { 0x0C84, 0x0C84 },
+ { 0x0C8D, 0x0C8D },
+ { 0x0C91, 0x0C91 },
+ { 0x0CA9, 0x0CA9 },
+ { 0x0CB4, 0x0CB4 },
+ { 0x0CBA, 0x0CBB },
+ { 0x0CC5, 0x0CC5 },
+ { 0x0CC9, 0x0CC9 },
+ { 0x0CCE, 0x0CD4 },
+ { 0x0CD7, 0x0CDD },
+ { 0x0CDF, 0x0CDF },
+ { 0x0CE4, 0x0CE5 },
+ { 0x0CF0, 0x0CF0 },
+ { 0x0CF3, 0x0D01 },
+ { 0x0D04, 0x0D04 },
+ { 0x0D0D, 0x0D0D },
+ { 0x0D11, 0x0D11 },
+ { 0x0D29, 0x0D29 },
+ { 0x0D3A, 0x0D3C },
+ { 0x0D45, 0x0D45 },
+ { 0x0D49, 0x0D49 },
+ { 0x0D4E, 0x0D56 },
+ { 0x0D58, 0x0D5F },
+ { 0x0D64, 0x0D65 },
+ { 0x0D76, 0x0D78 },
+ { 0x0D80, 0x0D81 },
+ { 0x0D84, 0x0D84 },
+ { 0x0D97, 0x0D99 },
+ { 0x0DB2, 0x0DB2 },
+ { 0x0DBC, 0x0DBC },
+ { 0x0DBE, 0x0DBF },
+ { 0x0DC7, 0x0DC9 },
+ { 0x0DCB, 0x0DCE },
+ { 0x0DD5, 0x0DD5 },
+ { 0x0DD7, 0x0DD7 },
+ { 0x0DE0, 0x0DF1 },
+ { 0x0DF5, 0x0E00 },
+ { 0x0E3B, 0x0E3E },
+ { 0x0E5C, 0x0E80 },
+ { 0x0E83, 0x0E83 },
+ { 0x0E85, 0x0E86 },
+ { 0x0E89, 0x0E89 },
+ { 0x0E8B, 0x0E8C },
+ { 0x0E8E, 0x0E93 },
+ { 0x0E98, 0x0E98 },
+ { 0x0EA0, 0x0EA0 },
+ { 0x0EA4, 0x0EA4 },
+ { 0x0EA6, 0x0EA6 },
+ { 0x0EA8, 0x0EA9 },
+ { 0x0EAC, 0x0EAC },
+ { 0x0EBA, 0x0EBA },
+ { 0x0EBE, 0x0EBF },
+ { 0x0EC5, 0x0EC5 },
+ { 0x0EC7, 0x0EC7 },
+ { 0x0ECE, 0x0ECF },
+ { 0x0EDA, 0x0EDB },
+ { 0x0EDE, 0x0EFF },
+ { 0x0F48, 0x0F48 },
+ { 0x0F6D, 0x0F70 },
+ { 0x0F8C, 0x0F8F },
+ { 0x0F98, 0x0F98 },
+ { 0x0FBD, 0x0FBD },
+ { 0x0FCD, 0x0FCD },
+ { 0x0FD5, 0x0FFF },
+ { 0x109A, 0x109D },
+ { 0x10C6, 0x10CF },
+ { 0x10FD, 0x10FF },
+ { 0x115A, 0x115E },
+ { 0x11A3, 0x11A7 },
+ { 0x11FA, 0x11FF },
+ { 0x1249, 0x1249 },
+ { 0x124E, 0x124F },
+ { 0x1257, 0x1257 },
+ { 0x1259, 0x1259 },
+ { 0x125E, 0x125F },
+ { 0x1289, 0x1289 },
+ { 0x128E, 0x128F },
+ { 0x12B1, 0x12B1 },
+ { 0x12B6, 0x12B7 },
+ { 0x12BF, 0x12BF },
+ { 0x12C1, 0x12C1 },
+ { 0x12C6, 0x12C7 },
+ { 0x12D7, 0x12D7 },
+ { 0x1311, 0x1311 },
+ { 0x1316, 0x1317 },
+ { 0x135B, 0x135E },
+ { 0x137D, 0x137F },
+ { 0x139A, 0x139F },
+ { 0x13F5, 0x1400 },
+ { 0x1677, 0x167F },
+ { 0x169D, 0x169F },
+ { 0x16F1, 0x16FF },
+ { 0x170D, 0x170D },
+ { 0x1715, 0x171F },
+ { 0x1737, 0x173F },
+ { 0x1754, 0x175F },
+ { 0x176D, 0x176D },
+ { 0x1771, 0x1771 },
+ { 0x1774, 0x177F },
+ { 0x17B4, 0x17B5 },
+ { 0x17DE, 0x17DF },
+ { 0x17EA, 0x17EF },
+ { 0x17FA, 0x17FF },
+ { 0x180F, 0x180F },
+ { 0x181A, 0x181F },
+ { 0x1878, 0x187F },
+ { 0x18AB, 0x18FF },
+ { 0x191D, 0x191F },
+ { 0x192C, 0x192F },
+ { 0x193C, 0x193F },
+ { 0x1941, 0x1943 },
+ { 0x196E, 0x196F },
+ { 0x1975, 0x197F },
+ { 0x19AA, 0x19AF },
+ { 0x19CA, 0x19CF },
+ { 0x19DA, 0x19DD },
+ { 0x1A1C, 0x1A1D },
+ { 0x1A20, 0x1AFF },
+ { 0x1B4C, 0x1B4F },
+ { 0x1B7D, 0x1B7F },
+ { 0x1BAB, 0x1BAD },
+ { 0x1BBA, 0x1BFF },
+ { 0x1C38, 0x1C3A },
+ { 0x1C4A, 0x1C4C },
+ { 0x1C80, 0x1CFF },
+ { 0x1DE7, 0x1DFD },
+ { 0x1F16, 0x1F17 },
+ { 0x1F1E, 0x1F1F },
+ { 0x1F46, 0x1F47 },
+ { 0x1F4E, 0x1F4F },
+ { 0x1F58, 0x1F58 },
+ { 0x1F5A, 0x1F5A },
+ { 0x1F5C, 0x1F5C },
+ { 0x1F5E, 0x1F5E },
+ { 0x1F7E, 0x1F7F },
+ { 0x1FB5, 0x1FB5 },
+ { 0x1FC5, 0x1FC5 },
+ { 0x1FD4, 0x1FD5 },
+ { 0x1FDC, 0x1FDC },
+ { 0x1FF0, 0x1FF1 },
+ { 0x1FF5, 0x1FF5 },
+ { 0x1FFF, 0x1FFF },
+ { 0x200B, 0x200F },
+ { 0x202A, 0x202E },
+ { 0x2060, 0x206F },
+ { 0x2072, 0x2073 },
+ { 0x208F, 0x208F },
+ { 0x2095, 0x209F },
+ { 0x20B6, 0x20CF },
+ { 0x20F1, 0x20FF },
+ { 0x2150, 0x2152 },
+ { 0x2189, 0x218F },
+ { 0x23E8, 0x23FF },
+ { 0x2427, 0x243F },
+ { 0x244B, 0x245F },
+ { 0x269E, 0x269F },
+ { 0x26BD, 0x26BF },
+ { 0x26C4, 0x2700 },
+ { 0x2705, 0x2705 },
+ { 0x270A, 0x270B },
+ { 0x2728, 0x2728 },
+ { 0x274C, 0x274C },
+ { 0x274E, 0x274E },
+ { 0x2753, 0x2755 },
+ { 0x2757, 0x2757 },
+ { 0x275F, 0x2760 },
+ { 0x2795, 0x2797 },
+ { 0x27B0, 0x27B0 },
+ { 0x27BF, 0x27BF },
+ { 0x27CB, 0x27CB },
+ { 0x27CD, 0x27CF },
+ { 0x2B4D, 0x2B4F },
+ { 0x2B55, 0x2BFF },
+ { 0x2C2F, 0x2C2F },
+ { 0x2C5F, 0x2C5F },
+ { 0x2C70, 0x2C70 },
+ { 0x2C7E, 0x2C7F },
+ { 0x2CEB, 0x2CF8 },
+ { 0x2D26, 0x2D2F },
+ { 0x2D66, 0x2D6E },
+ { 0x2D70, 0x2D7F },
+ { 0x2D97, 0x2D9F },
+ { 0x2DA7, 0x2DA7 },
+ { 0x2DAF, 0x2DAF },
+ { 0x2DB7, 0x2DB7 },
+ { 0x2DBF, 0x2DBF },
+ { 0x2DC7, 0x2DC7 },
+ { 0x2DCF, 0x2DCF },
+ { 0x2DD7, 0x2DD7 },
+ { 0x2DDF, 0x2DDF },
+ { 0x2E31, 0x2E7F },
+ { 0x2E9A, 0x2E9A },
+ { 0x2EF4, 0x2EFF },
+ { 0x2FD6, 0x2FEF },
+ { 0x2FFC, 0x2FFF },
+ { 0x3040, 0x3040 },
+ { 0x3097, 0x3098 },
+ { 0x3100, 0x3104 },
+ { 0x312E, 0x3130 },
+ { 0x318F, 0x318F },
+ { 0x31B8, 0x31BF },
+ { 0x31E4, 0x31EF },
+ { 0x321F, 0x321F },
+ { 0x3244, 0x324F },
+ { 0x32FF, 0x32FF },
+ { 0x4DB6, 0x4DBF },
+ { 0x9FC4, 0x9FFF },
+ { 0xA48D, 0xA48F },
+ { 0xA4C7, 0xA4FF },
+ { 0xA62C, 0xA63F },
+ { 0xA660, 0xA661 },
+ { 0xA674, 0xA67B },
+ { 0xA698, 0xA6FF },
+ { 0xA78D, 0xA7FA },
+ { 0xA82C, 0xA83F },
+ { 0xA878, 0xA87F },
+ { 0xA8C5, 0xA8CD },
+ { 0xA8DA, 0xA8FF },
+ { 0xA954, 0xA95E },
+ { 0xA960, 0xA9FF },
+ { 0xAA37, 0xAA3F },
+ { 0xAA4E, 0xAA4F },
+ { 0xAA5A, 0xAA5B },
+ { 0xAA60, 0xABFF },
+ { 0xD7A4, 0xF8FF },
+ { 0xFA2E, 0xFA2F },
+ { 0xFA6B, 0xFA6F },
+ { 0xFADA, 0xFAFF },
+ { 0xFB07, 0xFB12 },
+ { 0xFB18, 0xFB1C },
+ { 0xFB37, 0xFB37 },
+ { 0xFB3D, 0xFB3D },
+ { 0xFB3F, 0xFB3F },
+ { 0xFB42, 0xFB42 },
+ { 0xFB45, 0xFB45 },
+ { 0xFBB2, 0xFBD2 },
+ { 0xFD40, 0xFD4F },
+ { 0xFD90, 0xFD91 },
+ { 0xFDC8, 0xFDEF },
+ { 0xFDFE, 0xFDFF },
+ { 0xFE1A, 0xFE1F },
+ { 0xFE27, 0xFE2F },
+ { 0xFE53, 0xFE53 },
+ { 0xFE67, 0xFE67 },
+ { 0xFE6C, 0xFE6F },
+ { 0xFE75, 0xFE75 },
+ { 0xFEFD, 0xFF00 },
+ { 0xFFBF, 0xFFC1 },
+ { 0xFFC8, 0xFFC9 },
+ { 0xFFD0, 0xFFD1 },
+ { 0xFFD8, 0xFFD9 },
+ { 0xFFDD, 0xFFDF },
+ { 0xFFE7, 0xFFE7 },
+ { 0xFFEF, 0xFFFB },
+ { 0xFFFE, 0xFFFF },
+ { 0x1000C, 0x1000C },
+ { 0x10027, 0x10027 },
+ { 0x1003B, 0x1003B },
+ { 0x1003E, 0x1003E },
+ { 0x1004E, 0x1004F },
+ { 0x1005E, 0x1007F },
+ { 0x100FB, 0x100FF },
+ { 0x10103, 0x10106 },
+ { 0x10134, 0x10136 },
+ { 0x1018B, 0x1018F },
+ { 0x1019C, 0x101CF },
+ { 0x101FE, 0x1027F },
+ { 0x1029D, 0x1029F },
+ { 0x102D1, 0x102FF },
+ { 0x1031F, 0x1031F },
+ { 0x10324, 0x1032F },
+ { 0x1034B, 0x1037F },
+ { 0x1039E, 0x1039E },
+ { 0x103C4, 0x103C7 },
+ { 0x103D6, 0x103FF },
+ { 0x1049E, 0x1049F },
+ { 0x104AA, 0x107FF },
+ { 0x10806, 0x10807 },
+ { 0x10809, 0x10809 },
+ { 0x10836, 0x10836 },
+ { 0x10839, 0x1083B },
+ { 0x1083D, 0x1083E },
+ { 0x10840, 0x108FF },
+ { 0x1091A, 0x1091E },
+ { 0x1093A, 0x1093E },
+ { 0x10940, 0x109FF },
+ { 0x10A04, 0x10A04 },
+ { 0x10A07, 0x10A0B },
+ { 0x10A14, 0x10A14 },
+ { 0x10A18, 0x10A18 },
+ { 0x10A34, 0x10A37 },
+ { 0x10A3B, 0x10A3E },
+ { 0x10A48, 0x10A4F },
+ { 0x10A59, 0x11FFF },
+ { 0x1236F, 0x123FF },
+ { 0x12463, 0x1246F },
+ { 0x12474, 0x1CFFF },
+ { 0x1D0F6, 0x1D0FF },
+ { 0x1D127, 0x1D128 },
+ { 0x1D173, 0x1D17A },
+ { 0x1D1DE, 0x1D1FF },
+ { 0x1D246, 0x1D2FF },
+ { 0x1D357, 0x1D35F },
+ { 0x1D372, 0x1D3FF },
+ { 0x1D455, 0x1D455 },
+ { 0x1D49D, 0x1D49D },
+ { 0x1D4A0, 0x1D4A1 },
+ { 0x1D4A3, 0x1D4A4 },
+ { 0x1D4A7, 0x1D4A8 },
+ { 0x1D4AD, 0x1D4AD },
+ { 0x1D4BA, 0x1D4BA },
+ { 0x1D4BC, 0x1D4BC },
+ { 0x1D4C4, 0x1D4C4 },
+ { 0x1D506, 0x1D506 },
+ { 0x1D50B, 0x1D50C },
+ { 0x1D515, 0x1D515 },
+ { 0x1D51D, 0x1D51D },
+ { 0x1D53A, 0x1D53A },
+ { 0x1D53F, 0x1D53F },
+ { 0x1D545, 0x1D545 },
+ { 0x1D547, 0x1D549 },
+ { 0x1D551, 0x1D551 },
+ { 0x1D6A6, 0x1D6A7 },
+ { 0x1D7CC, 0x1D7CD },
+ { 0x1D800, 0x1EFFF },
+ { 0x1F02C, 0x1F02F },
+ { 0x1F094, 0x1FFFF },
+ { 0x2A6D7, 0x2F7FF },
+ { 0x2FA1E, 0xE00FF },
+ { 0xE01F0, 0x10FFFF }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_C)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Cc.c b/tests/unictype/test-categ_Cc.c
new file mode 100644
index 0000000..9740dd4
--- /dev/null
+++ b/tests/unictype/test-categ_Cc.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0000, 0x001F },
+ { 0x007F, 0x009F }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Cc)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Cf.c b/tests/unictype/test-categ_Cf.c
new file mode 100644
index 0000000..bcaf2f2
--- /dev/null
+++ b/tests/unictype/test-categ_Cf.c
@@ -0,0 +1,36 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00AD, 0x00AD },
+ { 0x0600, 0x0603 },
+ { 0x06DD, 0x06DD },
+ { 0x070F, 0x070F },
+ { 0x17B4, 0x17B5 },
+ { 0x200B, 0x200F },
+ { 0x202A, 0x202E },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x206F },
+ { 0xFEFF, 0xFEFF },
+ { 0xFFF9, 0xFFFB },
+ { 0x1D173, 0x1D17A },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Cf)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Cn.c b/tests/unictype/test-categ_Cn.c
new file mode 100644
index 0000000..5430ea2
--- /dev/null
+++ b/tests/unictype/test-categ_Cn.c
@@ -0,0 +1,467 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0378, 0x0379 },
+ { 0x037F, 0x0383 },
+ { 0x038B, 0x038B },
+ { 0x038D, 0x038D },
+ { 0x03A2, 0x03A2 },
+ { 0x0524, 0x0530 },
+ { 0x0557, 0x0558 },
+ { 0x0560, 0x0560 },
+ { 0x0588, 0x0588 },
+ { 0x058B, 0x0590 },
+ { 0x05C8, 0x05CF },
+ { 0x05EB, 0x05EF },
+ { 0x05F5, 0x05FF },
+ { 0x0604, 0x0605 },
+ { 0x061C, 0x061D },
+ { 0x0620, 0x0620 },
+ { 0x065F, 0x065F },
+ { 0x070E, 0x070E },
+ { 0x074B, 0x074C },
+ { 0x07B2, 0x07BF },
+ { 0x07FB, 0x0900 },
+ { 0x093A, 0x093B },
+ { 0x094E, 0x094F },
+ { 0x0955, 0x0957 },
+ { 0x0973, 0x097A },
+ { 0x0980, 0x0980 },
+ { 0x0984, 0x0984 },
+ { 0x098D, 0x098E },
+ { 0x0991, 0x0992 },
+ { 0x09A9, 0x09A9 },
+ { 0x09B1, 0x09B1 },
+ { 0x09B3, 0x09B5 },
+ { 0x09BA, 0x09BB },
+ { 0x09C5, 0x09C6 },
+ { 0x09C9, 0x09CA },
+ { 0x09CF, 0x09D6 },
+ { 0x09D8, 0x09DB },
+ { 0x09DE, 0x09DE },
+ { 0x09E4, 0x09E5 },
+ { 0x09FB, 0x0A00 },
+ { 0x0A04, 0x0A04 },
+ { 0x0A0B, 0x0A0E },
+ { 0x0A11, 0x0A12 },
+ { 0x0A29, 0x0A29 },
+ { 0x0A31, 0x0A31 },
+ { 0x0A34, 0x0A34 },
+ { 0x0A37, 0x0A37 },
+ { 0x0A3A, 0x0A3B },
+ { 0x0A3D, 0x0A3D },
+ { 0x0A43, 0x0A46 },
+ { 0x0A49, 0x0A4A },
+ { 0x0A4E, 0x0A50 },
+ { 0x0A52, 0x0A58 },
+ { 0x0A5D, 0x0A5D },
+ { 0x0A5F, 0x0A65 },
+ { 0x0A76, 0x0A80 },
+ { 0x0A84, 0x0A84 },
+ { 0x0A8E, 0x0A8E },
+ { 0x0A92, 0x0A92 },
+ { 0x0AA9, 0x0AA9 },
+ { 0x0AB1, 0x0AB1 },
+ { 0x0AB4, 0x0AB4 },
+ { 0x0ABA, 0x0ABB },
+ { 0x0AC6, 0x0AC6 },
+ { 0x0ACA, 0x0ACA },
+ { 0x0ACE, 0x0ACF },
+ { 0x0AD1, 0x0ADF },
+ { 0x0AE4, 0x0AE5 },
+ { 0x0AF0, 0x0AF0 },
+ { 0x0AF2, 0x0B00 },
+ { 0x0B04, 0x0B04 },
+ { 0x0B0D, 0x0B0E },
+ { 0x0B11, 0x0B12 },
+ { 0x0B29, 0x0B29 },
+ { 0x0B31, 0x0B31 },
+ { 0x0B34, 0x0B34 },
+ { 0x0B3A, 0x0B3B },
+ { 0x0B45, 0x0B46 },
+ { 0x0B49, 0x0B4A },
+ { 0x0B4E, 0x0B55 },
+ { 0x0B58, 0x0B5B },
+ { 0x0B5E, 0x0B5E },
+ { 0x0B64, 0x0B65 },
+ { 0x0B72, 0x0B81 },
+ { 0x0B84, 0x0B84 },
+ { 0x0B8B, 0x0B8D },
+ { 0x0B91, 0x0B91 },
+ { 0x0B96, 0x0B98 },
+ { 0x0B9B, 0x0B9B },
+ { 0x0B9D, 0x0B9D },
+ { 0x0BA0, 0x0BA2 },
+ { 0x0BA5, 0x0BA7 },
+ { 0x0BAB, 0x0BAD },
+ { 0x0BBA, 0x0BBD },
+ { 0x0BC3, 0x0BC5 },
+ { 0x0BC9, 0x0BC9 },
+ { 0x0BCE, 0x0BCF },
+ { 0x0BD1, 0x0BD6 },
+ { 0x0BD8, 0x0BE5 },
+ { 0x0BFB, 0x0C00 },
+ { 0x0C04, 0x0C04 },
+ { 0x0C0D, 0x0C0D },
+ { 0x0C11, 0x0C11 },
+ { 0x0C29, 0x0C29 },
+ { 0x0C34, 0x0C34 },
+ { 0x0C3A, 0x0C3C },
+ { 0x0C45, 0x0C45 },
+ { 0x0C49, 0x0C49 },
+ { 0x0C4E, 0x0C54 },
+ { 0x0C57, 0x0C57 },
+ { 0x0C5A, 0x0C5F },
+ { 0x0C64, 0x0C65 },
+ { 0x0C70, 0x0C77 },
+ { 0x0C80, 0x0C81 },
+ { 0x0C84, 0x0C84 },
+ { 0x0C8D, 0x0C8D },
+ { 0x0C91, 0x0C91 },
+ { 0x0CA9, 0x0CA9 },
+ { 0x0CB4, 0x0CB4 },
+ { 0x0CBA, 0x0CBB },
+ { 0x0CC5, 0x0CC5 },
+ { 0x0CC9, 0x0CC9 },
+ { 0x0CCE, 0x0CD4 },
+ { 0x0CD7, 0x0CDD },
+ { 0x0CDF, 0x0CDF },
+ { 0x0CE4, 0x0CE5 },
+ { 0x0CF0, 0x0CF0 },
+ { 0x0CF3, 0x0D01 },
+ { 0x0D04, 0x0D04 },
+ { 0x0D0D, 0x0D0D },
+ { 0x0D11, 0x0D11 },
+ { 0x0D29, 0x0D29 },
+ { 0x0D3A, 0x0D3C },
+ { 0x0D45, 0x0D45 },
+ { 0x0D49, 0x0D49 },
+ { 0x0D4E, 0x0D56 },
+ { 0x0D58, 0x0D5F },
+ { 0x0D64, 0x0D65 },
+ { 0x0D76, 0x0D78 },
+ { 0x0D80, 0x0D81 },
+ { 0x0D84, 0x0D84 },
+ { 0x0D97, 0x0D99 },
+ { 0x0DB2, 0x0DB2 },
+ { 0x0DBC, 0x0DBC },
+ { 0x0DBE, 0x0DBF },
+ { 0x0DC7, 0x0DC9 },
+ { 0x0DCB, 0x0DCE },
+ { 0x0DD5, 0x0DD5 },
+ { 0x0DD7, 0x0DD7 },
+ { 0x0DE0, 0x0DF1 },
+ { 0x0DF5, 0x0E00 },
+ { 0x0E3B, 0x0E3E },
+ { 0x0E5C, 0x0E80 },
+ { 0x0E83, 0x0E83 },
+ { 0x0E85, 0x0E86 },
+ { 0x0E89, 0x0E89 },
+ { 0x0E8B, 0x0E8C },
+ { 0x0E8E, 0x0E93 },
+ { 0x0E98, 0x0E98 },
+ { 0x0EA0, 0x0EA0 },
+ { 0x0EA4, 0x0EA4 },
+ { 0x0EA6, 0x0EA6 },
+ { 0x0EA8, 0x0EA9 },
+ { 0x0EAC, 0x0EAC },
+ { 0x0EBA, 0x0EBA },
+ { 0x0EBE, 0x0EBF },
+ { 0x0EC5, 0x0EC5 },
+ { 0x0EC7, 0x0EC7 },
+ { 0x0ECE, 0x0ECF },
+ { 0x0EDA, 0x0EDB },
+ { 0x0EDE, 0x0EFF },
+ { 0x0F48, 0x0F48 },
+ { 0x0F6D, 0x0F70 },
+ { 0x0F8C, 0x0F8F },
+ { 0x0F98, 0x0F98 },
+ { 0x0FBD, 0x0FBD },
+ { 0x0FCD, 0x0FCD },
+ { 0x0FD5, 0x0FFF },
+ { 0x109A, 0x109D },
+ { 0x10C6, 0x10CF },
+ { 0x10FD, 0x10FF },
+ { 0x115A, 0x115E },
+ { 0x11A3, 0x11A7 },
+ { 0x11FA, 0x11FF },
+ { 0x1249, 0x1249 },
+ { 0x124E, 0x124F },
+ { 0x1257, 0x1257 },
+ { 0x1259, 0x1259 },
+ { 0x125E, 0x125F },
+ { 0x1289, 0x1289 },
+ { 0x128E, 0x128F },
+ { 0x12B1, 0x12B1 },
+ { 0x12B6, 0x12B7 },
+ { 0x12BF, 0x12BF },
+ { 0x12C1, 0x12C1 },
+ { 0x12C6, 0x12C7 },
+ { 0x12D7, 0x12D7 },
+ { 0x1311, 0x1311 },
+ { 0x1316, 0x1317 },
+ { 0x135B, 0x135E },
+ { 0x137D, 0x137F },
+ { 0x139A, 0x139F },
+ { 0x13F5, 0x1400 },
+ { 0x1677, 0x167F },
+ { 0x169D, 0x169F },
+ { 0x16F1, 0x16FF },
+ { 0x170D, 0x170D },
+ { 0x1715, 0x171F },
+ { 0x1737, 0x173F },
+ { 0x1754, 0x175F },
+ { 0x176D, 0x176D },
+ { 0x1771, 0x1771 },
+ { 0x1774, 0x177F },
+ { 0x17DE, 0x17DF },
+ { 0x17EA, 0x17EF },
+ { 0x17FA, 0x17FF },
+ { 0x180F, 0x180F },
+ { 0x181A, 0x181F },
+ { 0x1878, 0x187F },
+ { 0x18AB, 0x18FF },
+ { 0x191D, 0x191F },
+ { 0x192C, 0x192F },
+ { 0x193C, 0x193F },
+ { 0x1941, 0x1943 },
+ { 0x196E, 0x196F },
+ { 0x1975, 0x197F },
+ { 0x19AA, 0x19AF },
+ { 0x19CA, 0x19CF },
+ { 0x19DA, 0x19DD },
+ { 0x1A1C, 0x1A1D },
+ { 0x1A20, 0x1AFF },
+ { 0x1B4C, 0x1B4F },
+ { 0x1B7D, 0x1B7F },
+ { 0x1BAB, 0x1BAD },
+ { 0x1BBA, 0x1BFF },
+ { 0x1C38, 0x1C3A },
+ { 0x1C4A, 0x1C4C },
+ { 0x1C80, 0x1CFF },
+ { 0x1DE7, 0x1DFD },
+ { 0x1F16, 0x1F17 },
+ { 0x1F1E, 0x1F1F },
+ { 0x1F46, 0x1F47 },
+ { 0x1F4E, 0x1F4F },
+ { 0x1F58, 0x1F58 },
+ { 0x1F5A, 0x1F5A },
+ { 0x1F5C, 0x1F5C },
+ { 0x1F5E, 0x1F5E },
+ { 0x1F7E, 0x1F7F },
+ { 0x1FB5, 0x1FB5 },
+ { 0x1FC5, 0x1FC5 },
+ { 0x1FD4, 0x1FD5 },
+ { 0x1FDC, 0x1FDC },
+ { 0x1FF0, 0x1FF1 },
+ { 0x1FF5, 0x1FF5 },
+ { 0x1FFF, 0x1FFF },
+ { 0x2065, 0x2069 },
+ { 0x2072, 0x2073 },
+ { 0x208F, 0x208F },
+ { 0x2095, 0x209F },
+ { 0x20B6, 0x20CF },
+ { 0x20F1, 0x20FF },
+ { 0x2150, 0x2152 },
+ { 0x2189, 0x218F },
+ { 0x23E8, 0x23FF },
+ { 0x2427, 0x243F },
+ { 0x244B, 0x245F },
+ { 0x269E, 0x269F },
+ { 0x26BD, 0x26BF },
+ { 0x26C4, 0x2700 },
+ { 0x2705, 0x2705 },
+ { 0x270A, 0x270B },
+ { 0x2728, 0x2728 },
+ { 0x274C, 0x274C },
+ { 0x274E, 0x274E },
+ { 0x2753, 0x2755 },
+ { 0x2757, 0x2757 },
+ { 0x275F, 0x2760 },
+ { 0x2795, 0x2797 },
+ { 0x27B0, 0x27B0 },
+ { 0x27BF, 0x27BF },
+ { 0x27CB, 0x27CB },
+ { 0x27CD, 0x27CF },
+ { 0x2B4D, 0x2B4F },
+ { 0x2B55, 0x2BFF },
+ { 0x2C2F, 0x2C2F },
+ { 0x2C5F, 0x2C5F },
+ { 0x2C70, 0x2C70 },
+ { 0x2C7E, 0x2C7F },
+ { 0x2CEB, 0x2CF8 },
+ { 0x2D26, 0x2D2F },
+ { 0x2D66, 0x2D6E },
+ { 0x2D70, 0x2D7F },
+ { 0x2D97, 0x2D9F },
+ { 0x2DA7, 0x2DA7 },
+ { 0x2DAF, 0x2DAF },
+ { 0x2DB7, 0x2DB7 },
+ { 0x2DBF, 0x2DBF },
+ { 0x2DC7, 0x2DC7 },
+ { 0x2DCF, 0x2DCF },
+ { 0x2DD7, 0x2DD7 },
+ { 0x2DDF, 0x2DDF },
+ { 0x2E31, 0x2E7F },
+ { 0x2E9A, 0x2E9A },
+ { 0x2EF4, 0x2EFF },
+ { 0x2FD6, 0x2FEF },
+ { 0x2FFC, 0x2FFF },
+ { 0x3040, 0x3040 },
+ { 0x3097, 0x3098 },
+ { 0x3100, 0x3104 },
+ { 0x312E, 0x3130 },
+ { 0x318F, 0x318F },
+ { 0x31B8, 0x31BF },
+ { 0x31E4, 0x31EF },
+ { 0x321F, 0x321F },
+ { 0x3244, 0x324F },
+ { 0x32FF, 0x32FF },
+ { 0x4DB6, 0x4DBF },
+ { 0x9FC4, 0x9FFF },
+ { 0xA48D, 0xA48F },
+ { 0xA4C7, 0xA4FF },
+ { 0xA62C, 0xA63F },
+ { 0xA660, 0xA661 },
+ { 0xA674, 0xA67B },
+ { 0xA698, 0xA6FF },
+ { 0xA78D, 0xA7FA },
+ { 0xA82C, 0xA83F },
+ { 0xA878, 0xA87F },
+ { 0xA8C5, 0xA8CD },
+ { 0xA8DA, 0xA8FF },
+ { 0xA954, 0xA95E },
+ { 0xA960, 0xA9FF },
+ { 0xAA37, 0xAA3F },
+ { 0xAA4E, 0xAA4F },
+ { 0xAA5A, 0xAA5B },
+ { 0xAA60, 0xABFF },
+ { 0xD7A4, 0xD7FF },
+ { 0xFA2E, 0xFA2F },
+ { 0xFA6B, 0xFA6F },
+ { 0xFADA, 0xFAFF },
+ { 0xFB07, 0xFB12 },
+ { 0xFB18, 0xFB1C },
+ { 0xFB37, 0xFB37 },
+ { 0xFB3D, 0xFB3D },
+ { 0xFB3F, 0xFB3F },
+ { 0xFB42, 0xFB42 },
+ { 0xFB45, 0xFB45 },
+ { 0xFBB2, 0xFBD2 },
+ { 0xFD40, 0xFD4F },
+ { 0xFD90, 0xFD91 },
+ { 0xFDC8, 0xFDEF },
+ { 0xFDFE, 0xFDFF },
+ { 0xFE1A, 0xFE1F },
+ { 0xFE27, 0xFE2F },
+ { 0xFE53, 0xFE53 },
+ { 0xFE67, 0xFE67 },
+ { 0xFE6C, 0xFE6F },
+ { 0xFE75, 0xFE75 },
+ { 0xFEFD, 0xFEFE },
+ { 0xFF00, 0xFF00 },
+ { 0xFFBF, 0xFFC1 },
+ { 0xFFC8, 0xFFC9 },
+ { 0xFFD0, 0xFFD1 },
+ { 0xFFD8, 0xFFD9 },
+ { 0xFFDD, 0xFFDF },
+ { 0xFFE7, 0xFFE7 },
+ { 0xFFEF, 0xFFF8 },
+ { 0xFFFE, 0xFFFF },
+ { 0x1000C, 0x1000C },
+ { 0x10027, 0x10027 },
+ { 0x1003B, 0x1003B },
+ { 0x1003E, 0x1003E },
+ { 0x1004E, 0x1004F },
+ { 0x1005E, 0x1007F },
+ { 0x100FB, 0x100FF },
+ { 0x10103, 0x10106 },
+ { 0x10134, 0x10136 },
+ { 0x1018B, 0x1018F },
+ { 0x1019C, 0x101CF },
+ { 0x101FE, 0x1027F },
+ { 0x1029D, 0x1029F },
+ { 0x102D1, 0x102FF },
+ { 0x1031F, 0x1031F },
+ { 0x10324, 0x1032F },
+ { 0x1034B, 0x1037F },
+ { 0x1039E, 0x1039E },
+ { 0x103C4, 0x103C7 },
+ { 0x103D6, 0x103FF },
+ { 0x1049E, 0x1049F },
+ { 0x104AA, 0x107FF },
+ { 0x10806, 0x10807 },
+ { 0x10809, 0x10809 },
+ { 0x10836, 0x10836 },
+ { 0x10839, 0x1083B },
+ { 0x1083D, 0x1083E },
+ { 0x10840, 0x108FF },
+ { 0x1091A, 0x1091E },
+ { 0x1093A, 0x1093E },
+ { 0x10940, 0x109FF },
+ { 0x10A04, 0x10A04 },
+ { 0x10A07, 0x10A0B },
+ { 0x10A14, 0x10A14 },
+ { 0x10A18, 0x10A18 },
+ { 0x10A34, 0x10A37 },
+ { 0x10A3B, 0x10A3E },
+ { 0x10A48, 0x10A4F },
+ { 0x10A59, 0x11FFF },
+ { 0x1236F, 0x123FF },
+ { 0x12463, 0x1246F },
+ { 0x12474, 0x1CFFF },
+ { 0x1D0F6, 0x1D0FF },
+ { 0x1D127, 0x1D128 },
+ { 0x1D1DE, 0x1D1FF },
+ { 0x1D246, 0x1D2FF },
+ { 0x1D357, 0x1D35F },
+ { 0x1D372, 0x1D3FF },
+ { 0x1D455, 0x1D455 },
+ { 0x1D49D, 0x1D49D },
+ { 0x1D4A0, 0x1D4A1 },
+ { 0x1D4A3, 0x1D4A4 },
+ { 0x1D4A7, 0x1D4A8 },
+ { 0x1D4AD, 0x1D4AD },
+ { 0x1D4BA, 0x1D4BA },
+ { 0x1D4BC, 0x1D4BC },
+ { 0x1D4C4, 0x1D4C4 },
+ { 0x1D506, 0x1D506 },
+ { 0x1D50B, 0x1D50C },
+ { 0x1D515, 0x1D515 },
+ { 0x1D51D, 0x1D51D },
+ { 0x1D53A, 0x1D53A },
+ { 0x1D53F, 0x1D53F },
+ { 0x1D545, 0x1D545 },
+ { 0x1D547, 0x1D549 },
+ { 0x1D551, 0x1D551 },
+ { 0x1D6A6, 0x1D6A7 },
+ { 0x1D7CC, 0x1D7CD },
+ { 0x1D800, 0x1EFFF },
+ { 0x1F02C, 0x1F02F },
+ { 0x1F094, 0x1FFFF },
+ { 0x2A6D7, 0x2F7FF },
+ { 0x2FA1E, 0xE0000 },
+ { 0xE0002, 0xE001F },
+ { 0xE0080, 0xE00FF },
+ { 0xE01F0, 0xEFFFF },
+ { 0xFFFFE, 0xFFFFF },
+ { 0x10FFFE, 0x10FFFF }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Cn)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Co.c b/tests/unictype/test-categ_Co.c
new file mode 100644
index 0000000..f524db4
--- /dev/null
+++ b/tests/unictype/test-categ_Co.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0xE000, 0xF8FF },
+ { 0xF0000, 0xFFFFD },
+ { 0x100000, 0x10FFFD }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Co)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Cs.c b/tests/unictype/test-categ_Cs.c
new file mode 100644
index 0000000..cb8cc96
--- /dev/null
+++ b/tests/unictype/test-categ_Cs.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0xD800, 0xDFFF }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Cs)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_L.c b/tests/unictype/test-categ_L.c
new file mode 100644
index 0000000..f401917
--- /dev/null
+++ b/tests/unictype/test-categ_L.c
@@ -0,0 +1,412 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0370, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0621, 0x064A },
+ { 0x066E, 0x066F },
+ { 0x0671, 0x06D3 },
+ { 0x06D5, 0x06D5 },
+ { 0x06E5, 0x06E6 },
+ { 0x06EE, 0x06EF },
+ { 0x06FA, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074D, 0x07A5 },
+ { 0x07B1, 0x07B1 },
+ { 0x07CA, 0x07EA },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0904, 0x0939 },
+ { 0x093D, 0x093D },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0961 },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09BD },
+ { 0x09CE, 0x09CE },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E1 },
+ { 0x09F0, 0x09F1 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A72, 0x0A74 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0ABD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE1 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B3D },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B61 },
+ { 0x0B71, 0x0B71 },
+ { 0x0B83, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C3D },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C61 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CBD },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE1 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D3D },
+ { 0x0D60, 0x0D61 },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0E01, 0x0E30 },
+ { 0x0E32, 0x0E33 },
+ { 0x0E40, 0x0E46 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB0 },
+ { 0x0EB2, 0x0EB3 },
+ { 0x0EBD, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F40, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F88, 0x0F8B },
+ { 0x1000, 0x102A },
+ { 0x103F, 0x103F },
+ { 0x1050, 0x1055 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1061 },
+ { 0x1065, 0x1066 },
+ { 0x106E, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x108E, 0x108E },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1711 },
+ { 0x1720, 0x1731 },
+ { 0x1740, 0x1751 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1780, 0x17B3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DC },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18A8 },
+ { 0x18AA, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1950, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19C1, 0x19C7 },
+ { 0x1A00, 0x1A16 },
+ { 0x1B05, 0x1B33 },
+ { 0x1B45, 0x1B4B },
+ { 0x1B83, 0x1BA0 },
+ { 0x1BAE, 0x1BAF },
+ { 0x1C00, 0x1C23 },
+ { 0x1C4D, 0x1C4F },
+ { 0x1C5A, 0x1C7D },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x212D },
+ { 0x212F, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2183, 0x2184 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2E2F, 0x2E2F },
+ { 0x3005, 0x3006 },
+ { 0x3031, 0x3035 },
+ { 0x303B, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x309D, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA61F },
+ { 0xA62A, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66E },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA822 },
+ { 0xA840, 0xA873 },
+ { 0xA882, 0xA8B3 },
+ { 0xA90A, 0xA925 },
+ { 0xA930, 0xA946 },
+ { 0xAA00, 0xAA28 },
+ { 0xAA40, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFB },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x10340 },
+ { 0x10342, 0x10349 },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x10400, 0x1049D },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A00 },
+ { 0x10A10, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x12000, 0x1236E },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_L)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Ll.c b/tests/unictype/test-categ_Ll.c
new file mode 100644
index 0000000..7cd4ac3
--- /dev/null
+++ b/tests/unictype/test-categ_Ll.c
@@ -0,0 +1,620 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00DF, 0x00F6 },
+ { 0x00F8, 0x00FF },
+ { 0x0101, 0x0101 },
+ { 0x0103, 0x0103 },
+ { 0x0105, 0x0105 },
+ { 0x0107, 0x0107 },
+ { 0x0109, 0x0109 },
+ { 0x010B, 0x010B },
+ { 0x010D, 0x010D },
+ { 0x010F, 0x010F },
+ { 0x0111, 0x0111 },
+ { 0x0113, 0x0113 },
+ { 0x0115, 0x0115 },
+ { 0x0117, 0x0117 },
+ { 0x0119, 0x0119 },
+ { 0x011B, 0x011B },
+ { 0x011D, 0x011D },
+ { 0x011F, 0x011F },
+ { 0x0121, 0x0121 },
+ { 0x0123, 0x0123 },
+ { 0x0125, 0x0125 },
+ { 0x0127, 0x0127 },
+ { 0x0129, 0x0129 },
+ { 0x012B, 0x012B },
+ { 0x012D, 0x012D },
+ { 0x012F, 0x012F },
+ { 0x0131, 0x0131 },
+ { 0x0133, 0x0133 },
+ { 0x0135, 0x0135 },
+ { 0x0137, 0x0138 },
+ { 0x013A, 0x013A },
+ { 0x013C, 0x013C },
+ { 0x013E, 0x013E },
+ { 0x0140, 0x0140 },
+ { 0x0142, 0x0142 },
+ { 0x0144, 0x0144 },
+ { 0x0146, 0x0146 },
+ { 0x0148, 0x0149 },
+ { 0x014B, 0x014B },
+ { 0x014D, 0x014D },
+ { 0x014F, 0x014F },
+ { 0x0151, 0x0151 },
+ { 0x0153, 0x0153 },
+ { 0x0155, 0x0155 },
+ { 0x0157, 0x0157 },
+ { 0x0159, 0x0159 },
+ { 0x015B, 0x015B },
+ { 0x015D, 0x015D },
+ { 0x015F, 0x015F },
+ { 0x0161, 0x0161 },
+ { 0x0163, 0x0163 },
+ { 0x0165, 0x0165 },
+ { 0x0167, 0x0167 },
+ { 0x0169, 0x0169 },
+ { 0x016B, 0x016B },
+ { 0x016D, 0x016D },
+ { 0x016F, 0x016F },
+ { 0x0171, 0x0171 },
+ { 0x0173, 0x0173 },
+ { 0x0175, 0x0175 },
+ { 0x0177, 0x0177 },
+ { 0x017A, 0x017A },
+ { 0x017C, 0x017C },
+ { 0x017E, 0x0180 },
+ { 0x0183, 0x0183 },
+ { 0x0185, 0x0185 },
+ { 0x0188, 0x0188 },
+ { 0x018C, 0x018D },
+ { 0x0192, 0x0192 },
+ { 0x0195, 0x0195 },
+ { 0x0199, 0x019B },
+ { 0x019E, 0x019E },
+ { 0x01A1, 0x01A1 },
+ { 0x01A3, 0x01A3 },
+ { 0x01A5, 0x01A5 },
+ { 0x01A8, 0x01A8 },
+ { 0x01AA, 0x01AB },
+ { 0x01AD, 0x01AD },
+ { 0x01B0, 0x01B0 },
+ { 0x01B4, 0x01B4 },
+ { 0x01B6, 0x01B6 },
+ { 0x01B9, 0x01BA },
+ { 0x01BD, 0x01BF },
+ { 0x01C6, 0x01C6 },
+ { 0x01C9, 0x01C9 },
+ { 0x01CC, 0x01CC },
+ { 0x01CE, 0x01CE },
+ { 0x01D0, 0x01D0 },
+ { 0x01D2, 0x01D2 },
+ { 0x01D4, 0x01D4 },
+ { 0x01D6, 0x01D6 },
+ { 0x01D8, 0x01D8 },
+ { 0x01DA, 0x01DA },
+ { 0x01DC, 0x01DD },
+ { 0x01DF, 0x01DF },
+ { 0x01E1, 0x01E1 },
+ { 0x01E3, 0x01E3 },
+ { 0x01E5, 0x01E5 },
+ { 0x01E7, 0x01E7 },
+ { 0x01E9, 0x01E9 },
+ { 0x01EB, 0x01EB },
+ { 0x01ED, 0x01ED },
+ { 0x01EF, 0x01F0 },
+ { 0x01F3, 0x01F3 },
+ { 0x01F5, 0x01F5 },
+ { 0x01F9, 0x01F9 },
+ { 0x01FB, 0x01FB },
+ { 0x01FD, 0x01FD },
+ { 0x01FF, 0x01FF },
+ { 0x0201, 0x0201 },
+ { 0x0203, 0x0203 },
+ { 0x0205, 0x0205 },
+ { 0x0207, 0x0207 },
+ { 0x0209, 0x0209 },
+ { 0x020B, 0x020B },
+ { 0x020D, 0x020D },
+ { 0x020F, 0x020F },
+ { 0x0211, 0x0211 },
+ { 0x0213, 0x0213 },
+ { 0x0215, 0x0215 },
+ { 0x0217, 0x0217 },
+ { 0x0219, 0x0219 },
+ { 0x021B, 0x021B },
+ { 0x021D, 0x021D },
+ { 0x021F, 0x021F },
+ { 0x0221, 0x0221 },
+ { 0x0223, 0x0223 },
+ { 0x0225, 0x0225 },
+ { 0x0227, 0x0227 },
+ { 0x0229, 0x0229 },
+ { 0x022B, 0x022B },
+ { 0x022D, 0x022D },
+ { 0x022F, 0x022F },
+ { 0x0231, 0x0231 },
+ { 0x0233, 0x0239 },
+ { 0x023C, 0x023C },
+ { 0x023F, 0x0240 },
+ { 0x0242, 0x0242 },
+ { 0x0247, 0x0247 },
+ { 0x0249, 0x0249 },
+ { 0x024B, 0x024B },
+ { 0x024D, 0x024D },
+ { 0x024F, 0x0293 },
+ { 0x0295, 0x02AF },
+ { 0x0371, 0x0371 },
+ { 0x0373, 0x0373 },
+ { 0x0377, 0x0377 },
+ { 0x037B, 0x037D },
+ { 0x0390, 0x0390 },
+ { 0x03AC, 0x03CE },
+ { 0x03D0, 0x03D1 },
+ { 0x03D5, 0x03D7 },
+ { 0x03D9, 0x03D9 },
+ { 0x03DB, 0x03DB },
+ { 0x03DD, 0x03DD },
+ { 0x03DF, 0x03DF },
+ { 0x03E1, 0x03E1 },
+ { 0x03E3, 0x03E3 },
+ { 0x03E5, 0x03E5 },
+ { 0x03E7, 0x03E7 },
+ { 0x03E9, 0x03E9 },
+ { 0x03EB, 0x03EB },
+ { 0x03ED, 0x03ED },
+ { 0x03EF, 0x03F3 },
+ { 0x03F5, 0x03F5 },
+ { 0x03F8, 0x03F8 },
+ { 0x03FB, 0x03FC },
+ { 0x0430, 0x045F },
+ { 0x0461, 0x0461 },
+ { 0x0463, 0x0463 },
+ { 0x0465, 0x0465 },
+ { 0x0467, 0x0467 },
+ { 0x0469, 0x0469 },
+ { 0x046B, 0x046B },
+ { 0x046D, 0x046D },
+ { 0x046F, 0x046F },
+ { 0x0471, 0x0471 },
+ { 0x0473, 0x0473 },
+ { 0x0475, 0x0475 },
+ { 0x0477, 0x0477 },
+ { 0x0479, 0x0479 },
+ { 0x047B, 0x047B },
+ { 0x047D, 0x047D },
+ { 0x047F, 0x047F },
+ { 0x0481, 0x0481 },
+ { 0x048B, 0x048B },
+ { 0x048D, 0x048D },
+ { 0x048F, 0x048F },
+ { 0x0491, 0x0491 },
+ { 0x0493, 0x0493 },
+ { 0x0495, 0x0495 },
+ { 0x0497, 0x0497 },
+ { 0x0499, 0x0499 },
+ { 0x049B, 0x049B },
+ { 0x049D, 0x049D },
+ { 0x049F, 0x049F },
+ { 0x04A1, 0x04A1 },
+ { 0x04A3, 0x04A3 },
+ { 0x04A5, 0x04A5 },
+ { 0x04A7, 0x04A7 },
+ { 0x04A9, 0x04A9 },
+ { 0x04AB, 0x04AB },
+ { 0x04AD, 0x04AD },
+ { 0x04AF, 0x04AF },
+ { 0x04B1, 0x04B1 },
+ { 0x04B3, 0x04B3 },
+ { 0x04B5, 0x04B5 },
+ { 0x04B7, 0x04B7 },
+ { 0x04B9, 0x04B9 },
+ { 0x04BB, 0x04BB },
+ { 0x04BD, 0x04BD },
+ { 0x04BF, 0x04BF },
+ { 0x04C2, 0x04C2 },
+ { 0x04C4, 0x04C4 },
+ { 0x04C6, 0x04C6 },
+ { 0x04C8, 0x04C8 },
+ { 0x04CA, 0x04CA },
+ { 0x04CC, 0x04CC },
+ { 0x04CE, 0x04CF },
+ { 0x04D1, 0x04D1 },
+ { 0x04D3, 0x04D3 },
+ { 0x04D5, 0x04D5 },
+ { 0x04D7, 0x04D7 },
+ { 0x04D9, 0x04D9 },
+ { 0x04DB, 0x04DB },
+ { 0x04DD, 0x04DD },
+ { 0x04DF, 0x04DF },
+ { 0x04E1, 0x04E1 },
+ { 0x04E3, 0x04E3 },
+ { 0x04E5, 0x04E5 },
+ { 0x04E7, 0x04E7 },
+ { 0x04E9, 0x04E9 },
+ { 0x04EB, 0x04EB },
+ { 0x04ED, 0x04ED },
+ { 0x04EF, 0x04EF },
+ { 0x04F1, 0x04F1 },
+ { 0x04F3, 0x04F3 },
+ { 0x04F5, 0x04F5 },
+ { 0x04F7, 0x04F7 },
+ { 0x04F9, 0x04F9 },
+ { 0x04FB, 0x04FB },
+ { 0x04FD, 0x04FD },
+ { 0x04FF, 0x04FF },
+ { 0x0501, 0x0501 },
+ { 0x0503, 0x0503 },
+ { 0x0505, 0x0505 },
+ { 0x0507, 0x0507 },
+ { 0x0509, 0x0509 },
+ { 0x050B, 0x050B },
+ { 0x050D, 0x050D },
+ { 0x050F, 0x050F },
+ { 0x0511, 0x0511 },
+ { 0x0513, 0x0513 },
+ { 0x0515, 0x0515 },
+ { 0x0517, 0x0517 },
+ { 0x0519, 0x0519 },
+ { 0x051B, 0x051B },
+ { 0x051D, 0x051D },
+ { 0x051F, 0x051F },
+ { 0x0521, 0x0521 },
+ { 0x0523, 0x0523 },
+ { 0x0561, 0x0587 },
+ { 0x1D00, 0x1D2B },
+ { 0x1D62, 0x1D77 },
+ { 0x1D79, 0x1D9A },
+ { 0x1E01, 0x1E01 },
+ { 0x1E03, 0x1E03 },
+ { 0x1E05, 0x1E05 },
+ { 0x1E07, 0x1E07 },
+ { 0x1E09, 0x1E09 },
+ { 0x1E0B, 0x1E0B },
+ { 0x1E0D, 0x1E0D },
+ { 0x1E0F, 0x1E0F },
+ { 0x1E11, 0x1E11 },
+ { 0x1E13, 0x1E13 },
+ { 0x1E15, 0x1E15 },
+ { 0x1E17, 0x1E17 },
+ { 0x1E19, 0x1E19 },
+ { 0x1E1B, 0x1E1B },
+ { 0x1E1D, 0x1E1D },
+ { 0x1E1F, 0x1E1F },
+ { 0x1E21, 0x1E21 },
+ { 0x1E23, 0x1E23 },
+ { 0x1E25, 0x1E25 },
+ { 0x1E27, 0x1E27 },
+ { 0x1E29, 0x1E29 },
+ { 0x1E2B, 0x1E2B },
+ { 0x1E2D, 0x1E2D },
+ { 0x1E2F, 0x1E2F },
+ { 0x1E31, 0x1E31 },
+ { 0x1E33, 0x1E33 },
+ { 0x1E35, 0x1E35 },
+ { 0x1E37, 0x1E37 },
+ { 0x1E39, 0x1E39 },
+ { 0x1E3B, 0x1E3B },
+ { 0x1E3D, 0x1E3D },
+ { 0x1E3F, 0x1E3F },
+ { 0x1E41, 0x1E41 },
+ { 0x1E43, 0x1E43 },
+ { 0x1E45, 0x1E45 },
+ { 0x1E47, 0x1E47 },
+ { 0x1E49, 0x1E49 },
+ { 0x1E4B, 0x1E4B },
+ { 0x1E4D, 0x1E4D },
+ { 0x1E4F, 0x1E4F },
+ { 0x1E51, 0x1E51 },
+ { 0x1E53, 0x1E53 },
+ { 0x1E55, 0x1E55 },
+ { 0x1E57, 0x1E57 },
+ { 0x1E59, 0x1E59 },
+ { 0x1E5B, 0x1E5B },
+ { 0x1E5D, 0x1E5D },
+ { 0x1E5F, 0x1E5F },
+ { 0x1E61, 0x1E61 },
+ { 0x1E63, 0x1E63 },
+ { 0x1E65, 0x1E65 },
+ { 0x1E67, 0x1E67 },
+ { 0x1E69, 0x1E69 },
+ { 0x1E6B, 0x1E6B },
+ { 0x1E6D, 0x1E6D },
+ { 0x1E6F, 0x1E6F },
+ { 0x1E71, 0x1E71 },
+ { 0x1E73, 0x1E73 },
+ { 0x1E75, 0x1E75 },
+ { 0x1E77, 0x1E77 },
+ { 0x1E79, 0x1E79 },
+ { 0x1E7B, 0x1E7B },
+ { 0x1E7D, 0x1E7D },
+ { 0x1E7F, 0x1E7F },
+ { 0x1E81, 0x1E81 },
+ { 0x1E83, 0x1E83 },
+ { 0x1E85, 0x1E85 },
+ { 0x1E87, 0x1E87 },
+ { 0x1E89, 0x1E89 },
+ { 0x1E8B, 0x1E8B },
+ { 0x1E8D, 0x1E8D },
+ { 0x1E8F, 0x1E8F },
+ { 0x1E91, 0x1E91 },
+ { 0x1E93, 0x1E93 },
+ { 0x1E95, 0x1E9D },
+ { 0x1E9F, 0x1E9F },
+ { 0x1EA1, 0x1EA1 },
+ { 0x1EA3, 0x1EA3 },
+ { 0x1EA5, 0x1EA5 },
+ { 0x1EA7, 0x1EA7 },
+ { 0x1EA9, 0x1EA9 },
+ { 0x1EAB, 0x1EAB },
+ { 0x1EAD, 0x1EAD },
+ { 0x1EAF, 0x1EAF },
+ { 0x1EB1, 0x1EB1 },
+ { 0x1EB3, 0x1EB3 },
+ { 0x1EB5, 0x1EB5 },
+ { 0x1EB7, 0x1EB7 },
+ { 0x1EB9, 0x1EB9 },
+ { 0x1EBB, 0x1EBB },
+ { 0x1EBD, 0x1EBD },
+ { 0x1EBF, 0x1EBF },
+ { 0x1EC1, 0x1EC1 },
+ { 0x1EC3, 0x1EC3 },
+ { 0x1EC5, 0x1EC5 },
+ { 0x1EC7, 0x1EC7 },
+ { 0x1EC9, 0x1EC9 },
+ { 0x1ECB, 0x1ECB },
+ { 0x1ECD, 0x1ECD },
+ { 0x1ECF, 0x1ECF },
+ { 0x1ED1, 0x1ED1 },
+ { 0x1ED3, 0x1ED3 },
+ { 0x1ED5, 0x1ED5 },
+ { 0x1ED7, 0x1ED7 },
+ { 0x1ED9, 0x1ED9 },
+ { 0x1EDB, 0x1EDB },
+ { 0x1EDD, 0x1EDD },
+ { 0x1EDF, 0x1EDF },
+ { 0x1EE1, 0x1EE1 },
+ { 0x1EE3, 0x1EE3 },
+ { 0x1EE5, 0x1EE5 },
+ { 0x1EE7, 0x1EE7 },
+ { 0x1EE9, 0x1EE9 },
+ { 0x1EEB, 0x1EEB },
+ { 0x1EED, 0x1EED },
+ { 0x1EEF, 0x1EEF },
+ { 0x1EF1, 0x1EF1 },
+ { 0x1EF3, 0x1EF3 },
+ { 0x1EF5, 0x1EF5 },
+ { 0x1EF7, 0x1EF7 },
+ { 0x1EF9, 0x1EF9 },
+ { 0x1EFB, 0x1EFB },
+ { 0x1EFD, 0x1EFD },
+ { 0x1EFF, 0x1F07 },
+ { 0x1F10, 0x1F15 },
+ { 0x1F20, 0x1F27 },
+ { 0x1F30, 0x1F37 },
+ { 0x1F40, 0x1F45 },
+ { 0x1F50, 0x1F57 },
+ { 0x1F60, 0x1F67 },
+ { 0x1F70, 0x1F7D },
+ { 0x1F80, 0x1F87 },
+ { 0x1F90, 0x1F97 },
+ { 0x1FA0, 0x1FA7 },
+ { 0x1FB0, 0x1FB4 },
+ { 0x1FB6, 0x1FB7 },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FC7 },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FD7 },
+ { 0x1FE0, 0x1FE7 },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FF7 },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x210A, 0x210A },
+ { 0x210E, 0x210F },
+ { 0x2113, 0x2113 },
+ { 0x212F, 0x212F },
+ { 0x2134, 0x2134 },
+ { 0x2139, 0x2139 },
+ { 0x213C, 0x213D },
+ { 0x2146, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2184, 0x2184 },
+ { 0x2C30, 0x2C5E },
+ { 0x2C61, 0x2C61 },
+ { 0x2C65, 0x2C66 },
+ { 0x2C68, 0x2C68 },
+ { 0x2C6A, 0x2C6A },
+ { 0x2C6C, 0x2C6C },
+ { 0x2C71, 0x2C71 },
+ { 0x2C73, 0x2C74 },
+ { 0x2C76, 0x2C7C },
+ { 0x2C81, 0x2C81 },
+ { 0x2C83, 0x2C83 },
+ { 0x2C85, 0x2C85 },
+ { 0x2C87, 0x2C87 },
+ { 0x2C89, 0x2C89 },
+ { 0x2C8B, 0x2C8B },
+ { 0x2C8D, 0x2C8D },
+ { 0x2C8F, 0x2C8F },
+ { 0x2C91, 0x2C91 },
+ { 0x2C93, 0x2C93 },
+ { 0x2C95, 0x2C95 },
+ { 0x2C97, 0x2C97 },
+ { 0x2C99, 0x2C99 },
+ { 0x2C9B, 0x2C9B },
+ { 0x2C9D, 0x2C9D },
+ { 0x2C9F, 0x2C9F },
+ { 0x2CA1, 0x2CA1 },
+ { 0x2CA3, 0x2CA3 },
+ { 0x2CA5, 0x2CA5 },
+ { 0x2CA7, 0x2CA7 },
+ { 0x2CA9, 0x2CA9 },
+ { 0x2CAB, 0x2CAB },
+ { 0x2CAD, 0x2CAD },
+ { 0x2CAF, 0x2CAF },
+ { 0x2CB1, 0x2CB1 },
+ { 0x2CB3, 0x2CB3 },
+ { 0x2CB5, 0x2CB5 },
+ { 0x2CB7, 0x2CB7 },
+ { 0x2CB9, 0x2CB9 },
+ { 0x2CBB, 0x2CBB },
+ { 0x2CBD, 0x2CBD },
+ { 0x2CBF, 0x2CBF },
+ { 0x2CC1, 0x2CC1 },
+ { 0x2CC3, 0x2CC3 },
+ { 0x2CC5, 0x2CC5 },
+ { 0x2CC7, 0x2CC7 },
+ { 0x2CC9, 0x2CC9 },
+ { 0x2CCB, 0x2CCB },
+ { 0x2CCD, 0x2CCD },
+ { 0x2CCF, 0x2CCF },
+ { 0x2CD1, 0x2CD1 },
+ { 0x2CD3, 0x2CD3 },
+ { 0x2CD5, 0x2CD5 },
+ { 0x2CD7, 0x2CD7 },
+ { 0x2CD9, 0x2CD9 },
+ { 0x2CDB, 0x2CDB },
+ { 0x2CDD, 0x2CDD },
+ { 0x2CDF, 0x2CDF },
+ { 0x2CE1, 0x2CE1 },
+ { 0x2CE3, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0xA641, 0xA641 },
+ { 0xA643, 0xA643 },
+ { 0xA645, 0xA645 },
+ { 0xA647, 0xA647 },
+ { 0xA649, 0xA649 },
+ { 0xA64B, 0xA64B },
+ { 0xA64D, 0xA64D },
+ { 0xA64F, 0xA64F },
+ { 0xA651, 0xA651 },
+ { 0xA653, 0xA653 },
+ { 0xA655, 0xA655 },
+ { 0xA657, 0xA657 },
+ { 0xA659, 0xA659 },
+ { 0xA65B, 0xA65B },
+ { 0xA65D, 0xA65D },
+ { 0xA65F, 0xA65F },
+ { 0xA663, 0xA663 },
+ { 0xA665, 0xA665 },
+ { 0xA667, 0xA667 },
+ { 0xA669, 0xA669 },
+ { 0xA66B, 0xA66B },
+ { 0xA66D, 0xA66D },
+ { 0xA681, 0xA681 },
+ { 0xA683, 0xA683 },
+ { 0xA685, 0xA685 },
+ { 0xA687, 0xA687 },
+ { 0xA689, 0xA689 },
+ { 0xA68B, 0xA68B },
+ { 0xA68D, 0xA68D },
+ { 0xA68F, 0xA68F },
+ { 0xA691, 0xA691 },
+ { 0xA693, 0xA693 },
+ { 0xA695, 0xA695 },
+ { 0xA697, 0xA697 },
+ { 0xA723, 0xA723 },
+ { 0xA725, 0xA725 },
+ { 0xA727, 0xA727 },
+ { 0xA729, 0xA729 },
+ { 0xA72B, 0xA72B },
+ { 0xA72D, 0xA72D },
+ { 0xA72F, 0xA731 },
+ { 0xA733, 0xA733 },
+ { 0xA735, 0xA735 },
+ { 0xA737, 0xA737 },
+ { 0xA739, 0xA739 },
+ { 0xA73B, 0xA73B },
+ { 0xA73D, 0xA73D },
+ { 0xA73F, 0xA73F },
+ { 0xA741, 0xA741 },
+ { 0xA743, 0xA743 },
+ { 0xA745, 0xA745 },
+ { 0xA747, 0xA747 },
+ { 0xA749, 0xA749 },
+ { 0xA74B, 0xA74B },
+ { 0xA74D, 0xA74D },
+ { 0xA74F, 0xA74F },
+ { 0xA751, 0xA751 },
+ { 0xA753, 0xA753 },
+ { 0xA755, 0xA755 },
+ { 0xA757, 0xA757 },
+ { 0xA759, 0xA759 },
+ { 0xA75B, 0xA75B },
+ { 0xA75D, 0xA75D },
+ { 0xA75F, 0xA75F },
+ { 0xA761, 0xA761 },
+ { 0xA763, 0xA763 },
+ { 0xA765, 0xA765 },
+ { 0xA767, 0xA767 },
+ { 0xA769, 0xA769 },
+ { 0xA76B, 0xA76B },
+ { 0xA76D, 0xA76D },
+ { 0xA76F, 0xA76F },
+ { 0xA771, 0xA778 },
+ { 0xA77A, 0xA77A },
+ { 0xA77C, 0xA77C },
+ { 0xA77F, 0xA77F },
+ { 0xA781, 0xA781 },
+ { 0xA783, 0xA783 },
+ { 0xA785, 0xA785 },
+ { 0xA787, 0xA787 },
+ { 0xA78C, 0xA78C },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFF41, 0xFF5A },
+ { 0x10428, 0x1044F },
+ { 0x1D41A, 0x1D433 },
+ { 0x1D44E, 0x1D454 },
+ { 0x1D456, 0x1D467 },
+ { 0x1D482, 0x1D49B },
+ { 0x1D4B6, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D4CF },
+ { 0x1D4EA, 0x1D503 },
+ { 0x1D51E, 0x1D537 },
+ { 0x1D552, 0x1D56B },
+ { 0x1D586, 0x1D59F },
+ { 0x1D5BA, 0x1D5D3 },
+ { 0x1D5EE, 0x1D607 },
+ { 0x1D622, 0x1D63B },
+ { 0x1D656, 0x1D66F },
+ { 0x1D68A, 0x1D6A5 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6E1 },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D71B },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D755 },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D78F },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7C9 },
+ { 0x1D7CB, 0x1D7CB }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Ll)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Lm.c b/tests/unictype/test-categ_Lm.c
new file mode 100644
index 0000000..7444b16
--- /dev/null
+++ b/tests/unictype/test-categ_Lm.c
@@ -0,0 +1,61 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x02B0, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0374, 0x0374 },
+ { 0x037A, 0x037A },
+ { 0x0559, 0x0559 },
+ { 0x0640, 0x0640 },
+ { 0x06E5, 0x06E6 },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0971, 0x0971 },
+ { 0x0E46, 0x0E46 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x10FC, 0x10FC },
+ { 0x17D7, 0x17D7 },
+ { 0x1843, 0x1843 },
+ { 0x1C78, 0x1C7D },
+ { 0x1D2C, 0x1D61 },
+ { 0x1D78, 0x1D78 },
+ { 0x1D9B, 0x1DBF },
+ { 0x2090, 0x2094 },
+ { 0x2C7D, 0x2C7D },
+ { 0x2D6F, 0x2D6F },
+ { 0x2E2F, 0x2E2F },
+ { 0x3005, 0x3005 },
+ { 0x3031, 0x3035 },
+ { 0x303B, 0x303B },
+ { 0x309D, 0x309E },
+ { 0x30FC, 0x30FE },
+ { 0xA015, 0xA015 },
+ { 0xA60C, 0xA60C },
+ { 0xA67F, 0xA67F },
+ { 0xA717, 0xA71F },
+ { 0xA770, 0xA770 },
+ { 0xA788, 0xA788 },
+ { 0xFF70, 0xFF70 },
+ { 0xFF9E, 0xFF9F }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Lm)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Lo.c b/tests/unictype/test-categ_Lo.c
new file mode 100644
index 0000000..aaf6996
--- /dev/null
+++ b/tests/unictype/test-categ_Lo.c
@@ -0,0 +1,304 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x01BB, 0x01BB },
+ { 0x01C0, 0x01C3 },
+ { 0x0294, 0x0294 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0621, 0x063F },
+ { 0x0641, 0x064A },
+ { 0x066E, 0x066F },
+ { 0x0671, 0x06D3 },
+ { 0x06D5, 0x06D5 },
+ { 0x06EE, 0x06EF },
+ { 0x06FA, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074D, 0x07A5 },
+ { 0x07B1, 0x07B1 },
+ { 0x07CA, 0x07EA },
+ { 0x0904, 0x0939 },
+ { 0x093D, 0x093D },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0961 },
+ { 0x0972, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09BD },
+ { 0x09CE, 0x09CE },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E1 },
+ { 0x09F0, 0x09F1 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A72, 0x0A74 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0ABD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE1 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B3D },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B61 },
+ { 0x0B71, 0x0B71 },
+ { 0x0B83, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C3D },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C61 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CBD },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE1 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D3D },
+ { 0x0D60, 0x0D61 },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0E01, 0x0E30 },
+ { 0x0E32, 0x0E33 },
+ { 0x0E40, 0x0E45 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB0 },
+ { 0x0EB2, 0x0EB3 },
+ { 0x0EBD, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F40, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F88, 0x0F8B },
+ { 0x1000, 0x102A },
+ { 0x103F, 0x103F },
+ { 0x1050, 0x1055 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1061 },
+ { 0x1065, 0x1066 },
+ { 0x106E, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x108E, 0x108E },
+ { 0x10D0, 0x10FA },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1711 },
+ { 0x1720, 0x1731 },
+ { 0x1740, 0x1751 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1780, 0x17B3 },
+ { 0x17DC, 0x17DC },
+ { 0x1820, 0x1842 },
+ { 0x1844, 0x1877 },
+ { 0x1880, 0x18A8 },
+ { 0x18AA, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1950, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19C1, 0x19C7 },
+ { 0x1A00, 0x1A16 },
+ { 0x1B05, 0x1B33 },
+ { 0x1B45, 0x1B4B },
+ { 0x1B83, 0x1BA0 },
+ { 0x1BAE, 0x1BAF },
+ { 0x1C00, 0x1C23 },
+ { 0x1C4D, 0x1C4F },
+ { 0x1C5A, 0x1C77 },
+ { 0x2135, 0x2138 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x3006, 0x3006 },
+ { 0x303C, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x309F, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FF, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA014 },
+ { 0xA016, 0xA48C },
+ { 0xA500, 0xA60B },
+ { 0xA610, 0xA61F },
+ { 0xA62A, 0xA62B },
+ { 0xA66E, 0xA66E },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA822 },
+ { 0xA840, 0xA873 },
+ { 0xA882, 0xA8B3 },
+ { 0xA90A, 0xA925 },
+ { 0xA930, 0xA946 },
+ { 0xAA00, 0xAA28 },
+ { 0xAA40, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFB },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF66, 0xFF6F },
+ { 0xFF71, 0xFF9D },
+ { 0xFFA0, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x10340 },
+ { 0x10342, 0x10349 },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x10450, 0x1049D },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A00 },
+ { 0x10A10, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x12000, 0x1236E },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Lo)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Lt.c b/tests/unictype/test-categ_Lt.c
new file mode 100644
index 0000000..6f31923
--- /dev/null
+++ b/tests/unictype/test-categ_Lt.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x01C5, 0x01C5 },
+ { 0x01C8, 0x01C8 },
+ { 0x01CB, 0x01CB },
+ { 0x01F2, 0x01F2 },
+ { 0x1F88, 0x1F8F },
+ { 0x1F98, 0x1F9F },
+ { 0x1FA8, 0x1FAF },
+ { 0x1FBC, 0x1FBC },
+ { 0x1FCC, 0x1FCC },
+ { 0x1FFC, 0x1FFC }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Lt)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Lu.c b/tests/unictype/test-categ_Lu.c
new file mode 100644
index 0000000..1ed6b40
--- /dev/null
+++ b/tests/unictype/test-categ_Lu.c
@@ -0,0 +1,613 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00DE },
+ { 0x0100, 0x0100 },
+ { 0x0102, 0x0102 },
+ { 0x0104, 0x0104 },
+ { 0x0106, 0x0106 },
+ { 0x0108, 0x0108 },
+ { 0x010A, 0x010A },
+ { 0x010C, 0x010C },
+ { 0x010E, 0x010E },
+ { 0x0110, 0x0110 },
+ { 0x0112, 0x0112 },
+ { 0x0114, 0x0114 },
+ { 0x0116, 0x0116 },
+ { 0x0118, 0x0118 },
+ { 0x011A, 0x011A },
+ { 0x011C, 0x011C },
+ { 0x011E, 0x011E },
+ { 0x0120, 0x0120 },
+ { 0x0122, 0x0122 },
+ { 0x0124, 0x0124 },
+ { 0x0126, 0x0126 },
+ { 0x0128, 0x0128 },
+ { 0x012A, 0x012A },
+ { 0x012C, 0x012C },
+ { 0x012E, 0x012E },
+ { 0x0130, 0x0130 },
+ { 0x0132, 0x0132 },
+ { 0x0134, 0x0134 },
+ { 0x0136, 0x0136 },
+ { 0x0139, 0x0139 },
+ { 0x013B, 0x013B },
+ { 0x013D, 0x013D },
+ { 0x013F, 0x013F },
+ { 0x0141, 0x0141 },
+ { 0x0143, 0x0143 },
+ { 0x0145, 0x0145 },
+ { 0x0147, 0x0147 },
+ { 0x014A, 0x014A },
+ { 0x014C, 0x014C },
+ { 0x014E, 0x014E },
+ { 0x0150, 0x0150 },
+ { 0x0152, 0x0152 },
+ { 0x0154, 0x0154 },
+ { 0x0156, 0x0156 },
+ { 0x0158, 0x0158 },
+ { 0x015A, 0x015A },
+ { 0x015C, 0x015C },
+ { 0x015E, 0x015E },
+ { 0x0160, 0x0160 },
+ { 0x0162, 0x0162 },
+ { 0x0164, 0x0164 },
+ { 0x0166, 0x0166 },
+ { 0x0168, 0x0168 },
+ { 0x016A, 0x016A },
+ { 0x016C, 0x016C },
+ { 0x016E, 0x016E },
+ { 0x0170, 0x0170 },
+ { 0x0172, 0x0172 },
+ { 0x0174, 0x0174 },
+ { 0x0176, 0x0176 },
+ { 0x0178, 0x0179 },
+ { 0x017B, 0x017B },
+ { 0x017D, 0x017D },
+ { 0x0181, 0x0182 },
+ { 0x0184, 0x0184 },
+ { 0x0186, 0x0187 },
+ { 0x0189, 0x018B },
+ { 0x018E, 0x0191 },
+ { 0x0193, 0x0194 },
+ { 0x0196, 0x0198 },
+ { 0x019C, 0x019D },
+ { 0x019F, 0x01A0 },
+ { 0x01A2, 0x01A2 },
+ { 0x01A4, 0x01A4 },
+ { 0x01A6, 0x01A7 },
+ { 0x01A9, 0x01A9 },
+ { 0x01AC, 0x01AC },
+ { 0x01AE, 0x01AF },
+ { 0x01B1, 0x01B3 },
+ { 0x01B5, 0x01B5 },
+ { 0x01B7, 0x01B8 },
+ { 0x01BC, 0x01BC },
+ { 0x01C4, 0x01C4 },
+ { 0x01C7, 0x01C7 },
+ { 0x01CA, 0x01CA },
+ { 0x01CD, 0x01CD },
+ { 0x01CF, 0x01CF },
+ { 0x01D1, 0x01D1 },
+ { 0x01D3, 0x01D3 },
+ { 0x01D5, 0x01D5 },
+ { 0x01D7, 0x01D7 },
+ { 0x01D9, 0x01D9 },
+ { 0x01DB, 0x01DB },
+ { 0x01DE, 0x01DE },
+ { 0x01E0, 0x01E0 },
+ { 0x01E2, 0x01E2 },
+ { 0x01E4, 0x01E4 },
+ { 0x01E6, 0x01E6 },
+ { 0x01E8, 0x01E8 },
+ { 0x01EA, 0x01EA },
+ { 0x01EC, 0x01EC },
+ { 0x01EE, 0x01EE },
+ { 0x01F1, 0x01F1 },
+ { 0x01F4, 0x01F4 },
+ { 0x01F6, 0x01F8 },
+ { 0x01FA, 0x01FA },
+ { 0x01FC, 0x01FC },
+ { 0x01FE, 0x01FE },
+ { 0x0200, 0x0200 },
+ { 0x0202, 0x0202 },
+ { 0x0204, 0x0204 },
+ { 0x0206, 0x0206 },
+ { 0x0208, 0x0208 },
+ { 0x020A, 0x020A },
+ { 0x020C, 0x020C },
+ { 0x020E, 0x020E },
+ { 0x0210, 0x0210 },
+ { 0x0212, 0x0212 },
+ { 0x0214, 0x0214 },
+ { 0x0216, 0x0216 },
+ { 0x0218, 0x0218 },
+ { 0x021A, 0x021A },
+ { 0x021C, 0x021C },
+ { 0x021E, 0x021E },
+ { 0x0220, 0x0220 },
+ { 0x0222, 0x0222 },
+ { 0x0224, 0x0224 },
+ { 0x0226, 0x0226 },
+ { 0x0228, 0x0228 },
+ { 0x022A, 0x022A },
+ { 0x022C, 0x022C },
+ { 0x022E, 0x022E },
+ { 0x0230, 0x0230 },
+ { 0x0232, 0x0232 },
+ { 0x023A, 0x023B },
+ { 0x023D, 0x023E },
+ { 0x0241, 0x0241 },
+ { 0x0243, 0x0246 },
+ { 0x0248, 0x0248 },
+ { 0x024A, 0x024A },
+ { 0x024C, 0x024C },
+ { 0x024E, 0x024E },
+ { 0x0370, 0x0370 },
+ { 0x0372, 0x0372 },
+ { 0x0376, 0x0376 },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x038F },
+ { 0x0391, 0x03A1 },
+ { 0x03A3, 0x03AB },
+ { 0x03CF, 0x03CF },
+ { 0x03D2, 0x03D4 },
+ { 0x03D8, 0x03D8 },
+ { 0x03DA, 0x03DA },
+ { 0x03DC, 0x03DC },
+ { 0x03DE, 0x03DE },
+ { 0x03E0, 0x03E0 },
+ { 0x03E2, 0x03E2 },
+ { 0x03E4, 0x03E4 },
+ { 0x03E6, 0x03E6 },
+ { 0x03E8, 0x03E8 },
+ { 0x03EA, 0x03EA },
+ { 0x03EC, 0x03EC },
+ { 0x03EE, 0x03EE },
+ { 0x03F4, 0x03F4 },
+ { 0x03F7, 0x03F7 },
+ { 0x03F9, 0x03FA },
+ { 0x03FD, 0x042F },
+ { 0x0460, 0x0460 },
+ { 0x0462, 0x0462 },
+ { 0x0464, 0x0464 },
+ { 0x0466, 0x0466 },
+ { 0x0468, 0x0468 },
+ { 0x046A, 0x046A },
+ { 0x046C, 0x046C },
+ { 0x046E, 0x046E },
+ { 0x0470, 0x0470 },
+ { 0x0472, 0x0472 },
+ { 0x0474, 0x0474 },
+ { 0x0476, 0x0476 },
+ { 0x0478, 0x0478 },
+ { 0x047A, 0x047A },
+ { 0x047C, 0x047C },
+ { 0x047E, 0x047E },
+ { 0x0480, 0x0480 },
+ { 0x048A, 0x048A },
+ { 0x048C, 0x048C },
+ { 0x048E, 0x048E },
+ { 0x0490, 0x0490 },
+ { 0x0492, 0x0492 },
+ { 0x0494, 0x0494 },
+ { 0x0496, 0x0496 },
+ { 0x0498, 0x0498 },
+ { 0x049A, 0x049A },
+ { 0x049C, 0x049C },
+ { 0x049E, 0x049E },
+ { 0x04A0, 0x04A0 },
+ { 0x04A2, 0x04A2 },
+ { 0x04A4, 0x04A4 },
+ { 0x04A6, 0x04A6 },
+ { 0x04A8, 0x04A8 },
+ { 0x04AA, 0x04AA },
+ { 0x04AC, 0x04AC },
+ { 0x04AE, 0x04AE },
+ { 0x04B0, 0x04B0 },
+ { 0x04B2, 0x04B2 },
+ { 0x04B4, 0x04B4 },
+ { 0x04B6, 0x04B6 },
+ { 0x04B8, 0x04B8 },
+ { 0x04BA, 0x04BA },
+ { 0x04BC, 0x04BC },
+ { 0x04BE, 0x04BE },
+ { 0x04C0, 0x04C1 },
+ { 0x04C3, 0x04C3 },
+ { 0x04C5, 0x04C5 },
+ { 0x04C7, 0x04C7 },
+ { 0x04C9, 0x04C9 },
+ { 0x04CB, 0x04CB },
+ { 0x04CD, 0x04CD },
+ { 0x04D0, 0x04D0 },
+ { 0x04D2, 0x04D2 },
+ { 0x04D4, 0x04D4 },
+ { 0x04D6, 0x04D6 },
+ { 0x04D8, 0x04D8 },
+ { 0x04DA, 0x04DA },
+ { 0x04DC, 0x04DC },
+ { 0x04DE, 0x04DE },
+ { 0x04E0, 0x04E0 },
+ { 0x04E2, 0x04E2 },
+ { 0x04E4, 0x04E4 },
+ { 0x04E6, 0x04E6 },
+ { 0x04E8, 0x04E8 },
+ { 0x04EA, 0x04EA },
+ { 0x04EC, 0x04EC },
+ { 0x04EE, 0x04EE },
+ { 0x04F0, 0x04F0 },
+ { 0x04F2, 0x04F2 },
+ { 0x04F4, 0x04F4 },
+ { 0x04F6, 0x04F6 },
+ { 0x04F8, 0x04F8 },
+ { 0x04FA, 0x04FA },
+ { 0x04FC, 0x04FC },
+ { 0x04FE, 0x04FE },
+ { 0x0500, 0x0500 },
+ { 0x0502, 0x0502 },
+ { 0x0504, 0x0504 },
+ { 0x0506, 0x0506 },
+ { 0x0508, 0x0508 },
+ { 0x050A, 0x050A },
+ { 0x050C, 0x050C },
+ { 0x050E, 0x050E },
+ { 0x0510, 0x0510 },
+ { 0x0512, 0x0512 },
+ { 0x0514, 0x0514 },
+ { 0x0516, 0x0516 },
+ { 0x0518, 0x0518 },
+ { 0x051A, 0x051A },
+ { 0x051C, 0x051C },
+ { 0x051E, 0x051E },
+ { 0x0520, 0x0520 },
+ { 0x0522, 0x0522 },
+ { 0x0531, 0x0556 },
+ { 0x10A0, 0x10C5 },
+ { 0x1E00, 0x1E00 },
+ { 0x1E02, 0x1E02 },
+ { 0x1E04, 0x1E04 },
+ { 0x1E06, 0x1E06 },
+ { 0x1E08, 0x1E08 },
+ { 0x1E0A, 0x1E0A },
+ { 0x1E0C, 0x1E0C },
+ { 0x1E0E, 0x1E0E },
+ { 0x1E10, 0x1E10 },
+ { 0x1E12, 0x1E12 },
+ { 0x1E14, 0x1E14 },
+ { 0x1E16, 0x1E16 },
+ { 0x1E18, 0x1E18 },
+ { 0x1E1A, 0x1E1A },
+ { 0x1E1C, 0x1E1C },
+ { 0x1E1E, 0x1E1E },
+ { 0x1E20, 0x1E20 },
+ { 0x1E22, 0x1E22 },
+ { 0x1E24, 0x1E24 },
+ { 0x1E26, 0x1E26 },
+ { 0x1E28, 0x1E28 },
+ { 0x1E2A, 0x1E2A },
+ { 0x1E2C, 0x1E2C },
+ { 0x1E2E, 0x1E2E },
+ { 0x1E30, 0x1E30 },
+ { 0x1E32, 0x1E32 },
+ { 0x1E34, 0x1E34 },
+ { 0x1E36, 0x1E36 },
+ { 0x1E38, 0x1E38 },
+ { 0x1E3A, 0x1E3A },
+ { 0x1E3C, 0x1E3C },
+ { 0x1E3E, 0x1E3E },
+ { 0x1E40, 0x1E40 },
+ { 0x1E42, 0x1E42 },
+ { 0x1E44, 0x1E44 },
+ { 0x1E46, 0x1E46 },
+ { 0x1E48, 0x1E48 },
+ { 0x1E4A, 0x1E4A },
+ { 0x1E4C, 0x1E4C },
+ { 0x1E4E, 0x1E4E },
+ { 0x1E50, 0x1E50 },
+ { 0x1E52, 0x1E52 },
+ { 0x1E54, 0x1E54 },
+ { 0x1E56, 0x1E56 },
+ { 0x1E58, 0x1E58 },
+ { 0x1E5A, 0x1E5A },
+ { 0x1E5C, 0x1E5C },
+ { 0x1E5E, 0x1E5E },
+ { 0x1E60, 0x1E60 },
+ { 0x1E62, 0x1E62 },
+ { 0x1E64, 0x1E64 },
+ { 0x1E66, 0x1E66 },
+ { 0x1E68, 0x1E68 },
+ { 0x1E6A, 0x1E6A },
+ { 0x1E6C, 0x1E6C },
+ { 0x1E6E, 0x1E6E },
+ { 0x1E70, 0x1E70 },
+ { 0x1E72, 0x1E72 },
+ { 0x1E74, 0x1E74 },
+ { 0x1E76, 0x1E76 },
+ { 0x1E78, 0x1E78 },
+ { 0x1E7A, 0x1E7A },
+ { 0x1E7C, 0x1E7C },
+ { 0x1E7E, 0x1E7E },
+ { 0x1E80, 0x1E80 },
+ { 0x1E82, 0x1E82 },
+ { 0x1E84, 0x1E84 },
+ { 0x1E86, 0x1E86 },
+ { 0x1E88, 0x1E88 },
+ { 0x1E8A, 0x1E8A },
+ { 0x1E8C, 0x1E8C },
+ { 0x1E8E, 0x1E8E },
+ { 0x1E90, 0x1E90 },
+ { 0x1E92, 0x1E92 },
+ { 0x1E94, 0x1E94 },
+ { 0x1E9E, 0x1E9E },
+ { 0x1EA0, 0x1EA0 },
+ { 0x1EA2, 0x1EA2 },
+ { 0x1EA4, 0x1EA4 },
+ { 0x1EA6, 0x1EA6 },
+ { 0x1EA8, 0x1EA8 },
+ { 0x1EAA, 0x1EAA },
+ { 0x1EAC, 0x1EAC },
+ { 0x1EAE, 0x1EAE },
+ { 0x1EB0, 0x1EB0 },
+ { 0x1EB2, 0x1EB2 },
+ { 0x1EB4, 0x1EB4 },
+ { 0x1EB6, 0x1EB6 },
+ { 0x1EB8, 0x1EB8 },
+ { 0x1EBA, 0x1EBA },
+ { 0x1EBC, 0x1EBC },
+ { 0x1EBE, 0x1EBE },
+ { 0x1EC0, 0x1EC0 },
+ { 0x1EC2, 0x1EC2 },
+ { 0x1EC4, 0x1EC4 },
+ { 0x1EC6, 0x1EC6 },
+ { 0x1EC8, 0x1EC8 },
+ { 0x1ECA, 0x1ECA },
+ { 0x1ECC, 0x1ECC },
+ { 0x1ECE, 0x1ECE },
+ { 0x1ED0, 0x1ED0 },
+ { 0x1ED2, 0x1ED2 },
+ { 0x1ED4, 0x1ED4 },
+ { 0x1ED6, 0x1ED6 },
+ { 0x1ED8, 0x1ED8 },
+ { 0x1EDA, 0x1EDA },
+ { 0x1EDC, 0x1EDC },
+ { 0x1EDE, 0x1EDE },
+ { 0x1EE0, 0x1EE0 },
+ { 0x1EE2, 0x1EE2 },
+ { 0x1EE4, 0x1EE4 },
+ { 0x1EE6, 0x1EE6 },
+ { 0x1EE8, 0x1EE8 },
+ { 0x1EEA, 0x1EEA },
+ { 0x1EEC, 0x1EEC },
+ { 0x1EEE, 0x1EEE },
+ { 0x1EF0, 0x1EF0 },
+ { 0x1EF2, 0x1EF2 },
+ { 0x1EF4, 0x1EF4 },
+ { 0x1EF6, 0x1EF6 },
+ { 0x1EF8, 0x1EF8 },
+ { 0x1EFA, 0x1EFA },
+ { 0x1EFC, 0x1EFC },
+ { 0x1EFE, 0x1EFE },
+ { 0x1F08, 0x1F0F },
+ { 0x1F18, 0x1F1D },
+ { 0x1F28, 0x1F2F },
+ { 0x1F38, 0x1F3F },
+ { 0x1F48, 0x1F4D },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F5F },
+ { 0x1F68, 0x1F6F },
+ { 0x1FB8, 0x1FBB },
+ { 0x1FC8, 0x1FCB },
+ { 0x1FD8, 0x1FDB },
+ { 0x1FE8, 0x1FEC },
+ { 0x1FF8, 0x1FFB },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210B, 0x210D },
+ { 0x2110, 0x2112 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x212D },
+ { 0x2130, 0x2133 },
+ { 0x213E, 0x213F },
+ { 0x2145, 0x2145 },
+ { 0x2183, 0x2183 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C60, 0x2C60 },
+ { 0x2C62, 0x2C64 },
+ { 0x2C67, 0x2C67 },
+ { 0x2C69, 0x2C69 },
+ { 0x2C6B, 0x2C6B },
+ { 0x2C6D, 0x2C6F },
+ { 0x2C72, 0x2C72 },
+ { 0x2C75, 0x2C75 },
+ { 0x2C80, 0x2C80 },
+ { 0x2C82, 0x2C82 },
+ { 0x2C84, 0x2C84 },
+ { 0x2C86, 0x2C86 },
+ { 0x2C88, 0x2C88 },
+ { 0x2C8A, 0x2C8A },
+ { 0x2C8C, 0x2C8C },
+ { 0x2C8E, 0x2C8E },
+ { 0x2C90, 0x2C90 },
+ { 0x2C92, 0x2C92 },
+ { 0x2C94, 0x2C94 },
+ { 0x2C96, 0x2C96 },
+ { 0x2C98, 0x2C98 },
+ { 0x2C9A, 0x2C9A },
+ { 0x2C9C, 0x2C9C },
+ { 0x2C9E, 0x2C9E },
+ { 0x2CA0, 0x2CA0 },
+ { 0x2CA2, 0x2CA2 },
+ { 0x2CA4, 0x2CA4 },
+ { 0x2CA6, 0x2CA6 },
+ { 0x2CA8, 0x2CA8 },
+ { 0x2CAA, 0x2CAA },
+ { 0x2CAC, 0x2CAC },
+ { 0x2CAE, 0x2CAE },
+ { 0x2CB0, 0x2CB0 },
+ { 0x2CB2, 0x2CB2 },
+ { 0x2CB4, 0x2CB4 },
+ { 0x2CB6, 0x2CB6 },
+ { 0x2CB8, 0x2CB8 },
+ { 0x2CBA, 0x2CBA },
+ { 0x2CBC, 0x2CBC },
+ { 0x2CBE, 0x2CBE },
+ { 0x2CC0, 0x2CC0 },
+ { 0x2CC2, 0x2CC2 },
+ { 0x2CC4, 0x2CC4 },
+ { 0x2CC6, 0x2CC6 },
+ { 0x2CC8, 0x2CC8 },
+ { 0x2CCA, 0x2CCA },
+ { 0x2CCC, 0x2CCC },
+ { 0x2CCE, 0x2CCE },
+ { 0x2CD0, 0x2CD0 },
+ { 0x2CD2, 0x2CD2 },
+ { 0x2CD4, 0x2CD4 },
+ { 0x2CD6, 0x2CD6 },
+ { 0x2CD8, 0x2CD8 },
+ { 0x2CDA, 0x2CDA },
+ { 0x2CDC, 0x2CDC },
+ { 0x2CDE, 0x2CDE },
+ { 0x2CE0, 0x2CE0 },
+ { 0x2CE2, 0x2CE2 },
+ { 0xA640, 0xA640 },
+ { 0xA642, 0xA642 },
+ { 0xA644, 0xA644 },
+ { 0xA646, 0xA646 },
+ { 0xA648, 0xA648 },
+ { 0xA64A, 0xA64A },
+ { 0xA64C, 0xA64C },
+ { 0xA64E, 0xA64E },
+ { 0xA650, 0xA650 },
+ { 0xA652, 0xA652 },
+ { 0xA654, 0xA654 },
+ { 0xA656, 0xA656 },
+ { 0xA658, 0xA658 },
+ { 0xA65A, 0xA65A },
+ { 0xA65C, 0xA65C },
+ { 0xA65E, 0xA65E },
+ { 0xA662, 0xA662 },
+ { 0xA664, 0xA664 },
+ { 0xA666, 0xA666 },
+ { 0xA668, 0xA668 },
+ { 0xA66A, 0xA66A },
+ { 0xA66C, 0xA66C },
+ { 0xA680, 0xA680 },
+ { 0xA682, 0xA682 },
+ { 0xA684, 0xA684 },
+ { 0xA686, 0xA686 },
+ { 0xA688, 0xA688 },
+ { 0xA68A, 0xA68A },
+ { 0xA68C, 0xA68C },
+ { 0xA68E, 0xA68E },
+ { 0xA690, 0xA690 },
+ { 0xA692, 0xA692 },
+ { 0xA694, 0xA694 },
+ { 0xA696, 0xA696 },
+ { 0xA722, 0xA722 },
+ { 0xA724, 0xA724 },
+ { 0xA726, 0xA726 },
+ { 0xA728, 0xA728 },
+ { 0xA72A, 0xA72A },
+ { 0xA72C, 0xA72C },
+ { 0xA72E, 0xA72E },
+ { 0xA732, 0xA732 },
+ { 0xA734, 0xA734 },
+ { 0xA736, 0xA736 },
+ { 0xA738, 0xA738 },
+ { 0xA73A, 0xA73A },
+ { 0xA73C, 0xA73C },
+ { 0xA73E, 0xA73E },
+ { 0xA740, 0xA740 },
+ { 0xA742, 0xA742 },
+ { 0xA744, 0xA744 },
+ { 0xA746, 0xA746 },
+ { 0xA748, 0xA748 },
+ { 0xA74A, 0xA74A },
+ { 0xA74C, 0xA74C },
+ { 0xA74E, 0xA74E },
+ { 0xA750, 0xA750 },
+ { 0xA752, 0xA752 },
+ { 0xA754, 0xA754 },
+ { 0xA756, 0xA756 },
+ { 0xA758, 0xA758 },
+ { 0xA75A, 0xA75A },
+ { 0xA75C, 0xA75C },
+ { 0xA75E, 0xA75E },
+ { 0xA760, 0xA760 },
+ { 0xA762, 0xA762 },
+ { 0xA764, 0xA764 },
+ { 0xA766, 0xA766 },
+ { 0xA768, 0xA768 },
+ { 0xA76A, 0xA76A },
+ { 0xA76C, 0xA76C },
+ { 0xA76E, 0xA76E },
+ { 0xA779, 0xA779 },
+ { 0xA77B, 0xA77B },
+ { 0xA77D, 0xA77E },
+ { 0xA780, 0xA780 },
+ { 0xA782, 0xA782 },
+ { 0xA784, 0xA784 },
+ { 0xA786, 0xA786 },
+ { 0xA78B, 0xA78B },
+ { 0xFF21, 0xFF3A },
+ { 0x10400, 0x10427 },
+ { 0x1D400, 0x1D419 },
+ { 0x1D434, 0x1D44D },
+ { 0x1D468, 0x1D481 },
+ { 0x1D49C, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B5 },
+ { 0x1D4D0, 0x1D4E9 },
+ { 0x1D504, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D538, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D56C, 0x1D585 },
+ { 0x1D5A0, 0x1D5B9 },
+ { 0x1D5D4, 0x1D5ED },
+ { 0x1D608, 0x1D621 },
+ { 0x1D63C, 0x1D655 },
+ { 0x1D670, 0x1D689 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6E2, 0x1D6FA },
+ { 0x1D71C, 0x1D734 },
+ { 0x1D756, 0x1D76E },
+ { 0x1D790, 0x1D7A8 },
+ { 0x1D7CA, 0x1D7CA }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Lu)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_M.c b/tests/unictype/test-categ_M.c
new file mode 100644
index 0000000..c6138d6
--- /dev/null
+++ b/tests/unictype/test-categ_M.c
@@ -0,0 +1,183 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0300, 0x036F },
+ { 0x0483, 0x0489 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x0610, 0x061A },
+ { 0x064B, 0x065E },
+ { 0x0670, 0x0670 },
+ { 0x06D6, 0x06DC },
+ { 0x06DE, 0x06E4 },
+ { 0x06E7, 0x06E8 },
+ { 0x06EA, 0x06ED },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F3 },
+ { 0x0901, 0x0903 },
+ { 0x093C, 0x093C },
+ { 0x093E, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0962, 0x0963 },
+ { 0x0981, 0x0983 },
+ { 0x09BC, 0x09BC },
+ { 0x09BE, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CD },
+ { 0x09D7, 0x09D7 },
+ { 0x09E2, 0x09E3 },
+ { 0x0A01, 0x0A03 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0ABC, 0x0ABC },
+ { 0x0ABE, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACD },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0B01, 0x0B03 },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B3E, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCD },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0C01, 0x0C03 },
+ { 0x0C3E, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0C82, 0x0C83 },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CBE, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D3E, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D62, 0x0D63 },
+ { 0x0D82, 0x0D83 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF3 },
+ { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A },
+ { 0x0E47, 0x0E4E },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0EC8, 0x0ECD },
+ { 0x0F18, 0x0F19 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F3E, 0x0F3F },
+ { 0x0F71, 0x0F84 },
+ { 0x0F86, 0x0F87 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x102B, 0x103E },
+ { 0x1056, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1062, 0x1064 },
+ { 0x1067, 0x106D },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x108D },
+ { 0x108F, 0x108F },
+ { 0x135F, 0x135F },
+ { 0x1712, 0x1714 },
+ { 0x1732, 0x1734 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B6, 0x17D3 },
+ { 0x17DD, 0x17DD },
+ { 0x180B, 0x180D },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x193B },
+ { 0x19B0, 0x19C0 },
+ { 0x19C8, 0x19C9 },
+ { 0x1A17, 0x1A1B },
+ { 0x1B00, 0x1B04 },
+ { 0x1B34, 0x1B44 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1B82 },
+ { 0x1BA1, 0x1BAA },
+ { 0x1C24, 0x1C37 },
+ { 0x1DC0, 0x1DE6 },
+ { 0x1DFE, 0x1DFF },
+ { 0x20D0, 0x20F0 },
+ { 0x2DE0, 0x2DFF },
+ { 0x302A, 0x302F },
+ { 0x3099, 0x309A },
+ { 0xA66F, 0xA672 },
+ { 0xA67C, 0xA67D },
+ { 0xA802, 0xA802 },
+ { 0xA806, 0xA806 },
+ { 0xA80B, 0xA80B },
+ { 0xA823, 0xA827 },
+ { 0xA880, 0xA881 },
+ { 0xA8B4, 0xA8C4 },
+ { 0xA926, 0xA92D },
+ { 0xA947, 0xA953 },
+ { 0xAA29, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4D },
+ { 0xFB1E, 0xFB1E },
+ { 0xFE00, 0xFE0F },
+ { 0xFE20, 0xFE26 },
+ { 0x101FD, 0x101FD },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x1D165, 0x1D169 },
+ { 0x1D16D, 0x1D172 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_M)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Mc.c b/tests/unictype/test-categ_Mc.c
new file mode 100644
index 0000000..4984b4b
--- /dev/null
+++ b/tests/unictype/test-categ_Mc.c
@@ -0,0 +1,107 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0903, 0x0903 },
+ { 0x093E, 0x0940 },
+ { 0x0949, 0x094C },
+ { 0x0982, 0x0983 },
+ { 0x09BE, 0x09C0 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CC },
+ { 0x09D7, 0x09D7 },
+ { 0x0A03, 0x0A03 },
+ { 0x0A3E, 0x0A40 },
+ { 0x0A83, 0x0A83 },
+ { 0x0ABE, 0x0AC0 },
+ { 0x0AC9, 0x0AC9 },
+ { 0x0ACB, 0x0ACC },
+ { 0x0B02, 0x0B03 },
+ { 0x0B3E, 0x0B3E },
+ { 0x0B40, 0x0B40 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4C },
+ { 0x0B57, 0x0B57 },
+ { 0x0BBE, 0x0BBF },
+ { 0x0BC1, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCC },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0C01, 0x0C03 },
+ { 0x0C41, 0x0C44 },
+ { 0x0C82, 0x0C83 },
+ { 0x0CBE, 0x0CBE },
+ { 0x0CC0, 0x0CC4 },
+ { 0x0CC7, 0x0CC8 },
+ { 0x0CCA, 0x0CCB },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D3E, 0x0D40 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4C },
+ { 0x0D57, 0x0D57 },
+ { 0x0D82, 0x0D83 },
+ { 0x0DCF, 0x0DD1 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF3 },
+ { 0x0F3E, 0x0F3F },
+ { 0x0F7F, 0x0F7F },
+ { 0x102B, 0x102C },
+ { 0x1031, 0x1031 },
+ { 0x1038, 0x1038 },
+ { 0x103B, 0x103C },
+ { 0x1056, 0x1057 },
+ { 0x1062, 0x1064 },
+ { 0x1067, 0x106D },
+ { 0x1083, 0x1084 },
+ { 0x1087, 0x108C },
+ { 0x108F, 0x108F },
+ { 0x17B6, 0x17B6 },
+ { 0x17BE, 0x17C5 },
+ { 0x17C7, 0x17C8 },
+ { 0x1923, 0x1926 },
+ { 0x1929, 0x192B },
+ { 0x1930, 0x1931 },
+ { 0x1933, 0x1938 },
+ { 0x19B0, 0x19C0 },
+ { 0x19C8, 0x19C9 },
+ { 0x1A19, 0x1A1B },
+ { 0x1B04, 0x1B04 },
+ { 0x1B35, 0x1B35 },
+ { 0x1B3B, 0x1B3B },
+ { 0x1B3D, 0x1B41 },
+ { 0x1B43, 0x1B44 },
+ { 0x1B82, 0x1B82 },
+ { 0x1BA1, 0x1BA1 },
+ { 0x1BA6, 0x1BA7 },
+ { 0x1BAA, 0x1BAA },
+ { 0x1C24, 0x1C2B },
+ { 0x1C34, 0x1C35 },
+ { 0xA823, 0xA824 },
+ { 0xA827, 0xA827 },
+ { 0xA880, 0xA881 },
+ { 0xA8B4, 0xA8C3 },
+ { 0xA952, 0xA953 },
+ { 0xAA2F, 0xAA30 },
+ { 0xAA33, 0xAA34 },
+ { 0xAA4D, 0xAA4D },
+ { 0x1D165, 0x1D166 },
+ { 0x1D16D, 0x1D172 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Mc)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Me.c b/tests/unictype/test-categ_Me.c
new file mode 100644
index 0000000..f8aa385
--- /dev/null
+++ b/tests/unictype/test-categ_Me.c
@@ -0,0 +1,27 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0488, 0x0489 },
+ { 0x06DE, 0x06DE },
+ { 0x20DD, 0x20E0 },
+ { 0x20E2, 0x20E4 },
+ { 0xA670, 0xA672 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Me)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Mn.c b/tests/unictype/test-categ_Mn.c
new file mode 100644
index 0000000..a29b6e5
--- /dev/null
+++ b/tests/unictype/test-categ_Mn.c
@@ -0,0 +1,182 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0300, 0x036F },
+ { 0x0483, 0x0487 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x0610, 0x061A },
+ { 0x064B, 0x065E },
+ { 0x0670, 0x0670 },
+ { 0x06D6, 0x06DC },
+ { 0x06DF, 0x06E4 },
+ { 0x06E7, 0x06E8 },
+ { 0x06EA, 0x06ED },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F3 },
+ { 0x0901, 0x0902 },
+ { 0x093C, 0x093C },
+ { 0x0941, 0x0948 },
+ { 0x094D, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0962, 0x0963 },
+ { 0x0981, 0x0981 },
+ { 0x09BC, 0x09BC },
+ { 0x09C1, 0x09C4 },
+ { 0x09CD, 0x09CD },
+ { 0x09E2, 0x09E3 },
+ { 0x0A01, 0x0A02 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A41, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A82 },
+ { 0x0ABC, 0x0ABC },
+ { 0x0AC1, 0x0AC5 },
+ { 0x0AC7, 0x0AC8 },
+ { 0x0ACD, 0x0ACD },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0B01, 0x0B01 },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B3F, 0x0B3F },
+ { 0x0B41, 0x0B44 },
+ { 0x0B4D, 0x0B4D },
+ { 0x0B56, 0x0B56 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BC0, 0x0BC0 },
+ { 0x0BCD, 0x0BCD },
+ { 0x0C3E, 0x0C40 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CBF, 0x0CBF },
+ { 0x0CC6, 0x0CC6 },
+ { 0x0CCC, 0x0CCD },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0D41, 0x0D44 },
+ { 0x0D4D, 0x0D4D },
+ { 0x0D62, 0x0D63 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DD2, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A },
+ { 0x0E47, 0x0E4E },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0EC8, 0x0ECD },
+ { 0x0F18, 0x0F19 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F71, 0x0F7E },
+ { 0x0F80, 0x0F84 },
+ { 0x0F86, 0x0F87 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x102D, 0x1030 },
+ { 0x1032, 0x1037 },
+ { 0x1039, 0x103A },
+ { 0x103D, 0x103E },
+ { 0x1058, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x1082 },
+ { 0x1085, 0x1086 },
+ { 0x108D, 0x108D },
+ { 0x135F, 0x135F },
+ { 0x1712, 0x1714 },
+ { 0x1732, 0x1734 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B7, 0x17BD },
+ { 0x17C6, 0x17C6 },
+ { 0x17C9, 0x17D3 },
+ { 0x17DD, 0x17DD },
+ { 0x180B, 0x180D },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x1922 },
+ { 0x1927, 0x1928 },
+ { 0x1932, 0x1932 },
+ { 0x1939, 0x193B },
+ { 0x1A17, 0x1A18 },
+ { 0x1B00, 0x1B03 },
+ { 0x1B34, 0x1B34 },
+ { 0x1B36, 0x1B3A },
+ { 0x1B3C, 0x1B3C },
+ { 0x1B42, 0x1B42 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1B81 },
+ { 0x1BA2, 0x1BA5 },
+ { 0x1BA8, 0x1BA9 },
+ { 0x1C2C, 0x1C33 },
+ { 0x1C36, 0x1C37 },
+ { 0x1DC0, 0x1DE6 },
+ { 0x1DFE, 0x1DFF },
+ { 0x20D0, 0x20DC },
+ { 0x20E1, 0x20E1 },
+ { 0x20E5, 0x20F0 },
+ { 0x2DE0, 0x2DFF },
+ { 0x302A, 0x302F },
+ { 0x3099, 0x309A },
+ { 0xA66F, 0xA66F },
+ { 0xA67C, 0xA67D },
+ { 0xA802, 0xA802 },
+ { 0xA806, 0xA806 },
+ { 0xA80B, 0xA80B },
+ { 0xA825, 0xA826 },
+ { 0xA8C4, 0xA8C4 },
+ { 0xA926, 0xA92D },
+ { 0xA947, 0xA951 },
+ { 0xAA29, 0xAA2E },
+ { 0xAA31, 0xAA32 },
+ { 0xAA35, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4C },
+ { 0xFB1E, 0xFB1E },
+ { 0xFE00, 0xFE0F },
+ { 0xFE20, 0xFE26 },
+ { 0x101FD, 0x101FD },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x1D167, 0x1D169 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Mn)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_N.c b/tests/unictype/test-categ_N.c
new file mode 100644
index 0000000..219b6c7
--- /dev/null
+++ b/tests/unictype/test-categ_N.c
@@ -0,0 +1,91 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x00B2, 0x00B3 },
+ { 0x00B9, 0x00B9 },
+ { 0x00BC, 0x00BE },
+ { 0x0660, 0x0669 },
+ { 0x06F0, 0x06F9 },
+ { 0x07C0, 0x07C9 },
+ { 0x0966, 0x096F },
+ { 0x09E6, 0x09EF },
+ { 0x09F4, 0x09F9 },
+ { 0x0A66, 0x0A6F },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B66, 0x0B6F },
+ { 0x0BE6, 0x0BF2 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C78, 0x0C7E },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D66, 0x0D75 },
+ { 0x0E50, 0x0E59 },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0F20, 0x0F33 },
+ { 0x1040, 0x1049 },
+ { 0x1090, 0x1099 },
+ { 0x1369, 0x137C },
+ { 0x16EE, 0x16F0 },
+ { 0x17E0, 0x17E9 },
+ { 0x17F0, 0x17F9 },
+ { 0x1810, 0x1819 },
+ { 0x1946, 0x194F },
+ { 0x19D0, 0x19D9 },
+ { 0x1B50, 0x1B59 },
+ { 0x1BB0, 0x1BB9 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C50, 0x1C59 },
+ { 0x2070, 0x2070 },
+ { 0x2074, 0x2079 },
+ { 0x2080, 0x2089 },
+ { 0x2153, 0x2182 },
+ { 0x2185, 0x2188 },
+ { 0x2460, 0x249B },
+ { 0x24EA, 0x24FF },
+ { 0x2776, 0x2793 },
+ { 0x2CFD, 0x2CFD },
+ { 0x3007, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3038, 0x303A },
+ { 0x3192, 0x3195 },
+ { 0x3220, 0x3229 },
+ { 0x3251, 0x325F },
+ { 0x3280, 0x3289 },
+ { 0x32B1, 0x32BF },
+ { 0xA620, 0xA629 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA909 },
+ { 0xAA50, 0xAA59 },
+ { 0xFF10, 0xFF19 },
+ { 0x10107, 0x10133 },
+ { 0x10140, 0x10178 },
+ { 0x1018A, 0x1018A },
+ { 0x10320, 0x10323 },
+ { 0x10341, 0x10341 },
+ { 0x1034A, 0x1034A },
+ { 0x103D1, 0x103D5 },
+ { 0x104A0, 0x104A9 },
+ { 0x10916, 0x10919 },
+ { 0x10A40, 0x10A47 },
+ { 0x12400, 0x12462 },
+ { 0x1D360, 0x1D371 },
+ { 0x1D7CE, 0x1D7FF }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_N)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Nd.c b/tests/unictype/test-categ_Nd.c
new file mode 100644
index 0000000..a6170ae
--- /dev/null
+++ b/tests/unictype/test-categ_Nd.c
@@ -0,0 +1,55 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0660, 0x0669 },
+ { 0x06F0, 0x06F9 },
+ { 0x07C0, 0x07C9 },
+ { 0x0966, 0x096F },
+ { 0x09E6, 0x09EF },
+ { 0x0A66, 0x0A6F },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B66, 0x0B6F },
+ { 0x0BE6, 0x0BEF },
+ { 0x0C66, 0x0C6F },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D66, 0x0D6F },
+ { 0x0E50, 0x0E59 },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0F20, 0x0F29 },
+ { 0x1040, 0x1049 },
+ { 0x1090, 0x1099 },
+ { 0x17E0, 0x17E9 },
+ { 0x1810, 0x1819 },
+ { 0x1946, 0x194F },
+ { 0x19D0, 0x19D9 },
+ { 0x1B50, 0x1B59 },
+ { 0x1BB0, 0x1BB9 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C50, 0x1C59 },
+ { 0xA620, 0xA629 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA909 },
+ { 0xAA50, 0xAA59 },
+ { 0xFF10, 0xFF19 },
+ { 0x104A0, 0x104A9 },
+ { 0x1D7CE, 0x1D7FF }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Nd)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Nl.c b/tests/unictype/test-categ_Nl.c
new file mode 100644
index 0000000..0a3207f
--- /dev/null
+++ b/tests/unictype/test-categ_Nl.c
@@ -0,0 +1,33 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x16EE, 0x16F0 },
+ { 0x2160, 0x2182 },
+ { 0x2185, 0x2188 },
+ { 0x3007, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3038, 0x303A },
+ { 0x10140, 0x10174 },
+ { 0x10341, 0x10341 },
+ { 0x1034A, 0x1034A },
+ { 0x103D1, 0x103D5 },
+ { 0x12400, 0x12462 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Nl)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_No.c b/tests/unictype/test-categ_No.c
new file mode 100644
index 0000000..d800a59
--- /dev/null
+++ b/tests/unictype/test-categ_No.c
@@ -0,0 +1,52 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00B2, 0x00B3 },
+ { 0x00B9, 0x00B9 },
+ { 0x00BC, 0x00BE },
+ { 0x09F4, 0x09F9 },
+ { 0x0BF0, 0x0BF2 },
+ { 0x0C78, 0x0C7E },
+ { 0x0D70, 0x0D75 },
+ { 0x0F2A, 0x0F33 },
+ { 0x1369, 0x137C },
+ { 0x17F0, 0x17F9 },
+ { 0x2070, 0x2070 },
+ { 0x2074, 0x2079 },
+ { 0x2080, 0x2089 },
+ { 0x2153, 0x215F },
+ { 0x2460, 0x249B },
+ { 0x24EA, 0x24FF },
+ { 0x2776, 0x2793 },
+ { 0x2CFD, 0x2CFD },
+ { 0x3192, 0x3195 },
+ { 0x3220, 0x3229 },
+ { 0x3251, 0x325F },
+ { 0x3280, 0x3289 },
+ { 0x32B1, 0x32BF },
+ { 0x10107, 0x10133 },
+ { 0x10175, 0x10178 },
+ { 0x1018A, 0x1018A },
+ { 0x10320, 0x10323 },
+ { 0x10916, 0x10919 },
+ { 0x10A40, 0x10A47 },
+ { 0x1D360, 0x1D371 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_No)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_P.c b/tests/unictype/test-categ_P.c
new file mode 100644
index 0000000..38587b0
--- /dev/null
+++ b/tests/unictype/test-categ_P.c
@@ -0,0 +1,134 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x0023 },
+ { 0x0025, 0x002A },
+ { 0x002C, 0x002F },
+ { 0x003A, 0x003B },
+ { 0x003F, 0x0040 },
+ { 0x005B, 0x005D },
+ { 0x005F, 0x005F },
+ { 0x007B, 0x007B },
+ { 0x007D, 0x007D },
+ { 0x00A1, 0x00A1 },
+ { 0x00AB, 0x00AB },
+ { 0x00B7, 0x00B7 },
+ { 0x00BB, 0x00BB },
+ { 0x00BF, 0x00BF },
+ { 0x037E, 0x037E },
+ { 0x0387, 0x0387 },
+ { 0x055A, 0x055F },
+ { 0x0589, 0x058A },
+ { 0x05BE, 0x05BE },
+ { 0x05C0, 0x05C0 },
+ { 0x05C3, 0x05C3 },
+ { 0x05C6, 0x05C6 },
+ { 0x05F3, 0x05F4 },
+ { 0x0609, 0x060A },
+ { 0x060C, 0x060D },
+ { 0x061B, 0x061B },
+ { 0x061E, 0x061F },
+ { 0x066A, 0x066D },
+ { 0x06D4, 0x06D4 },
+ { 0x0700, 0x070D },
+ { 0x07F7, 0x07F9 },
+ { 0x0964, 0x0965 },
+ { 0x0970, 0x0970 },
+ { 0x0DF4, 0x0DF4 },
+ { 0x0E4F, 0x0E4F },
+ { 0x0E5A, 0x0E5B },
+ { 0x0F04, 0x0F12 },
+ { 0x0F3A, 0x0F3D },
+ { 0x0F85, 0x0F85 },
+ { 0x0FD0, 0x0FD4 },
+ { 0x104A, 0x104F },
+ { 0x10FB, 0x10FB },
+ { 0x1361, 0x1368 },
+ { 0x166D, 0x166E },
+ { 0x169B, 0x169C },
+ { 0x16EB, 0x16ED },
+ { 0x1735, 0x1736 },
+ { 0x17D4, 0x17D6 },
+ { 0x17D8, 0x17DA },
+ { 0x1800, 0x180A },
+ { 0x1944, 0x1945 },
+ { 0x19DE, 0x19DF },
+ { 0x1A1E, 0x1A1F },
+ { 0x1B5A, 0x1B60 },
+ { 0x1C3B, 0x1C3F },
+ { 0x1C7E, 0x1C7F },
+ { 0x2010, 0x2027 },
+ { 0x2030, 0x2043 },
+ { 0x2045, 0x2051 },
+ { 0x2053, 0x205E },
+ { 0x207D, 0x207E },
+ { 0x208D, 0x208E },
+ { 0x2329, 0x232A },
+ { 0x2768, 0x2775 },
+ { 0x27C5, 0x27C6 },
+ { 0x27E6, 0x27EF },
+ { 0x2983, 0x2998 },
+ { 0x29D8, 0x29DB },
+ { 0x29FC, 0x29FD },
+ { 0x2CF9, 0x2CFC },
+ { 0x2CFE, 0x2CFF },
+ { 0x2E00, 0x2E2E },
+ { 0x2E30, 0x2E30 },
+ { 0x3001, 0x3003 },
+ { 0x3008, 0x3011 },
+ { 0x3014, 0x301F },
+ { 0x3030, 0x3030 },
+ { 0x303D, 0x303D },
+ { 0x30A0, 0x30A0 },
+ { 0x30FB, 0x30FB },
+ { 0xA60D, 0xA60F },
+ { 0xA673, 0xA673 },
+ { 0xA67E, 0xA67E },
+ { 0xA874, 0xA877 },
+ { 0xA8CE, 0xA8CF },
+ { 0xA92E, 0xA92F },
+ { 0xA95F, 0xA95F },
+ { 0xAA5C, 0xAA5F },
+ { 0xFD3E, 0xFD3F },
+ { 0xFE10, 0xFE19 },
+ { 0xFE30, 0xFE52 },
+ { 0xFE54, 0xFE61 },
+ { 0xFE63, 0xFE63 },
+ { 0xFE68, 0xFE68 },
+ { 0xFE6A, 0xFE6B },
+ { 0xFF01, 0xFF03 },
+ { 0xFF05, 0xFF0A },
+ { 0xFF0C, 0xFF0F },
+ { 0xFF1A, 0xFF1B },
+ { 0xFF1F, 0xFF20 },
+ { 0xFF3B, 0xFF3D },
+ { 0xFF3F, 0xFF3F },
+ { 0xFF5B, 0xFF5B },
+ { 0xFF5D, 0xFF5D },
+ { 0xFF5F, 0xFF65 },
+ { 0x10100, 0x10101 },
+ { 0x1039F, 0x1039F },
+ { 0x103D0, 0x103D0 },
+ { 0x1091F, 0x1091F },
+ { 0x1093F, 0x1093F },
+ { 0x10A50, 0x10A58 },
+ { 0x12470, 0x12473 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_P)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Pc.c b/tests/unictype/test-categ_Pc.c
new file mode 100644
index 0000000..db29103
--- /dev/null
+++ b/tests/unictype/test-categ_Pc.c
@@ -0,0 +1,28 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x005F, 0x005F },
+ { 0x203F, 0x2040 },
+ { 0x2054, 0x2054 },
+ { 0xFE33, 0xFE34 },
+ { 0xFE4D, 0xFE4F },
+ { 0xFF3F, 0xFF3F }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Pc)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Pd.c b/tests/unictype/test-categ_Pd.c
new file mode 100644
index 0000000..aae4aea
--- /dev/null
+++ b/tests/unictype/test-categ_Pd.c
@@ -0,0 +1,36 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x002D, 0x002D },
+ { 0x058A, 0x058A },
+ { 0x05BE, 0x05BE },
+ { 0x1806, 0x1806 },
+ { 0x2010, 0x2015 },
+ { 0x2E17, 0x2E17 },
+ { 0x2E1A, 0x2E1A },
+ { 0x301C, 0x301C },
+ { 0x3030, 0x3030 },
+ { 0x30A0, 0x30A0 },
+ { 0xFE31, 0xFE32 },
+ { 0xFE58, 0xFE58 },
+ { 0xFE63, 0xFE63 },
+ { 0xFF0D, 0xFF0D }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Pd)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Pe.c b/tests/unictype/test-categ_Pe.c
new file mode 100644
index 0000000..01c77ec
--- /dev/null
+++ b/tests/unictype/test-categ_Pe.c
@@ -0,0 +1,92 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0029, 0x0029 },
+ { 0x005D, 0x005D },
+ { 0x007D, 0x007D },
+ { 0x0F3B, 0x0F3B },
+ { 0x0F3D, 0x0F3D },
+ { 0x169C, 0x169C },
+ { 0x2046, 0x2046 },
+ { 0x207E, 0x207E },
+ { 0x208E, 0x208E },
+ { 0x232A, 0x232A },
+ { 0x2769, 0x2769 },
+ { 0x276B, 0x276B },
+ { 0x276D, 0x276D },
+ { 0x276F, 0x276F },
+ { 0x2771, 0x2771 },
+ { 0x2773, 0x2773 },
+ { 0x2775, 0x2775 },
+ { 0x27C6, 0x27C6 },
+ { 0x27E7, 0x27E7 },
+ { 0x27E9, 0x27E9 },
+ { 0x27EB, 0x27EB },
+ { 0x27ED, 0x27ED },
+ { 0x27EF, 0x27EF },
+ { 0x2984, 0x2984 },
+ { 0x2986, 0x2986 },
+ { 0x2988, 0x2988 },
+ { 0x298A, 0x298A },
+ { 0x298C, 0x298C },
+ { 0x298E, 0x298E },
+ { 0x2990, 0x2990 },
+ { 0x2992, 0x2992 },
+ { 0x2994, 0x2994 },
+ { 0x2996, 0x2996 },
+ { 0x2998, 0x2998 },
+ { 0x29D9, 0x29D9 },
+ { 0x29DB, 0x29DB },
+ { 0x29FD, 0x29FD },
+ { 0x2E23, 0x2E23 },
+ { 0x2E25, 0x2E25 },
+ { 0x2E27, 0x2E27 },
+ { 0x2E29, 0x2E29 },
+ { 0x3009, 0x3009 },
+ { 0x300B, 0x300B },
+ { 0x300D, 0x300D },
+ { 0x300F, 0x300F },
+ { 0x3011, 0x3011 },
+ { 0x3015, 0x3015 },
+ { 0x3017, 0x3017 },
+ { 0x3019, 0x3019 },
+ { 0x301B, 0x301B },
+ { 0x301E, 0x301F },
+ { 0xFD3F, 0xFD3F },
+ { 0xFE18, 0xFE18 },
+ { 0xFE36, 0xFE36 },
+ { 0xFE38, 0xFE38 },
+ { 0xFE3A, 0xFE3A },
+ { 0xFE3C, 0xFE3C },
+ { 0xFE3E, 0xFE3E },
+ { 0xFE40, 0xFE40 },
+ { 0xFE42, 0xFE42 },
+ { 0xFE44, 0xFE44 },
+ { 0xFE48, 0xFE48 },
+ { 0xFE5A, 0xFE5A },
+ { 0xFE5C, 0xFE5C },
+ { 0xFE5E, 0xFE5E },
+ { 0xFF09, 0xFF09 },
+ { 0xFF3D, 0xFF3D },
+ { 0xFF5D, 0xFF5D },
+ { 0xFF60, 0xFF60 },
+ { 0xFF63, 0xFF63 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Pe)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Pf.c b/tests/unictype/test-categ_Pf.c
new file mode 100644
index 0000000..b94173e
--- /dev/null
+++ b/tests/unictype/test-categ_Pf.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00BB, 0x00BB },
+ { 0x2019, 0x2019 },
+ { 0x201D, 0x201D },
+ { 0x203A, 0x203A },
+ { 0x2E03, 0x2E03 },
+ { 0x2E05, 0x2E05 },
+ { 0x2E0A, 0x2E0A },
+ { 0x2E0D, 0x2E0D },
+ { 0x2E1D, 0x2E1D },
+ { 0x2E21, 0x2E21 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Pf)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Pi.c b/tests/unictype/test-categ_Pi.c
new file mode 100644
index 0000000..2a9dcd4
--- /dev/null
+++ b/tests/unictype/test-categ_Pi.c
@@ -0,0 +1,33 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00AB, 0x00AB },
+ { 0x2018, 0x2018 },
+ { 0x201B, 0x201C },
+ { 0x201F, 0x201F },
+ { 0x2039, 0x2039 },
+ { 0x2E02, 0x2E02 },
+ { 0x2E04, 0x2E04 },
+ { 0x2E09, 0x2E09 },
+ { 0x2E0C, 0x2E0C },
+ { 0x2E1C, 0x2E1C },
+ { 0x2E20, 0x2E20 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Pi)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Po.c b/tests/unictype/test-categ_Po.c
new file mode 100644
index 0000000..e84ec76
--- /dev/null
+++ b/tests/unictype/test-categ_Po.c
@@ -0,0 +1,130 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x0023 },
+ { 0x0025, 0x0027 },
+ { 0x002A, 0x002A },
+ { 0x002C, 0x002C },
+ { 0x002E, 0x002F },
+ { 0x003A, 0x003B },
+ { 0x003F, 0x0040 },
+ { 0x005C, 0x005C },
+ { 0x00A1, 0x00A1 },
+ { 0x00B7, 0x00B7 },
+ { 0x00BF, 0x00BF },
+ { 0x037E, 0x037E },
+ { 0x0387, 0x0387 },
+ { 0x055A, 0x055F },
+ { 0x0589, 0x0589 },
+ { 0x05C0, 0x05C0 },
+ { 0x05C3, 0x05C3 },
+ { 0x05C6, 0x05C6 },
+ { 0x05F3, 0x05F4 },
+ { 0x0609, 0x060A },
+ { 0x060C, 0x060D },
+ { 0x061B, 0x061B },
+ { 0x061E, 0x061F },
+ { 0x066A, 0x066D },
+ { 0x06D4, 0x06D4 },
+ { 0x0700, 0x070D },
+ { 0x07F7, 0x07F9 },
+ { 0x0964, 0x0965 },
+ { 0x0970, 0x0970 },
+ { 0x0DF4, 0x0DF4 },
+ { 0x0E4F, 0x0E4F },
+ { 0x0E5A, 0x0E5B },
+ { 0x0F04, 0x0F12 },
+ { 0x0F85, 0x0F85 },
+ { 0x0FD0, 0x0FD4 },
+ { 0x104A, 0x104F },
+ { 0x10FB, 0x10FB },
+ { 0x1361, 0x1368 },
+ { 0x166D, 0x166E },
+ { 0x16EB, 0x16ED },
+ { 0x1735, 0x1736 },
+ { 0x17D4, 0x17D6 },
+ { 0x17D8, 0x17DA },
+ { 0x1800, 0x1805 },
+ { 0x1807, 0x180A },
+ { 0x1944, 0x1945 },
+ { 0x19DE, 0x19DF },
+ { 0x1A1E, 0x1A1F },
+ { 0x1B5A, 0x1B60 },
+ { 0x1C3B, 0x1C3F },
+ { 0x1C7E, 0x1C7F },
+ { 0x2016, 0x2017 },
+ { 0x2020, 0x2027 },
+ { 0x2030, 0x2038 },
+ { 0x203B, 0x203E },
+ { 0x2041, 0x2043 },
+ { 0x2047, 0x2051 },
+ { 0x2053, 0x2053 },
+ { 0x2055, 0x205E },
+ { 0x2CF9, 0x2CFC },
+ { 0x2CFE, 0x2CFF },
+ { 0x2E00, 0x2E01 },
+ { 0x2E06, 0x2E08 },
+ { 0x2E0B, 0x2E0B },
+ { 0x2E0E, 0x2E16 },
+ { 0x2E18, 0x2E19 },
+ { 0x2E1B, 0x2E1B },
+ { 0x2E1E, 0x2E1F },
+ { 0x2E2A, 0x2E2E },
+ { 0x2E30, 0x2E30 },
+ { 0x3001, 0x3003 },
+ { 0x303D, 0x303D },
+ { 0x30FB, 0x30FB },
+ { 0xA60D, 0xA60F },
+ { 0xA673, 0xA673 },
+ { 0xA67E, 0xA67E },
+ { 0xA874, 0xA877 },
+ { 0xA8CE, 0xA8CF },
+ { 0xA92E, 0xA92F },
+ { 0xA95F, 0xA95F },
+ { 0xAA5C, 0xAA5F },
+ { 0xFE10, 0xFE16 },
+ { 0xFE19, 0xFE19 },
+ { 0xFE30, 0xFE30 },
+ { 0xFE45, 0xFE46 },
+ { 0xFE49, 0xFE4C },
+ { 0xFE50, 0xFE52 },
+ { 0xFE54, 0xFE57 },
+ { 0xFE5F, 0xFE61 },
+ { 0xFE68, 0xFE68 },
+ { 0xFE6A, 0xFE6B },
+ { 0xFF01, 0xFF03 },
+ { 0xFF05, 0xFF07 },
+ { 0xFF0A, 0xFF0A },
+ { 0xFF0C, 0xFF0C },
+ { 0xFF0E, 0xFF0F },
+ { 0xFF1A, 0xFF1B },
+ { 0xFF1F, 0xFF20 },
+ { 0xFF3C, 0xFF3C },
+ { 0xFF61, 0xFF61 },
+ { 0xFF64, 0xFF65 },
+ { 0x10100, 0x10101 },
+ { 0x1039F, 0x1039F },
+ { 0x103D0, 0x103D0 },
+ { 0x1091F, 0x1091F },
+ { 0x1093F, 0x1093F },
+ { 0x10A50, 0x10A58 },
+ { 0x12470, 0x12473 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Po)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Ps.c b/tests/unictype/test-categ_Ps.c
new file mode 100644
index 0000000..7e3be74
--- /dev/null
+++ b/tests/unictype/test-categ_Ps.c
@@ -0,0 +1,94 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0028, 0x0028 },
+ { 0x005B, 0x005B },
+ { 0x007B, 0x007B },
+ { 0x0F3A, 0x0F3A },
+ { 0x0F3C, 0x0F3C },
+ { 0x169B, 0x169B },
+ { 0x201A, 0x201A },
+ { 0x201E, 0x201E },
+ { 0x2045, 0x2045 },
+ { 0x207D, 0x207D },
+ { 0x208D, 0x208D },
+ { 0x2329, 0x2329 },
+ { 0x2768, 0x2768 },
+ { 0x276A, 0x276A },
+ { 0x276C, 0x276C },
+ { 0x276E, 0x276E },
+ { 0x2770, 0x2770 },
+ { 0x2772, 0x2772 },
+ { 0x2774, 0x2774 },
+ { 0x27C5, 0x27C5 },
+ { 0x27E6, 0x27E6 },
+ { 0x27E8, 0x27E8 },
+ { 0x27EA, 0x27EA },
+ { 0x27EC, 0x27EC },
+ { 0x27EE, 0x27EE },
+ { 0x2983, 0x2983 },
+ { 0x2985, 0x2985 },
+ { 0x2987, 0x2987 },
+ { 0x2989, 0x2989 },
+ { 0x298B, 0x298B },
+ { 0x298D, 0x298D },
+ { 0x298F, 0x298F },
+ { 0x2991, 0x2991 },
+ { 0x2993, 0x2993 },
+ { 0x2995, 0x2995 },
+ { 0x2997, 0x2997 },
+ { 0x29D8, 0x29D8 },
+ { 0x29DA, 0x29DA },
+ { 0x29FC, 0x29FC },
+ { 0x2E22, 0x2E22 },
+ { 0x2E24, 0x2E24 },
+ { 0x2E26, 0x2E26 },
+ { 0x2E28, 0x2E28 },
+ { 0x3008, 0x3008 },
+ { 0x300A, 0x300A },
+ { 0x300C, 0x300C },
+ { 0x300E, 0x300E },
+ { 0x3010, 0x3010 },
+ { 0x3014, 0x3014 },
+ { 0x3016, 0x3016 },
+ { 0x3018, 0x3018 },
+ { 0x301A, 0x301A },
+ { 0x301D, 0x301D },
+ { 0xFD3E, 0xFD3E },
+ { 0xFE17, 0xFE17 },
+ { 0xFE35, 0xFE35 },
+ { 0xFE37, 0xFE37 },
+ { 0xFE39, 0xFE39 },
+ { 0xFE3B, 0xFE3B },
+ { 0xFE3D, 0xFE3D },
+ { 0xFE3F, 0xFE3F },
+ { 0xFE41, 0xFE41 },
+ { 0xFE43, 0xFE43 },
+ { 0xFE47, 0xFE47 },
+ { 0xFE59, 0xFE59 },
+ { 0xFE5B, 0xFE5B },
+ { 0xFE5D, 0xFE5D },
+ { 0xFF08, 0xFF08 },
+ { 0xFF3B, 0xFF3B },
+ { 0xFF5B, 0xFF5B },
+ { 0xFF5F, 0xFF5F },
+ { 0xFF62, 0xFF62 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Ps)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_S.c b/tests/unictype/test-categ_S.c
new file mode 100644
index 0000000..6f6cdd5
--- /dev/null
+++ b/tests/unictype/test-categ_S.c
@@ -0,0 +1,201 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0024, 0x0024 },
+ { 0x002B, 0x002B },
+ { 0x003C, 0x003E },
+ { 0x005E, 0x005E },
+ { 0x0060, 0x0060 },
+ { 0x007C, 0x007C },
+ { 0x007E, 0x007E },
+ { 0x00A2, 0x00A9 },
+ { 0x00AC, 0x00AC },
+ { 0x00AE, 0x00B1 },
+ { 0x00B4, 0x00B4 },
+ { 0x00B6, 0x00B6 },
+ { 0x00B8, 0x00B8 },
+ { 0x00D7, 0x00D7 },
+ { 0x00F7, 0x00F7 },
+ { 0x02C2, 0x02C5 },
+ { 0x02D2, 0x02DF },
+ { 0x02E5, 0x02EB },
+ { 0x02ED, 0x02ED },
+ { 0x02EF, 0x02FF },
+ { 0x0375, 0x0375 },
+ { 0x0384, 0x0385 },
+ { 0x03F6, 0x03F6 },
+ { 0x0482, 0x0482 },
+ { 0x0606, 0x0608 },
+ { 0x060B, 0x060B },
+ { 0x060E, 0x060F },
+ { 0x06E9, 0x06E9 },
+ { 0x06FD, 0x06FE },
+ { 0x07F6, 0x07F6 },
+ { 0x09F2, 0x09F3 },
+ { 0x09FA, 0x09FA },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0B70, 0x0B70 },
+ { 0x0BF3, 0x0BFA },
+ { 0x0C7F, 0x0C7F },
+ { 0x0CF1, 0x0CF2 },
+ { 0x0D79, 0x0D79 },
+ { 0x0E3F, 0x0E3F },
+ { 0x0F01, 0x0F03 },
+ { 0x0F13, 0x0F17 },
+ { 0x0F1A, 0x0F1F },
+ { 0x0F34, 0x0F34 },
+ { 0x0F36, 0x0F36 },
+ { 0x0F38, 0x0F38 },
+ { 0x0FBE, 0x0FC5 },
+ { 0x0FC7, 0x0FCC },
+ { 0x0FCE, 0x0FCF },
+ { 0x109E, 0x109F },
+ { 0x1360, 0x1360 },
+ { 0x1390, 0x1399 },
+ { 0x17DB, 0x17DB },
+ { 0x1940, 0x1940 },
+ { 0x19E0, 0x19FF },
+ { 0x1B61, 0x1B6A },
+ { 0x1B74, 0x1B7C },
+ { 0x1FBD, 0x1FBD },
+ { 0x1FBF, 0x1FC1 },
+ { 0x1FCD, 0x1FCF },
+ { 0x1FDD, 0x1FDF },
+ { 0x1FED, 0x1FEF },
+ { 0x1FFD, 0x1FFE },
+ { 0x2044, 0x2044 },
+ { 0x2052, 0x2052 },
+ { 0x207A, 0x207C },
+ { 0x208A, 0x208C },
+ { 0x20A0, 0x20B5 },
+ { 0x2100, 0x2101 },
+ { 0x2103, 0x2106 },
+ { 0x2108, 0x2109 },
+ { 0x2114, 0x2114 },
+ { 0x2116, 0x2118 },
+ { 0x211E, 0x2123 },
+ { 0x2125, 0x2125 },
+ { 0x2127, 0x2127 },
+ { 0x2129, 0x2129 },
+ { 0x212E, 0x212E },
+ { 0x213A, 0x213B },
+ { 0x2140, 0x2144 },
+ { 0x214A, 0x214D },
+ { 0x214F, 0x214F },
+ { 0x2190, 0x2328 },
+ { 0x232B, 0x23E7 },
+ { 0x2400, 0x2426 },
+ { 0x2440, 0x244A },
+ { 0x249C, 0x24E9 },
+ { 0x2500, 0x269D },
+ { 0x26A0, 0x26BC },
+ { 0x26C0, 0x26C3 },
+ { 0x2701, 0x2704 },
+ { 0x2706, 0x2709 },
+ { 0x270C, 0x2727 },
+ { 0x2729, 0x274B },
+ { 0x274D, 0x274D },
+ { 0x274F, 0x2752 },
+ { 0x2756, 0x2756 },
+ { 0x2758, 0x275E },
+ { 0x2761, 0x2767 },
+ { 0x2794, 0x2794 },
+ { 0x2798, 0x27AF },
+ { 0x27B1, 0x27BE },
+ { 0x27C0, 0x27C4 },
+ { 0x27C7, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x27E5 },
+ { 0x27F0, 0x2982 },
+ { 0x2999, 0x29D7 },
+ { 0x29DC, 0x29FB },
+ { 0x29FE, 0x2B4C },
+ { 0x2B50, 0x2B54 },
+ { 0x2CE5, 0x2CEA },
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 },
+ { 0x2FF0, 0x2FFB },
+ { 0x3004, 0x3004 },
+ { 0x3012, 0x3013 },
+ { 0x3020, 0x3020 },
+ { 0x3036, 0x3037 },
+ { 0x303E, 0x303F },
+ { 0x309B, 0x309C },
+ { 0x3190, 0x3191 },
+ { 0x3196, 0x319F },
+ { 0x31C0, 0x31E3 },
+ { 0x3200, 0x321E },
+ { 0x322A, 0x3243 },
+ { 0x3250, 0x3250 },
+ { 0x3260, 0x327F },
+ { 0x328A, 0x32B0 },
+ { 0x32C0, 0x32FE },
+ { 0x3300, 0x33FF },
+ { 0x4DC0, 0x4DFF },
+ { 0xA490, 0xA4C6 },
+ { 0xA700, 0xA716 },
+ { 0xA720, 0xA721 },
+ { 0xA789, 0xA78A },
+ { 0xA828, 0xA82B },
+ { 0xFB29, 0xFB29 },
+ { 0xFDFC, 0xFDFD },
+ { 0xFE62, 0xFE62 },
+ { 0xFE64, 0xFE66 },
+ { 0xFE69, 0xFE69 },
+ { 0xFF04, 0xFF04 },
+ { 0xFF0B, 0xFF0B },
+ { 0xFF1C, 0xFF1E },
+ { 0xFF3E, 0xFF3E },
+ { 0xFF40, 0xFF40 },
+ { 0xFF5C, 0xFF5C },
+ { 0xFF5E, 0xFF5E },
+ { 0xFFE0, 0xFFE6 },
+ { 0xFFE8, 0xFFEE },
+ { 0xFFFC, 0xFFFD },
+ { 0x10102, 0x10102 },
+ { 0x10137, 0x1013F },
+ { 0x10179, 0x10189 },
+ { 0x10190, 0x1019B },
+ { 0x101D0, 0x101FC },
+ { 0x1D000, 0x1D0F5 },
+ { 0x1D100, 0x1D126 },
+ { 0x1D129, 0x1D164 },
+ { 0x1D16A, 0x1D16C },
+ { 0x1D183, 0x1D184 },
+ { 0x1D18C, 0x1D1A9 },
+ { 0x1D1AE, 0x1D1DD },
+ { 0x1D200, 0x1D241 },
+ { 0x1D245, 0x1D245 },
+ { 0x1D300, 0x1D356 },
+ { 0x1D6C1, 0x1D6C1 },
+ { 0x1D6DB, 0x1D6DB },
+ { 0x1D6FB, 0x1D6FB },
+ { 0x1D715, 0x1D715 },
+ { 0x1D735, 0x1D735 },
+ { 0x1D74F, 0x1D74F },
+ { 0x1D76F, 0x1D76F },
+ { 0x1D789, 0x1D789 },
+ { 0x1D7A9, 0x1D7A9 },
+ { 0x1D7C3, 0x1D7C3 },
+ { 0x1F000, 0x1F02B },
+ { 0x1F030, 0x1F093 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_S)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Sc.c b/tests/unictype/test-categ_Sc.c
new file mode 100644
index 0000000..8ec99a6
--- /dev/null
+++ b/tests/unictype/test-categ_Sc.c
@@ -0,0 +1,36 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0024, 0x0024 },
+ { 0x00A2, 0x00A5 },
+ { 0x060B, 0x060B },
+ { 0x09F2, 0x09F3 },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0BF9, 0x0BF9 },
+ { 0x0E3F, 0x0E3F },
+ { 0x17DB, 0x17DB },
+ { 0x20A0, 0x20B5 },
+ { 0xFDFC, 0xFDFC },
+ { 0xFE69, 0xFE69 },
+ { 0xFF04, 0xFF04 },
+ { 0xFFE0, 0xFFE1 },
+ { 0xFFE5, 0xFFE6 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Sc)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Sk.c b/tests/unictype/test-categ_Sk.c
new file mode 100644
index 0000000..b0961aa
--- /dev/null
+++ b/tests/unictype/test-categ_Sk.c
@@ -0,0 +1,48 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x005E, 0x005E },
+ { 0x0060, 0x0060 },
+ { 0x00A8, 0x00A8 },
+ { 0x00AF, 0x00AF },
+ { 0x00B4, 0x00B4 },
+ { 0x00B8, 0x00B8 },
+ { 0x02C2, 0x02C5 },
+ { 0x02D2, 0x02DF },
+ { 0x02E5, 0x02EB },
+ { 0x02ED, 0x02ED },
+ { 0x02EF, 0x02FF },
+ { 0x0375, 0x0375 },
+ { 0x0384, 0x0385 },
+ { 0x1FBD, 0x1FBD },
+ { 0x1FBF, 0x1FC1 },
+ { 0x1FCD, 0x1FCF },
+ { 0x1FDD, 0x1FDF },
+ { 0x1FED, 0x1FEF },
+ { 0x1FFD, 0x1FFE },
+ { 0x309B, 0x309C },
+ { 0xA700, 0xA716 },
+ { 0xA720, 0xA721 },
+ { 0xA789, 0xA78A },
+ { 0xFF3E, 0xFF3E },
+ { 0xFF40, 0xFF40 },
+ { 0xFFE3, 0xFFE3 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Sk)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Sm.c b/tests/unictype/test-categ_Sm.c
new file mode 100644
index 0000000..b373cb4
--- /dev/null
+++ b/tests/unictype/test-categ_Sm.c
@@ -0,0 +1,87 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x002B, 0x002B },
+ { 0x003C, 0x003E },
+ { 0x007C, 0x007C },
+ { 0x007E, 0x007E },
+ { 0x00AC, 0x00AC },
+ { 0x00B1, 0x00B1 },
+ { 0x00D7, 0x00D7 },
+ { 0x00F7, 0x00F7 },
+ { 0x03F6, 0x03F6 },
+ { 0x0606, 0x0608 },
+ { 0x2044, 0x2044 },
+ { 0x2052, 0x2052 },
+ { 0x207A, 0x207C },
+ { 0x208A, 0x208C },
+ { 0x2140, 0x2144 },
+ { 0x214B, 0x214B },
+ { 0x2190, 0x2194 },
+ { 0x219A, 0x219B },
+ { 0x21A0, 0x21A0 },
+ { 0x21A3, 0x21A3 },
+ { 0x21A6, 0x21A6 },
+ { 0x21AE, 0x21AE },
+ { 0x21CE, 0x21CF },
+ { 0x21D2, 0x21D2 },
+ { 0x21D4, 0x21D4 },
+ { 0x21F4, 0x22FF },
+ { 0x2308, 0x230B },
+ { 0x2320, 0x2321 },
+ { 0x237C, 0x237C },
+ { 0x239B, 0x23B3 },
+ { 0x23DC, 0x23E1 },
+ { 0x25B7, 0x25B7 },
+ { 0x25C1, 0x25C1 },
+ { 0x25F8, 0x25FF },
+ { 0x266F, 0x266F },
+ { 0x27C0, 0x27C4 },
+ { 0x27C7, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x27E5 },
+ { 0x27F0, 0x27FF },
+ { 0x2900, 0x2982 },
+ { 0x2999, 0x29D7 },
+ { 0x29DC, 0x29FB },
+ { 0x29FE, 0x2AFF },
+ { 0x2B30, 0x2B44 },
+ { 0x2B47, 0x2B4C },
+ { 0xFB29, 0xFB29 },
+ { 0xFE62, 0xFE62 },
+ { 0xFE64, 0xFE66 },
+ { 0xFF0B, 0xFF0B },
+ { 0xFF1C, 0xFF1E },
+ { 0xFF5C, 0xFF5C },
+ { 0xFF5E, 0xFF5E },
+ { 0xFFE2, 0xFFE2 },
+ { 0xFFE9, 0xFFEC },
+ { 0x1D6C1, 0x1D6C1 },
+ { 0x1D6DB, 0x1D6DB },
+ { 0x1D6FB, 0x1D6FB },
+ { 0x1D715, 0x1D715 },
+ { 0x1D735, 0x1D735 },
+ { 0x1D74F, 0x1D74F },
+ { 0x1D76F, 0x1D76F },
+ { 0x1D789, 0x1D789 },
+ { 0x1D7A9, 0x1D7A9 },
+ { 0x1D7C3, 0x1D7C3 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Sm)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_So.c b/tests/unictype/test-categ_So.c
new file mode 100644
index 0000000..c4c5e3e
--- /dev/null
+++ b/tests/unictype/test-categ_So.c
@@ -0,0 +1,156 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00A6, 0x00A7 },
+ { 0x00A9, 0x00A9 },
+ { 0x00AE, 0x00AE },
+ { 0x00B0, 0x00B0 },
+ { 0x00B6, 0x00B6 },
+ { 0x0482, 0x0482 },
+ { 0x060E, 0x060F },
+ { 0x06E9, 0x06E9 },
+ { 0x06FD, 0x06FE },
+ { 0x07F6, 0x07F6 },
+ { 0x09FA, 0x09FA },
+ { 0x0B70, 0x0B70 },
+ { 0x0BF3, 0x0BF8 },
+ { 0x0BFA, 0x0BFA },
+ { 0x0C7F, 0x0C7F },
+ { 0x0CF1, 0x0CF2 },
+ { 0x0D79, 0x0D79 },
+ { 0x0F01, 0x0F03 },
+ { 0x0F13, 0x0F17 },
+ { 0x0F1A, 0x0F1F },
+ { 0x0F34, 0x0F34 },
+ { 0x0F36, 0x0F36 },
+ { 0x0F38, 0x0F38 },
+ { 0x0FBE, 0x0FC5 },
+ { 0x0FC7, 0x0FCC },
+ { 0x0FCE, 0x0FCF },
+ { 0x109E, 0x109F },
+ { 0x1360, 0x1360 },
+ { 0x1390, 0x1399 },
+ { 0x1940, 0x1940 },
+ { 0x19E0, 0x19FF },
+ { 0x1B61, 0x1B6A },
+ { 0x1B74, 0x1B7C },
+ { 0x2100, 0x2101 },
+ { 0x2103, 0x2106 },
+ { 0x2108, 0x2109 },
+ { 0x2114, 0x2114 },
+ { 0x2116, 0x2118 },
+ { 0x211E, 0x2123 },
+ { 0x2125, 0x2125 },
+ { 0x2127, 0x2127 },
+ { 0x2129, 0x2129 },
+ { 0x212E, 0x212E },
+ { 0x213A, 0x213B },
+ { 0x214A, 0x214A },
+ { 0x214C, 0x214D },
+ { 0x214F, 0x214F },
+ { 0x2195, 0x2199 },
+ { 0x219C, 0x219F },
+ { 0x21A1, 0x21A2 },
+ { 0x21A4, 0x21A5 },
+ { 0x21A7, 0x21AD },
+ { 0x21AF, 0x21CD },
+ { 0x21D0, 0x21D1 },
+ { 0x21D3, 0x21D3 },
+ { 0x21D5, 0x21F3 },
+ { 0x2300, 0x2307 },
+ { 0x230C, 0x231F },
+ { 0x2322, 0x2328 },
+ { 0x232B, 0x237B },
+ { 0x237D, 0x239A },
+ { 0x23B4, 0x23DB },
+ { 0x23E2, 0x23E7 },
+ { 0x2400, 0x2426 },
+ { 0x2440, 0x244A },
+ { 0x249C, 0x24E9 },
+ { 0x2500, 0x25B6 },
+ { 0x25B8, 0x25C0 },
+ { 0x25C2, 0x25F7 },
+ { 0x2600, 0x266E },
+ { 0x2670, 0x269D },
+ { 0x26A0, 0x26BC },
+ { 0x26C0, 0x26C3 },
+ { 0x2701, 0x2704 },
+ { 0x2706, 0x2709 },
+ { 0x270C, 0x2727 },
+ { 0x2729, 0x274B },
+ { 0x274D, 0x274D },
+ { 0x274F, 0x2752 },
+ { 0x2756, 0x2756 },
+ { 0x2758, 0x275E },
+ { 0x2761, 0x2767 },
+ { 0x2794, 0x2794 },
+ { 0x2798, 0x27AF },
+ { 0x27B1, 0x27BE },
+ { 0x2800, 0x28FF },
+ { 0x2B00, 0x2B2F },
+ { 0x2B45, 0x2B46 },
+ { 0x2B50, 0x2B54 },
+ { 0x2CE5, 0x2CEA },
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 },
+ { 0x2FF0, 0x2FFB },
+ { 0x3004, 0x3004 },
+ { 0x3012, 0x3013 },
+ { 0x3020, 0x3020 },
+ { 0x3036, 0x3037 },
+ { 0x303E, 0x303F },
+ { 0x3190, 0x3191 },
+ { 0x3196, 0x319F },
+ { 0x31C0, 0x31E3 },
+ { 0x3200, 0x321E },
+ { 0x322A, 0x3243 },
+ { 0x3250, 0x3250 },
+ { 0x3260, 0x327F },
+ { 0x328A, 0x32B0 },
+ { 0x32C0, 0x32FE },
+ { 0x3300, 0x33FF },
+ { 0x4DC0, 0x4DFF },
+ { 0xA490, 0xA4C6 },
+ { 0xA828, 0xA82B },
+ { 0xFDFD, 0xFDFD },
+ { 0xFFE4, 0xFFE4 },
+ { 0xFFE8, 0xFFE8 },
+ { 0xFFED, 0xFFEE },
+ { 0xFFFC, 0xFFFD },
+ { 0x10102, 0x10102 },
+ { 0x10137, 0x1013F },
+ { 0x10179, 0x10189 },
+ { 0x10190, 0x1019B },
+ { 0x101D0, 0x101FC },
+ { 0x1D000, 0x1D0F5 },
+ { 0x1D100, 0x1D126 },
+ { 0x1D129, 0x1D164 },
+ { 0x1D16A, 0x1D16C },
+ { 0x1D183, 0x1D184 },
+ { 0x1D18C, 0x1D1A9 },
+ { 0x1D1AE, 0x1D1DD },
+ { 0x1D200, 0x1D241 },
+ { 0x1D245, 0x1D245 },
+ { 0x1D300, 0x1D356 },
+ { 0x1F000, 0x1F02B },
+ { 0x1F030, 0x1F093 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_So)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Z.c b/tests/unictype/test-categ_Z.c
new file mode 100644
index 0000000..f374594
--- /dev/null
+++ b/tests/unictype/test-categ_Z.c
@@ -0,0 +1,31 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0020, 0x0020 },
+ { 0x00A0, 0x00A0 },
+ { 0x1680, 0x1680 },
+ { 0x180E, 0x180E },
+ { 0x2000, 0x200A },
+ { 0x2028, 0x2029 },
+ { 0x202F, 0x202F },
+ { 0x205F, 0x205F },
+ { 0x3000, 0x3000 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Z)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Zl.c b/tests/unictype/test-categ_Zl.c
new file mode 100644
index 0000000..ce9d36c
--- /dev/null
+++ b/tests/unictype/test-categ_Zl.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2028, 0x2028 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Zl)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Zp.c b/tests/unictype/test-categ_Zp.c
new file mode 100644
index 0000000..84866d8
--- /dev/null
+++ b/tests/unictype/test-categ_Zp.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2029, 0x2029 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Zp)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_Zs.c b/tests/unictype/test-categ_Zs.c
new file mode 100644
index 0000000..982ee0b
--- /dev/null
+++ b/tests/unictype/test-categ_Zs.c
@@ -0,0 +1,30 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0020, 0x0020 },
+ { 0x00A0, 0x00A0 },
+ { 0x1680, 0x1680 },
+ { 0x180E, 0x180E },
+ { 0x2000, 0x200A },
+ { 0x202F, 0x202F },
+ { 0x205F, 0x205F },
+ { 0x3000, 0x3000 }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Zs)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-categ_and.c b/tests/unictype/test-categ_and.c
new file mode 100644
index 0000000..5531ff4
--- /dev/null
+++ b/tests/unictype/test-categ_and.c
@@ -0,0 +1,51 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uc_general_category_t ct =
+ uc_general_category_and (
+ uc_general_category_or (UC_LETTER, UC_DECIMAL_DIGIT_NUMBER),
+ uc_general_category_or (UC_UPPERCASE_LETTER, UC_NUMBER));
+
+ ASSERT (uc_is_general_category ('A', ct));
+ ASSERT (!uc_is_general_category ('a', ct));
+ ASSERT (uc_is_general_category ('7', ct));
+ ASSERT (!uc_is_general_category (0x00B2, ct));
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_and_not.c b/tests/unictype/test-categ_and_not.c
new file mode 100644
index 0000000..90b40f8
--- /dev/null
+++ b/tests/unictype/test-categ_and_not.c
@@ -0,0 +1,51 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uc_general_category_t ct =
+ uc_general_category_and_not (
+ uc_general_category_or (UC_LETTER, UC_NUMBER),
+ uc_general_category_or (UC_UPPERCASE_LETTER, UC_DECIMAL_DIGIT_NUMBER));
+
+ ASSERT (!uc_is_general_category ('A', ct));
+ ASSERT (uc_is_general_category ('a', ct));
+ ASSERT (!uc_is_general_category ('7', ct));
+ ASSERT (uc_is_general_category (0x00B2, ct));
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_byname.c b/tests/unictype/test-categ_byname.c
new file mode 100644
index 0000000..3bb44e9
--- /dev/null
+++ b/tests/unictype/test-categ_byname.c
@@ -0,0 +1,62 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uc_general_category_byname ("L");
+ uc_general_category_byname ("Nl");
+
+ {
+ uc_general_category_t ct = uc_general_category_byname ("Nd");
+ unsigned int c;
+
+ for (c = 0x30; c <= 0x39; c++)
+ ASSERT (uc_is_general_category (c, ct));
+ for (c = 0x40; c < 0x80; c++)
+ ASSERT (!uc_is_general_category (c, ct));
+ }
+
+ {
+ uc_general_category_t ct = uc_general_category_byname ("Foo");
+ unsigned int c;
+
+ for (c = 0; c < 0x110000; c++)
+ ASSERT (!uc_is_general_category (c, ct));
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_name.c b/tests/unictype/test-categ_name.c
new file mode 100644
index 0000000..b5c3f75
--- /dev/null
+++ b/tests/unictype/test-categ_name.c
@@ -0,0 +1,45 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (strcmp (uc_general_category_name (UC_CATEGORY_Z), "Z") == 0);
+ ASSERT (strcmp (uc_general_category_name (UC_CATEGORY_Nl), "Nl") == 0);
+ ASSERT (uc_general_category_name (uc_general_category_or (UC_CATEGORY_Z, UC_CATEGORY_Nl)) == NULL);
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_none.c b/tests/unictype/test-categ_none.c
new file mode 100644
index 0000000..f800241
--- /dev/null
+++ b/tests/unictype/test-categ_none.c
@@ -0,0 +1,47 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uc_general_category_t ct = _UC_CATEGORY_NONE;
+ unsigned int c;
+
+ for (c = 0; c < 0x110000; c++)
+ ASSERT (!uc_is_general_category (c, ct));
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_of.c b/tests/unictype/test-categ_of.c
new file mode 100644
index 0000000..28ee663
--- /dev/null
+++ b/tests/unictype/test-categ_of.c
@@ -0,0 +1,67 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ {
+ unsigned int c;
+ for (c = 0; c < 0x110000; c++)
+ ASSERT (uc_is_general_category (c, uc_general_category (c)));
+ }
+
+ {
+ uc_general_category_t decimal_digits = uc_general_category ('7');
+ unsigned int c;
+
+ for (c = 0x30; c <= 0x39; c++)
+ ASSERT (uc_is_general_category (c, decimal_digits));
+ for (c = 0x40; c < 0x80; c++)
+ ASSERT (!uc_is_general_category (c, decimal_digits));
+ }
+
+ {
+ uc_general_category_t lowercase_letters = uc_general_category ('x');
+ unsigned int c;
+
+ for (c = 0x41; c <= 0x5A; c++)
+ ASSERT (!uc_is_general_category (c, lowercase_letters));
+ for (c = 0x61; c <= 0x7A; c++)
+ ASSERT (uc_is_general_category (c, lowercase_letters));
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_or.c b/tests/unictype/test-categ_or.c
new file mode 100644
index 0000000..6b07de5
--- /dev/null
+++ b/tests/unictype/test-categ_or.c
@@ -0,0 +1,48 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uc_general_category_t ct =
+ uc_general_category_or (UC_LETTER, UC_NUMBER);
+
+ ASSERT (uc_is_general_category ('a', ct));
+ ASSERT (uc_is_general_category ('7', ct));
+ ASSERT (!uc_is_general_category ('$', ct));
+
+ return 0;
+}
diff --git a/tests/unictype/test-categ_test_withtable.c b/tests/unictype/test-categ_test_withtable.c
new file mode 100644
index 0000000..b735132
--- /dev/null
+++ b/tests/unictype/test-categ_test_withtable.c
@@ -0,0 +1,50 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uint32_t ctmask =
+ (UC_CATEGORY_MASK_L | UC_CATEGORY_MASK_N)
+ & ~(UC_CATEGORY_MASK_Lu | UC_CATEGORY_MASK_Nd);
+
+ ASSERT (!uc_is_general_category_withtable ('A', ctmask));
+ ASSERT (uc_is_general_category_withtable ('a', ctmask));
+ ASSERT (!uc_is_general_category_withtable ('7', ctmask));
+ ASSERT (uc_is_general_category_withtable (0x00B2, ctmask));
+
+ return 0;
+}
diff --git a/tests/unictype/test-combining.c b/tests/unictype/test-combining.c
new file mode 100644
index 0000000..3e66a9b
--- /dev/null
+++ b/tests/unictype/test-combining.c
@@ -0,0 +1,47 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (uc_combining_class ('x') == UC_CCC_NR);
+ ASSERT (uc_combining_class (0x0300) == UC_CCC_A);
+ ASSERT (uc_combining_class (0x0319) == UC_CCC_B);
+ ASSERT (uc_combining_class (0x0327) == UC_CCC_ATB);
+ ASSERT (uc_combining_class (0x093C) == UC_CCC_NK);
+
+ return 0;
+}
diff --git a/tests/unictype/test-ctype_alnum.c b/tests/unictype/test-ctype_alnum.c
new file mode 100644
index 0000000..9a1c6ca
--- /dev/null
+++ b/tests/unictype/test-ctype_alnum.c
@@ -0,0 +1,439 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0345, 0x0345 },
+ { 0x0370, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0621, 0x064A },
+ { 0x0660, 0x0669 },
+ { 0x066E, 0x066F },
+ { 0x0671, 0x06D3 },
+ { 0x06D5, 0x06D5 },
+ { 0x06E5, 0x06E6 },
+ { 0x06EE, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074D, 0x07A5 },
+ { 0x07B1, 0x07B1 },
+ { 0x07C0, 0x07EA },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0904, 0x0939 },
+ { 0x093D, 0x093D },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0961 },
+ { 0x0966, 0x096F },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09BD },
+ { 0x09CE, 0x09CE },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E1 },
+ { 0x09E6, 0x09F1 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A66, 0x0A6F },
+ { 0x0A72, 0x0A74 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0ABD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE1 },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B3D },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B61 },
+ { 0x0B66, 0x0B6F },
+ { 0x0B71, 0x0B71 },
+ { 0x0B83, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BE6, 0x0BEF },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C3D },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C61 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CBD },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE1 },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D3D },
+ { 0x0D60, 0x0D61 },
+ { 0x0D66, 0x0D6F },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0E01, 0x0E2E },
+ { 0x0E30, 0x0E3A },
+ { 0x0E40, 0x0E45 },
+ { 0x0E47, 0x0E4E },
+ { 0x0E50, 0x0E59 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB0 },
+ { 0x0EB2, 0x0EB3 },
+ { 0x0EBD, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F20, 0x0F29 },
+ { 0x0F40, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F88, 0x0F8B },
+ { 0x1000, 0x102A },
+ { 0x103F, 0x1049 },
+ { 0x1050, 0x1055 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1061 },
+ { 0x1065, 0x1066 },
+ { 0x106E, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x108E, 0x108E },
+ { 0x1090, 0x1099 },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x16EE, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1711 },
+ { 0x1720, 0x1731 },
+ { 0x1740, 0x1751 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1780, 0x17B3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DC },
+ { 0x17E0, 0x17E9 },
+ { 0x1810, 0x1819 },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18A8 },
+ { 0x18AA, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1946, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19C1, 0x19C7 },
+ { 0x19D0, 0x19D9 },
+ { 0x1A00, 0x1A16 },
+ { 0x1B05, 0x1B33 },
+ { 0x1B45, 0x1B4B },
+ { 0x1B50, 0x1B59 },
+ { 0x1B83, 0x1BA0 },
+ { 0x1BAE, 0x1BB9 },
+ { 0x1C00, 0x1C23 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C4D, 0x1C7D },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x212D },
+ { 0x212F, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x2188 },
+ { 0x249C, 0x24E9 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2E2F, 0x2E2F },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x309D, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66E },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA822 },
+ { 0xA840, 0xA873 },
+ { 0xA882, 0xA8B3 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA925 },
+ { 0xA930, 0xA946 },
+ { 0xAA00, 0xAA28 },
+ { 0xAA40, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAA50, 0xAA59 },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFB },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF10, 0xFF19 },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10140, 0x10174 },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x103D1, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x104A0, 0x104A9 },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A00 },
+ { 0x10A10, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_alnum (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_alpha.c b/tests/unictype/test-ctype_alpha.c
new file mode 100644
index 0000000..c6100cf
--- /dev/null
+++ b/tests/unictype/test-ctype_alpha.c
@@ -0,0 +1,438 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0345, 0x0345 },
+ { 0x0370, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0621, 0x064A },
+ { 0x0660, 0x0669 },
+ { 0x066E, 0x066F },
+ { 0x0671, 0x06D3 },
+ { 0x06D5, 0x06D5 },
+ { 0x06E5, 0x06E6 },
+ { 0x06EE, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074D, 0x07A5 },
+ { 0x07B1, 0x07B1 },
+ { 0x07C0, 0x07EA },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0904, 0x0939 },
+ { 0x093D, 0x093D },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0961 },
+ { 0x0966, 0x096F },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09BD },
+ { 0x09CE, 0x09CE },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E1 },
+ { 0x09E6, 0x09F1 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A66, 0x0A6F },
+ { 0x0A72, 0x0A74 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0ABD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE1 },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B3D },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B61 },
+ { 0x0B66, 0x0B6F },
+ { 0x0B71, 0x0B71 },
+ { 0x0B83, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BE6, 0x0BEF },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C3D },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C61 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CBD },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE1 },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D3D },
+ { 0x0D60, 0x0D61 },
+ { 0x0D66, 0x0D6F },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0E01, 0x0E2E },
+ { 0x0E30, 0x0E3A },
+ { 0x0E40, 0x0E45 },
+ { 0x0E47, 0x0E4E },
+ { 0x0E50, 0x0E59 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB0 },
+ { 0x0EB2, 0x0EB3 },
+ { 0x0EBD, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F20, 0x0F29 },
+ { 0x0F40, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F88, 0x0F8B },
+ { 0x1000, 0x102A },
+ { 0x103F, 0x1049 },
+ { 0x1050, 0x1055 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1061 },
+ { 0x1065, 0x1066 },
+ { 0x106E, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x108E, 0x108E },
+ { 0x1090, 0x1099 },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x16EE, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1711 },
+ { 0x1720, 0x1731 },
+ { 0x1740, 0x1751 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1780, 0x17B3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DC },
+ { 0x17E0, 0x17E9 },
+ { 0x1810, 0x1819 },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18A8 },
+ { 0x18AA, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1946, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19C1, 0x19C7 },
+ { 0x19D0, 0x19D9 },
+ { 0x1A00, 0x1A16 },
+ { 0x1B05, 0x1B33 },
+ { 0x1B45, 0x1B4B },
+ { 0x1B50, 0x1B59 },
+ { 0x1B83, 0x1BA0 },
+ { 0x1BAE, 0x1BB9 },
+ { 0x1C00, 0x1C23 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C4D, 0x1C7D },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x212D },
+ { 0x212F, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x2188 },
+ { 0x249C, 0x24E9 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2E2F, 0x2E2F },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x309D, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66E },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA822 },
+ { 0xA840, 0xA873 },
+ { 0xA882, 0xA8B3 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA925 },
+ { 0xA930, 0xA946 },
+ { 0xAA00, 0xAA28 },
+ { 0xAA40, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAA50, 0xAA59 },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFB },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF10, 0xFF19 },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10140, 0x10174 },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x103D1, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x104A0, 0x104A9 },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A00 },
+ { 0x10A10, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_alpha (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_blank.c b/tests/unictype/test-ctype_blank.c
new file mode 100644
index 0000000..15aa308
--- /dev/null
+++ b/tests/unictype/test-ctype_blank.c
@@ -0,0 +1,30 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0009, 0x0009 },
+ { 0x0020, 0x0020 },
+ { 0x1680, 0x1680 },
+ { 0x180E, 0x180E },
+ { 0x2000, 0x2006 },
+ { 0x2008, 0x200A },
+ { 0x205F, 0x205F },
+ { 0x3000, 0x3000 }
+
+#define PREDICATE(c) uc_is_blank (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_cntrl.c b/tests/unictype/test-ctype_cntrl.c
new file mode 100644
index 0000000..ea886b9
--- /dev/null
+++ b/tests/unictype/test-ctype_cntrl.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0000, 0x001F },
+ { 0x007F, 0x009F },
+ { 0x2028, 0x2029 }
+
+#define PREDICATE(c) uc_is_cntrl (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_digit.c b/tests/unictype/test-ctype_digit.c
new file mode 100644
index 0000000..acf5b4a
--- /dev/null
+++ b/tests/unictype/test-ctype_digit.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 }
+
+#define PREDICATE(c) uc_is_digit (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_graph.c b/tests/unictype/test-ctype_graph.c
new file mode 100644
index 0000000..32055ed
--- /dev/null
+++ b/tests/unictype/test-ctype_graph.c
@@ -0,0 +1,471 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x007E },
+ { 0x00A0, 0x0377 },
+ { 0x037A, 0x037E },
+ { 0x0384, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x055F },
+ { 0x0561, 0x0587 },
+ { 0x0589, 0x058A },
+ { 0x0591, 0x05C7 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F4 },
+ { 0x0600, 0x0603 },
+ { 0x0606, 0x061B },
+ { 0x061E, 0x061F },
+ { 0x0621, 0x065E },
+ { 0x0660, 0x070D },
+ { 0x070F, 0x074A },
+ { 0x074D, 0x07B1 },
+ { 0x07C0, 0x07FA },
+ { 0x0901, 0x0939 },
+ { 0x093C, 0x094D },
+ { 0x0950, 0x0954 },
+ { 0x0958, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0981, 0x0983 },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BC, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CE },
+ { 0x09D7, 0x09D7 },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E3 },
+ { 0x09E6, 0x09FA },
+ { 0x0A01, 0x0A03 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A66, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABC, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE3 },
+ { 0x0AE6, 0x0AEF },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0B01, 0x0B03 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3C, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B63 },
+ { 0x0B66, 0x0B71 },
+ { 0x0B82, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCD },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0BE6, 0x0BFA },
+ { 0x0C01, 0x0C03 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C63 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C78, 0x0C7F },
+ { 0x0C82, 0x0C83 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBC, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE3 },
+ { 0x0CE6, 0x0CEF },
+ { 0x0CF1, 0x0CF2 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D60, 0x0D63 },
+ { 0x0D66, 0x0D75 },
+ { 0x0D79, 0x0D7F },
+ { 0x0D82, 0x0D83 },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF4 },
+ { 0x0E01, 0x0E3A },
+ { 0x0E3F, 0x0E5B },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB9 },
+ { 0x0EBB, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EC8, 0x0ECD },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F71, 0x0F8B },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FBE, 0x0FCC },
+ { 0x0FCE, 0x0FD4 },
+ { 0x1000, 0x1099 },
+ { 0x109E, 0x10C5 },
+ { 0x10D0, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x135F, 0x137C },
+ { 0x1380, 0x1399 },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x1676 },
+ { 0x1681, 0x169C },
+ { 0x16A0, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1714 },
+ { 0x1720, 0x1736 },
+ { 0x1740, 0x1753 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1772, 0x1773 },
+ { 0x1780, 0x17DD },
+ { 0x17E0, 0x17E9 },
+ { 0x17F0, 0x17F9 },
+ { 0x1800, 0x180D },
+ { 0x1810, 0x1819 },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x193B },
+ { 0x1940, 0x1940 },
+ { 0x1944, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19B0, 0x19C9 },
+ { 0x19D0, 0x19D9 },
+ { 0x19DE, 0x1A1B },
+ { 0x1A1E, 0x1A1F },
+ { 0x1B00, 0x1B4B },
+ { 0x1B50, 0x1B7C },
+ { 0x1B80, 0x1BAA },
+ { 0x1BAE, 0x1BB9 },
+ { 0x1C00, 0x1C37 },
+ { 0x1C3B, 0x1C49 },
+ { 0x1C4D, 0x1C7F },
+ { 0x1D00, 0x1DE6 },
+ { 0x1DFE, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FC4 },
+ { 0x1FC6, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FDD, 0x1FEF },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFE },
+ { 0x2007, 0x2007 },
+ { 0x200B, 0x2027 },
+ { 0x202A, 0x205E },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x2071 },
+ { 0x2074, 0x208E },
+ { 0x2090, 0x2094 },
+ { 0x20A0, 0x20B5 },
+ { 0x20D0, 0x20F0 },
+ { 0x2100, 0x214F },
+ { 0x2153, 0x2188 },
+ { 0x2190, 0x23E7 },
+ { 0x2400, 0x2426 },
+ { 0x2440, 0x244A },
+ { 0x2460, 0x269D },
+ { 0x26A0, 0x26BC },
+ { 0x26C0, 0x26C3 },
+ { 0x2701, 0x2704 },
+ { 0x2706, 0x2709 },
+ { 0x270C, 0x2727 },
+ { 0x2729, 0x274B },
+ { 0x274D, 0x274D },
+ { 0x274F, 0x2752 },
+ { 0x2756, 0x2756 },
+ { 0x2758, 0x275E },
+ { 0x2761, 0x2794 },
+ { 0x2798, 0x27AF },
+ { 0x27B1, 0x27BE },
+ { 0x27C0, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x2B4C },
+ { 0x2B50, 0x2B54 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CEA },
+ { 0x2CF9, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2DE0, 0x2E30 },
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 },
+ { 0x2FF0, 0x2FFB },
+ { 0x3001, 0x303F },
+ { 0x3041, 0x3096 },
+ { 0x3099, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x3190, 0x31B7 },
+ { 0x31C0, 0x31E3 },
+ { 0x31F0, 0x321E },
+ { 0x3220, 0x3243 },
+ { 0x3250, 0x32FE },
+ { 0x3300, 0x4DB5 },
+ { 0x4DC0, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA490, 0xA4C6 },
+ { 0xA500, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA673 },
+ { 0xA67C, 0xA697 },
+ { 0xA700, 0xA78C },
+ { 0xA7FB, 0xA82B },
+ { 0xA840, 0xA877 },
+ { 0xA880, 0xA8C4 },
+ { 0xA8CE, 0xA8D9 },
+ { 0xA900, 0xA953 },
+ { 0xA95F, 0xA95F },
+ { 0xAA00, 0xAA36 },
+ { 0xAA40, 0xAA4D },
+ { 0xAA50, 0xAA59 },
+ { 0xAA5C, 0xAA5F },
+ { 0xAC00, 0xD7A3 },
+ { 0xE000, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3F },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFD },
+ { 0xFE00, 0xFE19 },
+ { 0xFE20, 0xFE26 },
+ { 0xFE30, 0xFE52 },
+ { 0xFE54, 0xFE66 },
+ { 0xFE68, 0xFE6B },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFEFF, 0xFEFF },
+ { 0xFF01, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0xFFE0, 0xFFE6 },
+ { 0xFFE8, 0xFFEE },
+ { 0xFFF9, 0xFFFD },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10100, 0x10102 },
+ { 0x10107, 0x10133 },
+ { 0x10137, 0x1018A },
+ { 0x10190, 0x1019B },
+ { 0x101D0, 0x101FD },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10320, 0x10323 },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x1039F, 0x103C3 },
+ { 0x103C8, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x104A0, 0x104A9 },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10919 },
+ { 0x1091F, 0x10939 },
+ { 0x1093F, 0x1093F },
+ { 0x10A00, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A47 },
+ { 0x10A50, 0x10A58 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x12470, 0x12473 },
+ { 0x1D000, 0x1D0F5 },
+ { 0x1D100, 0x1D126 },
+ { 0x1D129, 0x1D1DD },
+ { 0x1D200, 0x1D245 },
+ { 0x1D300, 0x1D356 },
+ { 0x1D360, 0x1D371 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x1F000, 0x1F02B },
+ { 0x1F030, 0x1F093 },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F },
+ { 0xE0100, 0xE01EF },
+ { 0xF0000, 0xFFFFD },
+ { 0x100000, 0x10FFFD }
+
+#define PREDICATE(c) uc_is_graph (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_lower.c b/tests/unictype/test-ctype_lower.c
new file mode 100644
index 0000000..f7135fa
--- /dev/null
+++ b/tests/unictype/test-ctype_lower.c
@@ -0,0 +1,592 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0061, 0x007A },
+ { 0x00B5, 0x00B5 },
+ { 0x00DF, 0x00F6 },
+ { 0x00F8, 0x00FF },
+ { 0x0101, 0x0101 },
+ { 0x0103, 0x0103 },
+ { 0x0105, 0x0105 },
+ { 0x0107, 0x0107 },
+ { 0x0109, 0x0109 },
+ { 0x010B, 0x010B },
+ { 0x010D, 0x010D },
+ { 0x010F, 0x010F },
+ { 0x0111, 0x0111 },
+ { 0x0113, 0x0113 },
+ { 0x0115, 0x0115 },
+ { 0x0117, 0x0117 },
+ { 0x0119, 0x0119 },
+ { 0x011B, 0x011B },
+ { 0x011D, 0x011D },
+ { 0x011F, 0x011F },
+ { 0x0121, 0x0121 },
+ { 0x0123, 0x0123 },
+ { 0x0125, 0x0125 },
+ { 0x0127, 0x0127 },
+ { 0x0129, 0x0129 },
+ { 0x012B, 0x012B },
+ { 0x012D, 0x012D },
+ { 0x012F, 0x012F },
+ { 0x0131, 0x0131 },
+ { 0x0133, 0x0133 },
+ { 0x0135, 0x0135 },
+ { 0x0137, 0x0137 },
+ { 0x013A, 0x013A },
+ { 0x013C, 0x013C },
+ { 0x013E, 0x013E },
+ { 0x0140, 0x0140 },
+ { 0x0142, 0x0142 },
+ { 0x0144, 0x0144 },
+ { 0x0146, 0x0146 },
+ { 0x0148, 0x0148 },
+ { 0x014B, 0x014B },
+ { 0x014D, 0x014D },
+ { 0x014F, 0x014F },
+ { 0x0151, 0x0151 },
+ { 0x0153, 0x0153 },
+ { 0x0155, 0x0155 },
+ { 0x0157, 0x0157 },
+ { 0x0159, 0x0159 },
+ { 0x015B, 0x015B },
+ { 0x015D, 0x015D },
+ { 0x015F, 0x015F },
+ { 0x0161, 0x0161 },
+ { 0x0163, 0x0163 },
+ { 0x0165, 0x0165 },
+ { 0x0167, 0x0167 },
+ { 0x0169, 0x0169 },
+ { 0x016B, 0x016B },
+ { 0x016D, 0x016D },
+ { 0x016F, 0x016F },
+ { 0x0171, 0x0171 },
+ { 0x0173, 0x0173 },
+ { 0x0175, 0x0175 },
+ { 0x0177, 0x0177 },
+ { 0x017A, 0x017A },
+ { 0x017C, 0x017C },
+ { 0x017E, 0x0180 },
+ { 0x0183, 0x0183 },
+ { 0x0185, 0x0185 },
+ { 0x0188, 0x0188 },
+ { 0x018C, 0x018C },
+ { 0x0192, 0x0192 },
+ { 0x0195, 0x0195 },
+ { 0x0199, 0x019A },
+ { 0x019E, 0x019E },
+ { 0x01A1, 0x01A1 },
+ { 0x01A3, 0x01A3 },
+ { 0x01A5, 0x01A5 },
+ { 0x01A8, 0x01A8 },
+ { 0x01AD, 0x01AD },
+ { 0x01B0, 0x01B0 },
+ { 0x01B4, 0x01B4 },
+ { 0x01B6, 0x01B6 },
+ { 0x01B9, 0x01B9 },
+ { 0x01BD, 0x01BD },
+ { 0x01BF, 0x01BF },
+ { 0x01C5, 0x01C6 },
+ { 0x01C8, 0x01C9 },
+ { 0x01CB, 0x01CC },
+ { 0x01CE, 0x01CE },
+ { 0x01D0, 0x01D0 },
+ { 0x01D2, 0x01D2 },
+ { 0x01D4, 0x01D4 },
+ { 0x01D6, 0x01D6 },
+ { 0x01D8, 0x01D8 },
+ { 0x01DA, 0x01DA },
+ { 0x01DC, 0x01DD },
+ { 0x01DF, 0x01DF },
+ { 0x01E1, 0x01E1 },
+ { 0x01E3, 0x01E3 },
+ { 0x01E5, 0x01E5 },
+ { 0x01E7, 0x01E7 },
+ { 0x01E9, 0x01E9 },
+ { 0x01EB, 0x01EB },
+ { 0x01ED, 0x01ED },
+ { 0x01EF, 0x01EF },
+ { 0x01F2, 0x01F3 },
+ { 0x01F5, 0x01F5 },
+ { 0x01F9, 0x01F9 },
+ { 0x01FB, 0x01FB },
+ { 0x01FD, 0x01FD },
+ { 0x01FF, 0x01FF },
+ { 0x0201, 0x0201 },
+ { 0x0203, 0x0203 },
+ { 0x0205, 0x0205 },
+ { 0x0207, 0x0207 },
+ { 0x0209, 0x0209 },
+ { 0x020B, 0x020B },
+ { 0x020D, 0x020D },
+ { 0x020F, 0x020F },
+ { 0x0211, 0x0211 },
+ { 0x0213, 0x0213 },
+ { 0x0215, 0x0215 },
+ { 0x0217, 0x0217 },
+ { 0x0219, 0x0219 },
+ { 0x021B, 0x021B },
+ { 0x021D, 0x021D },
+ { 0x021F, 0x021F },
+ { 0x0223, 0x0223 },
+ { 0x0225, 0x0225 },
+ { 0x0227, 0x0227 },
+ { 0x0229, 0x0229 },
+ { 0x022B, 0x022B },
+ { 0x022D, 0x022D },
+ { 0x022F, 0x022F },
+ { 0x0231, 0x0231 },
+ { 0x0233, 0x0233 },
+ { 0x023C, 0x023C },
+ { 0x0242, 0x0242 },
+ { 0x0247, 0x0247 },
+ { 0x0249, 0x0249 },
+ { 0x024B, 0x024B },
+ { 0x024D, 0x024D },
+ { 0x024F, 0x0251 },
+ { 0x0253, 0x0254 },
+ { 0x0256, 0x0257 },
+ { 0x0259, 0x0259 },
+ { 0x025B, 0x025B },
+ { 0x0260, 0x0260 },
+ { 0x0263, 0x0263 },
+ { 0x0268, 0x0269 },
+ { 0x026B, 0x026B },
+ { 0x026F, 0x026F },
+ { 0x0271, 0x0272 },
+ { 0x0275, 0x0275 },
+ { 0x027D, 0x027D },
+ { 0x0280, 0x0280 },
+ { 0x0283, 0x0283 },
+ { 0x0288, 0x028C },
+ { 0x0292, 0x0292 },
+ { 0x0345, 0x0345 },
+ { 0x0371, 0x0371 },
+ { 0x0373, 0x0373 },
+ { 0x0377, 0x0377 },
+ { 0x037B, 0x037D },
+ { 0x03AC, 0x03AF },
+ { 0x03B1, 0x03CE },
+ { 0x03D0, 0x03D1 },
+ { 0x03D5, 0x03D7 },
+ { 0x03D9, 0x03D9 },
+ { 0x03DB, 0x03DB },
+ { 0x03DD, 0x03DD },
+ { 0x03DF, 0x03DF },
+ { 0x03E1, 0x03E1 },
+ { 0x03E3, 0x03E3 },
+ { 0x03E5, 0x03E5 },
+ { 0x03E7, 0x03E7 },
+ { 0x03E9, 0x03E9 },
+ { 0x03EB, 0x03EB },
+ { 0x03ED, 0x03ED },
+ { 0x03EF, 0x03F2 },
+ { 0x03F5, 0x03F5 },
+ { 0x03F8, 0x03F8 },
+ { 0x03FB, 0x03FB },
+ { 0x0430, 0x045F },
+ { 0x0461, 0x0461 },
+ { 0x0463, 0x0463 },
+ { 0x0465, 0x0465 },
+ { 0x0467, 0x0467 },
+ { 0x0469, 0x0469 },
+ { 0x046B, 0x046B },
+ { 0x046D, 0x046D },
+ { 0x046F, 0x046F },
+ { 0x0471, 0x0471 },
+ { 0x0473, 0x0473 },
+ { 0x0475, 0x0475 },
+ { 0x0477, 0x0477 },
+ { 0x0479, 0x0479 },
+ { 0x047B, 0x047B },
+ { 0x047D, 0x047D },
+ { 0x047F, 0x047F },
+ { 0x0481, 0x0481 },
+ { 0x048B, 0x048B },
+ { 0x048D, 0x048D },
+ { 0x048F, 0x048F },
+ { 0x0491, 0x0491 },
+ { 0x0493, 0x0493 },
+ { 0x0495, 0x0495 },
+ { 0x0497, 0x0497 },
+ { 0x0499, 0x0499 },
+ { 0x049B, 0x049B },
+ { 0x049D, 0x049D },
+ { 0x049F, 0x049F },
+ { 0x04A1, 0x04A1 },
+ { 0x04A3, 0x04A3 },
+ { 0x04A5, 0x04A5 },
+ { 0x04A7, 0x04A7 },
+ { 0x04A9, 0x04A9 },
+ { 0x04AB, 0x04AB },
+ { 0x04AD, 0x04AD },
+ { 0x04AF, 0x04AF },
+ { 0x04B1, 0x04B1 },
+ { 0x04B3, 0x04B3 },
+ { 0x04B5, 0x04B5 },
+ { 0x04B7, 0x04B7 },
+ { 0x04B9, 0x04B9 },
+ { 0x04BB, 0x04BB },
+ { 0x04BD, 0x04BD },
+ { 0x04BF, 0x04BF },
+ { 0x04C2, 0x04C2 },
+ { 0x04C4, 0x04C4 },
+ { 0x04C6, 0x04C6 },
+ { 0x04C8, 0x04C8 },
+ { 0x04CA, 0x04CA },
+ { 0x04CC, 0x04CC },
+ { 0x04CE, 0x04CF },
+ { 0x04D1, 0x04D1 },
+ { 0x04D3, 0x04D3 },
+ { 0x04D5, 0x04D5 },
+ { 0x04D7, 0x04D7 },
+ { 0x04D9, 0x04D9 },
+ { 0x04DB, 0x04DB },
+ { 0x04DD, 0x04DD },
+ { 0x04DF, 0x04DF },
+ { 0x04E1, 0x04E1 },
+ { 0x04E3, 0x04E3 },
+ { 0x04E5, 0x04E5 },
+ { 0x04E7, 0x04E7 },
+ { 0x04E9, 0x04E9 },
+ { 0x04EB, 0x04EB },
+ { 0x04ED, 0x04ED },
+ { 0x04EF, 0x04EF },
+ { 0x04F1, 0x04F1 },
+ { 0x04F3, 0x04F3 },
+ { 0x04F5, 0x04F5 },
+ { 0x04F7, 0x04F7 },
+ { 0x04F9, 0x04F9 },
+ { 0x04FB, 0x04FB },
+ { 0x04FD, 0x04FD },
+ { 0x04FF, 0x04FF },
+ { 0x0501, 0x0501 },
+ { 0x0503, 0x0503 },
+ { 0x0505, 0x0505 },
+ { 0x0507, 0x0507 },
+ { 0x0509, 0x0509 },
+ { 0x050B, 0x050B },
+ { 0x050D, 0x050D },
+ { 0x050F, 0x050F },
+ { 0x0511, 0x0511 },
+ { 0x0513, 0x0513 },
+ { 0x0515, 0x0515 },
+ { 0x0517, 0x0517 },
+ { 0x0519, 0x0519 },
+ { 0x051B, 0x051B },
+ { 0x051D, 0x051D },
+ { 0x051F, 0x051F },
+ { 0x0521, 0x0521 },
+ { 0x0523, 0x0523 },
+ { 0x0561, 0x0586 },
+ { 0x1D79, 0x1D79 },
+ { 0x1D7D, 0x1D7D },
+ { 0x1E01, 0x1E01 },
+ { 0x1E03, 0x1E03 },
+ { 0x1E05, 0x1E05 },
+ { 0x1E07, 0x1E07 },
+ { 0x1E09, 0x1E09 },
+ { 0x1E0B, 0x1E0B },
+ { 0x1E0D, 0x1E0D },
+ { 0x1E0F, 0x1E0F },
+ { 0x1E11, 0x1E11 },
+ { 0x1E13, 0x1E13 },
+ { 0x1E15, 0x1E15 },
+ { 0x1E17, 0x1E17 },
+ { 0x1E19, 0x1E19 },
+ { 0x1E1B, 0x1E1B },
+ { 0x1E1D, 0x1E1D },
+ { 0x1E1F, 0x1E1F },
+ { 0x1E21, 0x1E21 },
+ { 0x1E23, 0x1E23 },
+ { 0x1E25, 0x1E25 },
+ { 0x1E27, 0x1E27 },
+ { 0x1E29, 0x1E29 },
+ { 0x1E2B, 0x1E2B },
+ { 0x1E2D, 0x1E2D },
+ { 0x1E2F, 0x1E2F },
+ { 0x1E31, 0x1E31 },
+ { 0x1E33, 0x1E33 },
+ { 0x1E35, 0x1E35 },
+ { 0x1E37, 0x1E37 },
+ { 0x1E39, 0x1E39 },
+ { 0x1E3B, 0x1E3B },
+ { 0x1E3D, 0x1E3D },
+ { 0x1E3F, 0x1E3F },
+ { 0x1E41, 0x1E41 },
+ { 0x1E43, 0x1E43 },
+ { 0x1E45, 0x1E45 },
+ { 0x1E47, 0x1E47 },
+ { 0x1E49, 0x1E49 },
+ { 0x1E4B, 0x1E4B },
+ { 0x1E4D, 0x1E4D },
+ { 0x1E4F, 0x1E4F },
+ { 0x1E51, 0x1E51 },
+ { 0x1E53, 0x1E53 },
+ { 0x1E55, 0x1E55 },
+ { 0x1E57, 0x1E57 },
+ { 0x1E59, 0x1E59 },
+ { 0x1E5B, 0x1E5B },
+ { 0x1E5D, 0x1E5D },
+ { 0x1E5F, 0x1E5F },
+ { 0x1E61, 0x1E61 },
+ { 0x1E63, 0x1E63 },
+ { 0x1E65, 0x1E65 },
+ { 0x1E67, 0x1E67 },
+ { 0x1E69, 0x1E69 },
+ { 0x1E6B, 0x1E6B },
+ { 0x1E6D, 0x1E6D },
+ { 0x1E6F, 0x1E6F },
+ { 0x1E71, 0x1E71 },
+ { 0x1E73, 0x1E73 },
+ { 0x1E75, 0x1E75 },
+ { 0x1E77, 0x1E77 },
+ { 0x1E79, 0x1E79 },
+ { 0x1E7B, 0x1E7B },
+ { 0x1E7D, 0x1E7D },
+ { 0x1E7F, 0x1E7F },
+ { 0x1E81, 0x1E81 },
+ { 0x1E83, 0x1E83 },
+ { 0x1E85, 0x1E85 },
+ { 0x1E87, 0x1E87 },
+ { 0x1E89, 0x1E89 },
+ { 0x1E8B, 0x1E8B },
+ { 0x1E8D, 0x1E8D },
+ { 0x1E8F, 0x1E8F },
+ { 0x1E91, 0x1E91 },
+ { 0x1E93, 0x1E93 },
+ { 0x1E95, 0x1E95 },
+ { 0x1E9B, 0x1E9B },
+ { 0x1EA1, 0x1EA1 },
+ { 0x1EA3, 0x1EA3 },
+ { 0x1EA5, 0x1EA5 },
+ { 0x1EA7, 0x1EA7 },
+ { 0x1EA9, 0x1EA9 },
+ { 0x1EAB, 0x1EAB },
+ { 0x1EAD, 0x1EAD },
+ { 0x1EAF, 0x1EAF },
+ { 0x1EB1, 0x1EB1 },
+ { 0x1EB3, 0x1EB3 },
+ { 0x1EB5, 0x1EB5 },
+ { 0x1EB7, 0x1EB7 },
+ { 0x1EB9, 0x1EB9 },
+ { 0x1EBB, 0x1EBB },
+ { 0x1EBD, 0x1EBD },
+ { 0x1EBF, 0x1EBF },
+ { 0x1EC1, 0x1EC1 },
+ { 0x1EC3, 0x1EC3 },
+ { 0x1EC5, 0x1EC5 },
+ { 0x1EC7, 0x1EC7 },
+ { 0x1EC9, 0x1EC9 },
+ { 0x1ECB, 0x1ECB },
+ { 0x1ECD, 0x1ECD },
+ { 0x1ECF, 0x1ECF },
+ { 0x1ED1, 0x1ED1 },
+ { 0x1ED3, 0x1ED3 },
+ { 0x1ED5, 0x1ED5 },
+ { 0x1ED7, 0x1ED7 },
+ { 0x1ED9, 0x1ED9 },
+ { 0x1EDB, 0x1EDB },
+ { 0x1EDD, 0x1EDD },
+ { 0x1EDF, 0x1EDF },
+ { 0x1EE1, 0x1EE1 },
+ { 0x1EE3, 0x1EE3 },
+ { 0x1EE5, 0x1EE5 },
+ { 0x1EE7, 0x1EE7 },
+ { 0x1EE9, 0x1EE9 },
+ { 0x1EEB, 0x1EEB },
+ { 0x1EED, 0x1EED },
+ { 0x1EEF, 0x1EEF },
+ { 0x1EF1, 0x1EF1 },
+ { 0x1EF3, 0x1EF3 },
+ { 0x1EF5, 0x1EF5 },
+ { 0x1EF7, 0x1EF7 },
+ { 0x1EF9, 0x1EF9 },
+ { 0x1EFB, 0x1EFB },
+ { 0x1EFD, 0x1EFD },
+ { 0x1EFF, 0x1F07 },
+ { 0x1F10, 0x1F15 },
+ { 0x1F20, 0x1F27 },
+ { 0x1F30, 0x1F37 },
+ { 0x1F40, 0x1F45 },
+ { 0x1F51, 0x1F51 },
+ { 0x1F53, 0x1F53 },
+ { 0x1F55, 0x1F55 },
+ { 0x1F57, 0x1F57 },
+ { 0x1F60, 0x1F67 },
+ { 0x1F70, 0x1F7D },
+ { 0x1F80, 0x1F87 },
+ { 0x1F90, 0x1F97 },
+ { 0x1FA0, 0x1FA7 },
+ { 0x1FB0, 0x1FB1 },
+ { 0x1FB3, 0x1FB3 },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC3, 0x1FC3 },
+ { 0x1FD0, 0x1FD1 },
+ { 0x1FE0, 0x1FE1 },
+ { 0x1FE5, 0x1FE5 },
+ { 0x1FF3, 0x1FF3 },
+ { 0x214E, 0x214E },
+ { 0x2170, 0x217F },
+ { 0x2184, 0x2184 },
+ { 0x24D0, 0x24E9 },
+ { 0x2C30, 0x2C5E },
+ { 0x2C61, 0x2C61 },
+ { 0x2C65, 0x2C66 },
+ { 0x2C68, 0x2C68 },
+ { 0x2C6A, 0x2C6A },
+ { 0x2C6C, 0x2C6C },
+ { 0x2C73, 0x2C73 },
+ { 0x2C76, 0x2C76 },
+ { 0x2C81, 0x2C81 },
+ { 0x2C83, 0x2C83 },
+ { 0x2C85, 0x2C85 },
+ { 0x2C87, 0x2C87 },
+ { 0x2C89, 0x2C89 },
+ { 0x2C8B, 0x2C8B },
+ { 0x2C8D, 0x2C8D },
+ { 0x2C8F, 0x2C8F },
+ { 0x2C91, 0x2C91 },
+ { 0x2C93, 0x2C93 },
+ { 0x2C95, 0x2C95 },
+ { 0x2C97, 0x2C97 },
+ { 0x2C99, 0x2C99 },
+ { 0x2C9B, 0x2C9B },
+ { 0x2C9D, 0x2C9D },
+ { 0x2C9F, 0x2C9F },
+ { 0x2CA1, 0x2CA1 },
+ { 0x2CA3, 0x2CA3 },
+ { 0x2CA5, 0x2CA5 },
+ { 0x2CA7, 0x2CA7 },
+ { 0x2CA9, 0x2CA9 },
+ { 0x2CAB, 0x2CAB },
+ { 0x2CAD, 0x2CAD },
+ { 0x2CAF, 0x2CAF },
+ { 0x2CB1, 0x2CB1 },
+ { 0x2CB3, 0x2CB3 },
+ { 0x2CB5, 0x2CB5 },
+ { 0x2CB7, 0x2CB7 },
+ { 0x2CB9, 0x2CB9 },
+ { 0x2CBB, 0x2CBB },
+ { 0x2CBD, 0x2CBD },
+ { 0x2CBF, 0x2CBF },
+ { 0x2CC1, 0x2CC1 },
+ { 0x2CC3, 0x2CC3 },
+ { 0x2CC5, 0x2CC5 },
+ { 0x2CC7, 0x2CC7 },
+ { 0x2CC9, 0x2CC9 },
+ { 0x2CCB, 0x2CCB },
+ { 0x2CCD, 0x2CCD },
+ { 0x2CCF, 0x2CCF },
+ { 0x2CD1, 0x2CD1 },
+ { 0x2CD3, 0x2CD3 },
+ { 0x2CD5, 0x2CD5 },
+ { 0x2CD7, 0x2CD7 },
+ { 0x2CD9, 0x2CD9 },
+ { 0x2CDB, 0x2CDB },
+ { 0x2CDD, 0x2CDD },
+ { 0x2CDF, 0x2CDF },
+ { 0x2CE1, 0x2CE1 },
+ { 0x2CE3, 0x2CE3 },
+ { 0x2D00, 0x2D25 },
+ { 0xA641, 0xA641 },
+ { 0xA643, 0xA643 },
+ { 0xA645, 0xA645 },
+ { 0xA647, 0xA647 },
+ { 0xA649, 0xA649 },
+ { 0xA64B, 0xA64B },
+ { 0xA64D, 0xA64D },
+ { 0xA64F, 0xA64F },
+ { 0xA651, 0xA651 },
+ { 0xA653, 0xA653 },
+ { 0xA655, 0xA655 },
+ { 0xA657, 0xA657 },
+ { 0xA659, 0xA659 },
+ { 0xA65B, 0xA65B },
+ { 0xA65D, 0xA65D },
+ { 0xA65F, 0xA65F },
+ { 0xA663, 0xA663 },
+ { 0xA665, 0xA665 },
+ { 0xA667, 0xA667 },
+ { 0xA669, 0xA669 },
+ { 0xA66B, 0xA66B },
+ { 0xA66D, 0xA66D },
+ { 0xA681, 0xA681 },
+ { 0xA683, 0xA683 },
+ { 0xA685, 0xA685 },
+ { 0xA687, 0xA687 },
+ { 0xA689, 0xA689 },
+ { 0xA68B, 0xA68B },
+ { 0xA68D, 0xA68D },
+ { 0xA68F, 0xA68F },
+ { 0xA691, 0xA691 },
+ { 0xA693, 0xA693 },
+ { 0xA695, 0xA695 },
+ { 0xA697, 0xA697 },
+ { 0xA723, 0xA723 },
+ { 0xA725, 0xA725 },
+ { 0xA727, 0xA727 },
+ { 0xA729, 0xA729 },
+ { 0xA72B, 0xA72B },
+ { 0xA72D, 0xA72D },
+ { 0xA72F, 0xA72F },
+ { 0xA733, 0xA733 },
+ { 0xA735, 0xA735 },
+ { 0xA737, 0xA737 },
+ { 0xA739, 0xA739 },
+ { 0xA73B, 0xA73B },
+ { 0xA73D, 0xA73D },
+ { 0xA73F, 0xA73F },
+ { 0xA741, 0xA741 },
+ { 0xA743, 0xA743 },
+ { 0xA745, 0xA745 },
+ { 0xA747, 0xA747 },
+ { 0xA749, 0xA749 },
+ { 0xA74B, 0xA74B },
+ { 0xA74D, 0xA74D },
+ { 0xA74F, 0xA74F },
+ { 0xA751, 0xA751 },
+ { 0xA753, 0xA753 },
+ { 0xA755, 0xA755 },
+ { 0xA757, 0xA757 },
+ { 0xA759, 0xA759 },
+ { 0xA75B, 0xA75B },
+ { 0xA75D, 0xA75D },
+ { 0xA75F, 0xA75F },
+ { 0xA761, 0xA761 },
+ { 0xA763, 0xA763 },
+ { 0xA765, 0xA765 },
+ { 0xA767, 0xA767 },
+ { 0xA769, 0xA769 },
+ { 0xA76B, 0xA76B },
+ { 0xA76D, 0xA76D },
+ { 0xA76F, 0xA76F },
+ { 0xA77A, 0xA77A },
+ { 0xA77C, 0xA77C },
+ { 0xA77F, 0xA77F },
+ { 0xA781, 0xA781 },
+ { 0xA783, 0xA783 },
+ { 0xA785, 0xA785 },
+ { 0xA787, 0xA787 },
+ { 0xA78C, 0xA78C },
+ { 0xFF41, 0xFF5A },
+ { 0x10428, 0x1044F }
+
+#define PREDICATE(c) uc_is_lower (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_print.c b/tests/unictype/test-ctype_print.c
new file mode 100644
index 0000000..7333d75
--- /dev/null
+++ b/tests/unictype/test-ctype_print.c
@@ -0,0 +1,469 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0020, 0x007E },
+ { 0x00A0, 0x0377 },
+ { 0x037A, 0x037E },
+ { 0x0384, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x055F },
+ { 0x0561, 0x0587 },
+ { 0x0589, 0x058A },
+ { 0x0591, 0x05C7 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F4 },
+ { 0x0600, 0x0603 },
+ { 0x0606, 0x061B },
+ { 0x061E, 0x061F },
+ { 0x0621, 0x065E },
+ { 0x0660, 0x070D },
+ { 0x070F, 0x074A },
+ { 0x074D, 0x07B1 },
+ { 0x07C0, 0x07FA },
+ { 0x0901, 0x0939 },
+ { 0x093C, 0x094D },
+ { 0x0950, 0x0954 },
+ { 0x0958, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0981, 0x0983 },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BC, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CE },
+ { 0x09D7, 0x09D7 },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E3 },
+ { 0x09E6, 0x09FA },
+ { 0x0A01, 0x0A03 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A66, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABC, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE3 },
+ { 0x0AE6, 0x0AEF },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0B01, 0x0B03 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3C, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B63 },
+ { 0x0B66, 0x0B71 },
+ { 0x0B82, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCD },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0BE6, 0x0BFA },
+ { 0x0C01, 0x0C03 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C63 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C78, 0x0C7F },
+ { 0x0C82, 0x0C83 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBC, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE3 },
+ { 0x0CE6, 0x0CEF },
+ { 0x0CF1, 0x0CF2 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D60, 0x0D63 },
+ { 0x0D66, 0x0D75 },
+ { 0x0D79, 0x0D7F },
+ { 0x0D82, 0x0D83 },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF4 },
+ { 0x0E01, 0x0E3A },
+ { 0x0E3F, 0x0E5B },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB9 },
+ { 0x0EBB, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EC8, 0x0ECD },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F71, 0x0F8B },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FBE, 0x0FCC },
+ { 0x0FCE, 0x0FD4 },
+ { 0x1000, 0x1099 },
+ { 0x109E, 0x10C5 },
+ { 0x10D0, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x135F, 0x137C },
+ { 0x1380, 0x1399 },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x1676 },
+ { 0x1680, 0x169C },
+ { 0x16A0, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1714 },
+ { 0x1720, 0x1736 },
+ { 0x1740, 0x1753 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1772, 0x1773 },
+ { 0x1780, 0x17DD },
+ { 0x17E0, 0x17E9 },
+ { 0x17F0, 0x17F9 },
+ { 0x1800, 0x180E },
+ { 0x1810, 0x1819 },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x193B },
+ { 0x1940, 0x1940 },
+ { 0x1944, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19B0, 0x19C9 },
+ { 0x19D0, 0x19D9 },
+ { 0x19DE, 0x1A1B },
+ { 0x1A1E, 0x1A1F },
+ { 0x1B00, 0x1B4B },
+ { 0x1B50, 0x1B7C },
+ { 0x1B80, 0x1BAA },
+ { 0x1BAE, 0x1BB9 },
+ { 0x1C00, 0x1C37 },
+ { 0x1C3B, 0x1C49 },
+ { 0x1C4D, 0x1C7F },
+ { 0x1D00, 0x1DE6 },
+ { 0x1DFE, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FC4 },
+ { 0x1FC6, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FDD, 0x1FEF },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFE },
+ { 0x2000, 0x2027 },
+ { 0x202A, 0x2064 },
+ { 0x206A, 0x2071 },
+ { 0x2074, 0x208E },
+ { 0x2090, 0x2094 },
+ { 0x20A0, 0x20B5 },
+ { 0x20D0, 0x20F0 },
+ { 0x2100, 0x214F },
+ { 0x2153, 0x2188 },
+ { 0x2190, 0x23E7 },
+ { 0x2400, 0x2426 },
+ { 0x2440, 0x244A },
+ { 0x2460, 0x269D },
+ { 0x26A0, 0x26BC },
+ { 0x26C0, 0x26C3 },
+ { 0x2701, 0x2704 },
+ { 0x2706, 0x2709 },
+ { 0x270C, 0x2727 },
+ { 0x2729, 0x274B },
+ { 0x274D, 0x274D },
+ { 0x274F, 0x2752 },
+ { 0x2756, 0x2756 },
+ { 0x2758, 0x275E },
+ { 0x2761, 0x2794 },
+ { 0x2798, 0x27AF },
+ { 0x27B1, 0x27BE },
+ { 0x27C0, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x2B4C },
+ { 0x2B50, 0x2B54 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CEA },
+ { 0x2CF9, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2DE0, 0x2E30 },
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 },
+ { 0x2FF0, 0x2FFB },
+ { 0x3000, 0x303F },
+ { 0x3041, 0x3096 },
+ { 0x3099, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x3190, 0x31B7 },
+ { 0x31C0, 0x31E3 },
+ { 0x31F0, 0x321E },
+ { 0x3220, 0x3243 },
+ { 0x3250, 0x32FE },
+ { 0x3300, 0x4DB5 },
+ { 0x4DC0, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA490, 0xA4C6 },
+ { 0xA500, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA673 },
+ { 0xA67C, 0xA697 },
+ { 0xA700, 0xA78C },
+ { 0xA7FB, 0xA82B },
+ { 0xA840, 0xA877 },
+ { 0xA880, 0xA8C4 },
+ { 0xA8CE, 0xA8D9 },
+ { 0xA900, 0xA953 },
+ { 0xA95F, 0xA95F },
+ { 0xAA00, 0xAA36 },
+ { 0xAA40, 0xAA4D },
+ { 0xAA50, 0xAA59 },
+ { 0xAA5C, 0xAA5F },
+ { 0xAC00, 0xD7A3 },
+ { 0xE000, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3F },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFD },
+ { 0xFE00, 0xFE19 },
+ { 0xFE20, 0xFE26 },
+ { 0xFE30, 0xFE52 },
+ { 0xFE54, 0xFE66 },
+ { 0xFE68, 0xFE6B },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFEFF, 0xFEFF },
+ { 0xFF01, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0xFFE0, 0xFFE6 },
+ { 0xFFE8, 0xFFEE },
+ { 0xFFF9, 0xFFFD },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10100, 0x10102 },
+ { 0x10107, 0x10133 },
+ { 0x10137, 0x1018A },
+ { 0x10190, 0x1019B },
+ { 0x101D0, 0x101FD },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10320, 0x10323 },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x1039F, 0x103C3 },
+ { 0x103C8, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x104A0, 0x104A9 },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10919 },
+ { 0x1091F, 0x10939 },
+ { 0x1093F, 0x1093F },
+ { 0x10A00, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A47 },
+ { 0x10A50, 0x10A58 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x12470, 0x12473 },
+ { 0x1D000, 0x1D0F5 },
+ { 0x1D100, 0x1D126 },
+ { 0x1D129, 0x1D1DD },
+ { 0x1D200, 0x1D245 },
+ { 0x1D300, 0x1D356 },
+ { 0x1D360, 0x1D371 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x1F000, 0x1F02B },
+ { 0x1F030, 0x1F093 },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F },
+ { 0xE0100, 0xE01EF },
+ { 0xF0000, 0xFFFFD },
+ { 0x100000, 0x10FFFD }
+
+#define PREDICATE(c) uc_is_print (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_punct.c b/tests/unictype/test-ctype_punct.c
new file mode 100644
index 0000000..e9aa3f0
--- /dev/null
+++ b/tests/unictype/test-ctype_punct.c
@@ -0,0 +1,354 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x002F },
+ { 0x003A, 0x0040 },
+ { 0x005B, 0x0060 },
+ { 0x007B, 0x007E },
+ { 0x00A0, 0x00A9 },
+ { 0x00AB, 0x00B4 },
+ { 0x00B6, 0x00B9 },
+ { 0x00BB, 0x00BF },
+ { 0x00D7, 0x00D7 },
+ { 0x00F7, 0x00F7 },
+ { 0x02C2, 0x02C5 },
+ { 0x02D2, 0x02DF },
+ { 0x02E5, 0x02EB },
+ { 0x02ED, 0x02ED },
+ { 0x02EF, 0x0344 },
+ { 0x0346, 0x036F },
+ { 0x0375, 0x0375 },
+ { 0x037E, 0x037E },
+ { 0x0384, 0x0385 },
+ { 0x0387, 0x0387 },
+ { 0x03F6, 0x03F6 },
+ { 0x0482, 0x0489 },
+ { 0x055A, 0x055F },
+ { 0x0589, 0x058A },
+ { 0x0591, 0x05C7 },
+ { 0x05F3, 0x05F4 },
+ { 0x0600, 0x0603 },
+ { 0x0606, 0x061B },
+ { 0x061E, 0x061F },
+ { 0x064B, 0x065E },
+ { 0x066A, 0x066D },
+ { 0x0670, 0x0670 },
+ { 0x06D4, 0x06D4 },
+ { 0x06D6, 0x06E4 },
+ { 0x06E7, 0x06ED },
+ { 0x06FD, 0x06FE },
+ { 0x0700, 0x070D },
+ { 0x070F, 0x070F },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F3 },
+ { 0x07F6, 0x07F9 },
+ { 0x0901, 0x0903 },
+ { 0x093C, 0x093C },
+ { 0x093E, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0962, 0x0965 },
+ { 0x0970, 0x0970 },
+ { 0x0981, 0x0983 },
+ { 0x09BC, 0x09BC },
+ { 0x09BE, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CD },
+ { 0x09D7, 0x09D7 },
+ { 0x09E2, 0x09E3 },
+ { 0x09F2, 0x09FA },
+ { 0x0A01, 0x0A03 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0ABC, 0x0ABC },
+ { 0x0ABE, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACD },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0B01, 0x0B03 },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B3E, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B70, 0x0B70 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCD },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0BF0, 0x0BFA },
+ { 0x0C01, 0x0C03 },
+ { 0x0C3E, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0C78, 0x0C7F },
+ { 0x0C82, 0x0C83 },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CBE, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0CF1, 0x0CF2 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D3E, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D62, 0x0D63 },
+ { 0x0D70, 0x0D75 },
+ { 0x0D79, 0x0D79 },
+ { 0x0D82, 0x0D83 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF4 },
+ { 0x0E2F, 0x0E2F },
+ { 0x0E3F, 0x0E3F },
+ { 0x0E46, 0x0E46 },
+ { 0x0E4F, 0x0E4F },
+ { 0x0E5A, 0x0E5B },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0EC8, 0x0ECD },
+ { 0x0F01, 0x0F1F },
+ { 0x0F2A, 0x0F3F },
+ { 0x0F71, 0x0F87 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FBE, 0x0FCC },
+ { 0x0FCE, 0x0FD4 },
+ { 0x102B, 0x103E },
+ { 0x104A, 0x104F },
+ { 0x1056, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1062, 0x1064 },
+ { 0x1067, 0x106D },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x108D },
+ { 0x108F, 0x108F },
+ { 0x109E, 0x109F },
+ { 0x10FB, 0x10FB },
+ { 0x135F, 0x137C },
+ { 0x1390, 0x1399 },
+ { 0x166D, 0x166E },
+ { 0x169B, 0x169C },
+ { 0x16EB, 0x16ED },
+ { 0x1712, 0x1714 },
+ { 0x1732, 0x1736 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B4, 0x17D6 },
+ { 0x17D8, 0x17DB },
+ { 0x17DD, 0x17DD },
+ { 0x17F0, 0x17F9 },
+ { 0x1800, 0x180D },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x193B },
+ { 0x1940, 0x1940 },
+ { 0x1944, 0x1945 },
+ { 0x19B0, 0x19C0 },
+ { 0x19C8, 0x19C9 },
+ { 0x19DE, 0x19FF },
+ { 0x1A17, 0x1A1B },
+ { 0x1A1E, 0x1A1F },
+ { 0x1B00, 0x1B04 },
+ { 0x1B34, 0x1B44 },
+ { 0x1B5A, 0x1B7C },
+ { 0x1B80, 0x1B82 },
+ { 0x1BA1, 0x1BAA },
+ { 0x1C24, 0x1C37 },
+ { 0x1C3B, 0x1C3F },
+ { 0x1C7E, 0x1C7F },
+ { 0x1DC0, 0x1DE6 },
+ { 0x1DFE, 0x1DFF },
+ { 0x1FBD, 0x1FBD },
+ { 0x1FBF, 0x1FC1 },
+ { 0x1FCD, 0x1FCF },
+ { 0x1FDD, 0x1FDF },
+ { 0x1FED, 0x1FEF },
+ { 0x1FFD, 0x1FFE },
+ { 0x2007, 0x2007 },
+ { 0x200B, 0x2027 },
+ { 0x202A, 0x205E },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x2070 },
+ { 0x2074, 0x207E },
+ { 0x2080, 0x208E },
+ { 0x20A0, 0x20B5 },
+ { 0x20D0, 0x20F0 },
+ { 0x2100, 0x2101 },
+ { 0x2103, 0x2106 },
+ { 0x2108, 0x2109 },
+ { 0x2114, 0x2114 },
+ { 0x2116, 0x2118 },
+ { 0x211E, 0x2123 },
+ { 0x2125, 0x2125 },
+ { 0x2127, 0x2127 },
+ { 0x212E, 0x212E },
+ { 0x213A, 0x213B },
+ { 0x2140, 0x2144 },
+ { 0x214A, 0x214D },
+ { 0x214F, 0x214F },
+ { 0x2153, 0x215F },
+ { 0x2190, 0x23E7 },
+ { 0x2400, 0x2426 },
+ { 0x2440, 0x244A },
+ { 0x2460, 0x249B },
+ { 0x24EA, 0x269D },
+ { 0x26A0, 0x26BC },
+ { 0x26C0, 0x26C3 },
+ { 0x2701, 0x2704 },
+ { 0x2706, 0x2709 },
+ { 0x270C, 0x2727 },
+ { 0x2729, 0x274B },
+ { 0x274D, 0x274D },
+ { 0x274F, 0x2752 },
+ { 0x2756, 0x2756 },
+ { 0x2758, 0x275E },
+ { 0x2761, 0x2794 },
+ { 0x2798, 0x27AF },
+ { 0x27B1, 0x27BE },
+ { 0x27C0, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x2B4C },
+ { 0x2B50, 0x2B54 },
+ { 0x2CE5, 0x2CEA },
+ { 0x2CF9, 0x2CFF },
+ { 0x2DE0, 0x2E2E },
+ { 0x2E30, 0x2E30 },
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 },
+ { 0x2FF0, 0x2FFB },
+ { 0x3001, 0x3004 },
+ { 0x3008, 0x3020 },
+ { 0x302A, 0x3030 },
+ { 0x3036, 0x3037 },
+ { 0x303D, 0x303F },
+ { 0x3099, 0x309C },
+ { 0x30A0, 0x30A0 },
+ { 0x30FB, 0x30FB },
+ { 0x3190, 0x319F },
+ { 0x31C0, 0x31E3 },
+ { 0x3200, 0x321E },
+ { 0x3220, 0x3243 },
+ { 0x3250, 0x32FE },
+ { 0x3300, 0x33FF },
+ { 0x4DC0, 0x4DFF },
+ { 0xA490, 0xA4C6 },
+ { 0xA60D, 0xA60F },
+ { 0xA66F, 0xA673 },
+ { 0xA67C, 0xA67E },
+ { 0xA700, 0xA716 },
+ { 0xA720, 0xA721 },
+ { 0xA789, 0xA78A },
+ { 0xA802, 0xA802 },
+ { 0xA806, 0xA806 },
+ { 0xA80B, 0xA80B },
+ { 0xA823, 0xA82B },
+ { 0xA874, 0xA877 },
+ { 0xA880, 0xA881 },
+ { 0xA8B4, 0xA8C4 },
+ { 0xA8CE, 0xA8CF },
+ { 0xA926, 0xA92F },
+ { 0xA947, 0xA953 },
+ { 0xA95F, 0xA95F },
+ { 0xAA29, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4D },
+ { 0xAA5C, 0xAA5F },
+ { 0xE000, 0xF8FF },
+ { 0xFB1E, 0xFB1E },
+ { 0xFB29, 0xFB29 },
+ { 0xFD3E, 0xFD3F },
+ { 0xFDFC, 0xFDFD },
+ { 0xFE00, 0xFE19 },
+ { 0xFE20, 0xFE26 },
+ { 0xFE30, 0xFE52 },
+ { 0xFE54, 0xFE66 },
+ { 0xFE68, 0xFE6B },
+ { 0xFEFF, 0xFEFF },
+ { 0xFF01, 0xFF0F },
+ { 0xFF1A, 0xFF20 },
+ { 0xFF3B, 0xFF40 },
+ { 0xFF5B, 0xFF65 },
+ { 0xFFE0, 0xFFE6 },
+ { 0xFFE8, 0xFFEE },
+ { 0xFFF9, 0xFFFD },
+ { 0x10100, 0x10102 },
+ { 0x10107, 0x10133 },
+ { 0x10137, 0x1013F },
+ { 0x10175, 0x1018A },
+ { 0x10190, 0x1019B },
+ { 0x101D0, 0x101FD },
+ { 0x10320, 0x10323 },
+ { 0x1039F, 0x1039F },
+ { 0x103D0, 0x103D0 },
+ { 0x10916, 0x10919 },
+ { 0x1091F, 0x1091F },
+ { 0x1093F, 0x1093F },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A47 },
+ { 0x10A50, 0x10A58 },
+ { 0x12470, 0x12473 },
+ { 0x1D000, 0x1D0F5 },
+ { 0x1D100, 0x1D126 },
+ { 0x1D129, 0x1D1DD },
+ { 0x1D200, 0x1D245 },
+ { 0x1D300, 0x1D356 },
+ { 0x1D360, 0x1D371 },
+ { 0x1D6C1, 0x1D6C1 },
+ { 0x1D6DB, 0x1D6DB },
+ { 0x1D6FB, 0x1D6FB },
+ { 0x1D715, 0x1D715 },
+ { 0x1D735, 0x1D735 },
+ { 0x1D74F, 0x1D74F },
+ { 0x1D76F, 0x1D76F },
+ { 0x1D789, 0x1D789 },
+ { 0x1D7A9, 0x1D7A9 },
+ { 0x1D7C3, 0x1D7C3 },
+ { 0x1F000, 0x1F02B },
+ { 0x1F030, 0x1F093 },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F },
+ { 0xE0100, 0xE01EF },
+ { 0xF0000, 0xFFFFD },
+ { 0x100000, 0x10FFFD }
+
+#define PREDICATE(c) uc_is_punct (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_space.c b/tests/unictype/test-ctype_space.c
new file mode 100644
index 0000000..c02fa96
--- /dev/null
+++ b/tests/unictype/test-ctype_space.c
@@ -0,0 +1,31 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0009, 0x000D },
+ { 0x0020, 0x0020 },
+ { 0x1680, 0x1680 },
+ { 0x180E, 0x180E },
+ { 0x2000, 0x2006 },
+ { 0x2008, 0x200A },
+ { 0x2028, 0x2029 },
+ { 0x205F, 0x205F },
+ { 0x3000, 0x3000 }
+
+#define PREDICATE(c) uc_is_space (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_upper.c b/tests/unictype/test-ctype_upper.c
new file mode 100644
index 0000000..d7f0c03
--- /dev/null
+++ b/tests/unictype/test-ctype_upper.c
@@ -0,0 +1,576 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00DE },
+ { 0x0100, 0x0100 },
+ { 0x0102, 0x0102 },
+ { 0x0104, 0x0104 },
+ { 0x0106, 0x0106 },
+ { 0x0108, 0x0108 },
+ { 0x010A, 0x010A },
+ { 0x010C, 0x010C },
+ { 0x010E, 0x010E },
+ { 0x0110, 0x0110 },
+ { 0x0112, 0x0112 },
+ { 0x0114, 0x0114 },
+ { 0x0116, 0x0116 },
+ { 0x0118, 0x0118 },
+ { 0x011A, 0x011A },
+ { 0x011C, 0x011C },
+ { 0x011E, 0x011E },
+ { 0x0120, 0x0120 },
+ { 0x0122, 0x0122 },
+ { 0x0124, 0x0124 },
+ { 0x0126, 0x0126 },
+ { 0x0128, 0x0128 },
+ { 0x012A, 0x012A },
+ { 0x012C, 0x012C },
+ { 0x012E, 0x012E },
+ { 0x0130, 0x0130 },
+ { 0x0132, 0x0132 },
+ { 0x0134, 0x0134 },
+ { 0x0136, 0x0136 },
+ { 0x0139, 0x0139 },
+ { 0x013B, 0x013B },
+ { 0x013D, 0x013D },
+ { 0x013F, 0x013F },
+ { 0x0141, 0x0141 },
+ { 0x0143, 0x0143 },
+ { 0x0145, 0x0145 },
+ { 0x0147, 0x0147 },
+ { 0x014A, 0x014A },
+ { 0x014C, 0x014C },
+ { 0x014E, 0x014E },
+ { 0x0150, 0x0150 },
+ { 0x0152, 0x0152 },
+ { 0x0154, 0x0154 },
+ { 0x0156, 0x0156 },
+ { 0x0158, 0x0158 },
+ { 0x015A, 0x015A },
+ { 0x015C, 0x015C },
+ { 0x015E, 0x015E },
+ { 0x0160, 0x0160 },
+ { 0x0162, 0x0162 },
+ { 0x0164, 0x0164 },
+ { 0x0166, 0x0166 },
+ { 0x0168, 0x0168 },
+ { 0x016A, 0x016A },
+ { 0x016C, 0x016C },
+ { 0x016E, 0x016E },
+ { 0x0170, 0x0170 },
+ { 0x0172, 0x0172 },
+ { 0x0174, 0x0174 },
+ { 0x0176, 0x0176 },
+ { 0x0178, 0x0179 },
+ { 0x017B, 0x017B },
+ { 0x017D, 0x017D },
+ { 0x0181, 0x0182 },
+ { 0x0184, 0x0184 },
+ { 0x0186, 0x0187 },
+ { 0x0189, 0x018B },
+ { 0x018E, 0x0191 },
+ { 0x0193, 0x0194 },
+ { 0x0196, 0x0198 },
+ { 0x019C, 0x019D },
+ { 0x019F, 0x01A0 },
+ { 0x01A2, 0x01A2 },
+ { 0x01A4, 0x01A4 },
+ { 0x01A6, 0x01A7 },
+ { 0x01A9, 0x01A9 },
+ { 0x01AC, 0x01AC },
+ { 0x01AE, 0x01AF },
+ { 0x01B1, 0x01B3 },
+ { 0x01B5, 0x01B5 },
+ { 0x01B7, 0x01B8 },
+ { 0x01BC, 0x01BC },
+ { 0x01C4, 0x01C5 },
+ { 0x01C7, 0x01C8 },
+ { 0x01CA, 0x01CB },
+ { 0x01CD, 0x01CD },
+ { 0x01CF, 0x01CF },
+ { 0x01D1, 0x01D1 },
+ { 0x01D3, 0x01D3 },
+ { 0x01D5, 0x01D5 },
+ { 0x01D7, 0x01D7 },
+ { 0x01D9, 0x01D9 },
+ { 0x01DB, 0x01DB },
+ { 0x01DE, 0x01DE },
+ { 0x01E0, 0x01E0 },
+ { 0x01E2, 0x01E2 },
+ { 0x01E4, 0x01E4 },
+ { 0x01E6, 0x01E6 },
+ { 0x01E8, 0x01E8 },
+ { 0x01EA, 0x01EA },
+ { 0x01EC, 0x01EC },
+ { 0x01EE, 0x01EE },
+ { 0x01F1, 0x01F2 },
+ { 0x01F4, 0x01F4 },
+ { 0x01F6, 0x01F8 },
+ { 0x01FA, 0x01FA },
+ { 0x01FC, 0x01FC },
+ { 0x01FE, 0x01FE },
+ { 0x0200, 0x0200 },
+ { 0x0202, 0x0202 },
+ { 0x0204, 0x0204 },
+ { 0x0206, 0x0206 },
+ { 0x0208, 0x0208 },
+ { 0x020A, 0x020A },
+ { 0x020C, 0x020C },
+ { 0x020E, 0x020E },
+ { 0x0210, 0x0210 },
+ { 0x0212, 0x0212 },
+ { 0x0214, 0x0214 },
+ { 0x0216, 0x0216 },
+ { 0x0218, 0x0218 },
+ { 0x021A, 0x021A },
+ { 0x021C, 0x021C },
+ { 0x021E, 0x021E },
+ { 0x0220, 0x0220 },
+ { 0x0222, 0x0222 },
+ { 0x0224, 0x0224 },
+ { 0x0226, 0x0226 },
+ { 0x0228, 0x0228 },
+ { 0x022A, 0x022A },
+ { 0x022C, 0x022C },
+ { 0x022E, 0x022E },
+ { 0x0230, 0x0230 },
+ { 0x0232, 0x0232 },
+ { 0x023A, 0x023B },
+ { 0x023D, 0x023E },
+ { 0x0241, 0x0241 },
+ { 0x0243, 0x0246 },
+ { 0x0248, 0x0248 },
+ { 0x024A, 0x024A },
+ { 0x024C, 0x024C },
+ { 0x024E, 0x024E },
+ { 0x0370, 0x0370 },
+ { 0x0372, 0x0372 },
+ { 0x0376, 0x0376 },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x038F },
+ { 0x0391, 0x03A1 },
+ { 0x03A3, 0x03AB },
+ { 0x03CF, 0x03CF },
+ { 0x03D8, 0x03D8 },
+ { 0x03DA, 0x03DA },
+ { 0x03DC, 0x03DC },
+ { 0x03DE, 0x03DE },
+ { 0x03E0, 0x03E0 },
+ { 0x03E2, 0x03E2 },
+ { 0x03E4, 0x03E4 },
+ { 0x03E6, 0x03E6 },
+ { 0x03E8, 0x03E8 },
+ { 0x03EA, 0x03EA },
+ { 0x03EC, 0x03EC },
+ { 0x03EE, 0x03EE },
+ { 0x03F4, 0x03F4 },
+ { 0x03F7, 0x03F7 },
+ { 0x03F9, 0x03FA },
+ { 0x03FD, 0x042F },
+ { 0x0460, 0x0460 },
+ { 0x0462, 0x0462 },
+ { 0x0464, 0x0464 },
+ { 0x0466, 0x0466 },
+ { 0x0468, 0x0468 },
+ { 0x046A, 0x046A },
+ { 0x046C, 0x046C },
+ { 0x046E, 0x046E },
+ { 0x0470, 0x0470 },
+ { 0x0472, 0x0472 },
+ { 0x0474, 0x0474 },
+ { 0x0476, 0x0476 },
+ { 0x0478, 0x0478 },
+ { 0x047A, 0x047A },
+ { 0x047C, 0x047C },
+ { 0x047E, 0x047E },
+ { 0x0480, 0x0480 },
+ { 0x048A, 0x048A },
+ { 0x048C, 0x048C },
+ { 0x048E, 0x048E },
+ { 0x0490, 0x0490 },
+ { 0x0492, 0x0492 },
+ { 0x0494, 0x0494 },
+ { 0x0496, 0x0496 },
+ { 0x0498, 0x0498 },
+ { 0x049A, 0x049A },
+ { 0x049C, 0x049C },
+ { 0x049E, 0x049E },
+ { 0x04A0, 0x04A0 },
+ { 0x04A2, 0x04A2 },
+ { 0x04A4, 0x04A4 },
+ { 0x04A6, 0x04A6 },
+ { 0x04A8, 0x04A8 },
+ { 0x04AA, 0x04AA },
+ { 0x04AC, 0x04AC },
+ { 0x04AE, 0x04AE },
+ { 0x04B0, 0x04B0 },
+ { 0x04B2, 0x04B2 },
+ { 0x04B4, 0x04B4 },
+ { 0x04B6, 0x04B6 },
+ { 0x04B8, 0x04B8 },
+ { 0x04BA, 0x04BA },
+ { 0x04BC, 0x04BC },
+ { 0x04BE, 0x04BE },
+ { 0x04C0, 0x04C1 },
+ { 0x04C3, 0x04C3 },
+ { 0x04C5, 0x04C5 },
+ { 0x04C7, 0x04C7 },
+ { 0x04C9, 0x04C9 },
+ { 0x04CB, 0x04CB },
+ { 0x04CD, 0x04CD },
+ { 0x04D0, 0x04D0 },
+ { 0x04D2, 0x04D2 },
+ { 0x04D4, 0x04D4 },
+ { 0x04D6, 0x04D6 },
+ { 0x04D8, 0x04D8 },
+ { 0x04DA, 0x04DA },
+ { 0x04DC, 0x04DC },
+ { 0x04DE, 0x04DE },
+ { 0x04E0, 0x04E0 },
+ { 0x04E2, 0x04E2 },
+ { 0x04E4, 0x04E4 },
+ { 0x04E6, 0x04E6 },
+ { 0x04E8, 0x04E8 },
+ { 0x04EA, 0x04EA },
+ { 0x04EC, 0x04EC },
+ { 0x04EE, 0x04EE },
+ { 0x04F0, 0x04F0 },
+ { 0x04F2, 0x04F2 },
+ { 0x04F4, 0x04F4 },
+ { 0x04F6, 0x04F6 },
+ { 0x04F8, 0x04F8 },
+ { 0x04FA, 0x04FA },
+ { 0x04FC, 0x04FC },
+ { 0x04FE, 0x04FE },
+ { 0x0500, 0x0500 },
+ { 0x0502, 0x0502 },
+ { 0x0504, 0x0504 },
+ { 0x0506, 0x0506 },
+ { 0x0508, 0x0508 },
+ { 0x050A, 0x050A },
+ { 0x050C, 0x050C },
+ { 0x050E, 0x050E },
+ { 0x0510, 0x0510 },
+ { 0x0512, 0x0512 },
+ { 0x0514, 0x0514 },
+ { 0x0516, 0x0516 },
+ { 0x0518, 0x0518 },
+ { 0x051A, 0x051A },
+ { 0x051C, 0x051C },
+ { 0x051E, 0x051E },
+ { 0x0520, 0x0520 },
+ { 0x0522, 0x0522 },
+ { 0x0531, 0x0556 },
+ { 0x10A0, 0x10C5 },
+ { 0x1E00, 0x1E00 },
+ { 0x1E02, 0x1E02 },
+ { 0x1E04, 0x1E04 },
+ { 0x1E06, 0x1E06 },
+ { 0x1E08, 0x1E08 },
+ { 0x1E0A, 0x1E0A },
+ { 0x1E0C, 0x1E0C },
+ { 0x1E0E, 0x1E0E },
+ { 0x1E10, 0x1E10 },
+ { 0x1E12, 0x1E12 },
+ { 0x1E14, 0x1E14 },
+ { 0x1E16, 0x1E16 },
+ { 0x1E18, 0x1E18 },
+ { 0x1E1A, 0x1E1A },
+ { 0x1E1C, 0x1E1C },
+ { 0x1E1E, 0x1E1E },
+ { 0x1E20, 0x1E20 },
+ { 0x1E22, 0x1E22 },
+ { 0x1E24, 0x1E24 },
+ { 0x1E26, 0x1E26 },
+ { 0x1E28, 0x1E28 },
+ { 0x1E2A, 0x1E2A },
+ { 0x1E2C, 0x1E2C },
+ { 0x1E2E, 0x1E2E },
+ { 0x1E30, 0x1E30 },
+ { 0x1E32, 0x1E32 },
+ { 0x1E34, 0x1E34 },
+ { 0x1E36, 0x1E36 },
+ { 0x1E38, 0x1E38 },
+ { 0x1E3A, 0x1E3A },
+ { 0x1E3C, 0x1E3C },
+ { 0x1E3E, 0x1E3E },
+ { 0x1E40, 0x1E40 },
+ { 0x1E42, 0x1E42 },
+ { 0x1E44, 0x1E44 },
+ { 0x1E46, 0x1E46 },
+ { 0x1E48, 0x1E48 },
+ { 0x1E4A, 0x1E4A },
+ { 0x1E4C, 0x1E4C },
+ { 0x1E4E, 0x1E4E },
+ { 0x1E50, 0x1E50 },
+ { 0x1E52, 0x1E52 },
+ { 0x1E54, 0x1E54 },
+ { 0x1E56, 0x1E56 },
+ { 0x1E58, 0x1E58 },
+ { 0x1E5A, 0x1E5A },
+ { 0x1E5C, 0x1E5C },
+ { 0x1E5E, 0x1E5E },
+ { 0x1E60, 0x1E60 },
+ { 0x1E62, 0x1E62 },
+ { 0x1E64, 0x1E64 },
+ { 0x1E66, 0x1E66 },
+ { 0x1E68, 0x1E68 },
+ { 0x1E6A, 0x1E6A },
+ { 0x1E6C, 0x1E6C },
+ { 0x1E6E, 0x1E6E },
+ { 0x1E70, 0x1E70 },
+ { 0x1E72, 0x1E72 },
+ { 0x1E74, 0x1E74 },
+ { 0x1E76, 0x1E76 },
+ { 0x1E78, 0x1E78 },
+ { 0x1E7A, 0x1E7A },
+ { 0x1E7C, 0x1E7C },
+ { 0x1E7E, 0x1E7E },
+ { 0x1E80, 0x1E80 },
+ { 0x1E82, 0x1E82 },
+ { 0x1E84, 0x1E84 },
+ { 0x1E86, 0x1E86 },
+ { 0x1E88, 0x1E88 },
+ { 0x1E8A, 0x1E8A },
+ { 0x1E8C, 0x1E8C },
+ { 0x1E8E, 0x1E8E },
+ { 0x1E90, 0x1E90 },
+ { 0x1E92, 0x1E92 },
+ { 0x1E94, 0x1E94 },
+ { 0x1E9E, 0x1E9E },
+ { 0x1EA0, 0x1EA0 },
+ { 0x1EA2, 0x1EA2 },
+ { 0x1EA4, 0x1EA4 },
+ { 0x1EA6, 0x1EA6 },
+ { 0x1EA8, 0x1EA8 },
+ { 0x1EAA, 0x1EAA },
+ { 0x1EAC, 0x1EAC },
+ { 0x1EAE, 0x1EAE },
+ { 0x1EB0, 0x1EB0 },
+ { 0x1EB2, 0x1EB2 },
+ { 0x1EB4, 0x1EB4 },
+ { 0x1EB6, 0x1EB6 },
+ { 0x1EB8, 0x1EB8 },
+ { 0x1EBA, 0x1EBA },
+ { 0x1EBC, 0x1EBC },
+ { 0x1EBE, 0x1EBE },
+ { 0x1EC0, 0x1EC0 },
+ { 0x1EC2, 0x1EC2 },
+ { 0x1EC4, 0x1EC4 },
+ { 0x1EC6, 0x1EC6 },
+ { 0x1EC8, 0x1EC8 },
+ { 0x1ECA, 0x1ECA },
+ { 0x1ECC, 0x1ECC },
+ { 0x1ECE, 0x1ECE },
+ { 0x1ED0, 0x1ED0 },
+ { 0x1ED2, 0x1ED2 },
+ { 0x1ED4, 0x1ED4 },
+ { 0x1ED6, 0x1ED6 },
+ { 0x1ED8, 0x1ED8 },
+ { 0x1EDA, 0x1EDA },
+ { 0x1EDC, 0x1EDC },
+ { 0x1EDE, 0x1EDE },
+ { 0x1EE0, 0x1EE0 },
+ { 0x1EE2, 0x1EE2 },
+ { 0x1EE4, 0x1EE4 },
+ { 0x1EE6, 0x1EE6 },
+ { 0x1EE8, 0x1EE8 },
+ { 0x1EEA, 0x1EEA },
+ { 0x1EEC, 0x1EEC },
+ { 0x1EEE, 0x1EEE },
+ { 0x1EF0, 0x1EF0 },
+ { 0x1EF2, 0x1EF2 },
+ { 0x1EF4, 0x1EF4 },
+ { 0x1EF6, 0x1EF6 },
+ { 0x1EF8, 0x1EF8 },
+ { 0x1EFA, 0x1EFA },
+ { 0x1EFC, 0x1EFC },
+ { 0x1EFE, 0x1EFE },
+ { 0x1F08, 0x1F0F },
+ { 0x1F18, 0x1F1D },
+ { 0x1F28, 0x1F2F },
+ { 0x1F38, 0x1F3F },
+ { 0x1F48, 0x1F4D },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F5F },
+ { 0x1F68, 0x1F6F },
+ { 0x1F88, 0x1F8F },
+ { 0x1F98, 0x1F9F },
+ { 0x1FA8, 0x1FAF },
+ { 0x1FB8, 0x1FBC },
+ { 0x1FC8, 0x1FCC },
+ { 0x1FD8, 0x1FDB },
+ { 0x1FE8, 0x1FEC },
+ { 0x1FF8, 0x1FFC },
+ { 0x2126, 0x2126 },
+ { 0x212A, 0x212B },
+ { 0x2132, 0x2132 },
+ { 0x2160, 0x216F },
+ { 0x2183, 0x2183 },
+ { 0x24B6, 0x24CF },
+ { 0x2C00, 0x2C2E },
+ { 0x2C60, 0x2C60 },
+ { 0x2C62, 0x2C64 },
+ { 0x2C67, 0x2C67 },
+ { 0x2C69, 0x2C69 },
+ { 0x2C6B, 0x2C6B },
+ { 0x2C6D, 0x2C6F },
+ { 0x2C72, 0x2C72 },
+ { 0x2C75, 0x2C75 },
+ { 0x2C80, 0x2C80 },
+ { 0x2C82, 0x2C82 },
+ { 0x2C84, 0x2C84 },
+ { 0x2C86, 0x2C86 },
+ { 0x2C88, 0x2C88 },
+ { 0x2C8A, 0x2C8A },
+ { 0x2C8C, 0x2C8C },
+ { 0x2C8E, 0x2C8E },
+ { 0x2C90, 0x2C90 },
+ { 0x2C92, 0x2C92 },
+ { 0x2C94, 0x2C94 },
+ { 0x2C96, 0x2C96 },
+ { 0x2C98, 0x2C98 },
+ { 0x2C9A, 0x2C9A },
+ { 0x2C9C, 0x2C9C },
+ { 0x2C9E, 0x2C9E },
+ { 0x2CA0, 0x2CA0 },
+ { 0x2CA2, 0x2CA2 },
+ { 0x2CA4, 0x2CA4 },
+ { 0x2CA6, 0x2CA6 },
+ { 0x2CA8, 0x2CA8 },
+ { 0x2CAA, 0x2CAA },
+ { 0x2CAC, 0x2CAC },
+ { 0x2CAE, 0x2CAE },
+ { 0x2CB0, 0x2CB0 },
+ { 0x2CB2, 0x2CB2 },
+ { 0x2CB4, 0x2CB4 },
+ { 0x2CB6, 0x2CB6 },
+ { 0x2CB8, 0x2CB8 },
+ { 0x2CBA, 0x2CBA },
+ { 0x2CBC, 0x2CBC },
+ { 0x2CBE, 0x2CBE },
+ { 0x2CC0, 0x2CC0 },
+ { 0x2CC2, 0x2CC2 },
+ { 0x2CC4, 0x2CC4 },
+ { 0x2CC6, 0x2CC6 },
+ { 0x2CC8, 0x2CC8 },
+ { 0x2CCA, 0x2CCA },
+ { 0x2CCC, 0x2CCC },
+ { 0x2CCE, 0x2CCE },
+ { 0x2CD0, 0x2CD0 },
+ { 0x2CD2, 0x2CD2 },
+ { 0x2CD4, 0x2CD4 },
+ { 0x2CD6, 0x2CD6 },
+ { 0x2CD8, 0x2CD8 },
+ { 0x2CDA, 0x2CDA },
+ { 0x2CDC, 0x2CDC },
+ { 0x2CDE, 0x2CDE },
+ { 0x2CE0, 0x2CE0 },
+ { 0x2CE2, 0x2CE2 },
+ { 0xA640, 0xA640 },
+ { 0xA642, 0xA642 },
+ { 0xA644, 0xA644 },
+ { 0xA646, 0xA646 },
+ { 0xA648, 0xA648 },
+ { 0xA64A, 0xA64A },
+ { 0xA64C, 0xA64C },
+ { 0xA64E, 0xA64E },
+ { 0xA650, 0xA650 },
+ { 0xA652, 0xA652 },
+ { 0xA654, 0xA654 },
+ { 0xA656, 0xA656 },
+ { 0xA658, 0xA658 },
+ { 0xA65A, 0xA65A },
+ { 0xA65C, 0xA65C },
+ { 0xA65E, 0xA65E },
+ { 0xA662, 0xA662 },
+ { 0xA664, 0xA664 },
+ { 0xA666, 0xA666 },
+ { 0xA668, 0xA668 },
+ { 0xA66A, 0xA66A },
+ { 0xA66C, 0xA66C },
+ { 0xA680, 0xA680 },
+ { 0xA682, 0xA682 },
+ { 0xA684, 0xA684 },
+ { 0xA686, 0xA686 },
+ { 0xA688, 0xA688 },
+ { 0xA68A, 0xA68A },
+ { 0xA68C, 0xA68C },
+ { 0xA68E, 0xA68E },
+ { 0xA690, 0xA690 },
+ { 0xA692, 0xA692 },
+ { 0xA694, 0xA694 },
+ { 0xA696, 0xA696 },
+ { 0xA722, 0xA722 },
+ { 0xA724, 0xA724 },
+ { 0xA726, 0xA726 },
+ { 0xA728, 0xA728 },
+ { 0xA72A, 0xA72A },
+ { 0xA72C, 0xA72C },
+ { 0xA72E, 0xA72E },
+ { 0xA732, 0xA732 },
+ { 0xA734, 0xA734 },
+ { 0xA736, 0xA736 },
+ { 0xA738, 0xA738 },
+ { 0xA73A, 0xA73A },
+ { 0xA73C, 0xA73C },
+ { 0xA73E, 0xA73E },
+ { 0xA740, 0xA740 },
+ { 0xA742, 0xA742 },
+ { 0xA744, 0xA744 },
+ { 0xA746, 0xA746 },
+ { 0xA748, 0xA748 },
+ { 0xA74A, 0xA74A },
+ { 0xA74C, 0xA74C },
+ { 0xA74E, 0xA74E },
+ { 0xA750, 0xA750 },
+ { 0xA752, 0xA752 },
+ { 0xA754, 0xA754 },
+ { 0xA756, 0xA756 },
+ { 0xA758, 0xA758 },
+ { 0xA75A, 0xA75A },
+ { 0xA75C, 0xA75C },
+ { 0xA75E, 0xA75E },
+ { 0xA760, 0xA760 },
+ { 0xA762, 0xA762 },
+ { 0xA764, 0xA764 },
+ { 0xA766, 0xA766 },
+ { 0xA768, 0xA768 },
+ { 0xA76A, 0xA76A },
+ { 0xA76C, 0xA76C },
+ { 0xA76E, 0xA76E },
+ { 0xA779, 0xA779 },
+ { 0xA77B, 0xA77B },
+ { 0xA77D, 0xA77E },
+ { 0xA780, 0xA780 },
+ { 0xA782, 0xA782 },
+ { 0xA784, 0xA784 },
+ { 0xA786, 0xA786 },
+ { 0xA78B, 0xA78B },
+ { 0xFF21, 0xFF3A },
+ { 0x10400, 0x10427 }
+
+#define PREDICATE(c) uc_is_upper (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-ctype_xdigit.c b/tests/unictype/test-ctype_xdigit.c
new file mode 100644
index 0000000..d4e5717
--- /dev/null
+++ b/tests/unictype/test-ctype_xdigit.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0041, 0x0046 },
+ { 0x0061, 0x0066 }
+
+#define PREDICATE(c) uc_is_xdigit (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-decdigit.c b/tests/unictype/test-decdigit.c
new file mode 100644
index 0000000..3d91690
--- /dev/null
+++ b/tests/unictype/test-decdigit.c
@@ -0,0 +1,62 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+static const struct { unsigned int ch; int value; } mapping[] =
+ {
+#include "test-decdigit.h"
+ };
+
+int
+main ()
+{
+ unsigned int c;
+ size_t i;
+
+ c = 0;
+ for (i = 0; i < SIZEOF (mapping); i++)
+ {
+ for (; c < mapping[i].ch; c++)
+ ASSERT (uc_decimal_value (c) == -1);
+ /* Here c = mapping[i].ch. */
+ ASSERT (uc_decimal_value (c) == mapping[i].value);
+ c++;
+ }
+ for (; c < 0x110000; c++)
+ ASSERT (uc_decimal_value (c) == -1);
+
+ return 0;
+}
diff --git a/tests/unictype/test-decdigit.h b/tests/unictype/test-decdigit.h
new file mode 100644
index 0000000..afa88de
--- /dev/null
+++ b/tests/unictype/test-decdigit.h
@@ -0,0 +1,373 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Decimal digit values of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+ { 0x0030, 0 },
+ { 0x0031, 1 },
+ { 0x0032, 2 },
+ { 0x0033, 3 },
+ { 0x0034, 4 },
+ { 0x0035, 5 },
+ { 0x0036, 6 },
+ { 0x0037, 7 },
+ { 0x0038, 8 },
+ { 0x0039, 9 },
+ { 0x0660, 0 },
+ { 0x0661, 1 },
+ { 0x0662, 2 },
+ { 0x0663, 3 },
+ { 0x0664, 4 },
+ { 0x0665, 5 },
+ { 0x0666, 6 },
+ { 0x0667, 7 },
+ { 0x0668, 8 },
+ { 0x0669, 9 },
+ { 0x06F0, 0 },
+ { 0x06F1, 1 },
+ { 0x06F2, 2 },
+ { 0x06F3, 3 },
+ { 0x06F4, 4 },
+ { 0x06F5, 5 },
+ { 0x06F6, 6 },
+ { 0x06F7, 7 },
+ { 0x06F8, 8 },
+ { 0x06F9, 9 },
+ { 0x07C0, 0 },
+ { 0x07C1, 1 },
+ { 0x07C2, 2 },
+ { 0x07C3, 3 },
+ { 0x07C4, 4 },
+ { 0x07C5, 5 },
+ { 0x07C6, 6 },
+ { 0x07C7, 7 },
+ { 0x07C8, 8 },
+ { 0x07C9, 9 },
+ { 0x0966, 0 },
+ { 0x0967, 1 },
+ { 0x0968, 2 },
+ { 0x0969, 3 },
+ { 0x096A, 4 },
+ { 0x096B, 5 },
+ { 0x096C, 6 },
+ { 0x096D, 7 },
+ { 0x096E, 8 },
+ { 0x096F, 9 },
+ { 0x09E6, 0 },
+ { 0x09E7, 1 },
+ { 0x09E8, 2 },
+ { 0x09E9, 3 },
+ { 0x09EA, 4 },
+ { 0x09EB, 5 },
+ { 0x09EC, 6 },
+ { 0x09ED, 7 },
+ { 0x09EE, 8 },
+ { 0x09EF, 9 },
+ { 0x0A66, 0 },
+ { 0x0A67, 1 },
+ { 0x0A68, 2 },
+ { 0x0A69, 3 },
+ { 0x0A6A, 4 },
+ { 0x0A6B, 5 },
+ { 0x0A6C, 6 },
+ { 0x0A6D, 7 },
+ { 0x0A6E, 8 },
+ { 0x0A6F, 9 },
+ { 0x0AE6, 0 },
+ { 0x0AE7, 1 },
+ { 0x0AE8, 2 },
+ { 0x0AE9, 3 },
+ { 0x0AEA, 4 },
+ { 0x0AEB, 5 },
+ { 0x0AEC, 6 },
+ { 0x0AED, 7 },
+ { 0x0AEE, 8 },
+ { 0x0AEF, 9 },
+ { 0x0B66, 0 },
+ { 0x0B67, 1 },
+ { 0x0B68, 2 },
+ { 0x0B69, 3 },
+ { 0x0B6A, 4 },
+ { 0x0B6B, 5 },
+ { 0x0B6C, 6 },
+ { 0x0B6D, 7 },
+ { 0x0B6E, 8 },
+ { 0x0B6F, 9 },
+ { 0x0BE6, 0 },
+ { 0x0BE7, 1 },
+ { 0x0BE8, 2 },
+ { 0x0BE9, 3 },
+ { 0x0BEA, 4 },
+ { 0x0BEB, 5 },
+ { 0x0BEC, 6 },
+ { 0x0BED, 7 },
+ { 0x0BEE, 8 },
+ { 0x0BEF, 9 },
+ { 0x0C66, 0 },
+ { 0x0C67, 1 },
+ { 0x0C68, 2 },
+ { 0x0C69, 3 },
+ { 0x0C6A, 4 },
+ { 0x0C6B, 5 },
+ { 0x0C6C, 6 },
+ { 0x0C6D, 7 },
+ { 0x0C6E, 8 },
+ { 0x0C6F, 9 },
+ { 0x0CE6, 0 },
+ { 0x0CE7, 1 },
+ { 0x0CE8, 2 },
+ { 0x0CE9, 3 },
+ { 0x0CEA, 4 },
+ { 0x0CEB, 5 },
+ { 0x0CEC, 6 },
+ { 0x0CED, 7 },
+ { 0x0CEE, 8 },
+ { 0x0CEF, 9 },
+ { 0x0D66, 0 },
+ { 0x0D67, 1 },
+ { 0x0D68, 2 },
+ { 0x0D69, 3 },
+ { 0x0D6A, 4 },
+ { 0x0D6B, 5 },
+ { 0x0D6C, 6 },
+ { 0x0D6D, 7 },
+ { 0x0D6E, 8 },
+ { 0x0D6F, 9 },
+ { 0x0E50, 0 },
+ { 0x0E51, 1 },
+ { 0x0E52, 2 },
+ { 0x0E53, 3 },
+ { 0x0E54, 4 },
+ { 0x0E55, 5 },
+ { 0x0E56, 6 },
+ { 0x0E57, 7 },
+ { 0x0E58, 8 },
+ { 0x0E59, 9 },
+ { 0x0ED0, 0 },
+ { 0x0ED1, 1 },
+ { 0x0ED2, 2 },
+ { 0x0ED3, 3 },
+ { 0x0ED4, 4 },
+ { 0x0ED5, 5 },
+ { 0x0ED6, 6 },
+ { 0x0ED7, 7 },
+ { 0x0ED8, 8 },
+ { 0x0ED9, 9 },
+ { 0x0F20, 0 },
+ { 0x0F21, 1 },
+ { 0x0F22, 2 },
+ { 0x0F23, 3 },
+ { 0x0F24, 4 },
+ { 0x0F25, 5 },
+ { 0x0F26, 6 },
+ { 0x0F27, 7 },
+ { 0x0F28, 8 },
+ { 0x0F29, 9 },
+ { 0x1040, 0 },
+ { 0x1041, 1 },
+ { 0x1042, 2 },
+ { 0x1043, 3 },
+ { 0x1044, 4 },
+ { 0x1045, 5 },
+ { 0x1046, 6 },
+ { 0x1047, 7 },
+ { 0x1048, 8 },
+ { 0x1049, 9 },
+ { 0x1090, 0 },
+ { 0x1091, 1 },
+ { 0x1092, 2 },
+ { 0x1093, 3 },
+ { 0x1094, 4 },
+ { 0x1095, 5 },
+ { 0x1096, 6 },
+ { 0x1097, 7 },
+ { 0x1098, 8 },
+ { 0x1099, 9 },
+ { 0x17E0, 0 },
+ { 0x17E1, 1 },
+ { 0x17E2, 2 },
+ { 0x17E3, 3 },
+ { 0x17E4, 4 },
+ { 0x17E5, 5 },
+ { 0x17E6, 6 },
+ { 0x17E7, 7 },
+ { 0x17E8, 8 },
+ { 0x17E9, 9 },
+ { 0x1810, 0 },
+ { 0x1811, 1 },
+ { 0x1812, 2 },
+ { 0x1813, 3 },
+ { 0x1814, 4 },
+ { 0x1815, 5 },
+ { 0x1816, 6 },
+ { 0x1817, 7 },
+ { 0x1818, 8 },
+ { 0x1819, 9 },
+ { 0x1946, 0 },
+ { 0x1947, 1 },
+ { 0x1948, 2 },
+ { 0x1949, 3 },
+ { 0x194A, 4 },
+ { 0x194B, 5 },
+ { 0x194C, 6 },
+ { 0x194D, 7 },
+ { 0x194E, 8 },
+ { 0x194F, 9 },
+ { 0x19D0, 0 },
+ { 0x19D1, 1 },
+ { 0x19D2, 2 },
+ { 0x19D3, 3 },
+ { 0x19D4, 4 },
+ { 0x19D5, 5 },
+ { 0x19D6, 6 },
+ { 0x19D7, 7 },
+ { 0x19D8, 8 },
+ { 0x19D9, 9 },
+ { 0x1B50, 0 },
+ { 0x1B51, 1 },
+ { 0x1B52, 2 },
+ { 0x1B53, 3 },
+ { 0x1B54, 4 },
+ { 0x1B55, 5 },
+ { 0x1B56, 6 },
+ { 0x1B57, 7 },
+ { 0x1B58, 8 },
+ { 0x1B59, 9 },
+ { 0x1BB0, 0 },
+ { 0x1BB1, 1 },
+ { 0x1BB2, 2 },
+ { 0x1BB3, 3 },
+ { 0x1BB4, 4 },
+ { 0x1BB5, 5 },
+ { 0x1BB6, 6 },
+ { 0x1BB7, 7 },
+ { 0x1BB8, 8 },
+ { 0x1BB9, 9 },
+ { 0x1C40, 0 },
+ { 0x1C41, 1 },
+ { 0x1C42, 2 },
+ { 0x1C43, 3 },
+ { 0x1C44, 4 },
+ { 0x1C45, 5 },
+ { 0x1C46, 6 },
+ { 0x1C47, 7 },
+ { 0x1C48, 8 },
+ { 0x1C49, 9 },
+ { 0x1C50, 0 },
+ { 0x1C51, 1 },
+ { 0x1C52, 2 },
+ { 0x1C53, 3 },
+ { 0x1C54, 4 },
+ { 0x1C55, 5 },
+ { 0x1C56, 6 },
+ { 0x1C57, 7 },
+ { 0x1C58, 8 },
+ { 0x1C59, 9 },
+ { 0xA620, 0 },
+ { 0xA621, 1 },
+ { 0xA622, 2 },
+ { 0xA623, 3 },
+ { 0xA624, 4 },
+ { 0xA625, 5 },
+ { 0xA626, 6 },
+ { 0xA627, 7 },
+ { 0xA628, 8 },
+ { 0xA629, 9 },
+ { 0xA8D0, 0 },
+ { 0xA8D1, 1 },
+ { 0xA8D2, 2 },
+ { 0xA8D3, 3 },
+ { 0xA8D4, 4 },
+ { 0xA8D5, 5 },
+ { 0xA8D6, 6 },
+ { 0xA8D7, 7 },
+ { 0xA8D8, 8 },
+ { 0xA8D9, 9 },
+ { 0xA900, 0 },
+ { 0xA901, 1 },
+ { 0xA902, 2 },
+ { 0xA903, 3 },
+ { 0xA904, 4 },
+ { 0xA905, 5 },
+ { 0xA906, 6 },
+ { 0xA907, 7 },
+ { 0xA908, 8 },
+ { 0xA909, 9 },
+ { 0xAA50, 0 },
+ { 0xAA51, 1 },
+ { 0xAA52, 2 },
+ { 0xAA53, 3 },
+ { 0xAA54, 4 },
+ { 0xAA55, 5 },
+ { 0xAA56, 6 },
+ { 0xAA57, 7 },
+ { 0xAA58, 8 },
+ { 0xAA59, 9 },
+ { 0xFF10, 0 },
+ { 0xFF11, 1 },
+ { 0xFF12, 2 },
+ { 0xFF13, 3 },
+ { 0xFF14, 4 },
+ { 0xFF15, 5 },
+ { 0xFF16, 6 },
+ { 0xFF17, 7 },
+ { 0xFF18, 8 },
+ { 0xFF19, 9 },
+ { 0x104A0, 0 },
+ { 0x104A1, 1 },
+ { 0x104A2, 2 },
+ { 0x104A3, 3 },
+ { 0x104A4, 4 },
+ { 0x104A5, 5 },
+ { 0x104A6, 6 },
+ { 0x104A7, 7 },
+ { 0x104A8, 8 },
+ { 0x104A9, 9 },
+ { 0x1D7CE, 0 },
+ { 0x1D7CF, 1 },
+ { 0x1D7D0, 2 },
+ { 0x1D7D1, 3 },
+ { 0x1D7D2, 4 },
+ { 0x1D7D3, 5 },
+ { 0x1D7D4, 6 },
+ { 0x1D7D5, 7 },
+ { 0x1D7D6, 8 },
+ { 0x1D7D7, 9 },
+ { 0x1D7D8, 0 },
+ { 0x1D7D9, 1 },
+ { 0x1D7DA, 2 },
+ { 0x1D7DB, 3 },
+ { 0x1D7DC, 4 },
+ { 0x1D7DD, 5 },
+ { 0x1D7DE, 6 },
+ { 0x1D7DF, 7 },
+ { 0x1D7E0, 8 },
+ { 0x1D7E1, 9 },
+ { 0x1D7E2, 0 },
+ { 0x1D7E3, 1 },
+ { 0x1D7E4, 2 },
+ { 0x1D7E5, 3 },
+ { 0x1D7E6, 4 },
+ { 0x1D7E7, 5 },
+ { 0x1D7E8, 6 },
+ { 0x1D7E9, 7 },
+ { 0x1D7EA, 8 },
+ { 0x1D7EB, 9 },
+ { 0x1D7EC, 0 },
+ { 0x1D7ED, 1 },
+ { 0x1D7EE, 2 },
+ { 0x1D7EF, 3 },
+ { 0x1D7F0, 4 },
+ { 0x1D7F1, 5 },
+ { 0x1D7F2, 6 },
+ { 0x1D7F3, 7 },
+ { 0x1D7F4, 8 },
+ { 0x1D7F5, 9 },
+ { 0x1D7F6, 0 },
+ { 0x1D7F7, 1 },
+ { 0x1D7F8, 2 },
+ { 0x1D7F9, 3 },
+ { 0x1D7FA, 4 },
+ { 0x1D7FB, 5 },
+ { 0x1D7FC, 6 },
+ { 0x1D7FD, 7 },
+ { 0x1D7FE, 8 },
+ { 0x1D7FF, 9 }
diff --git a/tests/unictype/test-digit.c b/tests/unictype/test-digit.c
new file mode 100644
index 0000000..efecaab
--- /dev/null
+++ b/tests/unictype/test-digit.c
@@ -0,0 +1,62 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+static const struct { unsigned int ch; int value; } mapping[] =
+ {
+#include "test-digit.h"
+ };
+
+int
+main ()
+{
+ unsigned int c;
+ size_t i;
+
+ c = 0;
+ for (i = 0; i < SIZEOF (mapping); i++)
+ {
+ for (; c < mapping[i].ch; c++)
+ ASSERT (uc_digit_value (c) == -1);
+ /* Here c = mapping[i].ch. */
+ ASSERT (uc_digit_value (c) == mapping[i].value);
+ c++;
+ }
+ for (; c < 0x110000; c++)
+ ASSERT (uc_digit_value (c) == -1);
+
+ return 0;
+}
diff --git a/tests/unictype/test-digit.h b/tests/unictype/test-digit.h
new file mode 100644
index 0000000..9902a7f
--- /dev/null
+++ b/tests/unictype/test-digit.h
@@ -0,0 +1,471 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Digit values of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+ { 0x0030, 0 },
+ { 0x0031, 1 },
+ { 0x0032, 2 },
+ { 0x0033, 3 },
+ { 0x0034, 4 },
+ { 0x0035, 5 },
+ { 0x0036, 6 },
+ { 0x0037, 7 },
+ { 0x0038, 8 },
+ { 0x0039, 9 },
+ { 0x00B2, 2 },
+ { 0x00B3, 3 },
+ { 0x00B9, 1 },
+ { 0x0660, 0 },
+ { 0x0661, 1 },
+ { 0x0662, 2 },
+ { 0x0663, 3 },
+ { 0x0664, 4 },
+ { 0x0665, 5 },
+ { 0x0666, 6 },
+ { 0x0667, 7 },
+ { 0x0668, 8 },
+ { 0x0669, 9 },
+ { 0x06F0, 0 },
+ { 0x06F1, 1 },
+ { 0x06F2, 2 },
+ { 0x06F3, 3 },
+ { 0x06F4, 4 },
+ { 0x06F5, 5 },
+ { 0x06F6, 6 },
+ { 0x06F7, 7 },
+ { 0x06F8, 8 },
+ { 0x06F9, 9 },
+ { 0x07C0, 0 },
+ { 0x07C1, 1 },
+ { 0x07C2, 2 },
+ { 0x07C3, 3 },
+ { 0x07C4, 4 },
+ { 0x07C5, 5 },
+ { 0x07C6, 6 },
+ { 0x07C7, 7 },
+ { 0x07C8, 8 },
+ { 0x07C9, 9 },
+ { 0x0966, 0 },
+ { 0x0967, 1 },
+ { 0x0968, 2 },
+ { 0x0969, 3 },
+ { 0x096A, 4 },
+ { 0x096B, 5 },
+ { 0x096C, 6 },
+ { 0x096D, 7 },
+ { 0x096E, 8 },
+ { 0x096F, 9 },
+ { 0x09E6, 0 },
+ { 0x09E7, 1 },
+ { 0x09E8, 2 },
+ { 0x09E9, 3 },
+ { 0x09EA, 4 },
+ { 0x09EB, 5 },
+ { 0x09EC, 6 },
+ { 0x09ED, 7 },
+ { 0x09EE, 8 },
+ { 0x09EF, 9 },
+ { 0x0A66, 0 },
+ { 0x0A67, 1 },
+ { 0x0A68, 2 },
+ { 0x0A69, 3 },
+ { 0x0A6A, 4 },
+ { 0x0A6B, 5 },
+ { 0x0A6C, 6 },
+ { 0x0A6D, 7 },
+ { 0x0A6E, 8 },
+ { 0x0A6F, 9 },
+ { 0x0AE6, 0 },
+ { 0x0AE7, 1 },
+ { 0x0AE8, 2 },
+ { 0x0AE9, 3 },
+ { 0x0AEA, 4 },
+ { 0x0AEB, 5 },
+ { 0x0AEC, 6 },
+ { 0x0AED, 7 },
+ { 0x0AEE, 8 },
+ { 0x0AEF, 9 },
+ { 0x0B66, 0 },
+ { 0x0B67, 1 },
+ { 0x0B68, 2 },
+ { 0x0B69, 3 },
+ { 0x0B6A, 4 },
+ { 0x0B6B, 5 },
+ { 0x0B6C, 6 },
+ { 0x0B6D, 7 },
+ { 0x0B6E, 8 },
+ { 0x0B6F, 9 },
+ { 0x0BE6, 0 },
+ { 0x0BE7, 1 },
+ { 0x0BE8, 2 },
+ { 0x0BE9, 3 },
+ { 0x0BEA, 4 },
+ { 0x0BEB, 5 },
+ { 0x0BEC, 6 },
+ { 0x0BED, 7 },
+ { 0x0BEE, 8 },
+ { 0x0BEF, 9 },
+ { 0x0C66, 0 },
+ { 0x0C67, 1 },
+ { 0x0C68, 2 },
+ { 0x0C69, 3 },
+ { 0x0C6A, 4 },
+ { 0x0C6B, 5 },
+ { 0x0C6C, 6 },
+ { 0x0C6D, 7 },
+ { 0x0C6E, 8 },
+ { 0x0C6F, 9 },
+ { 0x0CE6, 0 },
+ { 0x0CE7, 1 },
+ { 0x0CE8, 2 },
+ { 0x0CE9, 3 },
+ { 0x0CEA, 4 },
+ { 0x0CEB, 5 },
+ { 0x0CEC, 6 },
+ { 0x0CED, 7 },
+ { 0x0CEE, 8 },
+ { 0x0CEF, 9 },
+ { 0x0D66, 0 },
+ { 0x0D67, 1 },
+ { 0x0D68, 2 },
+ { 0x0D69, 3 },
+ { 0x0D6A, 4 },
+ { 0x0D6B, 5 },
+ { 0x0D6C, 6 },
+ { 0x0D6D, 7 },
+ { 0x0D6E, 8 },
+ { 0x0D6F, 9 },
+ { 0x0E50, 0 },
+ { 0x0E51, 1 },
+ { 0x0E52, 2 },
+ { 0x0E53, 3 },
+ { 0x0E54, 4 },
+ { 0x0E55, 5 },
+ { 0x0E56, 6 },
+ { 0x0E57, 7 },
+ { 0x0E58, 8 },
+ { 0x0E59, 9 },
+ { 0x0ED0, 0 },
+ { 0x0ED1, 1 },
+ { 0x0ED2, 2 },
+ { 0x0ED3, 3 },
+ { 0x0ED4, 4 },
+ { 0x0ED5, 5 },
+ { 0x0ED6, 6 },
+ { 0x0ED7, 7 },
+ { 0x0ED8, 8 },
+ { 0x0ED9, 9 },
+ { 0x0F20, 0 },
+ { 0x0F21, 1 },
+ { 0x0F22, 2 },
+ { 0x0F23, 3 },
+ { 0x0F24, 4 },
+ { 0x0F25, 5 },
+ { 0x0F26, 6 },
+ { 0x0F27, 7 },
+ { 0x0F28, 8 },
+ { 0x0F29, 9 },
+ { 0x1040, 0 },
+ { 0x1041, 1 },
+ { 0x1042, 2 },
+ { 0x1043, 3 },
+ { 0x1044, 4 },
+ { 0x1045, 5 },
+ { 0x1046, 6 },
+ { 0x1047, 7 },
+ { 0x1048, 8 },
+ { 0x1049, 9 },
+ { 0x1090, 0 },
+ { 0x1091, 1 },
+ { 0x1092, 2 },
+ { 0x1093, 3 },
+ { 0x1094, 4 },
+ { 0x1095, 5 },
+ { 0x1096, 6 },
+ { 0x1097, 7 },
+ { 0x1098, 8 },
+ { 0x1099, 9 },
+ { 0x1369, 1 },
+ { 0x136A, 2 },
+ { 0x136B, 3 },
+ { 0x136C, 4 },
+ { 0x136D, 5 },
+ { 0x136E, 6 },
+ { 0x136F, 7 },
+ { 0x1370, 8 },
+ { 0x1371, 9 },
+ { 0x17E0, 0 },
+ { 0x17E1, 1 },
+ { 0x17E2, 2 },
+ { 0x17E3, 3 },
+ { 0x17E4, 4 },
+ { 0x17E5, 5 },
+ { 0x17E6, 6 },
+ { 0x17E7, 7 },
+ { 0x17E8, 8 },
+ { 0x17E9, 9 },
+ { 0x1810, 0 },
+ { 0x1811, 1 },
+ { 0x1812, 2 },
+ { 0x1813, 3 },
+ { 0x1814, 4 },
+ { 0x1815, 5 },
+ { 0x1816, 6 },
+ { 0x1817, 7 },
+ { 0x1818, 8 },
+ { 0x1819, 9 },
+ { 0x1946, 0 },
+ { 0x1947, 1 },
+ { 0x1948, 2 },
+ { 0x1949, 3 },
+ { 0x194A, 4 },
+ { 0x194B, 5 },
+ { 0x194C, 6 },
+ { 0x194D, 7 },
+ { 0x194E, 8 },
+ { 0x194F, 9 },
+ { 0x19D0, 0 },
+ { 0x19D1, 1 },
+ { 0x19D2, 2 },
+ { 0x19D3, 3 },
+ { 0x19D4, 4 },
+ { 0x19D5, 5 },
+ { 0x19D6, 6 },
+ { 0x19D7, 7 },
+ { 0x19D8, 8 },
+ { 0x19D9, 9 },
+ { 0x1B50, 0 },
+ { 0x1B51, 1 },
+ { 0x1B52, 2 },
+ { 0x1B53, 3 },
+ { 0x1B54, 4 },
+ { 0x1B55, 5 },
+ { 0x1B56, 6 },
+ { 0x1B57, 7 },
+ { 0x1B58, 8 },
+ { 0x1B59, 9 },
+ { 0x1BB0, 0 },
+ { 0x1BB1, 1 },
+ { 0x1BB2, 2 },
+ { 0x1BB3, 3 },
+ { 0x1BB4, 4 },
+ { 0x1BB5, 5 },
+ { 0x1BB6, 6 },
+ { 0x1BB7, 7 },
+ { 0x1BB8, 8 },
+ { 0x1BB9, 9 },
+ { 0x1C40, 0 },
+ { 0x1C41, 1 },
+ { 0x1C42, 2 },
+ { 0x1C43, 3 },
+ { 0x1C44, 4 },
+ { 0x1C45, 5 },
+ { 0x1C46, 6 },
+ { 0x1C47, 7 },
+ { 0x1C48, 8 },
+ { 0x1C49, 9 },
+ { 0x1C50, 0 },
+ { 0x1C51, 1 },
+ { 0x1C52, 2 },
+ { 0x1C53, 3 },
+ { 0x1C54, 4 },
+ { 0x1C55, 5 },
+ { 0x1C56, 6 },
+ { 0x1C57, 7 },
+ { 0x1C58, 8 },
+ { 0x1C59, 9 },
+ { 0x2070, 0 },
+ { 0x2074, 4 },
+ { 0x2075, 5 },
+ { 0x2076, 6 },
+ { 0x2077, 7 },
+ { 0x2078, 8 },
+ { 0x2079, 9 },
+ { 0x2080, 0 },
+ { 0x2081, 1 },
+ { 0x2082, 2 },
+ { 0x2083, 3 },
+ { 0x2084, 4 },
+ { 0x2085, 5 },
+ { 0x2086, 6 },
+ { 0x2087, 7 },
+ { 0x2088, 8 },
+ { 0x2089, 9 },
+ { 0x2460, 1 },
+ { 0x2461, 2 },
+ { 0x2462, 3 },
+ { 0x2463, 4 },
+ { 0x2464, 5 },
+ { 0x2465, 6 },
+ { 0x2466, 7 },
+ { 0x2467, 8 },
+ { 0x2468, 9 },
+ { 0x2474, 1 },
+ { 0x2475, 2 },
+ { 0x2476, 3 },
+ { 0x2477, 4 },
+ { 0x2478, 5 },
+ { 0x2479, 6 },
+ { 0x247A, 7 },
+ { 0x247B, 8 },
+ { 0x247C, 9 },
+ { 0x2488, 1 },
+ { 0x2489, 2 },
+ { 0x248A, 3 },
+ { 0x248B, 4 },
+ { 0x248C, 5 },
+ { 0x248D, 6 },
+ { 0x248E, 7 },
+ { 0x248F, 8 },
+ { 0x2490, 9 },
+ { 0x24EA, 0 },
+ { 0x24F5, 1 },
+ { 0x24F6, 2 },
+ { 0x24F7, 3 },
+ { 0x24F8, 4 },
+ { 0x24F9, 5 },
+ { 0x24FA, 6 },
+ { 0x24FB, 7 },
+ { 0x24FC, 8 },
+ { 0x24FD, 9 },
+ { 0x24FF, 0 },
+ { 0x2776, 1 },
+ { 0x2777, 2 },
+ { 0x2778, 3 },
+ { 0x2779, 4 },
+ { 0x277A, 5 },
+ { 0x277B, 6 },
+ { 0x277C, 7 },
+ { 0x277D, 8 },
+ { 0x277E, 9 },
+ { 0x2780, 1 },
+ { 0x2781, 2 },
+ { 0x2782, 3 },
+ { 0x2783, 4 },
+ { 0x2784, 5 },
+ { 0x2785, 6 },
+ { 0x2786, 7 },
+ { 0x2787, 8 },
+ { 0x2788, 9 },
+ { 0x278A, 1 },
+ { 0x278B, 2 },
+ { 0x278C, 3 },
+ { 0x278D, 4 },
+ { 0x278E, 5 },
+ { 0x278F, 6 },
+ { 0x2790, 7 },
+ { 0x2791, 8 },
+ { 0x2792, 9 },
+ { 0xA620, 0 },
+ { 0xA621, 1 },
+ { 0xA622, 2 },
+ { 0xA623, 3 },
+ { 0xA624, 4 },
+ { 0xA625, 5 },
+ { 0xA626, 6 },
+ { 0xA627, 7 },
+ { 0xA628, 8 },
+ { 0xA629, 9 },
+ { 0xA8D0, 0 },
+ { 0xA8D1, 1 },
+ { 0xA8D2, 2 },
+ { 0xA8D3, 3 },
+ { 0xA8D4, 4 },
+ { 0xA8D5, 5 },
+ { 0xA8D6, 6 },
+ { 0xA8D7, 7 },
+ { 0xA8D8, 8 },
+ { 0xA8D9, 9 },
+ { 0xA900, 0 },
+ { 0xA901, 1 },
+ { 0xA902, 2 },
+ { 0xA903, 3 },
+ { 0xA904, 4 },
+ { 0xA905, 5 },
+ { 0xA906, 6 },
+ { 0xA907, 7 },
+ { 0xA908, 8 },
+ { 0xA909, 9 },
+ { 0xAA50, 0 },
+ { 0xAA51, 1 },
+ { 0xAA52, 2 },
+ { 0xAA53, 3 },
+ { 0xAA54, 4 },
+ { 0xAA55, 5 },
+ { 0xAA56, 6 },
+ { 0xAA57, 7 },
+ { 0xAA58, 8 },
+ { 0xAA59, 9 },
+ { 0xFF10, 0 },
+ { 0xFF11, 1 },
+ { 0xFF12, 2 },
+ { 0xFF13, 3 },
+ { 0xFF14, 4 },
+ { 0xFF15, 5 },
+ { 0xFF16, 6 },
+ { 0xFF17, 7 },
+ { 0xFF18, 8 },
+ { 0xFF19, 9 },
+ { 0x104A0, 0 },
+ { 0x104A1, 1 },
+ { 0x104A2, 2 },
+ { 0x104A3, 3 },
+ { 0x104A4, 4 },
+ { 0x104A5, 5 },
+ { 0x104A6, 6 },
+ { 0x104A7, 7 },
+ { 0x104A8, 8 },
+ { 0x104A9, 9 },
+ { 0x10A40, 1 },
+ { 0x10A41, 2 },
+ { 0x10A42, 3 },
+ { 0x10A43, 4 },
+ { 0x1D7CE, 0 },
+ { 0x1D7CF, 1 },
+ { 0x1D7D0, 2 },
+ { 0x1D7D1, 3 },
+ { 0x1D7D2, 4 },
+ { 0x1D7D3, 5 },
+ { 0x1D7D4, 6 },
+ { 0x1D7D5, 7 },
+ { 0x1D7D6, 8 },
+ { 0x1D7D7, 9 },
+ { 0x1D7D8, 0 },
+ { 0x1D7D9, 1 },
+ { 0x1D7DA, 2 },
+ { 0x1D7DB, 3 },
+ { 0x1D7DC, 4 },
+ { 0x1D7DD, 5 },
+ { 0x1D7DE, 6 },
+ { 0x1D7DF, 7 },
+ { 0x1D7E0, 8 },
+ { 0x1D7E1, 9 },
+ { 0x1D7E2, 0 },
+ { 0x1D7E3, 1 },
+ { 0x1D7E4, 2 },
+ { 0x1D7E5, 3 },
+ { 0x1D7E6, 4 },
+ { 0x1D7E7, 5 },
+ { 0x1D7E8, 6 },
+ { 0x1D7E9, 7 },
+ { 0x1D7EA, 8 },
+ { 0x1D7EB, 9 },
+ { 0x1D7EC, 0 },
+ { 0x1D7ED, 1 },
+ { 0x1D7EE, 2 },
+ { 0x1D7EF, 3 },
+ { 0x1D7F0, 4 },
+ { 0x1D7F1, 5 },
+ { 0x1D7F2, 6 },
+ { 0x1D7F3, 7 },
+ { 0x1D7F4, 8 },
+ { 0x1D7F5, 9 },
+ { 0x1D7F6, 0 },
+ { 0x1D7F7, 1 },
+ { 0x1D7F8, 2 },
+ { 0x1D7F9, 3 },
+ { 0x1D7FA, 4 },
+ { 0x1D7FB, 5 },
+ { 0x1D7FC, 6 },
+ { 0x1D7FD, 7 },
+ { 0x1D7FE, 8 },
+ { 0x1D7FF, 9 }
diff --git a/tests/unictype/test-mirror.c b/tests/unictype/test-mirror.c
new file mode 100644
index 0000000..fb4402f
--- /dev/null
+++ b/tests/unictype/test-mirror.c
@@ -0,0 +1,53 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ucs4_t mirrored;
+
+ ASSERT (uc_mirror_char ('(', &mirrored) && mirrored == ')');
+ ASSERT (uc_mirror_char (')', &mirrored) && mirrored == '(');
+ ASSERT (uc_mirror_char ('<', &mirrored) && mirrored == '>');
+ ASSERT (uc_mirror_char ('>', &mirrored) && mirrored == '<');
+ ASSERT (uc_mirror_char ('[', &mirrored) && mirrored == ']');
+ ASSERT (uc_mirror_char (']', &mirrored) && mirrored == '[');
+ ASSERT (uc_mirror_char ('{', &mirrored) && mirrored == '}');
+ ASSERT (uc_mirror_char ('}', &mirrored) && mirrored == '{');
+ ASSERT (!uc_mirror_char ('X', &mirrored));
+
+ return 0;
+}
diff --git a/tests/unictype/test-numeric.c b/tests/unictype/test-numeric.c
new file mode 100644
index 0000000..5bca363
--- /dev/null
+++ b/tests/unictype/test-numeric.c
@@ -0,0 +1,72 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+static const struct { unsigned int ch; int numerator; int denominator; }
+ mapping[] =
+ {
+#include "test-numeric.h"
+ };
+
+int
+main ()
+{
+ unsigned int c;
+ uc_fraction_t value;
+ size_t i;
+
+ c = 0;
+ for (i = 0; i < SIZEOF (mapping); i++)
+ {
+ for (; c < mapping[i].ch; c++)
+ {
+ value = uc_numeric_value (c);
+ ASSERT (value.numerator == 0 && value.denominator == 0);
+ }
+ /* Here c = mapping[i].ch. */
+ value = uc_numeric_value (c);
+ ASSERT (value.numerator == mapping[i].numerator
+ && value.denominator == mapping[i].denominator);
+ c++;
+ }
+ for (; c < 0x110000; c++)
+ {
+ value = uc_numeric_value (c);
+ ASSERT (value.numerator == 0 && value.denominator == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-numeric.h b/tests/unictype/test-numeric.h
new file mode 100644
index 0000000..3267942
--- /dev/null
+++ b/tests/unictype/test-numeric.h
@@ -0,0 +1,939 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Numeric values of Unicode characters. */
+/* Generated automatically by gen-ctype.c for Unicode 5.1.0. */
+ { 0x0030, 0, 1 },
+ { 0x0031, 1, 1 },
+ { 0x0032, 2, 1 },
+ { 0x0033, 3, 1 },
+ { 0x0034, 4, 1 },
+ { 0x0035, 5, 1 },
+ { 0x0036, 6, 1 },
+ { 0x0037, 7, 1 },
+ { 0x0038, 8, 1 },
+ { 0x0039, 9, 1 },
+ { 0x00B2, 2, 1 },
+ { 0x00B3, 3, 1 },
+ { 0x00B9, 1, 1 },
+ { 0x00BC, 1, 4 },
+ { 0x00BD, 1, 2 },
+ { 0x00BE, 3, 4 },
+ { 0x0660, 0, 1 },
+ { 0x0661, 1, 1 },
+ { 0x0662, 2, 1 },
+ { 0x0663, 3, 1 },
+ { 0x0664, 4, 1 },
+ { 0x0665, 5, 1 },
+ { 0x0666, 6, 1 },
+ { 0x0667, 7, 1 },
+ { 0x0668, 8, 1 },
+ { 0x0669, 9, 1 },
+ { 0x06F0, 0, 1 },
+ { 0x06F1, 1, 1 },
+ { 0x06F2, 2, 1 },
+ { 0x06F3, 3, 1 },
+ { 0x06F4, 4, 1 },
+ { 0x06F5, 5, 1 },
+ { 0x06F6, 6, 1 },
+ { 0x06F7, 7, 1 },
+ { 0x06F8, 8, 1 },
+ { 0x06F9, 9, 1 },
+ { 0x07C0, 0, 1 },
+ { 0x07C1, 1, 1 },
+ { 0x07C2, 2, 1 },
+ { 0x07C3, 3, 1 },
+ { 0x07C4, 4, 1 },
+ { 0x07C5, 5, 1 },
+ { 0x07C6, 6, 1 },
+ { 0x07C7, 7, 1 },
+ { 0x07C8, 8, 1 },
+ { 0x07C9, 9, 1 },
+ { 0x0966, 0, 1 },
+ { 0x0967, 1, 1 },
+ { 0x0968, 2, 1 },
+ { 0x0969, 3, 1 },
+ { 0x096A, 4, 1 },
+ { 0x096B, 5, 1 },
+ { 0x096C, 6, 1 },
+ { 0x096D, 7, 1 },
+ { 0x096E, 8, 1 },
+ { 0x096F, 9, 1 },
+ { 0x09E6, 0, 1 },
+ { 0x09E7, 1, 1 },
+ { 0x09E8, 2, 1 },
+ { 0x09E9, 3, 1 },
+ { 0x09EA, 4, 1 },
+ { 0x09EB, 5, 1 },
+ { 0x09EC, 6, 1 },
+ { 0x09ED, 7, 1 },
+ { 0x09EE, 8, 1 },
+ { 0x09EF, 9, 1 },
+ { 0x09F4, 1, 1 },
+ { 0x09F5, 2, 1 },
+ { 0x09F6, 3, 1 },
+ { 0x09F7, 4, 1 },
+ { 0x09F9, 16, 1 },
+ { 0x0A66, 0, 1 },
+ { 0x0A67, 1, 1 },
+ { 0x0A68, 2, 1 },
+ { 0x0A69, 3, 1 },
+ { 0x0A6A, 4, 1 },
+ { 0x0A6B, 5, 1 },
+ { 0x0A6C, 6, 1 },
+ { 0x0A6D, 7, 1 },
+ { 0x0A6E, 8, 1 },
+ { 0x0A6F, 9, 1 },
+ { 0x0AE6, 0, 1 },
+ { 0x0AE7, 1, 1 },
+ { 0x0AE8, 2, 1 },
+ { 0x0AE9, 3, 1 },
+ { 0x0AEA, 4, 1 },
+ { 0x0AEB, 5, 1 },
+ { 0x0AEC, 6, 1 },
+ { 0x0AED, 7, 1 },
+ { 0x0AEE, 8, 1 },
+ { 0x0AEF, 9, 1 },
+ { 0x0B66, 0, 1 },
+ { 0x0B67, 1, 1 },
+ { 0x0B68, 2, 1 },
+ { 0x0B69, 3, 1 },
+ { 0x0B6A, 4, 1 },
+ { 0x0B6B, 5, 1 },
+ { 0x0B6C, 6, 1 },
+ { 0x0B6D, 7, 1 },
+ { 0x0B6E, 8, 1 },
+ { 0x0B6F, 9, 1 },
+ { 0x0BE6, 0, 1 },
+ { 0x0BE7, 1, 1 },
+ { 0x0BE8, 2, 1 },
+ { 0x0BE9, 3, 1 },
+ { 0x0BEA, 4, 1 },
+ { 0x0BEB, 5, 1 },
+ { 0x0BEC, 6, 1 },
+ { 0x0BED, 7, 1 },
+ { 0x0BEE, 8, 1 },
+ { 0x0BEF, 9, 1 },
+ { 0x0BF0, 10, 1 },
+ { 0x0BF1, 100, 1 },
+ { 0x0BF2, 1000, 1 },
+ { 0x0C66, 0, 1 },
+ { 0x0C67, 1, 1 },
+ { 0x0C68, 2, 1 },
+ { 0x0C69, 3, 1 },
+ { 0x0C6A, 4, 1 },
+ { 0x0C6B, 5, 1 },
+ { 0x0C6C, 6, 1 },
+ { 0x0C6D, 7, 1 },
+ { 0x0C6E, 8, 1 },
+ { 0x0C6F, 9, 1 },
+ { 0x0C78, 0, 1 },
+ { 0x0C79, 1, 1 },
+ { 0x0C7A, 2, 1 },
+ { 0x0C7B, 3, 1 },
+ { 0x0C7C, 1, 1 },
+ { 0x0C7D, 2, 1 },
+ { 0x0C7E, 3, 1 },
+ { 0x0CE6, 0, 1 },
+ { 0x0CE7, 1, 1 },
+ { 0x0CE8, 2, 1 },
+ { 0x0CE9, 3, 1 },
+ { 0x0CEA, 4, 1 },
+ { 0x0CEB, 5, 1 },
+ { 0x0CEC, 6, 1 },
+ { 0x0CED, 7, 1 },
+ { 0x0CEE, 8, 1 },
+ { 0x0CEF, 9, 1 },
+ { 0x0D66, 0, 1 },
+ { 0x0D67, 1, 1 },
+ { 0x0D68, 2, 1 },
+ { 0x0D69, 3, 1 },
+ { 0x0D6A, 4, 1 },
+ { 0x0D6B, 5, 1 },
+ { 0x0D6C, 6, 1 },
+ { 0x0D6D, 7, 1 },
+ { 0x0D6E, 8, 1 },
+ { 0x0D6F, 9, 1 },
+ { 0x0D70, 10, 1 },
+ { 0x0D71, 100, 1 },
+ { 0x0D72, 1000, 1 },
+ { 0x0D73, 1, 4 },
+ { 0x0D74, 1, 2 },
+ { 0x0D75, 3, 4 },
+ { 0x0E50, 0, 1 },
+ { 0x0E51, 1, 1 },
+ { 0x0E52, 2, 1 },
+ { 0x0E53, 3, 1 },
+ { 0x0E54, 4, 1 },
+ { 0x0E55, 5, 1 },
+ { 0x0E56, 6, 1 },
+ { 0x0E57, 7, 1 },
+ { 0x0E58, 8, 1 },
+ { 0x0E59, 9, 1 },
+ { 0x0ED0, 0, 1 },
+ { 0x0ED1, 1, 1 },
+ { 0x0ED2, 2, 1 },
+ { 0x0ED3, 3, 1 },
+ { 0x0ED4, 4, 1 },
+ { 0x0ED5, 5, 1 },
+ { 0x0ED6, 6, 1 },
+ { 0x0ED7, 7, 1 },
+ { 0x0ED8, 8, 1 },
+ { 0x0ED9, 9, 1 },
+ { 0x0F20, 0, 1 },
+ { 0x0F21, 1, 1 },
+ { 0x0F22, 2, 1 },
+ { 0x0F23, 3, 1 },
+ { 0x0F24, 4, 1 },
+ { 0x0F25, 5, 1 },
+ { 0x0F26, 6, 1 },
+ { 0x0F27, 7, 1 },
+ { 0x0F28, 8, 1 },
+ { 0x0F29, 9, 1 },
+ { 0x0F2A, 1, 2 },
+ { 0x0F2B, 3, 2 },
+ { 0x0F2C, 5, 2 },
+ { 0x0F2D, 7, 2 },
+ { 0x0F2E, 9, 2 },
+ { 0x0F2F, 11, 2 },
+ { 0x0F30, 13, 2 },
+ { 0x0F31, 15, 2 },
+ { 0x0F32, 17, 2 },
+ { 0x0F33, -1, 2 },
+ { 0x1040, 0, 1 },
+ { 0x1041, 1, 1 },
+ { 0x1042, 2, 1 },
+ { 0x1043, 3, 1 },
+ { 0x1044, 4, 1 },
+ { 0x1045, 5, 1 },
+ { 0x1046, 6, 1 },
+ { 0x1047, 7, 1 },
+ { 0x1048, 8, 1 },
+ { 0x1049, 9, 1 },
+ { 0x1090, 0, 1 },
+ { 0x1091, 1, 1 },
+ { 0x1092, 2, 1 },
+ { 0x1093, 3, 1 },
+ { 0x1094, 4, 1 },
+ { 0x1095, 5, 1 },
+ { 0x1096, 6, 1 },
+ { 0x1097, 7, 1 },
+ { 0x1098, 8, 1 },
+ { 0x1099, 9, 1 },
+ { 0x1369, 1, 1 },
+ { 0x136A, 2, 1 },
+ { 0x136B, 3, 1 },
+ { 0x136C, 4, 1 },
+ { 0x136D, 5, 1 },
+ { 0x136E, 6, 1 },
+ { 0x136F, 7, 1 },
+ { 0x1370, 8, 1 },
+ { 0x1371, 9, 1 },
+ { 0x1372, 10, 1 },
+ { 0x1373, 20, 1 },
+ { 0x1374, 30, 1 },
+ { 0x1375, 40, 1 },
+ { 0x1376, 50, 1 },
+ { 0x1377, 60, 1 },
+ { 0x1378, 70, 1 },
+ { 0x1379, 80, 1 },
+ { 0x137A, 90, 1 },
+ { 0x137B, 100, 1 },
+ { 0x137C, 10000, 1 },
+ { 0x16EE, 17, 1 },
+ { 0x16EF, 18, 1 },
+ { 0x16F0, 19, 1 },
+ { 0x17E0, 0, 1 },
+ { 0x17E1, 1, 1 },
+ { 0x17E2, 2, 1 },
+ { 0x17E3, 3, 1 },
+ { 0x17E4, 4, 1 },
+ { 0x17E5, 5, 1 },
+ { 0x17E6, 6, 1 },
+ { 0x17E7, 7, 1 },
+ { 0x17E8, 8, 1 },
+ { 0x17E9, 9, 1 },
+ { 0x17F0, 0, 1 },
+ { 0x17F1, 1, 1 },
+ { 0x17F2, 2, 1 },
+ { 0x17F3, 3, 1 },
+ { 0x17F4, 4, 1 },
+ { 0x17F5, 5, 1 },
+ { 0x17F6, 6, 1 },
+ { 0x17F7, 7, 1 },
+ { 0x17F8, 8, 1 },
+ { 0x17F9, 9, 1 },
+ { 0x1810, 0, 1 },
+ { 0x1811, 1, 1 },
+ { 0x1812, 2, 1 },
+ { 0x1813, 3, 1 },
+ { 0x1814, 4, 1 },
+ { 0x1815, 5, 1 },
+ { 0x1816, 6, 1 },
+ { 0x1817, 7, 1 },
+ { 0x1818, 8, 1 },
+ { 0x1819, 9, 1 },
+ { 0x1946, 0, 1 },
+ { 0x1947, 1, 1 },
+ { 0x1948, 2, 1 },
+ { 0x1949, 3, 1 },
+ { 0x194A, 4, 1 },
+ { 0x194B, 5, 1 },
+ { 0x194C, 6, 1 },
+ { 0x194D, 7, 1 },
+ { 0x194E, 8, 1 },
+ { 0x194F, 9, 1 },
+ { 0x19D0, 0, 1 },
+ { 0x19D1, 1, 1 },
+ { 0x19D2, 2, 1 },
+ { 0x19D3, 3, 1 },
+ { 0x19D4, 4, 1 },
+ { 0x19D5, 5, 1 },
+ { 0x19D6, 6, 1 },
+ { 0x19D7, 7, 1 },
+ { 0x19D8, 8, 1 },
+ { 0x19D9, 9, 1 },
+ { 0x1B50, 0, 1 },
+ { 0x1B51, 1, 1 },
+ { 0x1B52, 2, 1 },
+ { 0x1B53, 3, 1 },
+ { 0x1B54, 4, 1 },
+ { 0x1B55, 5, 1 },
+ { 0x1B56, 6, 1 },
+ { 0x1B57, 7, 1 },
+ { 0x1B58, 8, 1 },
+ { 0x1B59, 9, 1 },
+ { 0x1BB0, 0, 1 },
+ { 0x1BB1, 1, 1 },
+ { 0x1BB2, 2, 1 },
+ { 0x1BB3, 3, 1 },
+ { 0x1BB4, 4, 1 },
+ { 0x1BB5, 5, 1 },
+ { 0x1BB6, 6, 1 },
+ { 0x1BB7, 7, 1 },
+ { 0x1BB8, 8, 1 },
+ { 0x1BB9, 9, 1 },
+ { 0x1C40, 0, 1 },
+ { 0x1C41, 1, 1 },
+ { 0x1C42, 2, 1 },
+ { 0x1C43, 3, 1 },
+ { 0x1C44, 4, 1 },
+ { 0x1C45, 5, 1 },
+ { 0x1C46, 6, 1 },
+ { 0x1C47, 7, 1 },
+ { 0x1C48, 8, 1 },
+ { 0x1C49, 9, 1 },
+ { 0x1C50, 0, 1 },
+ { 0x1C51, 1, 1 },
+ { 0x1C52, 2, 1 },
+ { 0x1C53, 3, 1 },
+ { 0x1C54, 4, 1 },
+ { 0x1C55, 5, 1 },
+ { 0x1C56, 6, 1 },
+ { 0x1C57, 7, 1 },
+ { 0x1C58, 8, 1 },
+ { 0x1C59, 9, 1 },
+ { 0x2070, 0, 1 },
+ { 0x2074, 4, 1 },
+ { 0x2075, 5, 1 },
+ { 0x2076, 6, 1 },
+ { 0x2077, 7, 1 },
+ { 0x2078, 8, 1 },
+ { 0x2079, 9, 1 },
+ { 0x2080, 0, 1 },
+ { 0x2081, 1, 1 },
+ { 0x2082, 2, 1 },
+ { 0x2083, 3, 1 },
+ { 0x2084, 4, 1 },
+ { 0x2085, 5, 1 },
+ { 0x2086, 6, 1 },
+ { 0x2087, 7, 1 },
+ { 0x2088, 8, 1 },
+ { 0x2089, 9, 1 },
+ { 0x2153, 1, 3 },
+ { 0x2154, 2, 3 },
+ { 0x2155, 1, 5 },
+ { 0x2156, 2, 5 },
+ { 0x2157, 3, 5 },
+ { 0x2158, 4, 5 },
+ { 0x2159, 1, 6 },
+ { 0x215A, 5, 6 },
+ { 0x215B, 1, 8 },
+ { 0x215C, 3, 8 },
+ { 0x215D, 5, 8 },
+ { 0x215E, 7, 8 },
+ { 0x215F, 1, 1 },
+ { 0x2160, 1, 1 },
+ { 0x2161, 2, 1 },
+ { 0x2162, 3, 1 },
+ { 0x2163, 4, 1 },
+ { 0x2164, 5, 1 },
+ { 0x2165, 6, 1 },
+ { 0x2166, 7, 1 },
+ { 0x2167, 8, 1 },
+ { 0x2168, 9, 1 },
+ { 0x2169, 10, 1 },
+ { 0x216A, 11, 1 },
+ { 0x216B, 12, 1 },
+ { 0x216C, 50, 1 },
+ { 0x216D, 100, 1 },
+ { 0x216E, 500, 1 },
+ { 0x216F, 1000, 1 },
+ { 0x2170, 1, 1 },
+ { 0x2171, 2, 1 },
+ { 0x2172, 3, 1 },
+ { 0x2173, 4, 1 },
+ { 0x2174, 5, 1 },
+ { 0x2175, 6, 1 },
+ { 0x2176, 7, 1 },
+ { 0x2177, 8, 1 },
+ { 0x2178, 9, 1 },
+ { 0x2179, 10, 1 },
+ { 0x217A, 11, 1 },
+ { 0x217B, 12, 1 },
+ { 0x217C, 50, 1 },
+ { 0x217D, 100, 1 },
+ { 0x217E, 500, 1 },
+ { 0x217F, 1000, 1 },
+ { 0x2180, 1000, 1 },
+ { 0x2181, 5000, 1 },
+ { 0x2182, 10000, 1 },
+ { 0x2185, 6, 1 },
+ { 0x2186, 50, 1 },
+ { 0x2187, 50000, 1 },
+ { 0x2188, 100000, 1 },
+ { 0x2460, 1, 1 },
+ { 0x2461, 2, 1 },
+ { 0x2462, 3, 1 },
+ { 0x2463, 4, 1 },
+ { 0x2464, 5, 1 },
+ { 0x2465, 6, 1 },
+ { 0x2466, 7, 1 },
+ { 0x2467, 8, 1 },
+ { 0x2468, 9, 1 },
+ { 0x2469, 10, 1 },
+ { 0x246A, 11, 1 },
+ { 0x246B, 12, 1 },
+ { 0x246C, 13, 1 },
+ { 0x246D, 14, 1 },
+ { 0x246E, 15, 1 },
+ { 0x246F, 16, 1 },
+ { 0x2470, 17, 1 },
+ { 0x2471, 18, 1 },
+ { 0x2472, 19, 1 },
+ { 0x2473, 20, 1 },
+ { 0x2474, 1, 1 },
+ { 0x2475, 2, 1 },
+ { 0x2476, 3, 1 },
+ { 0x2477, 4, 1 },
+ { 0x2478, 5, 1 },
+ { 0x2479, 6, 1 },
+ { 0x247A, 7, 1 },
+ { 0x247B, 8, 1 },
+ { 0x247C, 9, 1 },
+ { 0x247D, 10, 1 },
+ { 0x247E, 11, 1 },
+ { 0x247F, 12, 1 },
+ { 0x2480, 13, 1 },
+ { 0x2481, 14, 1 },
+ { 0x2482, 15, 1 },
+ { 0x2483, 16, 1 },
+ { 0x2484, 17, 1 },
+ { 0x2485, 18, 1 },
+ { 0x2486, 19, 1 },
+ { 0x2487, 20, 1 },
+ { 0x2488, 1, 1 },
+ { 0x2489, 2, 1 },
+ { 0x248A, 3, 1 },
+ { 0x248B, 4, 1 },
+ { 0x248C, 5, 1 },
+ { 0x248D, 6, 1 },
+ { 0x248E, 7, 1 },
+ { 0x248F, 8, 1 },
+ { 0x2490, 9, 1 },
+ { 0x2491, 10, 1 },
+ { 0x2492, 11, 1 },
+ { 0x2493, 12, 1 },
+ { 0x2494, 13, 1 },
+ { 0x2495, 14, 1 },
+ { 0x2496, 15, 1 },
+ { 0x2497, 16, 1 },
+ { 0x2498, 17, 1 },
+ { 0x2499, 18, 1 },
+ { 0x249A, 19, 1 },
+ { 0x249B, 20, 1 },
+ { 0x24EA, 0, 1 },
+ { 0x24EB, 11, 1 },
+ { 0x24EC, 12, 1 },
+ { 0x24ED, 13, 1 },
+ { 0x24EE, 14, 1 },
+ { 0x24EF, 15, 1 },
+ { 0x24F0, 16, 1 },
+ { 0x24F1, 17, 1 },
+ { 0x24F2, 18, 1 },
+ { 0x24F3, 19, 1 },
+ { 0x24F4, 20, 1 },
+ { 0x24F5, 1, 1 },
+ { 0x24F6, 2, 1 },
+ { 0x24F7, 3, 1 },
+ { 0x24F8, 4, 1 },
+ { 0x24F9, 5, 1 },
+ { 0x24FA, 6, 1 },
+ { 0x24FB, 7, 1 },
+ { 0x24FC, 8, 1 },
+ { 0x24FD, 9, 1 },
+ { 0x24FE, 10, 1 },
+ { 0x24FF, 0, 1 },
+ { 0x2776, 1, 1 },
+ { 0x2777, 2, 1 },
+ { 0x2778, 3, 1 },
+ { 0x2779, 4, 1 },
+ { 0x277A, 5, 1 },
+ { 0x277B, 6, 1 },
+ { 0x277C, 7, 1 },
+ { 0x277D, 8, 1 },
+ { 0x277E, 9, 1 },
+ { 0x277F, 10, 1 },
+ { 0x2780, 1, 1 },
+ { 0x2781, 2, 1 },
+ { 0x2782, 3, 1 },
+ { 0x2783, 4, 1 },
+ { 0x2784, 5, 1 },
+ { 0x2785, 6, 1 },
+ { 0x2786, 7, 1 },
+ { 0x2787, 8, 1 },
+ { 0x2788, 9, 1 },
+ { 0x2789, 10, 1 },
+ { 0x278A, 1, 1 },
+ { 0x278B, 2, 1 },
+ { 0x278C, 3, 1 },
+ { 0x278D, 4, 1 },
+ { 0x278E, 5, 1 },
+ { 0x278F, 6, 1 },
+ { 0x2790, 7, 1 },
+ { 0x2791, 8, 1 },
+ { 0x2792, 9, 1 },
+ { 0x2793, 10, 1 },
+ { 0x2CFD, 1, 2 },
+ { 0x3007, 0, 1 },
+ { 0x3021, 1, 1 },
+ { 0x3022, 2, 1 },
+ { 0x3023, 3, 1 },
+ { 0x3024, 4, 1 },
+ { 0x3025, 5, 1 },
+ { 0x3026, 6, 1 },
+ { 0x3027, 7, 1 },
+ { 0x3028, 8, 1 },
+ { 0x3029, 9, 1 },
+ { 0x3038, 10, 1 },
+ { 0x3039, 20, 1 },
+ { 0x303A, 30, 1 },
+ { 0x3192, 1, 1 },
+ { 0x3193, 2, 1 },
+ { 0x3194, 3, 1 },
+ { 0x3195, 4, 1 },
+ { 0x3220, 1, 1 },
+ { 0x3221, 2, 1 },
+ { 0x3222, 3, 1 },
+ { 0x3223, 4, 1 },
+ { 0x3224, 5, 1 },
+ { 0x3225, 6, 1 },
+ { 0x3226, 7, 1 },
+ { 0x3227, 8, 1 },
+ { 0x3228, 9, 1 },
+ { 0x3229, 10, 1 },
+ { 0x3251, 21, 1 },
+ { 0x3252, 22, 1 },
+ { 0x3253, 23, 1 },
+ { 0x3254, 24, 1 },
+ { 0x3255, 25, 1 },
+ { 0x3256, 26, 1 },
+ { 0x3257, 27, 1 },
+ { 0x3258, 28, 1 },
+ { 0x3259, 29, 1 },
+ { 0x325A, 30, 1 },
+ { 0x325B, 31, 1 },
+ { 0x325C, 32, 1 },
+ { 0x325D, 33, 1 },
+ { 0x325E, 34, 1 },
+ { 0x325F, 35, 1 },
+ { 0x3280, 1, 1 },
+ { 0x3281, 2, 1 },
+ { 0x3282, 3, 1 },
+ { 0x3283, 4, 1 },
+ { 0x3284, 5, 1 },
+ { 0x3285, 6, 1 },
+ { 0x3286, 7, 1 },
+ { 0x3287, 8, 1 },
+ { 0x3288, 9, 1 },
+ { 0x3289, 10, 1 },
+ { 0x32B1, 36, 1 },
+ { 0x32B2, 37, 1 },
+ { 0x32B3, 38, 1 },
+ { 0x32B4, 39, 1 },
+ { 0x32B5, 40, 1 },
+ { 0x32B6, 41, 1 },
+ { 0x32B7, 42, 1 },
+ { 0x32B8, 43, 1 },
+ { 0x32B9, 44, 1 },
+ { 0x32BA, 45, 1 },
+ { 0x32BB, 46, 1 },
+ { 0x32BC, 47, 1 },
+ { 0x32BD, 48, 1 },
+ { 0x32BE, 49, 1 },
+ { 0x32BF, 50, 1 },
+ { 0xA620, 0, 1 },
+ { 0xA621, 1, 1 },
+ { 0xA622, 2, 1 },
+ { 0xA623, 3, 1 },
+ { 0xA624, 4, 1 },
+ { 0xA625, 5, 1 },
+ { 0xA626, 6, 1 },
+ { 0xA627, 7, 1 },
+ { 0xA628, 8, 1 },
+ { 0xA629, 9, 1 },
+ { 0xA8D0, 0, 1 },
+ { 0xA8D1, 1, 1 },
+ { 0xA8D2, 2, 1 },
+ { 0xA8D3, 3, 1 },
+ { 0xA8D4, 4, 1 },
+ { 0xA8D5, 5, 1 },
+ { 0xA8D6, 6, 1 },
+ { 0xA8D7, 7, 1 },
+ { 0xA8D8, 8, 1 },
+ { 0xA8D9, 9, 1 },
+ { 0xA900, 0, 1 },
+ { 0xA901, 1, 1 },
+ { 0xA902, 2, 1 },
+ { 0xA903, 3, 1 },
+ { 0xA904, 4, 1 },
+ { 0xA905, 5, 1 },
+ { 0xA906, 6, 1 },
+ { 0xA907, 7, 1 },
+ { 0xA908, 8, 1 },
+ { 0xA909, 9, 1 },
+ { 0xAA50, 0, 1 },
+ { 0xAA51, 1, 1 },
+ { 0xAA52, 2, 1 },
+ { 0xAA53, 3, 1 },
+ { 0xAA54, 4, 1 },
+ { 0xAA55, 5, 1 },
+ { 0xAA56, 6, 1 },
+ { 0xAA57, 7, 1 },
+ { 0xAA58, 8, 1 },
+ { 0xAA59, 9, 1 },
+ { 0xF96B, 3, 1 },
+ { 0xF973, 10, 1 },
+ { 0xF978, 2, 1 },
+ { 0xF9B2, 0, 1 },
+ { 0xF9D1, 6, 1 },
+ { 0xF9D3, 6, 1 },
+ { 0xF9FD, 10, 1 },
+ { 0xFF10, 0, 1 },
+ { 0xFF11, 1, 1 },
+ { 0xFF12, 2, 1 },
+ { 0xFF13, 3, 1 },
+ { 0xFF14, 4, 1 },
+ { 0xFF15, 5, 1 },
+ { 0xFF16, 6, 1 },
+ { 0xFF17, 7, 1 },
+ { 0xFF18, 8, 1 },
+ { 0xFF19, 9, 1 },
+ { 0x10107, 1, 1 },
+ { 0x10108, 2, 1 },
+ { 0x10109, 3, 1 },
+ { 0x1010A, 4, 1 },
+ { 0x1010B, 5, 1 },
+ { 0x1010C, 6, 1 },
+ { 0x1010D, 7, 1 },
+ { 0x1010E, 8, 1 },
+ { 0x1010F, 9, 1 },
+ { 0x10110, 10, 1 },
+ { 0x10111, 20, 1 },
+ { 0x10112, 30, 1 },
+ { 0x10113, 40, 1 },
+ { 0x10114, 50, 1 },
+ { 0x10115, 60, 1 },
+ { 0x10116, 70, 1 },
+ { 0x10117, 80, 1 },
+ { 0x10118, 90, 1 },
+ { 0x10119, 100, 1 },
+ { 0x1011A, 200, 1 },
+ { 0x1011B, 300, 1 },
+ { 0x1011C, 400, 1 },
+ { 0x1011D, 500, 1 },
+ { 0x1011E, 600, 1 },
+ { 0x1011F, 700, 1 },
+ { 0x10120, 800, 1 },
+ { 0x10121, 900, 1 },
+ { 0x10122, 1000, 1 },
+ { 0x10123, 2000, 1 },
+ { 0x10124, 3000, 1 },
+ { 0x10125, 4000, 1 },
+ { 0x10126, 5000, 1 },
+ { 0x10127, 6000, 1 },
+ { 0x10128, 7000, 1 },
+ { 0x10129, 8000, 1 },
+ { 0x1012A, 9000, 1 },
+ { 0x1012B, 10000, 1 },
+ { 0x1012C, 20000, 1 },
+ { 0x1012D, 30000, 1 },
+ { 0x1012E, 40000, 1 },
+ { 0x1012F, 50000, 1 },
+ { 0x10130, 60000, 1 },
+ { 0x10131, 70000, 1 },
+ { 0x10132, 80000, 1 },
+ { 0x10133, 90000, 1 },
+ { 0x10140, 1, 4 },
+ { 0x10141, 1, 2 },
+ { 0x10142, 1, 1 },
+ { 0x10143, 5, 1 },
+ { 0x10144, 50, 1 },
+ { 0x10145, 500, 1 },
+ { 0x10146, 5000, 1 },
+ { 0x10147, 50000, 1 },
+ { 0x10148, 5, 1 },
+ { 0x10149, 10, 1 },
+ { 0x1014A, 50, 1 },
+ { 0x1014B, 100, 1 },
+ { 0x1014C, 500, 1 },
+ { 0x1014D, 1000, 1 },
+ { 0x1014E, 5000, 1 },
+ { 0x1014F, 5, 1 },
+ { 0x10150, 10, 1 },
+ { 0x10151, 50, 1 },
+ { 0x10152, 100, 1 },
+ { 0x10153, 500, 1 },
+ { 0x10154, 1000, 1 },
+ { 0x10155, 10000, 1 },
+ { 0x10156, 50000, 1 },
+ { 0x10157, 10, 1 },
+ { 0x10158, 1, 1 },
+ { 0x10159, 1, 1 },
+ { 0x1015A, 1, 1 },
+ { 0x1015B, 2, 1 },
+ { 0x1015C, 2, 1 },
+ { 0x1015D, 2, 1 },
+ { 0x1015E, 2, 1 },
+ { 0x1015F, 5, 1 },
+ { 0x10160, 10, 1 },
+ { 0x10161, 10, 1 },
+ { 0x10162, 10, 1 },
+ { 0x10163, 10, 1 },
+ { 0x10164, 10, 1 },
+ { 0x10165, 30, 1 },
+ { 0x10166, 50, 1 },
+ { 0x10167, 50, 1 },
+ { 0x10168, 50, 1 },
+ { 0x10169, 50, 1 },
+ { 0x1016A, 100, 1 },
+ { 0x1016B, 300, 1 },
+ { 0x1016C, 500, 1 },
+ { 0x1016D, 500, 1 },
+ { 0x1016E, 500, 1 },
+ { 0x1016F, 500, 1 },
+ { 0x10170, 500, 1 },
+ { 0x10171, 1000, 1 },
+ { 0x10172, 5000, 1 },
+ { 0x10173, 5, 1 },
+ { 0x10174, 50, 1 },
+ { 0x10175, 1, 2 },
+ { 0x10176, 1, 2 },
+ { 0x10177, 2, 3 },
+ { 0x10178, 3, 4 },
+ { 0x1018A, 0, 1 },
+ { 0x10320, 1, 1 },
+ { 0x10321, 5, 1 },
+ { 0x10322, 10, 1 },
+ { 0x10323, 50, 1 },
+ { 0x10341, 90, 1 },
+ { 0x1034A, 900, 1 },
+ { 0x103D1, 1, 1 },
+ { 0x103D2, 2, 1 },
+ { 0x103D3, 10, 1 },
+ { 0x103D4, 20, 1 },
+ { 0x103D5, 100, 1 },
+ { 0x104A0, 0, 1 },
+ { 0x104A1, 1, 1 },
+ { 0x104A2, 2, 1 },
+ { 0x104A3, 3, 1 },
+ { 0x104A4, 4, 1 },
+ { 0x104A5, 5, 1 },
+ { 0x104A6, 6, 1 },
+ { 0x104A7, 7, 1 },
+ { 0x104A8, 8, 1 },
+ { 0x104A9, 9, 1 },
+ { 0x10916, 1, 1 },
+ { 0x10917, 10, 1 },
+ { 0x10918, 20, 1 },
+ { 0x10919, 100, 1 },
+ { 0x10A40, 1, 1 },
+ { 0x10A41, 2, 1 },
+ { 0x10A42, 3, 1 },
+ { 0x10A43, 4, 1 },
+ { 0x10A44, 10, 1 },
+ { 0x10A45, 20, 1 },
+ { 0x10A46, 100, 1 },
+ { 0x10A47, 1000, 1 },
+ { 0x12400, 2, 1 },
+ { 0x12401, 3, 1 },
+ { 0x12402, 4, 1 },
+ { 0x12403, 5, 1 },
+ { 0x12404, 6, 1 },
+ { 0x12405, 7, 1 },
+ { 0x12406, 8, 1 },
+ { 0x12407, 9, 1 },
+ { 0x12408, 3, 1 },
+ { 0x12409, 4, 1 },
+ { 0x1240A, 5, 1 },
+ { 0x1240B, 6, 1 },
+ { 0x1240C, 7, 1 },
+ { 0x1240D, 8, 1 },
+ { 0x1240E, 9, 1 },
+ { 0x1240F, 4, 1 },
+ { 0x12410, 5, 1 },
+ { 0x12411, 6, 1 },
+ { 0x12412, 7, 1 },
+ { 0x12413, 8, 1 },
+ { 0x12414, 9, 1 },
+ { 0x12415, 1, 1 },
+ { 0x12416, 2, 1 },
+ { 0x12417, 3, 1 },
+ { 0x12418, 4, 1 },
+ { 0x12419, 5, 1 },
+ { 0x1241A, 6, 1 },
+ { 0x1241B, 7, 1 },
+ { 0x1241C, 8, 1 },
+ { 0x1241D, 9, 1 },
+ { 0x1241E, 1, 1 },
+ { 0x1241F, 2, 1 },
+ { 0x12420, 3, 1 },
+ { 0x12421, 4, 1 },
+ { 0x12422, 5, 1 },
+ { 0x12423, 2, 1 },
+ { 0x12424, 3, 1 },
+ { 0x12425, 3, 1 },
+ { 0x12426, 4, 1 },
+ { 0x12427, 5, 1 },
+ { 0x12428, 6, 1 },
+ { 0x12429, 7, 1 },
+ { 0x1242A, 8, 1 },
+ { 0x1242B, 9, 1 },
+ { 0x1242C, 1, 1 },
+ { 0x1242D, 2, 1 },
+ { 0x1242E, 3, 1 },
+ { 0x1242F, 3, 1 },
+ { 0x12430, 4, 1 },
+ { 0x12431, 5, 1 },
+ { 0x12434, 1, 1 },
+ { 0x12435, 2, 1 },
+ { 0x12436, 3, 1 },
+ { 0x12437, 3, 1 },
+ { 0x12438, 4, 1 },
+ { 0x12439, 5, 1 },
+ { 0x1243A, 3, 1 },
+ { 0x1243B, 3, 1 },
+ { 0x1243C, 4, 1 },
+ { 0x1243D, 4, 1 },
+ { 0x1243E, 4, 1 },
+ { 0x1243F, 4, 1 },
+ { 0x12440, 6, 1 },
+ { 0x12441, 7, 1 },
+ { 0x12442, 7, 1 },
+ { 0x12443, 7, 1 },
+ { 0x12444, 8, 1 },
+ { 0x12445, 8, 1 },
+ { 0x12446, 9, 1 },
+ { 0x12447, 9, 1 },
+ { 0x12448, 9, 1 },
+ { 0x12449, 9, 1 },
+ { 0x1244A, 2, 1 },
+ { 0x1244B, 3, 1 },
+ { 0x1244C, 4, 1 },
+ { 0x1244D, 5, 1 },
+ { 0x1244E, 6, 1 },
+ { 0x1244F, 1, 1 },
+ { 0x12450, 2, 1 },
+ { 0x12451, 3, 1 },
+ { 0x12452, 4, 1 },
+ { 0x12453, 4, 1 },
+ { 0x12454, 5, 1 },
+ { 0x12455, 5, 1 },
+ { 0x12458, 1, 1 },
+ { 0x12459, 2, 1 },
+ { 0x1245A, 1, 3 },
+ { 0x1245B, 2, 3 },
+ { 0x1245C, 5, 6 },
+ { 0x1245D, 1, 3 },
+ { 0x1245E, 2, 3 },
+ { 0x1245F, 1, 8 },
+ { 0x12460, 1, 4 },
+ { 0x12461, 1, 6 },
+ { 0x12462, 1, 4 },
+ { 0x1D360, 1, 1 },
+ { 0x1D361, 2, 1 },
+ { 0x1D362, 3, 1 },
+ { 0x1D363, 4, 1 },
+ { 0x1D364, 5, 1 },
+ { 0x1D365, 6, 1 },
+ { 0x1D366, 7, 1 },
+ { 0x1D367, 8, 1 },
+ { 0x1D368, 9, 1 },
+ { 0x1D369, 10, 1 },
+ { 0x1D36A, 20, 1 },
+ { 0x1D36B, 30, 1 },
+ { 0x1D36C, 40, 1 },
+ { 0x1D36D, 50, 1 },
+ { 0x1D36E, 60, 1 },
+ { 0x1D36F, 70, 1 },
+ { 0x1D370, 80, 1 },
+ { 0x1D371, 90, 1 },
+ { 0x1D7CE, 0, 1 },
+ { 0x1D7CF, 1, 1 },
+ { 0x1D7D0, 2, 1 },
+ { 0x1D7D1, 3, 1 },
+ { 0x1D7D2, 4, 1 },
+ { 0x1D7D3, 5, 1 },
+ { 0x1D7D4, 6, 1 },
+ { 0x1D7D5, 7, 1 },
+ { 0x1D7D6, 8, 1 },
+ { 0x1D7D7, 9, 1 },
+ { 0x1D7D8, 0, 1 },
+ { 0x1D7D9, 1, 1 },
+ { 0x1D7DA, 2, 1 },
+ { 0x1D7DB, 3, 1 },
+ { 0x1D7DC, 4, 1 },
+ { 0x1D7DD, 5, 1 },
+ { 0x1D7DE, 6, 1 },
+ { 0x1D7DF, 7, 1 },
+ { 0x1D7E0, 8, 1 },
+ { 0x1D7E1, 9, 1 },
+ { 0x1D7E2, 0, 1 },
+ { 0x1D7E3, 1, 1 },
+ { 0x1D7E4, 2, 1 },
+ { 0x1D7E5, 3, 1 },
+ { 0x1D7E6, 4, 1 },
+ { 0x1D7E7, 5, 1 },
+ { 0x1D7E8, 6, 1 },
+ { 0x1D7E9, 7, 1 },
+ { 0x1D7EA, 8, 1 },
+ { 0x1D7EB, 9, 1 },
+ { 0x1D7EC, 0, 1 },
+ { 0x1D7ED, 1, 1 },
+ { 0x1D7EE, 2, 1 },
+ { 0x1D7EF, 3, 1 },
+ { 0x1D7F0, 4, 1 },
+ { 0x1D7F1, 5, 1 },
+ { 0x1D7F2, 6, 1 },
+ { 0x1D7F3, 7, 1 },
+ { 0x1D7F4, 8, 1 },
+ { 0x1D7F5, 9, 1 },
+ { 0x1D7F6, 0, 1 },
+ { 0x1D7F7, 1, 1 },
+ { 0x1D7F8, 2, 1 },
+ { 0x1D7F9, 3, 1 },
+ { 0x1D7FA, 4, 1 },
+ { 0x1D7FB, 5, 1 },
+ { 0x1D7FC, 6, 1 },
+ { 0x1D7FD, 7, 1 },
+ { 0x1D7FE, 8, 1 },
+ { 0x1D7FF, 9, 1 },
+ { 0x2F890, 9, 1 }
diff --git a/tests/unictype/test-pr_alphabetic.c b/tests/unictype/test-pr_alphabetic.c
new file mode 100644
index 0000000..b13da5d
--- /dev/null
+++ b/tests/unictype/test-pr_alphabetic.c
@@ -0,0 +1,465 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0345, 0x0345 },
+ { 0x0370, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x05B0, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0610, 0x061A },
+ { 0x0621, 0x0657 },
+ { 0x0659, 0x065E },
+ { 0x066E, 0x06D3 },
+ { 0x06D5, 0x06DC },
+ { 0x06E1, 0x06E8 },
+ { 0x06ED, 0x06EF },
+ { 0x06FA, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x073F },
+ { 0x074D, 0x07B1 },
+ { 0x07CA, 0x07EA },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0901, 0x0939 },
+ { 0x093D, 0x094C },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0963 },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0981, 0x0983 },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CC },
+ { 0x09CE, 0x09CE },
+ { 0x09D7, 0x09D7 },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E3 },
+ { 0x09F0, 0x09F1 },
+ { 0x0A01, 0x0A03 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4C },
+ { 0x0A51, 0x0A51 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A70, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACC },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE3 },
+ { 0x0B01, 0x0B03 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4C },
+ { 0x0B56, 0x0B57 },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B63 },
+ { 0x0B71, 0x0B71 },
+ { 0x0B82, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCC },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0C01, 0x0C03 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4C },
+ { 0x0C55, 0x0C56 },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C63 },
+ { 0x0C82, 0x0C83 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCC },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE3 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4C },
+ { 0x0D57, 0x0D57 },
+ { 0x0D60, 0x0D63 },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D82, 0x0D83 },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF3 },
+ { 0x0E01, 0x0E3A },
+ { 0x0E40, 0x0E46 },
+ { 0x0E4D, 0x0E4D },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB9 },
+ { 0x0EBB, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0ECD, 0x0ECD },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F40, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F71, 0x0F81 },
+ { 0x0F88, 0x0F8B },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x1000, 0x1036 },
+ { 0x1038, 0x1038 },
+ { 0x103B, 0x103F },
+ { 0x1050, 0x1062 },
+ { 0x1065, 0x1068 },
+ { 0x106E, 0x1086 },
+ { 0x108E, 0x108E },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x135F, 0x135F },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x16EE, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1713 },
+ { 0x1720, 0x1733 },
+ { 0x1740, 0x1753 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1772, 0x1773 },
+ { 0x1780, 0x17B3 },
+ { 0x17B6, 0x17C8 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DC },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x1938 },
+ { 0x1950, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19B0, 0x19C9 },
+ { 0x1A00, 0x1A1B },
+ { 0x1B00, 0x1B33 },
+ { 0x1B35, 0x1B43 },
+ { 0x1B45, 0x1B4B },
+ { 0x1B80, 0x1BA9 },
+ { 0x1BAE, 0x1BAF },
+ { 0x1C00, 0x1C35 },
+ { 0x1C4D, 0x1C4F },
+ { 0x1C5A, 0x1C7D },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x212D },
+ { 0x212F, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x2188 },
+ { 0x24B6, 0x24E9 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2DE0, 0x2DFF },
+ { 0x2E2F, 0x2E2F },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x309D, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA61F },
+ { 0xA62A, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66E },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA827 },
+ { 0xA840, 0xA873 },
+ { 0xA880, 0xA8C3 },
+ { 0xA90A, 0xA92A },
+ { 0xA930, 0xA952 },
+ { 0xAA00, 0xAA36 },
+ { 0xAA40, 0xAA4D },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFB },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10140, 0x10174 },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x103D1, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_property_alphabetic (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_ascii_hex_digit.c b/tests/unictype/test-pr_ascii_hex_digit.c
new file mode 100644
index 0000000..df600d7
--- /dev/null
+++ b/tests/unictype/test-pr_ascii_hex_digit.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0041, 0x0046 },
+ { 0x0061, 0x0066 }
+
+#define PREDICATE(c) uc_is_property_ascii_hex_digit (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_arabic_digit.c b/tests/unictype/test-pr_bidi_arabic_digit.c
new file mode 100644
index 0000000..f4e4edb
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_arabic_digit.c
@@ -0,0 +1,26 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0600, 0x0603 },
+ { 0x0660, 0x0669 },
+ { 0x066B, 0x066C },
+ { 0x06DD, 0x06DD }
+
+#define PREDICATE(c) uc_is_property_bidi_arabic_digit (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_arabic_right_to_left.c b/tests/unictype/test-pr_bidi_arabic_right_to_left.c
new file mode 100644
index 0000000..f329ccf
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_arabic_right_to_left.c
@@ -0,0 +1,47 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0604, 0x0605 },
+ { 0x0608, 0x0608 },
+ { 0x060B, 0x060B },
+ { 0x060D, 0x060D },
+ { 0x061B, 0x064A },
+ { 0x065F, 0x065F },
+ { 0x066D, 0x066F },
+ { 0x0671, 0x06D5 },
+ { 0x06E5, 0x06E6 },
+ { 0x06EE, 0x06EF },
+ { 0x06FA, 0x070E },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074B, 0x07A5 },
+ { 0x07B1, 0x07BF },
+ { 0x2065, 0x2069 },
+ { 0xFB50, 0xFD3D },
+ { 0xFD40, 0xFDCF },
+ { 0xFDF0, 0xFDFC },
+ { 0xFDFE, 0xFDFF },
+ { 0xFE1A, 0xFE1F },
+ { 0xFE27, 0xFE2F },
+ { 0xFE53, 0xFE53 },
+ { 0xFE67, 0xFE67 },
+ { 0xFE6C, 0xFEFE }
+
+#define PREDICATE(c) uc_is_property_bidi_arabic_right_to_left (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_block_separator.c b/tests/unictype/test-pr_bidi_block_separator.c
new file mode 100644
index 0000000..4b4353d
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_block_separator.c
@@ -0,0 +1,27 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x000A, 0x000A },
+ { 0x000D, 0x000D },
+ { 0x001C, 0x001E },
+ { 0x0085, 0x0085 },
+ { 0x2029, 0x2029 }
+
+#define PREDICATE(c) uc_is_property_bidi_block_separator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_boundary_neutral.c b/tests/unictype/test-pr_bidi_boundary_neutral.c
new file mode 100644
index 0000000..19a67d1
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_boundary_neutral.c
@@ -0,0 +1,53 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0000, 0x0008 },
+ { 0x000E, 0x001B },
+ { 0x007F, 0x0084 },
+ { 0x0086, 0x009F },
+ { 0x00AD, 0x00AD },
+ { 0x070F, 0x070F },
+ { 0x200B, 0x200D },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x206F },
+ { 0xFDD0, 0xFDEF },
+ { 0xFEFF, 0xFEFF },
+ { 0xFFF0, 0xFFF8 },
+ { 0xFFFE, 0xFFFF },
+ { 0x1D173, 0x1D17A },
+ { 0x1FFFE, 0x1FFFF },
+ { 0x2FFFE, 0x2FFFF },
+ { 0x3FFFE, 0x3FFFF },
+ { 0x4FFFE, 0x4FFFF },
+ { 0x5FFFE, 0x5FFFF },
+ { 0x6FFFE, 0x6FFFF },
+ { 0x7FFFE, 0x7FFFF },
+ { 0x8FFFE, 0x8FFFF },
+ { 0x9FFFE, 0x9FFFF },
+ { 0xAFFFE, 0xAFFFF },
+ { 0xBFFFE, 0xBFFFF },
+ { 0xCFFFE, 0xCFFFF },
+ { 0xDFFFE, 0xE00FF },
+ { 0xE01F0, 0xE0FFF },
+ { 0xEFFFE, 0xEFFFF },
+ { 0xFFFFE, 0xFFFFF },
+ { 0x10FFFE, 0x10FFFF }
+
+#define PREDICATE(c) uc_is_property_bidi_boundary_neutral (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_common_separator.c b/tests/unictype/test-pr_bidi_common_separator.c
new file mode 100644
index 0000000..eeca182
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_common_separator.c
@@ -0,0 +1,35 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x002C, 0x002C },
+ { 0x002E, 0x002F },
+ { 0x003A, 0x003A },
+ { 0x00A0, 0x00A0 },
+ { 0x060C, 0x060C },
+ { 0x202F, 0x202F },
+ { 0x2044, 0x2044 },
+ { 0xFE50, 0xFE50 },
+ { 0xFE52, 0xFE52 },
+ { 0xFE55, 0xFE55 },
+ { 0xFF0C, 0xFF0C },
+ { 0xFF0E, 0xFF0F },
+ { 0xFF1A, 0xFF1A }
+
+#define PREDICATE(c) uc_is_property_bidi_common_separator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_control.c b/tests/unictype/test-pr_bidi_control.c
new file mode 100644
index 0000000..151f116
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_control.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x200E, 0x200F },
+ { 0x202A, 0x202E }
+
+#define PREDICATE(c) uc_is_property_bidi_control (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_embedding_or_override.c b/tests/unictype/test-pr_bidi_embedding_or_override.c
new file mode 100644
index 0000000..4a97717
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_embedding_or_override.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x202A, 0x202B },
+ { 0x202D, 0x202E }
+
+#define PREDICATE(c) uc_is_property_bidi_embedding_or_override (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_eur_num_separator.c b/tests/unictype/test-pr_bidi_eur_num_separator.c
new file mode 100644
index 0000000..9b984f6
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_eur_num_separator.c
@@ -0,0 +1,31 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x002B, 0x002B },
+ { 0x002D, 0x002D },
+ { 0x207A, 0x207B },
+ { 0x208A, 0x208B },
+ { 0x2212, 0x2212 },
+ { 0xFB29, 0xFB29 },
+ { 0xFE62, 0xFE63 },
+ { 0xFF0B, 0xFF0B },
+ { 0xFF0D, 0xFF0D }
+
+#define PREDICATE(c) uc_is_property_bidi_eur_num_separator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_eur_num_terminator.c b/tests/unictype/test-pr_bidi_eur_num_terminator.c
new file mode 100644
index 0000000..22f2838
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_eur_num_terminator.c
@@ -0,0 +1,41 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0023, 0x0025 },
+ { 0x00A2, 0x00A5 },
+ { 0x00B0, 0x00B1 },
+ { 0x0609, 0x060A },
+ { 0x066A, 0x066A },
+ { 0x09F2, 0x09F3 },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0BF9, 0x0BF9 },
+ { 0x0E3F, 0x0E3F },
+ { 0x17DB, 0x17DB },
+ { 0x2030, 0x2034 },
+ { 0x20A0, 0x20B5 },
+ { 0x212E, 0x212E },
+ { 0x2213, 0x2213 },
+ { 0xFE5F, 0xFE5F },
+ { 0xFE69, 0xFE6A },
+ { 0xFF03, 0xFF05 },
+ { 0xFFE0, 0xFFE1 },
+ { 0xFFE5, 0xFFE6 }
+
+#define PREDICATE(c) uc_is_property_bidi_eur_num_terminator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_european_digit.c b/tests/unictype/test-pr_bidi_european_digit.c
new file mode 100644
index 0000000..63a3a87
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_european_digit.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x00B2, 0x00B3 },
+ { 0x00B9, 0x00B9 },
+ { 0x06F0, 0x06F9 },
+ { 0x2070, 0x2070 },
+ { 0x2074, 0x2079 },
+ { 0x2080, 0x2089 },
+ { 0x2488, 0x249B },
+ { 0xFF10, 0xFF19 },
+ { 0x1D7CE, 0x1D7FF }
+
+#define PREDICATE(c) uc_is_property_bidi_european_digit (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_hebrew_right_to_left.c b/tests/unictype/test-pr_bidi_hebrew_right_to_left.c
new file mode 100644
index 0000000..5a0a4e4
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_hebrew_right_to_left.c
@@ -0,0 +1,42 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0590, 0x0590 },
+ { 0x05BE, 0x05BE },
+ { 0x05C0, 0x05C0 },
+ { 0x05C3, 0x05C3 },
+ { 0x05C6, 0x05C6 },
+ { 0x05C8, 0x05FF },
+ { 0x07C0, 0x07EA },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x08FF },
+ { 0x200F, 0x200F },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB28 },
+ { 0xFB2A, 0xFB4F },
+ { 0x10800, 0x1091E },
+ { 0x10920, 0x10A00 },
+ { 0x10A04, 0x10A04 },
+ { 0x10A07, 0x10A0B },
+ { 0x10A10, 0x10A37 },
+ { 0x10A3B, 0x10A3E },
+ { 0x10A40, 0x10FFF }
+
+#define PREDICATE(c) uc_is_property_bidi_hebrew_right_to_left (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_left_to_right.c b/tests/unictype/test-pr_bidi_left_to_right.c
new file mode 100644
index 0000000..09617ed
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_left_to_right.c
@@ -0,0 +1,295 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02B8 },
+ { 0x02BB, 0x02C1 },
+ { 0x02D0, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EE, 0x02EE },
+ { 0x0370, 0x0373 },
+ { 0x0376, 0x037D },
+ { 0x037F, 0x0383 },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x03F5 },
+ { 0x03F7, 0x0482 },
+ { 0x048A, 0x0589 },
+ { 0x058B, 0x058F },
+ { 0x0900, 0x0900 },
+ { 0x0903, 0x093B },
+ { 0x093D, 0x0940 },
+ { 0x0949, 0x094C },
+ { 0x094E, 0x0950 },
+ { 0x0955, 0x0961 },
+ { 0x0964, 0x0980 },
+ { 0x0982, 0x09BB },
+ { 0x09BD, 0x09C0 },
+ { 0x09C5, 0x09CC },
+ { 0x09CE, 0x09E1 },
+ { 0x09E4, 0x09F1 },
+ { 0x09F4, 0x0A00 },
+ { 0x0A03, 0x0A3B },
+ { 0x0A3D, 0x0A40 },
+ { 0x0A43, 0x0A46 },
+ { 0x0A49, 0x0A4A },
+ { 0x0A4E, 0x0A50 },
+ { 0x0A52, 0x0A6F },
+ { 0x0A72, 0x0A74 },
+ { 0x0A76, 0x0A80 },
+ { 0x0A83, 0x0ABB },
+ { 0x0ABD, 0x0AC0 },
+ { 0x0AC6, 0x0AC6 },
+ { 0x0AC9, 0x0ACC },
+ { 0x0ACE, 0x0AE1 },
+ { 0x0AE4, 0x0AF0 },
+ { 0x0AF2, 0x0B00 },
+ { 0x0B02, 0x0B3B },
+ { 0x0B3D, 0x0B3E },
+ { 0x0B40, 0x0B40 },
+ { 0x0B45, 0x0B4C },
+ { 0x0B4E, 0x0B55 },
+ { 0x0B57, 0x0B61 },
+ { 0x0B64, 0x0B81 },
+ { 0x0B83, 0x0BBF },
+ { 0x0BC1, 0x0BCC },
+ { 0x0BCE, 0x0BF2 },
+ { 0x0BFB, 0x0C3D },
+ { 0x0C41, 0x0C45 },
+ { 0x0C49, 0x0C49 },
+ { 0x0C4E, 0x0C54 },
+ { 0x0C57, 0x0C61 },
+ { 0x0C64, 0x0C77 },
+ { 0x0C7F, 0x0CBB },
+ { 0x0CBD, 0x0CCB },
+ { 0x0CCE, 0x0CE1 },
+ { 0x0CE4, 0x0CF0 },
+ { 0x0CF3, 0x0D40 },
+ { 0x0D45, 0x0D4C },
+ { 0x0D4E, 0x0D61 },
+ { 0x0D64, 0x0DC9 },
+ { 0x0DCB, 0x0DD1 },
+ { 0x0DD5, 0x0DD5 },
+ { 0x0DD7, 0x0E30 },
+ { 0x0E32, 0x0E33 },
+ { 0x0E3B, 0x0E3E },
+ { 0x0E40, 0x0E46 },
+ { 0x0E4F, 0x0EB0 },
+ { 0x0EB2, 0x0EB3 },
+ { 0x0EBA, 0x0EBA },
+ { 0x0EBD, 0x0EC7 },
+ { 0x0ECE, 0x0F17 },
+ { 0x0F1A, 0x0F34 },
+ { 0x0F36, 0x0F36 },
+ { 0x0F38, 0x0F38 },
+ { 0x0F3E, 0x0F70 },
+ { 0x0F7F, 0x0F7F },
+ { 0x0F85, 0x0F85 },
+ { 0x0F88, 0x0F8F },
+ { 0x0F98, 0x0F98 },
+ { 0x0FBD, 0x0FC5 },
+ { 0x0FC7, 0x102C },
+ { 0x1031, 0x1031 },
+ { 0x1038, 0x1038 },
+ { 0x103B, 0x103C },
+ { 0x103F, 0x1057 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x1083, 0x1084 },
+ { 0x1087, 0x108C },
+ { 0x108E, 0x135E },
+ { 0x1360, 0x138F },
+ { 0x139A, 0x167F },
+ { 0x1681, 0x169A },
+ { 0x169D, 0x1711 },
+ { 0x1715, 0x1731 },
+ { 0x1735, 0x1751 },
+ { 0x1754, 0x1771 },
+ { 0x1774, 0x17B6 },
+ { 0x17BE, 0x17C5 },
+ { 0x17C7, 0x17C8 },
+ { 0x17D4, 0x17DA },
+ { 0x17DC, 0x17DC },
+ { 0x17DE, 0x17EF },
+ { 0x17FA, 0x17FF },
+ { 0x180F, 0x18A8 },
+ { 0x18AA, 0x191F },
+ { 0x1923, 0x1926 },
+ { 0x1929, 0x1931 },
+ { 0x1933, 0x1938 },
+ { 0x193C, 0x193F },
+ { 0x1941, 0x1943 },
+ { 0x1946, 0x19DD },
+ { 0x1A00, 0x1A16 },
+ { 0x1A19, 0x1AFF },
+ { 0x1B04, 0x1B33 },
+ { 0x1B35, 0x1B35 },
+ { 0x1B3B, 0x1B3B },
+ { 0x1B3D, 0x1B41 },
+ { 0x1B43, 0x1B6A },
+ { 0x1B74, 0x1B7F },
+ { 0x1B82, 0x1BA1 },
+ { 0x1BA6, 0x1BA7 },
+ { 0x1BAA, 0x1C2B },
+ { 0x1C34, 0x1C35 },
+ { 0x1C38, 0x1DBF },
+ { 0x1DE7, 0x1DFD },
+ { 0x1E00, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FCC },
+ { 0x1FD0, 0x1FDC },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF0, 0x1FFC },
+ { 0x1FFF, 0x1FFF },
+ { 0x200E, 0x200E },
+ { 0x2071, 0x2073 },
+ { 0x207F, 0x207F },
+ { 0x208F, 0x209F },
+ { 0x20B6, 0x20CF },
+ { 0x20F1, 0x20FF },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x212D },
+ { 0x212F, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x2152 },
+ { 0x2160, 0x218F },
+ { 0x2336, 0x237A },
+ { 0x2395, 0x2395 },
+ { 0x23E8, 0x23FF },
+ { 0x2427, 0x243F },
+ { 0x244B, 0x245F },
+ { 0x249C, 0x24E9 },
+ { 0x269E, 0x269F },
+ { 0x26AC, 0x26AC },
+ { 0x26BD, 0x26BF },
+ { 0x26C4, 0x2700 },
+ { 0x2705, 0x2705 },
+ { 0x270A, 0x270B },
+ { 0x2728, 0x2728 },
+ { 0x274C, 0x274C },
+ { 0x274E, 0x274E },
+ { 0x2753, 0x2755 },
+ { 0x2757, 0x2757 },
+ { 0x275F, 0x2760 },
+ { 0x2795, 0x2797 },
+ { 0x27B0, 0x27B0 },
+ { 0x27BF, 0x27BF },
+ { 0x27CB, 0x27CB },
+ { 0x27CD, 0x27CF },
+ { 0x2800, 0x28FF },
+ { 0x2B4D, 0x2B4F },
+ { 0x2B55, 0x2CE4 },
+ { 0x2CEB, 0x2CF8 },
+ { 0x2D00, 0x2DDF },
+ { 0x2E31, 0x2E7F },
+ { 0x2E9A, 0x2E9A },
+ { 0x2EF4, 0x2EFF },
+ { 0x2FD6, 0x2FEF },
+ { 0x2FFC, 0x2FFF },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3040, 0x3098 },
+ { 0x309D, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x31BF },
+ { 0x31E4, 0x321C },
+ { 0x321F, 0x324F },
+ { 0x3260, 0x327B },
+ { 0x327F, 0x32B0 },
+ { 0x32C0, 0x32CB },
+ { 0x32D0, 0x3376 },
+ { 0x337B, 0x33DD },
+ { 0x33E0, 0x33FE },
+ { 0x3400, 0x4DBF },
+ { 0x4E00, 0xA48F },
+ { 0xA4C7, 0xA60C },
+ { 0xA610, 0xA66E },
+ { 0xA674, 0xA67B },
+ { 0xA680, 0xA6FF },
+ { 0xA722, 0xA787 },
+ { 0xA789, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA824 },
+ { 0xA827, 0xA827 },
+ { 0xA82C, 0xA873 },
+ { 0xA878, 0xA8C3 },
+ { 0xA8C5, 0xA925 },
+ { 0xA92E, 0xA946 },
+ { 0xA952, 0xAA28 },
+ { 0xAA2F, 0xAA30 },
+ { 0xAA33, 0xAA34 },
+ { 0xAA37, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAA4D, 0xFB1C },
+ { 0xFF00, 0xFF00 },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFDF },
+ { 0xFFE7, 0xFFE7 },
+ { 0xFFEF, 0xFFEF },
+ { 0x10000, 0x10100 },
+ { 0x10102, 0x1013F },
+ { 0x1018B, 0x1018F },
+ { 0x1019C, 0x101FC },
+ { 0x101FE, 0x107FF },
+ { 0x11000, 0x1D166 },
+ { 0x1D16A, 0x1D172 },
+ { 0x1D183, 0x1D184 },
+ { 0x1D18C, 0x1D1A9 },
+ { 0x1D1AE, 0x1D1FF },
+ { 0x1D246, 0x1D2FF },
+ { 0x1D357, 0x1D7CD },
+ { 0x1D800, 0x1EFFF },
+ { 0x1F02C, 0x1F02F },
+ { 0x1F094, 0x1FFFD },
+ { 0x20000, 0x2FFFD },
+ { 0x30000, 0x3FFFD },
+ { 0x40000, 0x4FFFD },
+ { 0x50000, 0x5FFFD },
+ { 0x60000, 0x6FFFD },
+ { 0x70000, 0x7FFFD },
+ { 0x80000, 0x8FFFD },
+ { 0x90000, 0x9FFFD },
+ { 0xA0000, 0xAFFFD },
+ { 0xB0000, 0xBFFFD },
+ { 0xC0000, 0xCFFFD },
+ { 0xD0000, 0xDFFFD },
+ { 0xE1000, 0xEFFFD },
+ { 0xF0000, 0xFFFFD },
+ { 0x100000, 0x10FFFD }
+
+#define PREDICATE(c) uc_is_property_bidi_left_to_right (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_non_spacing_mark.c b/tests/unictype/test-pr_bidi_non_spacing_mark.c
new file mode 100644
index 0000000..927ab84
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_non_spacing_mark.c
@@ -0,0 +1,178 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0300, 0x036F },
+ { 0x0483, 0x0489 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x0610, 0x061A },
+ { 0x064B, 0x065E },
+ { 0x0670, 0x0670 },
+ { 0x06D6, 0x06DC },
+ { 0x06DE, 0x06E4 },
+ { 0x06E7, 0x06E8 },
+ { 0x06EA, 0x06ED },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F3 },
+ { 0x0901, 0x0902 },
+ { 0x093C, 0x093C },
+ { 0x0941, 0x0948 },
+ { 0x094D, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0962, 0x0963 },
+ { 0x0981, 0x0981 },
+ { 0x09BC, 0x09BC },
+ { 0x09C1, 0x09C4 },
+ { 0x09CD, 0x09CD },
+ { 0x09E2, 0x09E3 },
+ { 0x0A01, 0x0A02 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A41, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A82 },
+ { 0x0ABC, 0x0ABC },
+ { 0x0AC1, 0x0AC5 },
+ { 0x0AC7, 0x0AC8 },
+ { 0x0ACD, 0x0ACD },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0B01, 0x0B01 },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B3F, 0x0B3F },
+ { 0x0B41, 0x0B44 },
+ { 0x0B4D, 0x0B4D },
+ { 0x0B56, 0x0B56 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BC0, 0x0BC0 },
+ { 0x0BCD, 0x0BCD },
+ { 0x0C3E, 0x0C40 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CCC, 0x0CCD },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0D41, 0x0D44 },
+ { 0x0D4D, 0x0D4D },
+ { 0x0D62, 0x0D63 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DD2, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A },
+ { 0x0E47, 0x0E4E },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0EC8, 0x0ECD },
+ { 0x0F18, 0x0F19 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F71, 0x0F7E },
+ { 0x0F80, 0x0F84 },
+ { 0x0F86, 0x0F87 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x102D, 0x1030 },
+ { 0x1032, 0x1037 },
+ { 0x1039, 0x103A },
+ { 0x103D, 0x103E },
+ { 0x1058, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x1082 },
+ { 0x1085, 0x1086 },
+ { 0x108D, 0x108D },
+ { 0x135F, 0x135F },
+ { 0x1712, 0x1714 },
+ { 0x1732, 0x1734 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B7, 0x17BD },
+ { 0x17C6, 0x17C6 },
+ { 0x17C9, 0x17D3 },
+ { 0x17DD, 0x17DD },
+ { 0x180B, 0x180D },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x1922 },
+ { 0x1927, 0x1928 },
+ { 0x1932, 0x1932 },
+ { 0x1939, 0x193B },
+ { 0x1A17, 0x1A18 },
+ { 0x1B00, 0x1B03 },
+ { 0x1B34, 0x1B34 },
+ { 0x1B36, 0x1B3A },
+ { 0x1B3C, 0x1B3C },
+ { 0x1B42, 0x1B42 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1B81 },
+ { 0x1BA2, 0x1BA5 },
+ { 0x1BA8, 0x1BA9 },
+ { 0x1C2C, 0x1C33 },
+ { 0x1C36, 0x1C37 },
+ { 0x1DC0, 0x1DE6 },
+ { 0x1DFE, 0x1DFF },
+ { 0x20D0, 0x20F0 },
+ { 0x2DE0, 0x2DFF },
+ { 0x302A, 0x302F },
+ { 0x3099, 0x309A },
+ { 0xA66F, 0xA672 },
+ { 0xA67C, 0xA67D },
+ { 0xA802, 0xA802 },
+ { 0xA806, 0xA806 },
+ { 0xA80B, 0xA80B },
+ { 0xA825, 0xA826 },
+ { 0xA8C4, 0xA8C4 },
+ { 0xA926, 0xA92D },
+ { 0xA947, 0xA951 },
+ { 0xAA29, 0xAA2E },
+ { 0xAA31, 0xAA32 },
+ { 0xAA35, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4C },
+ { 0xFB1E, 0xFB1E },
+ { 0xFE00, 0xFE0F },
+ { 0xFE20, 0xFE26 },
+ { 0x101FD, 0x101FD },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x1D167, 0x1D169 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_property_bidi_non_spacing_mark (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_other_neutral.c b/tests/unictype/test-pr_bidi_other_neutral.c
new file mode 100644
index 0000000..b3efed8
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_other_neutral.c
@@ -0,0 +1,175 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x0022 },
+ { 0x0026, 0x002A },
+ { 0x003B, 0x0040 },
+ { 0x005B, 0x0060 },
+ { 0x007B, 0x007E },
+ { 0x00A1, 0x00A1 },
+ { 0x00A6, 0x00A9 },
+ { 0x00AB, 0x00AC },
+ { 0x00AE, 0x00AF },
+ { 0x00B4, 0x00B4 },
+ { 0x00B6, 0x00B8 },
+ { 0x00BB, 0x00BF },
+ { 0x00D7, 0x00D7 },
+ { 0x00F7, 0x00F7 },
+ { 0x02B9, 0x02BA },
+ { 0x02C2, 0x02CF },
+ { 0x02D2, 0x02DF },
+ { 0x02E5, 0x02ED },
+ { 0x02EF, 0x02FF },
+ { 0x0374, 0x0375 },
+ { 0x037E, 0x037E },
+ { 0x0384, 0x0385 },
+ { 0x0387, 0x0387 },
+ { 0x03F6, 0x03F6 },
+ { 0x058A, 0x058A },
+ { 0x0606, 0x0607 },
+ { 0x060E, 0x060F },
+ { 0x06E9, 0x06E9 },
+ { 0x07F6, 0x07F9 },
+ { 0x0BF3, 0x0BF8 },
+ { 0x0BFA, 0x0BFA },
+ { 0x0C78, 0x0C7E },
+ { 0x0CF1, 0x0CF2 },
+ { 0x0F3A, 0x0F3D },
+ { 0x1390, 0x1399 },
+ { 0x169B, 0x169C },
+ { 0x17F0, 0x17F9 },
+ { 0x1800, 0x180A },
+ { 0x1940, 0x1940 },
+ { 0x1944, 0x1945 },
+ { 0x19DE, 0x19FF },
+ { 0x1FBD, 0x1FBD },
+ { 0x1FBF, 0x1FC1 },
+ { 0x1FCD, 0x1FCF },
+ { 0x1FDD, 0x1FDF },
+ { 0x1FED, 0x1FEF },
+ { 0x1FFD, 0x1FFE },
+ { 0x2010, 0x2027 },
+ { 0x2035, 0x2043 },
+ { 0x2045, 0x205E },
+ { 0x207C, 0x207E },
+ { 0x208C, 0x208E },
+ { 0x2100, 0x2101 },
+ { 0x2103, 0x2106 },
+ { 0x2108, 0x2109 },
+ { 0x2114, 0x2114 },
+ { 0x2116, 0x2118 },
+ { 0x211E, 0x2123 },
+ { 0x2125, 0x2125 },
+ { 0x2127, 0x2127 },
+ { 0x2129, 0x2129 },
+ { 0x213A, 0x213B },
+ { 0x2140, 0x2144 },
+ { 0x214A, 0x214D },
+ { 0x2153, 0x215F },
+ { 0x2190, 0x2211 },
+ { 0x2214, 0x2335 },
+ { 0x237B, 0x2394 },
+ { 0x2396, 0x23E7 },
+ { 0x2400, 0x2426 },
+ { 0x2440, 0x244A },
+ { 0x2460, 0x2487 },
+ { 0x24EA, 0x269D },
+ { 0x26A0, 0x26AB },
+ { 0x26AD, 0x26BC },
+ { 0x26C0, 0x26C3 },
+ { 0x2701, 0x2704 },
+ { 0x2706, 0x2709 },
+ { 0x270C, 0x2727 },
+ { 0x2729, 0x274B },
+ { 0x274D, 0x274D },
+ { 0x274F, 0x2752 },
+ { 0x2756, 0x2756 },
+ { 0x2758, 0x275E },
+ { 0x2761, 0x2794 },
+ { 0x2798, 0x27AF },
+ { 0x27B1, 0x27BE },
+ { 0x27C0, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x27FF },
+ { 0x2900, 0x2B4C },
+ { 0x2B50, 0x2B54 },
+ { 0x2CE5, 0x2CEA },
+ { 0x2CF9, 0x2CFF },
+ { 0x2E00, 0x2E30 },
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 },
+ { 0x2FF0, 0x2FFB },
+ { 0x3001, 0x3004 },
+ { 0x3008, 0x3020 },
+ { 0x3030, 0x3030 },
+ { 0x3036, 0x3037 },
+ { 0x303D, 0x303F },
+ { 0x309B, 0x309C },
+ { 0x30A0, 0x30A0 },
+ { 0x30FB, 0x30FB },
+ { 0x31C0, 0x31E3 },
+ { 0x321D, 0x321E },
+ { 0x3250, 0x325F },
+ { 0x327C, 0x327E },
+ { 0x32B1, 0x32BF },
+ { 0x32CC, 0x32CF },
+ { 0x3377, 0x337A },
+ { 0x33DE, 0x33DF },
+ { 0x33FF, 0x33FF },
+ { 0x4DC0, 0x4DFF },
+ { 0xA490, 0xA4C6 },
+ { 0xA60D, 0xA60F },
+ { 0xA673, 0xA673 },
+ { 0xA67E, 0xA67F },
+ { 0xA700, 0xA721 },
+ { 0xA788, 0xA788 },
+ { 0xA828, 0xA82B },
+ { 0xA874, 0xA877 },
+ { 0xFD3E, 0xFD3F },
+ { 0xFDFD, 0xFDFD },
+ { 0xFE10, 0xFE19 },
+ { 0xFE30, 0xFE4F },
+ { 0xFE51, 0xFE51 },
+ { 0xFE54, 0xFE54 },
+ { 0xFE56, 0xFE5E },
+ { 0xFE60, 0xFE61 },
+ { 0xFE64, 0xFE66 },
+ { 0xFE68, 0xFE68 },
+ { 0xFE6B, 0xFE6B },
+ { 0xFF01, 0xFF02 },
+ { 0xFF06, 0xFF0A },
+ { 0xFF1B, 0xFF20 },
+ { 0xFF3B, 0xFF40 },
+ { 0xFF5B, 0xFF65 },
+ { 0xFFE2, 0xFFE4 },
+ { 0xFFE8, 0xFFEE },
+ { 0xFFF9, 0xFFFD },
+ { 0x10101, 0x10101 },
+ { 0x10140, 0x1018A },
+ { 0x10190, 0x1019B },
+ { 0x1091F, 0x1091F },
+ { 0x1D200, 0x1D241 },
+ { 0x1D245, 0x1D245 },
+ { 0x1D300, 0x1D356 },
+ { 0x1F000, 0x1F02B },
+ { 0x1F030, 0x1F093 }
+
+#define PREDICATE(c) uc_is_property_bidi_other_neutral (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_pdf.c b/tests/unictype/test-pr_bidi_pdf.c
new file mode 100644
index 0000000..e8ff8dd
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_pdf.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x202C, 0x202C }
+
+#define PREDICATE(c) uc_is_property_bidi_pdf (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_segment_separator.c b/tests/unictype/test-pr_bidi_segment_separator.c
new file mode 100644
index 0000000..86ba97b
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_segment_separator.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0009, 0x0009 },
+ { 0x000B, 0x000B },
+ { 0x001F, 0x001F }
+
+#define PREDICATE(c) uc_is_property_bidi_segment_separator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_bidi_whitespace.c b/tests/unictype/test-pr_bidi_whitespace.c
new file mode 100644
index 0000000..646ef4f
--- /dev/null
+++ b/tests/unictype/test-pr_bidi_whitespace.c
@@ -0,0 +1,30 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x000C, 0x000C },
+ { 0x0020, 0x0020 },
+ { 0x1680, 0x1680 },
+ { 0x180E, 0x180E },
+ { 0x2000, 0x200A },
+ { 0x2028, 0x2028 },
+ { 0x205F, 0x205F },
+ { 0x3000, 0x3000 }
+
+#define PREDICATE(c) uc_is_property_bidi_whitespace (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_byname.c b/tests/unictype/test-pr_byname.c
new file mode 100644
index 0000000..770d4c8
--- /dev/null
+++ b/tests/unictype/test-pr_byname.c
@@ -0,0 +1,54 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ {
+ uc_property_t pr = uc_property_byname ("composite");
+ unsigned int c;
+
+ for (c = 0; c < 0x110000; c++)
+ ASSERT (uc_is_property (c, pr) == uc_is_property_composite (c));
+ }
+
+ {
+ uc_property_t pr = uc_property_byname ("foobar");
+ ASSERT (! uc_property_is_valid (pr));
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-pr_combining.c b/tests/unictype/test-pr_combining.c
new file mode 100644
index 0000000..2a8377a
--- /dev/null
+++ b/tests/unictype/test-pr_combining.c
@@ -0,0 +1,183 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0300, 0x036F },
+ { 0x0483, 0x0489 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x0610, 0x061A },
+ { 0x064B, 0x065E },
+ { 0x0670, 0x0670 },
+ { 0x06D6, 0x06DC },
+ { 0x06DE, 0x06E4 },
+ { 0x06E7, 0x06E8 },
+ { 0x06EA, 0x06ED },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F3 },
+ { 0x0901, 0x0903 },
+ { 0x093C, 0x093C },
+ { 0x093E, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0962, 0x0963 },
+ { 0x0981, 0x0983 },
+ { 0x09BC, 0x09BC },
+ { 0x09BE, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CD },
+ { 0x09D7, 0x09D7 },
+ { 0x09E2, 0x09E3 },
+ { 0x0A01, 0x0A03 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0ABC, 0x0ABC },
+ { 0x0ABE, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACD },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0B01, 0x0B03 },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B3E, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCD },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0C01, 0x0C03 },
+ { 0x0C3E, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0C82, 0x0C83 },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CBE, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D3E, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D62, 0x0D63 },
+ { 0x0D82, 0x0D83 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF3 },
+ { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A },
+ { 0x0E47, 0x0E4E },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0EC8, 0x0ECD },
+ { 0x0F18, 0x0F19 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F3E, 0x0F3F },
+ { 0x0F71, 0x0F84 },
+ { 0x0F86, 0x0F87 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x102B, 0x103E },
+ { 0x1056, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1062, 0x1064 },
+ { 0x1067, 0x106D },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x108D },
+ { 0x108F, 0x108F },
+ { 0x135F, 0x135F },
+ { 0x1712, 0x1714 },
+ { 0x1732, 0x1734 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B6, 0x17D3 },
+ { 0x17DD, 0x17DD },
+ { 0x180B, 0x180D },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x193B },
+ { 0x19B0, 0x19C0 },
+ { 0x19C8, 0x19C9 },
+ { 0x1A17, 0x1A1B },
+ { 0x1B00, 0x1B04 },
+ { 0x1B34, 0x1B44 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1B82 },
+ { 0x1BA1, 0x1BAA },
+ { 0x1C24, 0x1C37 },
+ { 0x1DC0, 0x1DE6 },
+ { 0x1DFE, 0x1DFF },
+ { 0x20D0, 0x20F0 },
+ { 0x2DE0, 0x2DFF },
+ { 0x302A, 0x302F },
+ { 0x3099, 0x309A },
+ { 0xA66F, 0xA672 },
+ { 0xA67C, 0xA67D },
+ { 0xA802, 0xA802 },
+ { 0xA806, 0xA806 },
+ { 0xA80B, 0xA80B },
+ { 0xA823, 0xA827 },
+ { 0xA880, 0xA881 },
+ { 0xA8B4, 0xA8C4 },
+ { 0xA926, 0xA92D },
+ { 0xA947, 0xA953 },
+ { 0xAA29, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4D },
+ { 0xFB1E, 0xFB1E },
+ { 0xFE00, 0xFE0F },
+ { 0xFE20, 0xFE26 },
+ { 0x101FD, 0x101FD },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x1D165, 0x1D169 },
+ { 0x1D16D, 0x1D172 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_property_combining (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_composite.c b/tests/unictype/test-pr_composite.c
new file mode 100644
index 0000000..c7aff1e
--- /dev/null
+++ b/tests/unictype/test-pr_composite.c
@@ -0,0 +1,291 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00BC, 0x00BE },
+ { 0x00C0, 0x00C5 },
+ { 0x00C7, 0x00CF },
+ { 0x00D1, 0x00D6 },
+ { 0x00D9, 0x00DD },
+ { 0x00E0, 0x00E5 },
+ { 0x00E7, 0x00EF },
+ { 0x00F1, 0x00F6 },
+ { 0x00F9, 0x00FD },
+ { 0x00FF, 0x010F },
+ { 0x0112, 0x0125 },
+ { 0x0128, 0x0130 },
+ { 0x0132, 0x0137 },
+ { 0x0139, 0x0140 },
+ { 0x0143, 0x0149 },
+ { 0x014C, 0x0151 },
+ { 0x0154, 0x0165 },
+ { 0x0168, 0x017E },
+ { 0x01A0, 0x01A1 },
+ { 0x01AF, 0x01B0 },
+ { 0x01C4, 0x01DC },
+ { 0x01DE, 0x01E3 },
+ { 0x01E6, 0x01F5 },
+ { 0x01F8, 0x021B },
+ { 0x021E, 0x021F },
+ { 0x0226, 0x0233 },
+ { 0x0344, 0x0344 },
+ { 0x0385, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x0390 },
+ { 0x03AA, 0x03B0 },
+ { 0x03CA, 0x03CE },
+ { 0x03D3, 0x03D4 },
+ { 0x0400, 0x0401 },
+ { 0x0403, 0x0403 },
+ { 0x0407, 0x0407 },
+ { 0x040C, 0x040E },
+ { 0x0419, 0x0419 },
+ { 0x0439, 0x0439 },
+ { 0x0450, 0x0451 },
+ { 0x0453, 0x0453 },
+ { 0x0457, 0x0457 },
+ { 0x045C, 0x045E },
+ { 0x0476, 0x0477 },
+ { 0x04C1, 0x04C2 },
+ { 0x04D0, 0x04D3 },
+ { 0x04D6, 0x04D7 },
+ { 0x04DA, 0x04DF },
+ { 0x04E2, 0x04E7 },
+ { 0x04EA, 0x04F5 },
+ { 0x04F8, 0x04F9 },
+ { 0x0587, 0x0587 },
+ { 0x0622, 0x0626 },
+ { 0x0675, 0x0678 },
+ { 0x06C0, 0x06C0 },
+ { 0x06C2, 0x06C2 },
+ { 0x06D3, 0x06D3 },
+ { 0x0929, 0x0929 },
+ { 0x0931, 0x0931 },
+ { 0x0934, 0x0934 },
+ { 0x0958, 0x095F },
+ { 0x09CB, 0x09CC },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09DF },
+ { 0x0A33, 0x0A33 },
+ { 0x0A36, 0x0A36 },
+ { 0x0A59, 0x0A5B },
+ { 0x0A5E, 0x0A5E },
+ { 0x0B48, 0x0B48 },
+ { 0x0B4B, 0x0B4C },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B94, 0x0B94 },
+ { 0x0BCA, 0x0BCC },
+ { 0x0C48, 0x0C48 },
+ { 0x0CC0, 0x0CC0 },
+ { 0x0CC7, 0x0CC8 },
+ { 0x0CCA, 0x0CCB },
+ { 0x0D4A, 0x0D4C },
+ { 0x0DDA, 0x0DDA },
+ { 0x0DDC, 0x0DDE },
+ { 0x0E33, 0x0E33 },
+ { 0x0EB3, 0x0EB3 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F43, 0x0F43 },
+ { 0x0F4D, 0x0F4D },
+ { 0x0F52, 0x0F52 },
+ { 0x0F57, 0x0F57 },
+ { 0x0F5C, 0x0F5C },
+ { 0x0F69, 0x0F69 },
+ { 0x0F73, 0x0F73 },
+ { 0x0F75, 0x0F79 },
+ { 0x0F81, 0x0F81 },
+ { 0x0F93, 0x0F93 },
+ { 0x0F9D, 0x0F9D },
+ { 0x0FA2, 0x0FA2 },
+ { 0x0FA7, 0x0FA7 },
+ { 0x0FAC, 0x0FAC },
+ { 0x0FB9, 0x0FB9 },
+ { 0x1026, 0x1026 },
+ { 0x1B06, 0x1B06 },
+ { 0x1B08, 0x1B08 },
+ { 0x1B0A, 0x1B0A },
+ { 0x1B0C, 0x1B0C },
+ { 0x1B0E, 0x1B0E },
+ { 0x1B12, 0x1B12 },
+ { 0x1B3B, 0x1B3B },
+ { 0x1B3D, 0x1B3D },
+ { 0x1B40, 0x1B41 },
+ { 0x1B43, 0x1B43 },
+ { 0x1E00, 0x1E9B },
+ { 0x1EA0, 0x1EF9 },
+ { 0x1F00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F70 },
+ { 0x1F72, 0x1F72 },
+ { 0x1F74, 0x1F74 },
+ { 0x1F76, 0x1F76 },
+ { 0x1F78, 0x1F78 },
+ { 0x1F7A, 0x1F7A },
+ { 0x1F7C, 0x1F7C },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBA },
+ { 0x1FBC, 0x1FBC },
+ { 0x1FC1, 0x1FC4 },
+ { 0x1FC6, 0x1FC8 },
+ { 0x1FCA, 0x1FCA },
+ { 0x1FCC, 0x1FD2 },
+ { 0x1FD6, 0x1FDA },
+ { 0x1FDD, 0x1FE2 },
+ { 0x1FE4, 0x1FEA },
+ { 0x1FEC, 0x1FED },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FF8 },
+ { 0x1FFA, 0x1FFA },
+ { 0x1FFC, 0x1FFC },
+ { 0x2025, 0x2026 },
+ { 0x2033, 0x2034 },
+ { 0x2036, 0x2037 },
+ { 0x203C, 0x203C },
+ { 0x2047, 0x2049 },
+ { 0x2057, 0x2057 },
+ { 0x20A8, 0x20A8 },
+ { 0x2100, 0x2101 },
+ { 0x2103, 0x2103 },
+ { 0x2105, 0x2106 },
+ { 0x2109, 0x2109 },
+ { 0x2116, 0x2116 },
+ { 0x2120, 0x2122 },
+ { 0x213B, 0x213B },
+ { 0x2153, 0x215F },
+ { 0x2161, 0x2163 },
+ { 0x2165, 0x2168 },
+ { 0x216A, 0x216B },
+ { 0x2171, 0x2173 },
+ { 0x2175, 0x2178 },
+ { 0x217A, 0x217B },
+ { 0x219A, 0x219B },
+ { 0x21AE, 0x21AE },
+ { 0x21CD, 0x21CF },
+ { 0x2204, 0x2204 },
+ { 0x2209, 0x2209 },
+ { 0x220C, 0x220C },
+ { 0x2224, 0x2224 },
+ { 0x2226, 0x2226 },
+ { 0x222C, 0x222D },
+ { 0x222F, 0x2230 },
+ { 0x2241, 0x2241 },
+ { 0x2244, 0x2244 },
+ { 0x2247, 0x2247 },
+ { 0x2249, 0x2249 },
+ { 0x2260, 0x2260 },
+ { 0x2262, 0x2262 },
+ { 0x226D, 0x2271 },
+ { 0x2274, 0x2275 },
+ { 0x2278, 0x2279 },
+ { 0x2280, 0x2281 },
+ { 0x2284, 0x2285 },
+ { 0x2288, 0x2289 },
+ { 0x22AC, 0x22AF },
+ { 0x22E0, 0x22E3 },
+ { 0x22EA, 0x22ED },
+ { 0x2469, 0x24B5 },
+ { 0x2A0C, 0x2A0C },
+ { 0x2A74, 0x2A76 },
+ { 0x2ADC, 0x2ADC },
+ { 0x304C, 0x304C },
+ { 0x304E, 0x304E },
+ { 0x3050, 0x3050 },
+ { 0x3052, 0x3052 },
+ { 0x3054, 0x3054 },
+ { 0x3056, 0x3056 },
+ { 0x3058, 0x3058 },
+ { 0x305A, 0x305A },
+ { 0x305C, 0x305C },
+ { 0x305E, 0x305E },
+ { 0x3060, 0x3060 },
+ { 0x3062, 0x3062 },
+ { 0x3065, 0x3065 },
+ { 0x3067, 0x3067 },
+ { 0x3069, 0x3069 },
+ { 0x3070, 0x3071 },
+ { 0x3073, 0x3074 },
+ { 0x3076, 0x3077 },
+ { 0x3079, 0x307A },
+ { 0x307C, 0x307D },
+ { 0x3094, 0x3094 },
+ { 0x309E, 0x309F },
+ { 0x30AC, 0x30AC },
+ { 0x30AE, 0x30AE },
+ { 0x30B0, 0x30B0 },
+ { 0x30B2, 0x30B2 },
+ { 0x30B4, 0x30B4 },
+ { 0x30B6, 0x30B6 },
+ { 0x30B8, 0x30B8 },
+ { 0x30BA, 0x30BA },
+ { 0x30BC, 0x30BC },
+ { 0x30BE, 0x30BE },
+ { 0x30C0, 0x30C0 },
+ { 0x30C2, 0x30C2 },
+ { 0x30C5, 0x30C5 },
+ { 0x30C7, 0x30C7 },
+ { 0x30C9, 0x30C9 },
+ { 0x30D0, 0x30D1 },
+ { 0x30D3, 0x30D4 },
+ { 0x30D6, 0x30D7 },
+ { 0x30D9, 0x30DA },
+ { 0x30DC, 0x30DD },
+ { 0x30F4, 0x30F4 },
+ { 0x30F7, 0x30FA },
+ { 0x30FE, 0x30FF },
+ { 0x3200, 0x321E },
+ { 0x3220, 0x3243 },
+ { 0x3250, 0x325F },
+ { 0x326E, 0x327E },
+ { 0x32B1, 0x32CF },
+ { 0x3300, 0x33FF },
+ { 0xAC00, 0xD7A4 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB1F },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFB4F },
+ { 0xFBEA, 0xFBFB },
+ { 0xFC00, 0xFC5D },
+ { 0xFC64, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFC },
+ { 0xFE71, 0xFE71 },
+ { 0xFE77, 0xFE77 },
+ { 0xFE79, 0xFE79 },
+ { 0xFE7B, 0xFE7B },
+ { 0xFE7D, 0xFE7D },
+ { 0xFE7F, 0xFE7F },
+ { 0xFEF5, 0xFEFC },
+ { 0x1D15E, 0x1D164 },
+ { 0x1D1BB, 0x1D1C0 }
+
+#define PREDICATE(c) uc_is_property_composite (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_currency_symbol.c b/tests/unictype/test-pr_currency_symbol.c
new file mode 100644
index 0000000..79a3706
--- /dev/null
+++ b/tests/unictype/test-pr_currency_symbol.c
@@ -0,0 +1,36 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0024, 0x0024 },
+ { 0x00A2, 0x00A5 },
+ { 0x060B, 0x060B },
+ { 0x09F2, 0x09F3 },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0BF9, 0x0BF9 },
+ { 0x0E3F, 0x0E3F },
+ { 0x17DB, 0x17DB },
+ { 0x20A0, 0x20B5 },
+ { 0xFDFC, 0xFDFC },
+ { 0xFE69, 0xFE69 },
+ { 0xFF04, 0xFF04 },
+ { 0xFFE0, 0xFFE1 },
+ { 0xFFE5, 0xFFE6 }
+
+#define PREDICATE(c) uc_is_property_currency_symbol (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_dash.c b/tests/unictype/test-pr_dash.c
new file mode 100644
index 0000000..8089772
--- /dev/null
+++ b/tests/unictype/test-pr_dash.c
@@ -0,0 +1,40 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x002D, 0x002D },
+ { 0x058A, 0x058A },
+ { 0x05BE, 0x05BE },
+ { 0x1806, 0x1806 },
+ { 0x2010, 0x2015 },
+ { 0x2053, 0x2053 },
+ { 0x207B, 0x207B },
+ { 0x208B, 0x208B },
+ { 0x2212, 0x2212 },
+ { 0x2E17, 0x2E17 },
+ { 0x2E1A, 0x2E1A },
+ { 0x301C, 0x301C },
+ { 0x3030, 0x3030 },
+ { 0x30A0, 0x30A0 },
+ { 0xFE31, 0xFE32 },
+ { 0xFE58, 0xFE58 },
+ { 0xFE63, 0xFE63 },
+ { 0xFF0D, 0xFF0D }
+
+#define PREDICATE(c) uc_is_property_dash (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_decimal_digit.c b/tests/unictype/test-pr_decimal_digit.c
new file mode 100644
index 0000000..8d6c284
--- /dev/null
+++ b/tests/unictype/test-pr_decimal_digit.c
@@ -0,0 +1,55 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0660, 0x0669 },
+ { 0x06F0, 0x06F9 },
+ { 0x07C0, 0x07C9 },
+ { 0x0966, 0x096F },
+ { 0x09E6, 0x09EF },
+ { 0x0A66, 0x0A6F },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B66, 0x0B6F },
+ { 0x0BE6, 0x0BEF },
+ { 0x0C66, 0x0C6F },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D66, 0x0D6F },
+ { 0x0E50, 0x0E59 },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0F20, 0x0F29 },
+ { 0x1040, 0x1049 },
+ { 0x1090, 0x1099 },
+ { 0x17E0, 0x17E9 },
+ { 0x1810, 0x1819 },
+ { 0x1946, 0x194F },
+ { 0x19D0, 0x19D9 },
+ { 0x1B50, 0x1B59 },
+ { 0x1BB0, 0x1BB9 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C50, 0x1C59 },
+ { 0xA620, 0xA629 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA909 },
+ { 0xAA50, 0xAA59 },
+ { 0xFF10, 0xFF19 },
+ { 0x104A0, 0x104A9 },
+ { 0x1D7CE, 0x1D7FF }
+
+#define PREDICATE(c) uc_is_property_decimal_digit (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_default_ignorable_code_point.c b/tests/unictype/test-pr_default_ignorable_code_point.c
new file mode 100644
index 0000000..894bc7f
--- /dev/null
+++ b/tests/unictype/test-pr_default_ignorable_code_point.c
@@ -0,0 +1,37 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00AD, 0x00AD },
+ { 0x034F, 0x034F },
+ { 0x115F, 0x1160 },
+ { 0x17B4, 0x17B5 },
+ { 0x180B, 0x180D },
+ { 0x200B, 0x200F },
+ { 0x202A, 0x202E },
+ { 0x2060, 0x206F },
+ { 0x3164, 0x3164 },
+ { 0xFE00, 0xFE0F },
+ { 0xFEFF, 0xFEFF },
+ { 0xFFA0, 0xFFA0 },
+ { 0xFFF0, 0xFFF8 },
+ { 0x1D173, 0x1D17A },
+ { 0xE0000, 0xE0FFF }
+
+#define PREDICATE(c) uc_is_property_default_ignorable_code_point (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_deprecated.c b/tests/unictype/test-pr_deprecated.c
new file mode 100644
index 0000000..f8af73d
--- /dev/null
+++ b/tests/unictype/test-pr_deprecated.c
@@ -0,0 +1,28 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0340, 0x0341 },
+ { 0x17A3, 0x17A3 },
+ { 0x17D3, 0x17D3 },
+ { 0x206A, 0x206F },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F }
+
+#define PREDICATE(c) uc_is_property_deprecated (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_diacritic.c b/tests/unictype/test-pr_diacritic.c
new file mode 100644
index 0000000..ae21cd4
--- /dev/null
+++ b/tests/unictype/test-pr_diacritic.c
@@ -0,0 +1,124 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x005E, 0x005E },
+ { 0x0060, 0x0060 },
+ { 0x00A8, 0x00A8 },
+ { 0x00AF, 0x00AF },
+ { 0x00B4, 0x00B4 },
+ { 0x00B7, 0x00B8 },
+ { 0x02B0, 0x034E },
+ { 0x0350, 0x0357 },
+ { 0x035D, 0x0362 },
+ { 0x0374, 0x0375 },
+ { 0x037A, 0x037A },
+ { 0x0384, 0x0385 },
+ { 0x0483, 0x0487 },
+ { 0x0559, 0x0559 },
+ { 0x0591, 0x05A1 },
+ { 0x05A3, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C4 },
+ { 0x064B, 0x0652 },
+ { 0x0657, 0x0658 },
+ { 0x06DF, 0x06E0 },
+ { 0x06E5, 0x06E6 },
+ { 0x06EA, 0x06EC },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F5 },
+ { 0x093C, 0x093C },
+ { 0x094D, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0971, 0x0971 },
+ { 0x09BC, 0x09BC },
+ { 0x09CD, 0x09CD },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A4D, 0x0A4D },
+ { 0x0ABC, 0x0ABC },
+ { 0x0ACD, 0x0ACD },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B4D, 0x0B4D },
+ { 0x0BCD, 0x0BCD },
+ { 0x0C4D, 0x0C4D },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CCD, 0x0CCD },
+ { 0x0D4D, 0x0D4D },
+ { 0x0DCA, 0x0DCA },
+ { 0x0E47, 0x0E4C },
+ { 0x0E4E, 0x0E4E },
+ { 0x0EC8, 0x0ECC },
+ { 0x0F18, 0x0F19 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F3E, 0x0F3F },
+ { 0x0F82, 0x0F84 },
+ { 0x0F86, 0x0F87 },
+ { 0x0FC6, 0x0FC6 },
+ { 0x1037, 0x1037 },
+ { 0x1039, 0x103A },
+ { 0x1087, 0x108D },
+ { 0x108F, 0x108F },
+ { 0x17C9, 0x17D3 },
+ { 0x17DD, 0x17DD },
+ { 0x1939, 0x193B },
+ { 0x1B34, 0x1B34 },
+ { 0x1B44, 0x1B44 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1BAA, 0x1BAA },
+ { 0x1C36, 0x1C37 },
+ { 0x1C78, 0x1C7D },
+ { 0x1D2C, 0x1D6A },
+ { 0x1DC4, 0x1DCF },
+ { 0x1DFE, 0x1DFF },
+ { 0x1FBD, 0x1FBD },
+ { 0x1FBF, 0x1FC1 },
+ { 0x1FCD, 0x1FCF },
+ { 0x1FDD, 0x1FDF },
+ { 0x1FED, 0x1FEF },
+ { 0x1FFD, 0x1FFE },
+ { 0x2E2F, 0x2E2F },
+ { 0x302A, 0x302F },
+ { 0x3099, 0x309C },
+ { 0x30FC, 0x30FC },
+ { 0xA66F, 0xA66F },
+ { 0xA67C, 0xA67D },
+ { 0xA67F, 0xA67F },
+ { 0xA717, 0xA721 },
+ { 0xA788, 0xA788 },
+ { 0xA8C4, 0xA8C4 },
+ { 0xA92B, 0xA92E },
+ { 0xA953, 0xA953 },
+ { 0xFB1E, 0xFB1E },
+ { 0xFE20, 0xFE26 },
+ { 0xFF3E, 0xFF3E },
+ { 0xFF40, 0xFF40 },
+ { 0xFF70, 0xFF70 },
+ { 0xFF9E, 0xFF9F },
+ { 0xFFE3, 0xFFE3 },
+ { 0x1D167, 0x1D169 },
+ { 0x1D16D, 0x1D172 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD }
+
+#define PREDICATE(c) uc_is_property_diacritic (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_extender.c b/tests/unictype/test-pr_extender.c
new file mode 100644
index 0000000..acca2ed
--- /dev/null
+++ b/tests/unictype/test-pr_extender.c
@@ -0,0 +1,38 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00B7, 0x00B7 },
+ { 0x02D0, 0x02D1 },
+ { 0x0640, 0x0640 },
+ { 0x07FA, 0x07FA },
+ { 0x0E46, 0x0E46 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x1843, 0x1843 },
+ { 0x1C36, 0x1C36 },
+ { 0x1C7B, 0x1C7B },
+ { 0x3005, 0x3005 },
+ { 0x3031, 0x3035 },
+ { 0x309D, 0x309E },
+ { 0x30FC, 0x30FE },
+ { 0xA015, 0xA015 },
+ { 0xA60C, 0xA60C },
+ { 0xFF70, 0xFF70 }
+
+#define PREDICATE(c) uc_is_property_extender (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_format_control.c b/tests/unictype/test-pr_format_control.c
new file mode 100644
index 0000000..258996b
--- /dev/null
+++ b/tests/unictype/test-pr_format_control.c
@@ -0,0 +1,30 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00AD, 0x00AD },
+ { 0x070F, 0x070F },
+ { 0x200B, 0x200B },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x206F },
+ { 0x1D173, 0x1D17A },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F }
+
+#define PREDICATE(c) uc_is_property_format_control (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_grapheme_base.c b/tests/unictype/test-pr_grapheme_base.c
new file mode 100644
index 0000000..2fe8bf2
--- /dev/null
+++ b/tests/unictype/test-pr_grapheme_base.c
@@ -0,0 +1,524 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0020, 0x007E },
+ { 0x00A0, 0x00AC },
+ { 0x00AE, 0x02FF },
+ { 0x0370, 0x0377 },
+ { 0x037A, 0x037E },
+ { 0x0384, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x0482 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x055F },
+ { 0x0561, 0x0587 },
+ { 0x0589, 0x058A },
+ { 0x05BE, 0x05BE },
+ { 0x05C0, 0x05C0 },
+ { 0x05C3, 0x05C3 },
+ { 0x05C6, 0x05C6 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F4 },
+ { 0x0606, 0x060F },
+ { 0x061B, 0x061B },
+ { 0x061E, 0x061F },
+ { 0x0621, 0x064A },
+ { 0x0660, 0x066F },
+ { 0x0671, 0x06D5 },
+ { 0x06E5, 0x06E6 },
+ { 0x06E9, 0x06E9 },
+ { 0x06EE, 0x070D },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074D, 0x07A5 },
+ { 0x07B1, 0x07B1 },
+ { 0x07C0, 0x07EA },
+ { 0x07F4, 0x07FA },
+ { 0x0903, 0x0939 },
+ { 0x093D, 0x0940 },
+ { 0x0949, 0x094C },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0961 },
+ { 0x0964, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0982, 0x0983 },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09BD },
+ { 0x09BF, 0x09C0 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CC },
+ { 0x09CE, 0x09CE },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E1 },
+ { 0x09E6, 0x09FA },
+ { 0x0A03, 0x0A03 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A3E, 0x0A40 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A66, 0x0A6F },
+ { 0x0A72, 0x0A74 },
+ { 0x0A83, 0x0A83 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0AC0 },
+ { 0x0AC9, 0x0AC9 },
+ { 0x0ACB, 0x0ACC },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE1 },
+ { 0x0AE6, 0x0AEF },
+ { 0x0AF1, 0x0AF1 },
+ { 0x0B02, 0x0B03 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B3D },
+ { 0x0B40, 0x0B40 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4C },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B61 },
+ { 0x0B66, 0x0B71 },
+ { 0x0B83, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BBF, 0x0BBF },
+ { 0x0BC1, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCC },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BE6, 0x0BFA },
+ { 0x0C01, 0x0C03 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C3D },
+ { 0x0C41, 0x0C44 },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C61 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C78, 0x0C7F },
+ { 0x0C82, 0x0C83 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CBE },
+ { 0x0CC0, 0x0CC1 },
+ { 0x0CC3, 0x0CC4 },
+ { 0x0CC7, 0x0CC8 },
+ { 0x0CCA, 0x0CCB },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE1 },
+ { 0x0CE6, 0x0CEF },
+ { 0x0CF1, 0x0CF2 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D3D },
+ { 0x0D3F, 0x0D40 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4C },
+ { 0x0D60, 0x0D61 },
+ { 0x0D66, 0x0D75 },
+ { 0x0D79, 0x0D7F },
+ { 0x0D82, 0x0D83 },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0DD0, 0x0DD1 },
+ { 0x0DD8, 0x0DDE },
+ { 0x0DF2, 0x0DF4 },
+ { 0x0E01, 0x0E30 },
+ { 0x0E32, 0x0E33 },
+ { 0x0E3F, 0x0E46 },
+ { 0x0E4F, 0x0E5B },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB0 },
+ { 0x0EB2, 0x0EB3 },
+ { 0x0EBD, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F17 },
+ { 0x0F1A, 0x0F34 },
+ { 0x0F36, 0x0F36 },
+ { 0x0F38, 0x0F38 },
+ { 0x0F3A, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F7F, 0x0F7F },
+ { 0x0F85, 0x0F85 },
+ { 0x0F88, 0x0F8B },
+ { 0x0FBE, 0x0FC5 },
+ { 0x0FC7, 0x0FCC },
+ { 0x0FCE, 0x0FD4 },
+ { 0x1000, 0x102C },
+ { 0x1031, 0x1031 },
+ { 0x1038, 0x1038 },
+ { 0x103B, 0x103C },
+ { 0x103F, 0x1057 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x1083, 0x1084 },
+ { 0x1087, 0x108C },
+ { 0x108E, 0x1099 },
+ { 0x109E, 0x10C5 },
+ { 0x10D0, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x1360, 0x137C },
+ { 0x1380, 0x1399 },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x1676 },
+ { 0x1680, 0x169C },
+ { 0x16A0, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1711 },
+ { 0x1720, 0x1731 },
+ { 0x1735, 0x1736 },
+ { 0x1740, 0x1751 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1780, 0x17B3 },
+ { 0x17B6, 0x17B6 },
+ { 0x17BE, 0x17C5 },
+ { 0x17C7, 0x17C8 },
+ { 0x17D4, 0x17DC },
+ { 0x17E0, 0x17E9 },
+ { 0x17F0, 0x17F9 },
+ { 0x1800, 0x180A },
+ { 0x180E, 0x180E },
+ { 0x1810, 0x1819 },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18A8 },
+ { 0x18AA, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1923, 0x1926 },
+ { 0x1929, 0x192B },
+ { 0x1930, 0x1931 },
+ { 0x1933, 0x1938 },
+ { 0x1940, 0x1940 },
+ { 0x1944, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19B0, 0x19C9 },
+ { 0x19D0, 0x19D9 },
+ { 0x19DE, 0x1A16 },
+ { 0x1A19, 0x1A1B },
+ { 0x1A1E, 0x1A1F },
+ { 0x1B04, 0x1B33 },
+ { 0x1B35, 0x1B35 },
+ { 0x1B3B, 0x1B3B },
+ { 0x1B3D, 0x1B41 },
+ { 0x1B43, 0x1B4B },
+ { 0x1B50, 0x1B6A },
+ { 0x1B74, 0x1B7C },
+ { 0x1B82, 0x1BA1 },
+ { 0x1BA6, 0x1BA7 },
+ { 0x1BAA, 0x1BAA },
+ { 0x1BAE, 0x1BB9 },
+ { 0x1C00, 0x1C2B },
+ { 0x1C34, 0x1C35 },
+ { 0x1C3B, 0x1C49 },
+ { 0x1C4D, 0x1C7F },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FC4 },
+ { 0x1FC6, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FDD, 0x1FEF },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFE },
+ { 0x2000, 0x200A },
+ { 0x2010, 0x2027 },
+ { 0x202F, 0x205F },
+ { 0x2070, 0x2071 },
+ { 0x2074, 0x208E },
+ { 0x2090, 0x2094 },
+ { 0x20A0, 0x20B5 },
+ { 0x2100, 0x214F },
+ { 0x2153, 0x2188 },
+ { 0x2190, 0x23E7 },
+ { 0x2400, 0x2426 },
+ { 0x2440, 0x244A },
+ { 0x2460, 0x269D },
+ { 0x26A0, 0x26BC },
+ { 0x26C0, 0x26C3 },
+ { 0x2701, 0x2704 },
+ { 0x2706, 0x2709 },
+ { 0x270C, 0x2727 },
+ { 0x2729, 0x274B },
+ { 0x274D, 0x274D },
+ { 0x274F, 0x2752 },
+ { 0x2756, 0x2756 },
+ { 0x2758, 0x275E },
+ { 0x2761, 0x2794 },
+ { 0x2798, 0x27AF },
+ { 0x27B1, 0x27BE },
+ { 0x27C0, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x2B4C },
+ { 0x2B50, 0x2B54 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CEA },
+ { 0x2CF9, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2E00, 0x2E30 },
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 },
+ { 0x2FF0, 0x2FFB },
+ { 0x3000, 0x3029 },
+ { 0x3030, 0x303F },
+ { 0x3041, 0x3096 },
+ { 0x309B, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x3190, 0x31B7 },
+ { 0x31C0, 0x31E3 },
+ { 0x31F0, 0x321E },
+ { 0x3220, 0x3243 },
+ { 0x3250, 0x32FE },
+ { 0x3300, 0x4DB5 },
+ { 0x4DC0, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA490, 0xA4C6 },
+ { 0xA500, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66E },
+ { 0xA673, 0xA673 },
+ { 0xA67E, 0xA697 },
+ { 0xA700, 0xA78C },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA824 },
+ { 0xA827, 0xA82B },
+ { 0xA840, 0xA877 },
+ { 0xA880, 0xA8C3 },
+ { 0xA8CE, 0xA8D9 },
+ { 0xA900, 0xA925 },
+ { 0xA92E, 0xA946 },
+ { 0xA952, 0xA953 },
+ { 0xA95F, 0xA95F },
+ { 0xAA00, 0xAA28 },
+ { 0xAA2F, 0xAA30 },
+ { 0xAA33, 0xAA34 },
+ { 0xAA40, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAA4D, 0xAA4D },
+ { 0xAA50, 0xAA59 },
+ { 0xAA5C, 0xAA5F },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3F },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFD },
+ { 0xFE10, 0xFE19 },
+ { 0xFE30, 0xFE52 },
+ { 0xFE54, 0xFE66 },
+ { 0xFE68, 0xFE6B },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF01, 0xFF9D },
+ { 0xFFA0, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0xFFE0, 0xFFE6 },
+ { 0xFFE8, 0xFFEE },
+ { 0xFFFC, 0xFFFD },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10100, 0x10102 },
+ { 0x10107, 0x10133 },
+ { 0x10137, 0x1018A },
+ { 0x10190, 0x1019B },
+ { 0x101D0, 0x101FC },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10320, 0x10323 },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x1039F, 0x103C3 },
+ { 0x103C8, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x104A0, 0x104A9 },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10919 },
+ { 0x1091F, 0x10939 },
+ { 0x1093F, 0x1093F },
+ { 0x10A00, 0x10A00 },
+ { 0x10A10, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x10A40, 0x10A47 },
+ { 0x10A50, 0x10A58 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x12470, 0x12473 },
+ { 0x1D000, 0x1D0F5 },
+ { 0x1D100, 0x1D126 },
+ { 0x1D129, 0x1D164 },
+ { 0x1D166, 0x1D166 },
+ { 0x1D16A, 0x1D16D },
+ { 0x1D183, 0x1D184 },
+ { 0x1D18C, 0x1D1A9 },
+ { 0x1D1AE, 0x1D1DD },
+ { 0x1D200, 0x1D241 },
+ { 0x1D245, 0x1D245 },
+ { 0x1D300, 0x1D356 },
+ { 0x1D360, 0x1D371 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x1F000, 0x1F02B },
+ { 0x1F030, 0x1F093 },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_property_grapheme_base (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_grapheme_extend.c b/tests/unictype/test-pr_grapheme_extend.c
new file mode 100644
index 0000000..fa859bb
--- /dev/null
+++ b/tests/unictype/test-pr_grapheme_extend.c
@@ -0,0 +1,194 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0300, 0x036F },
+ { 0x0483, 0x0489 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x0610, 0x061A },
+ { 0x064B, 0x065E },
+ { 0x0670, 0x0670 },
+ { 0x06D6, 0x06DC },
+ { 0x06DE, 0x06E4 },
+ { 0x06E7, 0x06E8 },
+ { 0x06EA, 0x06ED },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x074A },
+ { 0x07A6, 0x07B0 },
+ { 0x07EB, 0x07F3 },
+ { 0x0901, 0x0902 },
+ { 0x093C, 0x093C },
+ { 0x0941, 0x0948 },
+ { 0x094D, 0x094D },
+ { 0x0951, 0x0954 },
+ { 0x0962, 0x0963 },
+ { 0x0981, 0x0981 },
+ { 0x09BC, 0x09BC },
+ { 0x09BE, 0x09BE },
+ { 0x09C1, 0x09C4 },
+ { 0x09CD, 0x09CD },
+ { 0x09D7, 0x09D7 },
+ { 0x09E2, 0x09E3 },
+ { 0x0A01, 0x0A02 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A41, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A82 },
+ { 0x0ABC, 0x0ABC },
+ { 0x0AC1, 0x0AC5 },
+ { 0x0AC7, 0x0AC8 },
+ { 0x0ACD, 0x0ACD },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0B01, 0x0B01 },
+ { 0x0B3C, 0x0B3C },
+ { 0x0B3E, 0x0B3F },
+ { 0x0B41, 0x0B44 },
+ { 0x0B4D, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BBE, 0x0BBE },
+ { 0x0BC0, 0x0BC0 },
+ { 0x0BCD, 0x0BCD },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0C3E, 0x0C40 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0CBC, 0x0CBC },
+ { 0x0CBF, 0x0CBF },
+ { 0x0CC2, 0x0CC2 },
+ { 0x0CC6, 0x0CC6 },
+ { 0x0CCC, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0D3E, 0x0D3E },
+ { 0x0D41, 0x0D44 },
+ { 0x0D4D, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D62, 0x0D63 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DCF },
+ { 0x0DD2, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DDF, 0x0DDF },
+ { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A },
+ { 0x0E47, 0x0E4E },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0EC8, 0x0ECD },
+ { 0x0F18, 0x0F19 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F71, 0x0F7E },
+ { 0x0F80, 0x0F84 },
+ { 0x0F86, 0x0F87 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x102D, 0x1030 },
+ { 0x1032, 0x1037 },
+ { 0x1039, 0x103A },
+ { 0x103D, 0x103E },
+ { 0x1058, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x1082 },
+ { 0x1085, 0x1086 },
+ { 0x108D, 0x108D },
+ { 0x135F, 0x135F },
+ { 0x1712, 0x1714 },
+ { 0x1732, 0x1734 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B7, 0x17BD },
+ { 0x17C6, 0x17C6 },
+ { 0x17C9, 0x17D3 },
+ { 0x17DD, 0x17DD },
+ { 0x180B, 0x180D },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x1922 },
+ { 0x1927, 0x1928 },
+ { 0x1932, 0x1932 },
+ { 0x1939, 0x193B },
+ { 0x1A17, 0x1A18 },
+ { 0x1B00, 0x1B03 },
+ { 0x1B34, 0x1B34 },
+ { 0x1B36, 0x1B3A },
+ { 0x1B3C, 0x1B3C },
+ { 0x1B42, 0x1B42 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1B81 },
+ { 0x1BA2, 0x1BA5 },
+ { 0x1BA8, 0x1BA9 },
+ { 0x1C2C, 0x1C33 },
+ { 0x1C36, 0x1C37 },
+ { 0x1DC0, 0x1DE6 },
+ { 0x1DFE, 0x1DFF },
+ { 0x200C, 0x200D },
+ { 0x20D0, 0x20F0 },
+ { 0x2DE0, 0x2DFF },
+ { 0x302A, 0x302F },
+ { 0x3099, 0x309A },
+ { 0xA66F, 0xA672 },
+ { 0xA67C, 0xA67D },
+ { 0xA802, 0xA802 },
+ { 0xA806, 0xA806 },
+ { 0xA80B, 0xA80B },
+ { 0xA825, 0xA826 },
+ { 0xA8C4, 0xA8C4 },
+ { 0xA926, 0xA92D },
+ { 0xA947, 0xA951 },
+ { 0xAA29, 0xAA2E },
+ { 0xAA31, 0xAA32 },
+ { 0xAA35, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4C },
+ { 0xFB1E, 0xFB1E },
+ { 0xFE00, 0xFE0F },
+ { 0xFE20, 0xFE26 },
+ { 0xFF9E, 0xFF9F },
+ { 0x101FD, 0x101FD },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x1D165, 0x1D165 },
+ { 0x1D167, 0x1D169 },
+ { 0x1D16E, 0x1D172 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_property_grapheme_extend (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_grapheme_link.c b/tests/unictype/test-pr_grapheme_link.c
new file mode 100644
index 0000000..ff1fa5a
--- /dev/null
+++ b/tests/unictype/test-pr_grapheme_link.c
@@ -0,0 +1,44 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x094D, 0x094D },
+ { 0x09CD, 0x09CD },
+ { 0x0A4D, 0x0A4D },
+ { 0x0ACD, 0x0ACD },
+ { 0x0B4D, 0x0B4D },
+ { 0x0BCD, 0x0BCD },
+ { 0x0C4D, 0x0C4D },
+ { 0x0CCD, 0x0CCD },
+ { 0x0D4D, 0x0D4D },
+ { 0x0DCA, 0x0DCA },
+ { 0x0E3A, 0x0E3A },
+ { 0x0F84, 0x0F84 },
+ { 0x1039, 0x103A },
+ { 0x1714, 0x1714 },
+ { 0x1734, 0x1734 },
+ { 0x17D2, 0x17D2 },
+ { 0x1B44, 0x1B44 },
+ { 0x1BAA, 0x1BAA },
+ { 0xA806, 0xA806 },
+ { 0xA8C4, 0xA8C4 },
+ { 0xA953, 0xA953 },
+ { 0x10A3F, 0x10A3F }
+
+#define PREDICATE(c) uc_is_property_grapheme_link (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_hex_digit.c b/tests/unictype/test-pr_hex_digit.c
new file mode 100644
index 0000000..1a761b8
--- /dev/null
+++ b/tests/unictype/test-pr_hex_digit.c
@@ -0,0 +1,28 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0041, 0x0046 },
+ { 0x0061, 0x0066 },
+ { 0xFF10, 0xFF19 },
+ { 0xFF21, 0xFF26 },
+ { 0xFF41, 0xFF46 }
+
+#define PREDICATE(c) uc_is_property_hex_digit (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_hyphen.c b/tests/unictype/test-pr_hyphen.c
new file mode 100644
index 0000000..9557fba
--- /dev/null
+++ b/tests/unictype/test-pr_hyphen.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x002D, 0x002D },
+ { 0x00AD, 0x00AD },
+ { 0x058A, 0x058A },
+ { 0x1806, 0x1806 },
+ { 0x2010, 0x2011 },
+ { 0x2E17, 0x2E17 },
+ { 0x30FB, 0x30FB },
+ { 0xFE63, 0xFE63 },
+ { 0xFF0D, 0xFF0D },
+ { 0xFF65, 0xFF65 }
+
+#define PREDICATE(c) uc_is_property_hyphen (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_id_continue.c b/tests/unictype/test-pr_id_continue.c
new file mode 100644
index 0000000..a900ec9
--- /dev/null
+++ b/tests/unictype/test-pr_id_continue.c
@@ -0,0 +1,499 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0041, 0x005A },
+ { 0x005F, 0x005F },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00B7, 0x00B7 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0300, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0386, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x0483, 0x0487 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0610, 0x061A },
+ { 0x0621, 0x065E },
+ { 0x0660, 0x0669 },
+ { 0x066E, 0x06D3 },
+ { 0x06D5, 0x06DC },
+ { 0x06DF, 0x06E8 },
+ { 0x06EA, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x074A },
+ { 0x074D, 0x07B1 },
+ { 0x07C0, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0901, 0x0939 },
+ { 0x093C, 0x094D },
+ { 0x0950, 0x0954 },
+ { 0x0958, 0x0963 },
+ { 0x0966, 0x096F },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0981, 0x0983 },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BC, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CE },
+ { 0x09D7, 0x09D7 },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E3 },
+ { 0x09E6, 0x09F1 },
+ { 0x0A01, 0x0A03 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A66, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABC, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE3 },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B01, 0x0B03 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3C, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B63 },
+ { 0x0B66, 0x0B6F },
+ { 0x0B71, 0x0B71 },
+ { 0x0B82, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCD },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0BE6, 0x0BEF },
+ { 0x0C01, 0x0C03 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C63 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C82, 0x0C83 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBC, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE3 },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D02, 0x0D03 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D60, 0x0D63 },
+ { 0x0D66, 0x0D6F },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D82, 0x0D83 },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF3 },
+ { 0x0E01, 0x0E3A },
+ { 0x0E40, 0x0E4E },
+ { 0x0E50, 0x0E59 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB9 },
+ { 0x0EBB, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EC8, 0x0ECD },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F18, 0x0F19 },
+ { 0x0F20, 0x0F29 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F3E, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F71, 0x0F84 },
+ { 0x0F86, 0x0F8B },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x1000, 0x1049 },
+ { 0x1050, 0x1099 },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x135F, 0x135F },
+ { 0x1369, 0x1371 },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x16EE, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1714 },
+ { 0x1720, 0x1734 },
+ { 0x1740, 0x1753 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1772, 0x1773 },
+ { 0x1780, 0x17B3 },
+ { 0x17B6, 0x17D3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DD },
+ { 0x17E0, 0x17E9 },
+ { 0x180B, 0x180D },
+ { 0x1810, 0x1819 },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x193B },
+ { 0x1946, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19B0, 0x19C9 },
+ { 0x19D0, 0x19D9 },
+ { 0x1A00, 0x1A1B },
+ { 0x1B00, 0x1B4B },
+ { 0x1B50, 0x1B59 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1BAA },
+ { 0x1BAE, 0x1BB9 },
+ { 0x1C00, 0x1C37 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C4D, 0x1C7D },
+ { 0x1D00, 0x1DE6 },
+ { 0x1DFE, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x203F, 0x2040 },
+ { 0x2054, 0x2054 },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x20D0, 0x20DC },
+ { 0x20E1, 0x20E1 },
+ { 0x20E5, 0x20F0 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2118, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x2188 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2DE0, 0x2DFF },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x302F },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x3099, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66F },
+ { 0xA67C, 0xA67D },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA827 },
+ { 0xA840, 0xA873 },
+ { 0xA880, 0xA8C4 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA92D },
+ { 0xA930, 0xA953 },
+ { 0xAA00, 0xAA36 },
+ { 0xAA40, 0xAA4D },
+ { 0xAA50, 0xAA59 },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFB },
+ { 0xFE00, 0xFE0F },
+ { 0xFE20, 0xFE26 },
+ { 0xFE33, 0xFE34 },
+ { 0xFE4D, 0xFE4F },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF10, 0xFF19 },
+ { 0xFF21, 0xFF3A },
+ { 0xFF3F, 0xFF3F },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10140, 0x10174 },
+ { 0x101FD, 0x101FD },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x103D1, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x104A0, 0x104A9 },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x1D165, 0x1D169 },
+ { 0x1D16D, 0x1D172 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_property_id_continue (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_id_start.c b/tests/unictype/test-pr_id_start.c
new file mode 100644
index 0000000..15b4bd9
--- /dev/null
+++ b/tests/unictype/test-pr_id_start.c
@@ -0,0 +1,414 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0370, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0621, 0x064A },
+ { 0x066E, 0x066F },
+ { 0x0671, 0x06D3 },
+ { 0x06D5, 0x06D5 },
+ { 0x06E5, 0x06E6 },
+ { 0x06EE, 0x06EF },
+ { 0x06FA, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074D, 0x07A5 },
+ { 0x07B1, 0x07B1 },
+ { 0x07CA, 0x07EA },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0904, 0x0939 },
+ { 0x093D, 0x093D },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0961 },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09BD },
+ { 0x09CE, 0x09CE },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E1 },
+ { 0x09F0, 0x09F1 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A72, 0x0A74 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0ABD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE1 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B3D },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B61 },
+ { 0x0B71, 0x0B71 },
+ { 0x0B83, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C3D },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C61 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CBD },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE1 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D3D },
+ { 0x0D60, 0x0D61 },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0E01, 0x0E30 },
+ { 0x0E32, 0x0E33 },
+ { 0x0E40, 0x0E46 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB0 },
+ { 0x0EB2, 0x0EB3 },
+ { 0x0EBD, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F40, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F88, 0x0F8B },
+ { 0x1000, 0x102A },
+ { 0x103F, 0x103F },
+ { 0x1050, 0x1055 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1061 },
+ { 0x1065, 0x1066 },
+ { 0x106E, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x108E, 0x108E },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x16EE, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1711 },
+ { 0x1720, 0x1731 },
+ { 0x1740, 0x1751 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1780, 0x17B3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DC },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18A8 },
+ { 0x18AA, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1950, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19C1, 0x19C7 },
+ { 0x1A00, 0x1A16 },
+ { 0x1B05, 0x1B33 },
+ { 0x1B45, 0x1B4B },
+ { 0x1B83, 0x1BA0 },
+ { 0x1BAE, 0x1BAF },
+ { 0x1C00, 0x1C23 },
+ { 0x1C4D, 0x1C4F },
+ { 0x1C5A, 0x1C7D },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2118, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x2188 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x309B, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA61F },
+ { 0xA62A, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66E },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA822 },
+ { 0xA840, 0xA873 },
+ { 0xA882, 0xA8B3 },
+ { 0xA90A, 0xA925 },
+ { 0xA930, 0xA946 },
+ { 0xAA00, 0xAA28 },
+ { 0xAA40, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDFB },
+ { 0xFE70, 0xFE74 },
+ { 0xFE76, 0xFEFC },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10140, 0x10174 },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x103D1, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A00 },
+ { 0x10A10, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_property_id_start (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_ideographic.c b/tests/unictype/test-pr_ideographic.c
new file mode 100644
index 0000000..c61195d
--- /dev/null
+++ b/tests/unictype/test-pr_ideographic.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x3006, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3038, 0x303A },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_property_ideographic (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_ids_binary_operator.c b/tests/unictype/test-pr_ids_binary_operator.c
new file mode 100644
index 0000000..cc6e39a
--- /dev/null
+++ b/tests/unictype/test-pr_ids_binary_operator.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2FF0, 0x2FF1 },
+ { 0x2FF4, 0x2FFB }
+
+#define PREDICATE(c) uc_is_property_ids_binary_operator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_ids_trinary_operator.c b/tests/unictype/test-pr_ids_trinary_operator.c
new file mode 100644
index 0000000..c95de7f
--- /dev/null
+++ b/tests/unictype/test-pr_ids_trinary_operator.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2FF2, 0x2FF3 }
+
+#define PREDICATE(c) uc_is_property_ids_trinary_operator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_ignorable_control.c b/tests/unictype/test-pr_ignorable_control.c
new file mode 100644
index 0000000..58d38b5
--- /dev/null
+++ b/tests/unictype/test-pr_ignorable_control.c
@@ -0,0 +1,40 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0001, 0x0008 },
+ { 0x000E, 0x001B },
+ { 0x007F, 0x0084 },
+ { 0x0086, 0x009F },
+ { 0x00AD, 0x00AD },
+ { 0x0600, 0x0603 },
+ { 0x06DD, 0x06DD },
+ { 0x070F, 0x070F },
+ { 0x17B4, 0x17B5 },
+ { 0x200B, 0x200F },
+ { 0x202A, 0x202E },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x206F },
+ { 0xFEFF, 0xFEFF },
+ { 0xFFF9, 0xFFFB },
+ { 0x1D173, 0x1D17A },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F }
+
+#define PREDICATE(c) uc_is_property_ignorable_control (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_iso_control.c b/tests/unictype/test-pr_iso_control.c
new file mode 100644
index 0000000..c7d2697
--- /dev/null
+++ b/tests/unictype/test-pr_iso_control.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0000, 0x001F },
+ { 0x007F, 0x009F }
+
+#define PREDICATE(c) uc_is_property_iso_control (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_join_control.c b/tests/unictype/test-pr_join_control.c
new file mode 100644
index 0000000..a452700
--- /dev/null
+++ b/tests/unictype/test-pr_join_control.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x200C, 0x200D }
+
+#define PREDICATE(c) uc_is_property_join_control (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_left_of_pair.c b/tests/unictype/test-pr_left_of_pair.c
new file mode 100644
index 0000000..5aed7aa
--- /dev/null
+++ b/tests/unictype/test-pr_left_of_pair.c
@@ -0,0 +1,63 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0028, 0x0028 },
+ { 0x005B, 0x005B },
+ { 0x007B, 0x007B },
+ { 0x00AB, 0x00AB },
+ { 0x0F3A, 0x0F3A },
+ { 0x0F3C, 0x0F3C },
+ { 0x169B, 0x169B },
+ { 0x2018, 0x2018 },
+ { 0x201A, 0x201C },
+ { 0x201E, 0x201F },
+ { 0x2039, 0x2039 },
+ { 0x2045, 0x2045 },
+ { 0x207D, 0x207D },
+ { 0x208D, 0x208D },
+ { 0x2329, 0x2329 },
+ { 0x3008, 0x3008 },
+ { 0x300A, 0x300A },
+ { 0x300C, 0x300C },
+ { 0x300E, 0x300E },
+ { 0x3010, 0x3010 },
+ { 0x3014, 0x3014 },
+ { 0x3016, 0x3016 },
+ { 0x3018, 0x3018 },
+ { 0x301A, 0x301A },
+ { 0x301D, 0x301D },
+ { 0xFD3E, 0xFD3E },
+ { 0xFE35, 0xFE35 },
+ { 0xFE37, 0xFE37 },
+ { 0xFE39, 0xFE39 },
+ { 0xFE3B, 0xFE3B },
+ { 0xFE3D, 0xFE3D },
+ { 0xFE3F, 0xFE3F },
+ { 0xFE41, 0xFE41 },
+ { 0xFE43, 0xFE43 },
+ { 0xFE59, 0xFE59 },
+ { 0xFE5B, 0xFE5B },
+ { 0xFE5D, 0xFE5D },
+ { 0xFF08, 0xFF08 },
+ { 0xFF3B, 0xFF3B },
+ { 0xFF5B, 0xFF5B },
+ { 0xFF62, 0xFF62 }
+
+#define PREDICATE(c) uc_is_property_left_of_pair (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_line_separator.c b/tests/unictype/test-pr_line_separator.c
new file mode 100644
index 0000000..2f16de1
--- /dev/null
+++ b/tests/unictype/test-pr_line_separator.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2028, 0x2028 }
+
+#define PREDICATE(c) uc_is_property_line_separator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_logical_order_exception.c b/tests/unictype/test-pr_logical_order_exception.c
new file mode 100644
index 0000000..b9ca432
--- /dev/null
+++ b/tests/unictype/test-pr_logical_order_exception.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0E40, 0x0E44 },
+ { 0x0EC0, 0x0EC4 }
+
+#define PREDICATE(c) uc_is_property_logical_order_exception (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_lowercase.c b/tests/unictype/test-pr_lowercase.c
new file mode 100644
index 0000000..cac34e7
--- /dev/null
+++ b/tests/unictype/test-pr_lowercase.c
@@ -0,0 +1,623 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00DF, 0x00F6 },
+ { 0x00F8, 0x00FF },
+ { 0x0101, 0x0101 },
+ { 0x0103, 0x0103 },
+ { 0x0105, 0x0105 },
+ { 0x0107, 0x0107 },
+ { 0x0109, 0x0109 },
+ { 0x010B, 0x010B },
+ { 0x010D, 0x010D },
+ { 0x010F, 0x010F },
+ { 0x0111, 0x0111 },
+ { 0x0113, 0x0113 },
+ { 0x0115, 0x0115 },
+ { 0x0117, 0x0117 },
+ { 0x0119, 0x0119 },
+ { 0x011B, 0x011B },
+ { 0x011D, 0x011D },
+ { 0x011F, 0x011F },
+ { 0x0121, 0x0121 },
+ { 0x0123, 0x0123 },
+ { 0x0125, 0x0125 },
+ { 0x0127, 0x0127 },
+ { 0x0129, 0x0129 },
+ { 0x012B, 0x012B },
+ { 0x012D, 0x012D },
+ { 0x012F, 0x012F },
+ { 0x0131, 0x0131 },
+ { 0x0133, 0x0133 },
+ { 0x0135, 0x0135 },
+ { 0x0137, 0x0138 },
+ { 0x013A, 0x013A },
+ { 0x013C, 0x013C },
+ { 0x013E, 0x013E },
+ { 0x0140, 0x0140 },
+ { 0x0142, 0x0142 },
+ { 0x0144, 0x0144 },
+ { 0x0146, 0x0146 },
+ { 0x0148, 0x0149 },
+ { 0x014B, 0x014B },
+ { 0x014D, 0x014D },
+ { 0x014F, 0x014F },
+ { 0x0151, 0x0151 },
+ { 0x0153, 0x0153 },
+ { 0x0155, 0x0155 },
+ { 0x0157, 0x0157 },
+ { 0x0159, 0x0159 },
+ { 0x015B, 0x015B },
+ { 0x015D, 0x015D },
+ { 0x015F, 0x015F },
+ { 0x0161, 0x0161 },
+ { 0x0163, 0x0163 },
+ { 0x0165, 0x0165 },
+ { 0x0167, 0x0167 },
+ { 0x0169, 0x0169 },
+ { 0x016B, 0x016B },
+ { 0x016D, 0x016D },
+ { 0x016F, 0x016F },
+ { 0x0171, 0x0171 },
+ { 0x0173, 0x0173 },
+ { 0x0175, 0x0175 },
+ { 0x0177, 0x0177 },
+ { 0x017A, 0x017A },
+ { 0x017C, 0x017C },
+ { 0x017E, 0x0180 },
+ { 0x0183, 0x0183 },
+ { 0x0185, 0x0185 },
+ { 0x0188, 0x0188 },
+ { 0x018C, 0x018D },
+ { 0x0192, 0x0192 },
+ { 0x0195, 0x0195 },
+ { 0x0199, 0x019B },
+ { 0x019E, 0x019E },
+ { 0x01A1, 0x01A1 },
+ { 0x01A3, 0x01A3 },
+ { 0x01A5, 0x01A5 },
+ { 0x01A8, 0x01A8 },
+ { 0x01AA, 0x01AB },
+ { 0x01AD, 0x01AD },
+ { 0x01B0, 0x01B0 },
+ { 0x01B4, 0x01B4 },
+ { 0x01B6, 0x01B6 },
+ { 0x01B9, 0x01BA },
+ { 0x01BD, 0x01BF },
+ { 0x01C6, 0x01C6 },
+ { 0x01C9, 0x01C9 },
+ { 0x01CC, 0x01CC },
+ { 0x01CE, 0x01CE },
+ { 0x01D0, 0x01D0 },
+ { 0x01D2, 0x01D2 },
+ { 0x01D4, 0x01D4 },
+ { 0x01D6, 0x01D6 },
+ { 0x01D8, 0x01D8 },
+ { 0x01DA, 0x01DA },
+ { 0x01DC, 0x01DD },
+ { 0x01DF, 0x01DF },
+ { 0x01E1, 0x01E1 },
+ { 0x01E3, 0x01E3 },
+ { 0x01E5, 0x01E5 },
+ { 0x01E7, 0x01E7 },
+ { 0x01E9, 0x01E9 },
+ { 0x01EB, 0x01EB },
+ { 0x01ED, 0x01ED },
+ { 0x01EF, 0x01F0 },
+ { 0x01F3, 0x01F3 },
+ { 0x01F5, 0x01F5 },
+ { 0x01F9, 0x01F9 },
+ { 0x01FB, 0x01FB },
+ { 0x01FD, 0x01FD },
+ { 0x01FF, 0x01FF },
+ { 0x0201, 0x0201 },
+ { 0x0203, 0x0203 },
+ { 0x0205, 0x0205 },
+ { 0x0207, 0x0207 },
+ { 0x0209, 0x0209 },
+ { 0x020B, 0x020B },
+ { 0x020D, 0x020D },
+ { 0x020F, 0x020F },
+ { 0x0211, 0x0211 },
+ { 0x0213, 0x0213 },
+ { 0x0215, 0x0215 },
+ { 0x0217, 0x0217 },
+ { 0x0219, 0x0219 },
+ { 0x021B, 0x021B },
+ { 0x021D, 0x021D },
+ { 0x021F, 0x021F },
+ { 0x0221, 0x0221 },
+ { 0x0223, 0x0223 },
+ { 0x0225, 0x0225 },
+ { 0x0227, 0x0227 },
+ { 0x0229, 0x0229 },
+ { 0x022B, 0x022B },
+ { 0x022D, 0x022D },
+ { 0x022F, 0x022F },
+ { 0x0231, 0x0231 },
+ { 0x0233, 0x0239 },
+ { 0x023C, 0x023C },
+ { 0x023F, 0x0240 },
+ { 0x0242, 0x0242 },
+ { 0x0247, 0x0247 },
+ { 0x0249, 0x0249 },
+ { 0x024B, 0x024B },
+ { 0x024D, 0x024D },
+ { 0x024F, 0x0293 },
+ { 0x0295, 0x02B8 },
+ { 0x02C0, 0x02C1 },
+ { 0x02E0, 0x02E4 },
+ { 0x0345, 0x0345 },
+ { 0x0371, 0x0371 },
+ { 0x0373, 0x0373 },
+ { 0x0377, 0x0377 },
+ { 0x037A, 0x037D },
+ { 0x0390, 0x0390 },
+ { 0x03AC, 0x03CE },
+ { 0x03D0, 0x03D1 },
+ { 0x03D5, 0x03D7 },
+ { 0x03D9, 0x03D9 },
+ { 0x03DB, 0x03DB },
+ { 0x03DD, 0x03DD },
+ { 0x03DF, 0x03DF },
+ { 0x03E1, 0x03E1 },
+ { 0x03E3, 0x03E3 },
+ { 0x03E5, 0x03E5 },
+ { 0x03E7, 0x03E7 },
+ { 0x03E9, 0x03E9 },
+ { 0x03EB, 0x03EB },
+ { 0x03ED, 0x03ED },
+ { 0x03EF, 0x03F3 },
+ { 0x03F5, 0x03F5 },
+ { 0x03F8, 0x03F8 },
+ { 0x03FB, 0x03FC },
+ { 0x0430, 0x045F },
+ { 0x0461, 0x0461 },
+ { 0x0463, 0x0463 },
+ { 0x0465, 0x0465 },
+ { 0x0467, 0x0467 },
+ { 0x0469, 0x0469 },
+ { 0x046B, 0x046B },
+ { 0x046D, 0x046D },
+ { 0x046F, 0x046F },
+ { 0x0471, 0x0471 },
+ { 0x0473, 0x0473 },
+ { 0x0475, 0x0475 },
+ { 0x0477, 0x0477 },
+ { 0x0479, 0x0479 },
+ { 0x047B, 0x047B },
+ { 0x047D, 0x047D },
+ { 0x047F, 0x047F },
+ { 0x0481, 0x0481 },
+ { 0x048B, 0x048B },
+ { 0x048D, 0x048D },
+ { 0x048F, 0x048F },
+ { 0x0491, 0x0491 },
+ { 0x0493, 0x0493 },
+ { 0x0495, 0x0495 },
+ { 0x0497, 0x0497 },
+ { 0x0499, 0x0499 },
+ { 0x049B, 0x049B },
+ { 0x049D, 0x049D },
+ { 0x049F, 0x049F },
+ { 0x04A1, 0x04A1 },
+ { 0x04A3, 0x04A3 },
+ { 0x04A5, 0x04A5 },
+ { 0x04A7, 0x04A7 },
+ { 0x04A9, 0x04A9 },
+ { 0x04AB, 0x04AB },
+ { 0x04AD, 0x04AD },
+ { 0x04AF, 0x04AF },
+ { 0x04B1, 0x04B1 },
+ { 0x04B3, 0x04B3 },
+ { 0x04B5, 0x04B5 },
+ { 0x04B7, 0x04B7 },
+ { 0x04B9, 0x04B9 },
+ { 0x04BB, 0x04BB },
+ { 0x04BD, 0x04BD },
+ { 0x04BF, 0x04BF },
+ { 0x04C2, 0x04C2 },
+ { 0x04C4, 0x04C4 },
+ { 0x04C6, 0x04C6 },
+ { 0x04C8, 0x04C8 },
+ { 0x04CA, 0x04CA },
+ { 0x04CC, 0x04CC },
+ { 0x04CE, 0x04CF },
+ { 0x04D1, 0x04D1 },
+ { 0x04D3, 0x04D3 },
+ { 0x04D5, 0x04D5 },
+ { 0x04D7, 0x04D7 },
+ { 0x04D9, 0x04D9 },
+ { 0x04DB, 0x04DB },
+ { 0x04DD, 0x04DD },
+ { 0x04DF, 0x04DF },
+ { 0x04E1, 0x04E1 },
+ { 0x04E3, 0x04E3 },
+ { 0x04E5, 0x04E5 },
+ { 0x04E7, 0x04E7 },
+ { 0x04E9, 0x04E9 },
+ { 0x04EB, 0x04EB },
+ { 0x04ED, 0x04ED },
+ { 0x04EF, 0x04EF },
+ { 0x04F1, 0x04F1 },
+ { 0x04F3, 0x04F3 },
+ { 0x04F5, 0x04F5 },
+ { 0x04F7, 0x04F7 },
+ { 0x04F9, 0x04F9 },
+ { 0x04FB, 0x04FB },
+ { 0x04FD, 0x04FD },
+ { 0x04FF, 0x04FF },
+ { 0x0501, 0x0501 },
+ { 0x0503, 0x0503 },
+ { 0x0505, 0x0505 },
+ { 0x0507, 0x0507 },
+ { 0x0509, 0x0509 },
+ { 0x050B, 0x050B },
+ { 0x050D, 0x050D },
+ { 0x050F, 0x050F },
+ { 0x0511, 0x0511 },
+ { 0x0513, 0x0513 },
+ { 0x0515, 0x0515 },
+ { 0x0517, 0x0517 },
+ { 0x0519, 0x0519 },
+ { 0x051B, 0x051B },
+ { 0x051D, 0x051D },
+ { 0x051F, 0x051F },
+ { 0x0521, 0x0521 },
+ { 0x0523, 0x0523 },
+ { 0x0561, 0x0587 },
+ { 0x1D00, 0x1DBF },
+ { 0x1E01, 0x1E01 },
+ { 0x1E03, 0x1E03 },
+ { 0x1E05, 0x1E05 },
+ { 0x1E07, 0x1E07 },
+ { 0x1E09, 0x1E09 },
+ { 0x1E0B, 0x1E0B },
+ { 0x1E0D, 0x1E0D },
+ { 0x1E0F, 0x1E0F },
+ { 0x1E11, 0x1E11 },
+ { 0x1E13, 0x1E13 },
+ { 0x1E15, 0x1E15 },
+ { 0x1E17, 0x1E17 },
+ { 0x1E19, 0x1E19 },
+ { 0x1E1B, 0x1E1B },
+ { 0x1E1D, 0x1E1D },
+ { 0x1E1F, 0x1E1F },
+ { 0x1E21, 0x1E21 },
+ { 0x1E23, 0x1E23 },
+ { 0x1E25, 0x1E25 },
+ { 0x1E27, 0x1E27 },
+ { 0x1E29, 0x1E29 },
+ { 0x1E2B, 0x1E2B },
+ { 0x1E2D, 0x1E2D },
+ { 0x1E2F, 0x1E2F },
+ { 0x1E31, 0x1E31 },
+ { 0x1E33, 0x1E33 },
+ { 0x1E35, 0x1E35 },
+ { 0x1E37, 0x1E37 },
+ { 0x1E39, 0x1E39 },
+ { 0x1E3B, 0x1E3B },
+ { 0x1E3D, 0x1E3D },
+ { 0x1E3F, 0x1E3F },
+ { 0x1E41, 0x1E41 },
+ { 0x1E43, 0x1E43 },
+ { 0x1E45, 0x1E45 },
+ { 0x1E47, 0x1E47 },
+ { 0x1E49, 0x1E49 },
+ { 0x1E4B, 0x1E4B },
+ { 0x1E4D, 0x1E4D },
+ { 0x1E4F, 0x1E4F },
+ { 0x1E51, 0x1E51 },
+ { 0x1E53, 0x1E53 },
+ { 0x1E55, 0x1E55 },
+ { 0x1E57, 0x1E57 },
+ { 0x1E59, 0x1E59 },
+ { 0x1E5B, 0x1E5B },
+ { 0x1E5D, 0x1E5D },
+ { 0x1E5F, 0x1E5F },
+ { 0x1E61, 0x1E61 },
+ { 0x1E63, 0x1E63 },
+ { 0x1E65, 0x1E65 },
+ { 0x1E67, 0x1E67 },
+ { 0x1E69, 0x1E69 },
+ { 0x1E6B, 0x1E6B },
+ { 0x1E6D, 0x1E6D },
+ { 0x1E6F, 0x1E6F },
+ { 0x1E71, 0x1E71 },
+ { 0x1E73, 0x1E73 },
+ { 0x1E75, 0x1E75 },
+ { 0x1E77, 0x1E77 },
+ { 0x1E79, 0x1E79 },
+ { 0x1E7B, 0x1E7B },
+ { 0x1E7D, 0x1E7D },
+ { 0x1E7F, 0x1E7F },
+ { 0x1E81, 0x1E81 },
+ { 0x1E83, 0x1E83 },
+ { 0x1E85, 0x1E85 },
+ { 0x1E87, 0x1E87 },
+ { 0x1E89, 0x1E89 },
+ { 0x1E8B, 0x1E8B },
+ { 0x1E8D, 0x1E8D },
+ { 0x1E8F, 0x1E8F },
+ { 0x1E91, 0x1E91 },
+ { 0x1E93, 0x1E93 },
+ { 0x1E95, 0x1E9D },
+ { 0x1E9F, 0x1E9F },
+ { 0x1EA1, 0x1EA1 },
+ { 0x1EA3, 0x1EA3 },
+ { 0x1EA5, 0x1EA5 },
+ { 0x1EA7, 0x1EA7 },
+ { 0x1EA9, 0x1EA9 },
+ { 0x1EAB, 0x1EAB },
+ { 0x1EAD, 0x1EAD },
+ { 0x1EAF, 0x1EAF },
+ { 0x1EB1, 0x1EB1 },
+ { 0x1EB3, 0x1EB3 },
+ { 0x1EB5, 0x1EB5 },
+ { 0x1EB7, 0x1EB7 },
+ { 0x1EB9, 0x1EB9 },
+ { 0x1EBB, 0x1EBB },
+ { 0x1EBD, 0x1EBD },
+ { 0x1EBF, 0x1EBF },
+ { 0x1EC1, 0x1EC1 },
+ { 0x1EC3, 0x1EC3 },
+ { 0x1EC5, 0x1EC5 },
+ { 0x1EC7, 0x1EC7 },
+ { 0x1EC9, 0x1EC9 },
+ { 0x1ECB, 0x1ECB },
+ { 0x1ECD, 0x1ECD },
+ { 0x1ECF, 0x1ECF },
+ { 0x1ED1, 0x1ED1 },
+ { 0x1ED3, 0x1ED3 },
+ { 0x1ED5, 0x1ED5 },
+ { 0x1ED7, 0x1ED7 },
+ { 0x1ED9, 0x1ED9 },
+ { 0x1EDB, 0x1EDB },
+ { 0x1EDD, 0x1EDD },
+ { 0x1EDF, 0x1EDF },
+ { 0x1EE1, 0x1EE1 },
+ { 0x1EE3, 0x1EE3 },
+ { 0x1EE5, 0x1EE5 },
+ { 0x1EE7, 0x1EE7 },
+ { 0x1EE9, 0x1EE9 },
+ { 0x1EEB, 0x1EEB },
+ { 0x1EED, 0x1EED },
+ { 0x1EEF, 0x1EEF },
+ { 0x1EF1, 0x1EF1 },
+ { 0x1EF3, 0x1EF3 },
+ { 0x1EF5, 0x1EF5 },
+ { 0x1EF7, 0x1EF7 },
+ { 0x1EF9, 0x1EF9 },
+ { 0x1EFB, 0x1EFB },
+ { 0x1EFD, 0x1EFD },
+ { 0x1EFF, 0x1F07 },
+ { 0x1F10, 0x1F15 },
+ { 0x1F20, 0x1F27 },
+ { 0x1F30, 0x1F37 },
+ { 0x1F40, 0x1F45 },
+ { 0x1F50, 0x1F57 },
+ { 0x1F60, 0x1F67 },
+ { 0x1F70, 0x1F7D },
+ { 0x1F80, 0x1F87 },
+ { 0x1F90, 0x1F97 },
+ { 0x1FA0, 0x1FA7 },
+ { 0x1FB0, 0x1FB4 },
+ { 0x1FB6, 0x1FB7 },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FC7 },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FD7 },
+ { 0x1FE0, 0x1FE7 },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FF7 },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x210A, 0x210A },
+ { 0x210E, 0x210F },
+ { 0x2113, 0x2113 },
+ { 0x212F, 0x212F },
+ { 0x2134, 0x2134 },
+ { 0x2139, 0x2139 },
+ { 0x213C, 0x213D },
+ { 0x2146, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2170, 0x217F },
+ { 0x2184, 0x2184 },
+ { 0x24D0, 0x24E9 },
+ { 0x2C30, 0x2C5E },
+ { 0x2C61, 0x2C61 },
+ { 0x2C65, 0x2C66 },
+ { 0x2C68, 0x2C68 },
+ { 0x2C6A, 0x2C6A },
+ { 0x2C6C, 0x2C6C },
+ { 0x2C71, 0x2C71 },
+ { 0x2C73, 0x2C74 },
+ { 0x2C76, 0x2C7D },
+ { 0x2C81, 0x2C81 },
+ { 0x2C83, 0x2C83 },
+ { 0x2C85, 0x2C85 },
+ { 0x2C87, 0x2C87 },
+ { 0x2C89, 0x2C89 },
+ { 0x2C8B, 0x2C8B },
+ { 0x2C8D, 0x2C8D },
+ { 0x2C8F, 0x2C8F },
+ { 0x2C91, 0x2C91 },
+ { 0x2C93, 0x2C93 },
+ { 0x2C95, 0x2C95 },
+ { 0x2C97, 0x2C97 },
+ { 0x2C99, 0x2C99 },
+ { 0x2C9B, 0x2C9B },
+ { 0x2C9D, 0x2C9D },
+ { 0x2C9F, 0x2C9F },
+ { 0x2CA1, 0x2CA1 },
+ { 0x2CA3, 0x2CA3 },
+ { 0x2CA5, 0x2CA5 },
+ { 0x2CA7, 0x2CA7 },
+ { 0x2CA9, 0x2CA9 },
+ { 0x2CAB, 0x2CAB },
+ { 0x2CAD, 0x2CAD },
+ { 0x2CAF, 0x2CAF },
+ { 0x2CB1, 0x2CB1 },
+ { 0x2CB3, 0x2CB3 },
+ { 0x2CB5, 0x2CB5 },
+ { 0x2CB7, 0x2CB7 },
+ { 0x2CB9, 0x2CB9 },
+ { 0x2CBB, 0x2CBB },
+ { 0x2CBD, 0x2CBD },
+ { 0x2CBF, 0x2CBF },
+ { 0x2CC1, 0x2CC1 },
+ { 0x2CC3, 0x2CC3 },
+ { 0x2CC5, 0x2CC5 },
+ { 0x2CC7, 0x2CC7 },
+ { 0x2CC9, 0x2CC9 },
+ { 0x2CCB, 0x2CCB },
+ { 0x2CCD, 0x2CCD },
+ { 0x2CCF, 0x2CCF },
+ { 0x2CD1, 0x2CD1 },
+ { 0x2CD3, 0x2CD3 },
+ { 0x2CD5, 0x2CD5 },
+ { 0x2CD7, 0x2CD7 },
+ { 0x2CD9, 0x2CD9 },
+ { 0x2CDB, 0x2CDB },
+ { 0x2CDD, 0x2CDD },
+ { 0x2CDF, 0x2CDF },
+ { 0x2CE1, 0x2CE1 },
+ { 0x2CE3, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0xA641, 0xA641 },
+ { 0xA643, 0xA643 },
+ { 0xA645, 0xA645 },
+ { 0xA647, 0xA647 },
+ { 0xA649, 0xA649 },
+ { 0xA64B, 0xA64B },
+ { 0xA64D, 0xA64D },
+ { 0xA64F, 0xA64F },
+ { 0xA651, 0xA651 },
+ { 0xA653, 0xA653 },
+ { 0xA655, 0xA655 },
+ { 0xA657, 0xA657 },
+ { 0xA659, 0xA659 },
+ { 0xA65B, 0xA65B },
+ { 0xA65D, 0xA65D },
+ { 0xA65F, 0xA65F },
+ { 0xA663, 0xA663 },
+ { 0xA665, 0xA665 },
+ { 0xA667, 0xA667 },
+ { 0xA669, 0xA669 },
+ { 0xA66B, 0xA66B },
+ { 0xA66D, 0xA66D },
+ { 0xA681, 0xA681 },
+ { 0xA683, 0xA683 },
+ { 0xA685, 0xA685 },
+ { 0xA687, 0xA687 },
+ { 0xA689, 0xA689 },
+ { 0xA68B, 0xA68B },
+ { 0xA68D, 0xA68D },
+ { 0xA68F, 0xA68F },
+ { 0xA691, 0xA691 },
+ { 0xA693, 0xA693 },
+ { 0xA695, 0xA695 },
+ { 0xA697, 0xA697 },
+ { 0xA723, 0xA723 },
+ { 0xA725, 0xA725 },
+ { 0xA727, 0xA727 },
+ { 0xA729, 0xA729 },
+ { 0xA72B, 0xA72B },
+ { 0xA72D, 0xA72D },
+ { 0xA72F, 0xA731 },
+ { 0xA733, 0xA733 },
+ { 0xA735, 0xA735 },
+ { 0xA737, 0xA737 },
+ { 0xA739, 0xA739 },
+ { 0xA73B, 0xA73B },
+ { 0xA73D, 0xA73D },
+ { 0xA73F, 0xA73F },
+ { 0xA741, 0xA741 },
+ { 0xA743, 0xA743 },
+ { 0xA745, 0xA745 },
+ { 0xA747, 0xA747 },
+ { 0xA749, 0xA749 },
+ { 0xA74B, 0xA74B },
+ { 0xA74D, 0xA74D },
+ { 0xA74F, 0xA74F },
+ { 0xA751, 0xA751 },
+ { 0xA753, 0xA753 },
+ { 0xA755, 0xA755 },
+ { 0xA757, 0xA757 },
+ { 0xA759, 0xA759 },
+ { 0xA75B, 0xA75B },
+ { 0xA75D, 0xA75D },
+ { 0xA75F, 0xA75F },
+ { 0xA761, 0xA761 },
+ { 0xA763, 0xA763 },
+ { 0xA765, 0xA765 },
+ { 0xA767, 0xA767 },
+ { 0xA769, 0xA769 },
+ { 0xA76B, 0xA76B },
+ { 0xA76D, 0xA76D },
+ { 0xA76F, 0xA778 },
+ { 0xA77A, 0xA77A },
+ { 0xA77C, 0xA77C },
+ { 0xA77F, 0xA77F },
+ { 0xA781, 0xA781 },
+ { 0xA783, 0xA783 },
+ { 0xA785, 0xA785 },
+ { 0xA787, 0xA787 },
+ { 0xA78C, 0xA78C },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFF41, 0xFF5A },
+ { 0x10428, 0x1044F },
+ { 0x1D41A, 0x1D433 },
+ { 0x1D44E, 0x1D454 },
+ { 0x1D456, 0x1D467 },
+ { 0x1D482, 0x1D49B },
+ { 0x1D4B6, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D4CF },
+ { 0x1D4EA, 0x1D503 },
+ { 0x1D51E, 0x1D537 },
+ { 0x1D552, 0x1D56B },
+ { 0x1D586, 0x1D59F },
+ { 0x1D5BA, 0x1D5D3 },
+ { 0x1D5EE, 0x1D607 },
+ { 0x1D622, 0x1D63B },
+ { 0x1D656, 0x1D66F },
+ { 0x1D68A, 0x1D6A5 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6E1 },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D71B },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D755 },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D78F },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7C9 },
+ { 0x1D7CB, 0x1D7CB }
+
+#define PREDICATE(c) uc_is_property_lowercase (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_math.c b/tests/unictype/test-pr_math.c
new file mode 100644
index 0000000..5f25087
--- /dev/null
+++ b/tests/unictype/test-pr_math.c
@@ -0,0 +1,127 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x002B, 0x002B },
+ { 0x003C, 0x003E },
+ { 0x005E, 0x005E },
+ { 0x007C, 0x007C },
+ { 0x007E, 0x007E },
+ { 0x00AC, 0x00AC },
+ { 0x00B1, 0x00B1 },
+ { 0x00D7, 0x00D7 },
+ { 0x00F7, 0x00F7 },
+ { 0x03D0, 0x03D2 },
+ { 0x03D5, 0x03D5 },
+ { 0x03F0, 0x03F1 },
+ { 0x03F4, 0x03F6 },
+ { 0x0606, 0x0608 },
+ { 0x2016, 0x2016 },
+ { 0x2032, 0x2034 },
+ { 0x2040, 0x2040 },
+ { 0x2044, 0x2044 },
+ { 0x2052, 0x2052 },
+ { 0x2061, 0x2064 },
+ { 0x207A, 0x207E },
+ { 0x208A, 0x208E },
+ { 0x20D0, 0x20DC },
+ { 0x20E1, 0x20E1 },
+ { 0x20E5, 0x20E6 },
+ { 0x20EB, 0x20EF },
+ { 0x2102, 0x2102 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2128, 0x2129 },
+ { 0x212C, 0x212D },
+ { 0x212F, 0x2131 },
+ { 0x2133, 0x2138 },
+ { 0x213C, 0x2149 },
+ { 0x214B, 0x214B },
+ { 0x2190, 0x21A7 },
+ { 0x21A9, 0x21AE },
+ { 0x21B0, 0x21B1 },
+ { 0x21B6, 0x21B7 },
+ { 0x21BC, 0x21DB },
+ { 0x21DD, 0x21DD },
+ { 0x21E4, 0x21E5 },
+ { 0x21F4, 0x22FF },
+ { 0x2308, 0x230B },
+ { 0x2320, 0x2321 },
+ { 0x237C, 0x237C },
+ { 0x239B, 0x23B5 },
+ { 0x23B7, 0x23B7 },
+ { 0x23D0, 0x23D0 },
+ { 0x23DC, 0x23E2 },
+ { 0x25A0, 0x25A1 },
+ { 0x25AE, 0x25B7 },
+ { 0x25BC, 0x25C1 },
+ { 0x25C6, 0x25C7 },
+ { 0x25CA, 0x25CB },
+ { 0x25CF, 0x25D3 },
+ { 0x25E2, 0x25E2 },
+ { 0x25E4, 0x25E4 },
+ { 0x25E7, 0x25EC },
+ { 0x25F8, 0x25FF },
+ { 0x2605, 0x2606 },
+ { 0x2640, 0x2640 },
+ { 0x2642, 0x2642 },
+ { 0x2660, 0x2663 },
+ { 0x266D, 0x266F },
+ { 0x27C0, 0x27CA },
+ { 0x27CC, 0x27CC },
+ { 0x27D0, 0x27FF },
+ { 0x2900, 0x2AFF },
+ { 0x2B30, 0x2B44 },
+ { 0x2B47, 0x2B4C },
+ { 0xFB29, 0xFB29 },
+ { 0xFE61, 0xFE66 },
+ { 0xFE68, 0xFE68 },
+ { 0xFF0B, 0xFF0B },
+ { 0xFF1C, 0xFF1E },
+ { 0xFF3C, 0xFF3C },
+ { 0xFF3E, 0xFF3E },
+ { 0xFF5C, 0xFF5C },
+ { 0xFF5E, 0xFF5E },
+ { 0xFFE2, 0xFFE2 },
+ { 0xFFE9, 0xFFEC },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF }
+
+#define PREDICATE(c) uc_is_property_math (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_non_break.c b/tests/unictype/test-pr_non_break.c
new file mode 100644
index 0000000..06794c5
--- /dev/null
+++ b/tests/unictype/test-pr_non_break.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00A0, 0x00A0 },
+ { 0x034F, 0x034F },
+ { 0x035C, 0x0362 },
+ { 0x0F08, 0x0F08 },
+ { 0x0F0C, 0x0F0C },
+ { 0x0F12, 0x0F12 },
+ { 0x180E, 0x180E },
+ { 0x2007, 0x2007 },
+ { 0x2011, 0x2011 },
+ { 0x202F, 0x202F }
+
+#define PREDICATE(c) uc_is_property_non_break (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_not_a_character.c b/tests/unictype/test-pr_not_a_character.c
new file mode 100644
index 0000000..7ce9643
--- /dev/null
+++ b/tests/unictype/test-pr_not_a_character.c
@@ -0,0 +1,40 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0xFDD0, 0xFDEF },
+ { 0xFFFE, 0xFFFF },
+ { 0x1FFFE, 0x1FFFF },
+ { 0x2FFFE, 0x2FFFF },
+ { 0x3FFFE, 0x3FFFF },
+ { 0x4FFFE, 0x4FFFF },
+ { 0x5FFFE, 0x5FFFF },
+ { 0x6FFFE, 0x6FFFF },
+ { 0x7FFFE, 0x7FFFF },
+ { 0x8FFFE, 0x8FFFF },
+ { 0x9FFFE, 0x9FFFF },
+ { 0xAFFFE, 0xAFFFF },
+ { 0xBFFFE, 0xBFFFF },
+ { 0xCFFFE, 0xCFFFF },
+ { 0xDFFFE, 0xDFFFF },
+ { 0xEFFFE, 0xEFFFF },
+ { 0xFFFFE, 0xFFFFF },
+ { 0x10FFFE, 0x10FFFF }
+
+#define PREDICATE(c) uc_is_property_not_a_character (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_numeric.c b/tests/unictype/test-pr_numeric.c
new file mode 100644
index 0000000..4449802
--- /dev/null
+++ b/tests/unictype/test-pr_numeric.c
@@ -0,0 +1,101 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x00B2, 0x00B3 },
+ { 0x00B9, 0x00B9 },
+ { 0x00BC, 0x00BE },
+ { 0x0660, 0x0669 },
+ { 0x06F0, 0x06F9 },
+ { 0x07C0, 0x07C9 },
+ { 0x0966, 0x096F },
+ { 0x09E6, 0x09EF },
+ { 0x09F4, 0x09F9 },
+ { 0x0A66, 0x0A6F },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B66, 0x0B6F },
+ { 0x0BE6, 0x0BF2 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C78, 0x0C7E },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D66, 0x0D75 },
+ { 0x0E50, 0x0E59 },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0F20, 0x0F33 },
+ { 0x1040, 0x1049 },
+ { 0x1090, 0x1099 },
+ { 0x1369, 0x137C },
+ { 0x16EE, 0x16F0 },
+ { 0x17E0, 0x17E9 },
+ { 0x17F0, 0x17F9 },
+ { 0x1810, 0x1819 },
+ { 0x1946, 0x194F },
+ { 0x19D0, 0x19D9 },
+ { 0x1B50, 0x1B59 },
+ { 0x1BB0, 0x1BB9 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C50, 0x1C59 },
+ { 0x2070, 0x2070 },
+ { 0x2074, 0x2079 },
+ { 0x2080, 0x2089 },
+ { 0x2153, 0x2183 },
+ { 0x2185, 0x2188 },
+ { 0x2460, 0x249B },
+ { 0x24EA, 0x24FF },
+ { 0x2776, 0x2793 },
+ { 0x2CFD, 0x2CFD },
+ { 0x3007, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3038, 0x303A },
+ { 0x3192, 0x3195 },
+ { 0x3220, 0x3229 },
+ { 0x3251, 0x325F },
+ { 0x3280, 0x3289 },
+ { 0x32B1, 0x32BF },
+ { 0xA620, 0xA629 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA909 },
+ { 0xAA50, 0xAA59 },
+ { 0xF96B, 0xF96B },
+ { 0xF973, 0xF973 },
+ { 0xF978, 0xF978 },
+ { 0xF9B2, 0xF9B2 },
+ { 0xF9D1, 0xF9D1 },
+ { 0xF9D3, 0xF9D3 },
+ { 0xF9FD, 0xF9FD },
+ { 0xFF10, 0xFF19 },
+ { 0x10107, 0x10133 },
+ { 0x10140, 0x10178 },
+ { 0x1018A, 0x1018A },
+ { 0x10320, 0x10323 },
+ { 0x10341, 0x10341 },
+ { 0x1034A, 0x1034A },
+ { 0x103D1, 0x103D5 },
+ { 0x104A0, 0x104A9 },
+ { 0x10916, 0x10919 },
+ { 0x10A40, 0x10A47 },
+ { 0x12400, 0x12431 },
+ { 0x12434, 0x12455 },
+ { 0x12458, 0x12462 },
+ { 0x1D360, 0x1D371 },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x2F890, 0x2F890 }
+
+#define PREDICATE(c) uc_is_property_numeric (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_alphabetic.c b/tests/unictype/test-pr_other_alphabetic.c
new file mode 100644
index 0000000..f603dee
--- /dev/null
+++ b/tests/unictype/test-pr_other_alphabetic.c
@@ -0,0 +1,144 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0345, 0x0345 },
+ { 0x05B0, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x0610, 0x061A },
+ { 0x064B, 0x0657 },
+ { 0x0659, 0x065E },
+ { 0x0670, 0x0670 },
+ { 0x06D6, 0x06DC },
+ { 0x06E1, 0x06E4 },
+ { 0x06E7, 0x06E8 },
+ { 0x06ED, 0x06ED },
+ { 0x0711, 0x0711 },
+ { 0x0730, 0x073F },
+ { 0x07A6, 0x07B0 },
+ { 0x0901, 0x0903 },
+ { 0x093E, 0x094C },
+ { 0x0962, 0x0963 },
+ { 0x0981, 0x0983 },
+ { 0x09BE, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CC },
+ { 0x09D7, 0x09D7 },
+ { 0x09E2, 0x09E3 },
+ { 0x0A01, 0x0A03 },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4C },
+ { 0x0A51, 0x0A51 },
+ { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0ABE, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACC },
+ { 0x0AE2, 0x0AE3 },
+ { 0x0B01, 0x0B03 },
+ { 0x0B3E, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4C },
+ { 0x0B56, 0x0B57 },
+ { 0x0B62, 0x0B63 },
+ { 0x0B82, 0x0B82 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCC },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0C01, 0x0C03 },
+ { 0x0C3E, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4C },
+ { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 },
+ { 0x0C82, 0x0C83 },
+ { 0x0CBE, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCC },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CE2, 0x0CE3 },
+ { 0x0D02, 0x0D03 },
+ { 0x0D3E, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4C },
+ { 0x0D57, 0x0D57 },
+ { 0x0D62, 0x0D63 },
+ { 0x0D82, 0x0D83 },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF3 },
+ { 0x0E31, 0x0E31 },
+ { 0x0E34, 0x0E3A },
+ { 0x0E4D, 0x0E4D },
+ { 0x0EB1, 0x0EB1 },
+ { 0x0EB4, 0x0EB9 },
+ { 0x0EBB, 0x0EBC },
+ { 0x0ECD, 0x0ECD },
+ { 0x0F71, 0x0F81 },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x102B, 0x1036 },
+ { 0x1038, 0x1038 },
+ { 0x103B, 0x103E },
+ { 0x1056, 0x1059 },
+ { 0x105E, 0x1060 },
+ { 0x1062, 0x1062 },
+ { 0x1067, 0x1068 },
+ { 0x1071, 0x1074 },
+ { 0x1082, 0x1086 },
+ { 0x135F, 0x135F },
+ { 0x1712, 0x1713 },
+ { 0x1732, 0x1733 },
+ { 0x1752, 0x1753 },
+ { 0x1772, 0x1773 },
+ { 0x17B6, 0x17C8 },
+ { 0x18A9, 0x18A9 },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x1938 },
+ { 0x19B0, 0x19C0 },
+ { 0x19C8, 0x19C9 },
+ { 0x1A17, 0x1A1B },
+ { 0x1B00, 0x1B04 },
+ { 0x1B35, 0x1B43 },
+ { 0x1B80, 0x1B82 },
+ { 0x1BA1, 0x1BA9 },
+ { 0x1C24, 0x1C35 },
+ { 0x24B6, 0x24E9 },
+ { 0x2DE0, 0x2DFF },
+ { 0xA823, 0xA827 },
+ { 0xA880, 0xA881 },
+ { 0xA8B4, 0xA8C3 },
+ { 0xA926, 0xA92A },
+ { 0xA947, 0xA952 },
+ { 0xAA29, 0xAA36 },
+ { 0xAA43, 0xAA43 },
+ { 0xAA4C, 0xAA4D },
+ { 0xFB1E, 0xFB1E },
+ { 0x10A01, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A0F }
+
+#define PREDICATE(c) uc_is_property_other_alphabetic (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_default_ignorable_code_point.c b/tests/unictype/test-pr_other_default_ignorable_code_point.c
new file mode 100644
index 0000000..69068aa
--- /dev/null
+++ b/tests/unictype/test-pr_other_default_ignorable_code_point.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x034F, 0x034F },
+ { 0x115F, 0x1160 },
+ { 0x2065, 0x2069 },
+ { 0x3164, 0x3164 },
+ { 0xFFA0, 0xFFA0 },
+ { 0xFFF0, 0xFFF8 },
+ { 0xE0000, 0xE0000 },
+ { 0xE0002, 0xE001F },
+ { 0xE0080, 0xE00FF },
+ { 0xE01F0, 0xE0FFF }
+
+#define PREDICATE(c) uc_is_property_other_default_ignorable_code_point (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_grapheme_extend.c b/tests/unictype/test-pr_other_grapheme_extend.c
new file mode 100644
index 0000000..aff4377
--- /dev/null
+++ b/tests/unictype/test-pr_other_grapheme_extend.c
@@ -0,0 +1,38 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x09BE, 0x09BE },
+ { 0x09D7, 0x09D7 },
+ { 0x0B3E, 0x0B3E },
+ { 0x0B57, 0x0B57 },
+ { 0x0BBE, 0x0BBE },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0CC2, 0x0CC2 },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0D3E, 0x0D3E },
+ { 0x0D57, 0x0D57 },
+ { 0x0DCF, 0x0DCF },
+ { 0x0DDF, 0x0DDF },
+ { 0x200C, 0x200D },
+ { 0xFF9E, 0xFF9F },
+ { 0x1D165, 0x1D165 },
+ { 0x1D16E, 0x1D172 }
+
+#define PREDICATE(c) uc_is_property_other_grapheme_extend (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_id_continue.c b/tests/unictype/test-pr_other_id_continue.c
new file mode 100644
index 0000000..b30a7df
--- /dev/null
+++ b/tests/unictype/test-pr_other_id_continue.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00B7, 0x00B7 },
+ { 0x0387, 0x0387 },
+ { 0x1369, 0x1371 }
+
+#define PREDICATE(c) uc_is_property_other_id_continue (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_id_start.c b/tests/unictype/test-pr_other_id_start.c
new file mode 100644
index 0000000..d1cc5f0
--- /dev/null
+++ b/tests/unictype/test-pr_other_id_start.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2118, 0x2118 },
+ { 0x212E, 0x212E },
+ { 0x309B, 0x309C }
+
+#define PREDICATE(c) uc_is_property_other_id_start (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_lowercase.c b/tests/unictype/test-pr_other_lowercase.c
new file mode 100644
index 0000000..a2810dc
--- /dev/null
+++ b/tests/unictype/test-pr_other_lowercase.c
@@ -0,0 +1,35 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x02B0, 0x02B8 },
+ { 0x02C0, 0x02C1 },
+ { 0x02E0, 0x02E4 },
+ { 0x0345, 0x0345 },
+ { 0x037A, 0x037A },
+ { 0x1D2C, 0x1D61 },
+ { 0x1D78, 0x1D78 },
+ { 0x1D9B, 0x1DBF },
+ { 0x2090, 0x2094 },
+ { 0x2170, 0x217F },
+ { 0x24D0, 0x24E9 },
+ { 0x2C7D, 0x2C7D },
+ { 0xA770, 0xA770 }
+
+#define PREDICATE(c) uc_is_property_other_lowercase (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_math.c b/tests/unictype/test-pr_other_math.c
new file mode 100644
index 0000000..b563303
--- /dev/null
+++ b/tests/unictype/test-pr_other_math.c
@@ -0,0 +1,121 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x005E, 0x005E },
+ { 0x03D0, 0x03D2 },
+ { 0x03D5, 0x03D5 },
+ { 0x03F0, 0x03F1 },
+ { 0x03F4, 0x03F5 },
+ { 0x2016, 0x2016 },
+ { 0x2032, 0x2034 },
+ { 0x2040, 0x2040 },
+ { 0x2061, 0x2064 },
+ { 0x207D, 0x207E },
+ { 0x208D, 0x208E },
+ { 0x20D0, 0x20DC },
+ { 0x20E1, 0x20E1 },
+ { 0x20E5, 0x20E6 },
+ { 0x20EB, 0x20EF },
+ { 0x2102, 0x2102 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2128, 0x2129 },
+ { 0x212C, 0x212D },
+ { 0x212F, 0x2131 },
+ { 0x2133, 0x2138 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x2195, 0x2199 },
+ { 0x219C, 0x219F },
+ { 0x21A1, 0x21A2 },
+ { 0x21A4, 0x21A5 },
+ { 0x21A7, 0x21A7 },
+ { 0x21A9, 0x21AD },
+ { 0x21B0, 0x21B1 },
+ { 0x21B6, 0x21B7 },
+ { 0x21BC, 0x21CD },
+ { 0x21D0, 0x21D1 },
+ { 0x21D3, 0x21D3 },
+ { 0x21D5, 0x21DB },
+ { 0x21DD, 0x21DD },
+ { 0x21E4, 0x21E5 },
+ { 0x23B4, 0x23B5 },
+ { 0x23B7, 0x23B7 },
+ { 0x23D0, 0x23D0 },
+ { 0x23E2, 0x23E2 },
+ { 0x25A0, 0x25A1 },
+ { 0x25AE, 0x25B6 },
+ { 0x25BC, 0x25C0 },
+ { 0x25C6, 0x25C7 },
+ { 0x25CA, 0x25CB },
+ { 0x25CF, 0x25D3 },
+ { 0x25E2, 0x25E2 },
+ { 0x25E4, 0x25E4 },
+ { 0x25E7, 0x25EC },
+ { 0x2605, 0x2606 },
+ { 0x2640, 0x2640 },
+ { 0x2642, 0x2642 },
+ { 0x2660, 0x2663 },
+ { 0x266D, 0x266E },
+ { 0x27C5, 0x27C6 },
+ { 0x27E6, 0x27EF },
+ { 0x2983, 0x2998 },
+ { 0x29D8, 0x29DB },
+ { 0x29FC, 0x29FD },
+ { 0xFE61, 0xFE61 },
+ { 0xFE63, 0xFE63 },
+ { 0xFE68, 0xFE68 },
+ { 0xFF3C, 0xFF3C },
+ { 0xFF3E, 0xFF3E },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF }
+
+#define PREDICATE(c) uc_is_property_other_math (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_other_uppercase.c b/tests/unictype/test-pr_other_uppercase.c
new file mode 100644
index 0000000..a98cb44
--- /dev/null
+++ b/tests/unictype/test-pr_other_uppercase.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2160, 0x216F },
+ { 0x24B6, 0x24CF }
+
+#define PREDICATE(c) uc_is_property_other_uppercase (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_paired_punctuation.c b/tests/unictype/test-pr_paired_punctuation.c
new file mode 100644
index 0000000..3df878c
--- /dev/null
+++ b/tests/unictype/test-pr_paired_punctuation.c
@@ -0,0 +1,49 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0028, 0x0029 },
+ { 0x005B, 0x005B },
+ { 0x005D, 0x005D },
+ { 0x007B, 0x007B },
+ { 0x007D, 0x007D },
+ { 0x00AB, 0x00AB },
+ { 0x00BB, 0x00BB },
+ { 0x0F3A, 0x0F3D },
+ { 0x169B, 0x169C },
+ { 0x2018, 0x201F },
+ { 0x2039, 0x203A },
+ { 0x2045, 0x2046 },
+ { 0x207D, 0x207E },
+ { 0x208D, 0x208E },
+ { 0x2329, 0x232A },
+ { 0x3008, 0x3011 },
+ { 0x3014, 0x301B },
+ { 0x301D, 0x301F },
+ { 0xFD3E, 0xFD3F },
+ { 0xFE35, 0xFE44 },
+ { 0xFE59, 0xFE5E },
+ { 0xFF08, 0xFF09 },
+ { 0xFF3B, 0xFF3B },
+ { 0xFF3D, 0xFF3D },
+ { 0xFF5B, 0xFF5B },
+ { 0xFF5D, 0xFF5D },
+ { 0xFF62, 0xFF63 }
+
+#define PREDICATE(c) uc_is_property_paired_punctuation (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_paragraph_separator.c b/tests/unictype/test-pr_paragraph_separator.c
new file mode 100644
index 0000000..dca0b19
--- /dev/null
+++ b/tests/unictype/test-pr_paragraph_separator.c
@@ -0,0 +1,23 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2029, 0x2029 }
+
+#define PREDICATE(c) uc_is_property_paragraph_separator (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_pattern_syntax.c b/tests/unictype/test-pr_pattern_syntax.c
new file mode 100644
index 0000000..40a056b
--- /dev/null
+++ b/tests/unictype/test-pr_pattern_syntax.c
@@ -0,0 +1,50 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x002F },
+ { 0x003A, 0x0040 },
+ { 0x005B, 0x005E },
+ { 0x0060, 0x0060 },
+ { 0x007B, 0x007E },
+ { 0x00A1, 0x00A7 },
+ { 0x00A9, 0x00A9 },
+ { 0x00AB, 0x00AC },
+ { 0x00AE, 0x00AE },
+ { 0x00B0, 0x00B1 },
+ { 0x00B6, 0x00B6 },
+ { 0x00BB, 0x00BB },
+ { 0x00BF, 0x00BF },
+ { 0x00D7, 0x00D7 },
+ { 0x00F7, 0x00F7 },
+ { 0x2010, 0x2027 },
+ { 0x2030, 0x203E },
+ { 0x2041, 0x2053 },
+ { 0x2055, 0x205E },
+ { 0x2190, 0x245F },
+ { 0x2500, 0x2775 },
+ { 0x2794, 0x2BFF },
+ { 0x2E00, 0x2E7F },
+ { 0x3001, 0x3003 },
+ { 0x3008, 0x3020 },
+ { 0x3030, 0x3030 },
+ { 0xFD3E, 0xFD3F },
+ { 0xFE45, 0xFE46 }
+
+#define PREDICATE(c) uc_is_property_pattern_syntax (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_pattern_white_space.c b/tests/unictype/test-pr_pattern_white_space.c
new file mode 100644
index 0000000..347cb0b
--- /dev/null
+++ b/tests/unictype/test-pr_pattern_white_space.c
@@ -0,0 +1,27 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0009, 0x000D },
+ { 0x0020, 0x0020 },
+ { 0x0085, 0x0085 },
+ { 0x200E, 0x200F },
+ { 0x2028, 0x2029 }
+
+#define PREDICATE(c) uc_is_property_pattern_white_space (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_private_use.c b/tests/unictype/test-pr_private_use.c
new file mode 100644
index 0000000..6cfa192
--- /dev/null
+++ b/tests/unictype/test-pr_private_use.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0xE000, 0xF8FF },
+ { 0xF0000, 0xFFFFD },
+ { 0x100000, 0x10FFFD }
+
+#define PREDICATE(c) uc_is_property_private_use (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_punctuation.c b/tests/unictype/test-pr_punctuation.c
new file mode 100644
index 0000000..936e62c
--- /dev/null
+++ b/tests/unictype/test-pr_punctuation.c
@@ -0,0 +1,134 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x0023 },
+ { 0x0025, 0x002A },
+ { 0x002C, 0x002F },
+ { 0x003A, 0x003B },
+ { 0x003F, 0x0040 },
+ { 0x005B, 0x005D },
+ { 0x005F, 0x005F },
+ { 0x007B, 0x007B },
+ { 0x007D, 0x007D },
+ { 0x00A1, 0x00A1 },
+ { 0x00AB, 0x00AB },
+ { 0x00B7, 0x00B7 },
+ { 0x00BB, 0x00BB },
+ { 0x00BF, 0x00BF },
+ { 0x037E, 0x037E },
+ { 0x0387, 0x0387 },
+ { 0x055A, 0x055F },
+ { 0x0589, 0x058A },
+ { 0x05BE, 0x05BE },
+ { 0x05C0, 0x05C0 },
+ { 0x05C3, 0x05C3 },
+ { 0x05C6, 0x05C6 },
+ { 0x05F3, 0x05F4 },
+ { 0x0609, 0x060A },
+ { 0x060C, 0x060D },
+ { 0x061B, 0x061B },
+ { 0x061E, 0x061F },
+ { 0x066A, 0x066D },
+ { 0x06D4, 0x06D4 },
+ { 0x0700, 0x070D },
+ { 0x07F7, 0x07F9 },
+ { 0x0964, 0x0965 },
+ { 0x0970, 0x0970 },
+ { 0x0DF4, 0x0DF4 },
+ { 0x0E4F, 0x0E4F },
+ { 0x0E5A, 0x0E5B },
+ { 0x0F04, 0x0F12 },
+ { 0x0F3A, 0x0F3D },
+ { 0x0F85, 0x0F85 },
+ { 0x0FD0, 0x0FD4 },
+ { 0x104A, 0x104F },
+ { 0x10FB, 0x10FB },
+ { 0x1361, 0x1368 },
+ { 0x166D, 0x166E },
+ { 0x169B, 0x169C },
+ { 0x16EB, 0x16ED },
+ { 0x1735, 0x1736 },
+ { 0x17D4, 0x17D6 },
+ { 0x17D8, 0x17DA },
+ { 0x1800, 0x180A },
+ { 0x1944, 0x1945 },
+ { 0x19DE, 0x19DF },
+ { 0x1A1E, 0x1A1F },
+ { 0x1B5A, 0x1B60 },
+ { 0x1C3B, 0x1C3F },
+ { 0x1C7E, 0x1C7F },
+ { 0x2010, 0x2027 },
+ { 0x2030, 0x2043 },
+ { 0x2045, 0x2051 },
+ { 0x2053, 0x205E },
+ { 0x207D, 0x207E },
+ { 0x208D, 0x208E },
+ { 0x2329, 0x232A },
+ { 0x2768, 0x2775 },
+ { 0x27C5, 0x27C6 },
+ { 0x27E6, 0x27EF },
+ { 0x2983, 0x2998 },
+ { 0x29D8, 0x29DB },
+ { 0x29FC, 0x29FD },
+ { 0x2CF9, 0x2CFC },
+ { 0x2CFE, 0x2CFF },
+ { 0x2E00, 0x2E2E },
+ { 0x2E30, 0x2E30 },
+ { 0x3001, 0x3003 },
+ { 0x3008, 0x3011 },
+ { 0x3014, 0x301F },
+ { 0x3030, 0x3030 },
+ { 0x303D, 0x303D },
+ { 0x30A0, 0x30A0 },
+ { 0x30FB, 0x30FB },
+ { 0xA60D, 0xA60F },
+ { 0xA673, 0xA673 },
+ { 0xA67E, 0xA67E },
+ { 0xA874, 0xA877 },
+ { 0xA8CE, 0xA8CF },
+ { 0xA92E, 0xA92F },
+ { 0xA95F, 0xA95F },
+ { 0xAA5C, 0xAA5F },
+ { 0xFD3E, 0xFD3F },
+ { 0xFE10, 0xFE19 },
+ { 0xFE30, 0xFE52 },
+ { 0xFE54, 0xFE61 },
+ { 0xFE63, 0xFE63 },
+ { 0xFE68, 0xFE68 },
+ { 0xFE6A, 0xFE6B },
+ { 0xFF01, 0xFF03 },
+ { 0xFF05, 0xFF0A },
+ { 0xFF0C, 0xFF0F },
+ { 0xFF1A, 0xFF1B },
+ { 0xFF1F, 0xFF20 },
+ { 0xFF3B, 0xFF3D },
+ { 0xFF3F, 0xFF3F },
+ { 0xFF5B, 0xFF5B },
+ { 0xFF5D, 0xFF5D },
+ { 0xFF5F, 0xFF65 },
+ { 0x10100, 0x10101 },
+ { 0x1039F, 0x1039F },
+ { 0x103D0, 0x103D0 },
+ { 0x1091F, 0x1091F },
+ { 0x1093F, 0x1093F },
+ { 0x10A50, 0x10A58 },
+ { 0x12470, 0x12473 }
+
+#define PREDICATE(c) uc_is_property_punctuation (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_quotation_mark.c b/tests/unictype/test-pr_quotation_mark.c
new file mode 100644
index 0000000..e592463
--- /dev/null
+++ b/tests/unictype/test-pr_quotation_mark.c
@@ -0,0 +1,34 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0022, 0x0022 },
+ { 0x0027, 0x0027 },
+ { 0x00AB, 0x00AB },
+ { 0x00BB, 0x00BB },
+ { 0x2018, 0x201F },
+ { 0x2039, 0x203A },
+ { 0x300C, 0x300F },
+ { 0x301D, 0x301F },
+ { 0xFE41, 0xFE44 },
+ { 0xFF02, 0xFF02 },
+ { 0xFF07, 0xFF07 },
+ { 0xFF62, 0xFF63 }
+
+#define PREDICATE(c) uc_is_property_quotation_mark (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_radical.c b/tests/unictype/test-pr_radical.c
new file mode 100644
index 0000000..23c3026
--- /dev/null
+++ b/tests/unictype/test-pr_radical.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x2E80, 0x2E99 },
+ { 0x2E9B, 0x2EF3 },
+ { 0x2F00, 0x2FD5 }
+
+#define PREDICATE(c) uc_is_property_radical (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_sentence_terminal.c b/tests/unictype/test-pr_sentence_terminal.c
new file mode 100644
index 0000000..107649e
--- /dev/null
+++ b/tests/unictype/test-pr_sentence_terminal.c
@@ -0,0 +1,59 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x0021 },
+ { 0x002E, 0x002E },
+ { 0x003F, 0x003F },
+ { 0x055C, 0x055C },
+ { 0x055E, 0x055E },
+ { 0x0589, 0x0589 },
+ { 0x061F, 0x061F },
+ { 0x06D4, 0x06D4 },
+ { 0x0700, 0x0702 },
+ { 0x07F9, 0x07F9 },
+ { 0x0964, 0x0965 },
+ { 0x104A, 0x104B },
+ { 0x1362, 0x1362 },
+ { 0x1367, 0x1368 },
+ { 0x166E, 0x166E },
+ { 0x1803, 0x1803 },
+ { 0x1809, 0x1809 },
+ { 0x1944, 0x1945 },
+ { 0x1B5A, 0x1B5B },
+ { 0x1B5E, 0x1B5F },
+ { 0x1C3B, 0x1C3C },
+ { 0x1C7E, 0x1C7F },
+ { 0x203C, 0x203D },
+ { 0x2047, 0x2049 },
+ { 0x2E2E, 0x2E2E },
+ { 0x3002, 0x3002 },
+ { 0xA60E, 0xA60F },
+ { 0xA876, 0xA877 },
+ { 0xA8CE, 0xA8CF },
+ { 0xA92F, 0xA92F },
+ { 0xAA5D, 0xAA5F },
+ { 0xFE52, 0xFE52 },
+ { 0xFE56, 0xFE57 },
+ { 0xFF01, 0xFF01 },
+ { 0xFF0E, 0xFF0E },
+ { 0xFF1F, 0xFF1F },
+ { 0xFF61, 0xFF61 }
+
+#define PREDICATE(c) uc_is_property_sentence_terminal (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_soft_dotted.c b/tests/unictype/test-pr_soft_dotted.c
new file mode 100644
index 0000000..ad8b0fb
--- /dev/null
+++ b/tests/unictype/test-pr_soft_dotted.c
@@ -0,0 +1,53 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0069, 0x006A },
+ { 0x012F, 0x012F },
+ { 0x0249, 0x0249 },
+ { 0x0268, 0x0268 },
+ { 0x029D, 0x029D },
+ { 0x02B2, 0x02B2 },
+ { 0x03F3, 0x03F3 },
+ { 0x0456, 0x0456 },
+ { 0x0458, 0x0458 },
+ { 0x1D62, 0x1D62 },
+ { 0x1D96, 0x1D96 },
+ { 0x1DA4, 0x1DA4 },
+ { 0x1DA8, 0x1DA8 },
+ { 0x1E2D, 0x1E2D },
+ { 0x1ECB, 0x1ECB },
+ { 0x2071, 0x2071 },
+ { 0x2148, 0x2149 },
+ { 0x2C7C, 0x2C7C },
+ { 0x1D422, 0x1D423 },
+ { 0x1D456, 0x1D457 },
+ { 0x1D48A, 0x1D48B },
+ { 0x1D4BE, 0x1D4BF },
+ { 0x1D4F2, 0x1D4F3 },
+ { 0x1D526, 0x1D527 },
+ { 0x1D55A, 0x1D55B },
+ { 0x1D58E, 0x1D58F },
+ { 0x1D5C2, 0x1D5C3 },
+ { 0x1D5F6, 0x1D5F7 },
+ { 0x1D62A, 0x1D62B },
+ { 0x1D65E, 0x1D65F },
+ { 0x1D692, 0x1D693 }
+
+#define PREDICATE(c) uc_is_property_soft_dotted (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_space.c b/tests/unictype/test-pr_space.c
new file mode 100644
index 0000000..64a3e72
--- /dev/null
+++ b/tests/unictype/test-pr_space.c
@@ -0,0 +1,30 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0020, 0x0020 },
+ { 0x00A0, 0x00A0 },
+ { 0x1680, 0x1680 },
+ { 0x180E, 0x180E },
+ { 0x2000, 0x200A },
+ { 0x202F, 0x202F },
+ { 0x205F, 0x205F },
+ { 0x3000, 0x3000 }
+
+#define PREDICATE(c) uc_is_property_space (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_terminal_punctuation.c b/tests/unictype/test-pr_terminal_punctuation.c
new file mode 100644
index 0000000..3ded06d
--- /dev/null
+++ b/tests/unictype/test-pr_terminal_punctuation.c
@@ -0,0 +1,77 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0021, 0x0021 },
+ { 0x002C, 0x002C },
+ { 0x002E, 0x002E },
+ { 0x003A, 0x003B },
+ { 0x003F, 0x003F },
+ { 0x037E, 0x037E },
+ { 0x0387, 0x0387 },
+ { 0x0589, 0x0589 },
+ { 0x05C3, 0x05C3 },
+ { 0x060C, 0x060C },
+ { 0x061B, 0x061B },
+ { 0x061F, 0x061F },
+ { 0x06D4, 0x06D4 },
+ { 0x0700, 0x070A },
+ { 0x070C, 0x070C },
+ { 0x07F8, 0x07F9 },
+ { 0x0964, 0x0965 },
+ { 0x0E5A, 0x0E5B },
+ { 0x0F08, 0x0F08 },
+ { 0x0F0D, 0x0F12 },
+ { 0x104A, 0x104B },
+ { 0x1361, 0x1368 },
+ { 0x166D, 0x166E },
+ { 0x16EB, 0x16ED },
+ { 0x17D4, 0x17D6 },
+ { 0x17DA, 0x17DA },
+ { 0x1802, 0x1805 },
+ { 0x1808, 0x1809 },
+ { 0x1944, 0x1945 },
+ { 0x1B5A, 0x1B5B },
+ { 0x1B5D, 0x1B5F },
+ { 0x1C3B, 0x1C3F },
+ { 0x1C7E, 0x1C7F },
+ { 0x203C, 0x203D },
+ { 0x2047, 0x2049 },
+ { 0x2E2E, 0x2E2E },
+ { 0x3001, 0x3002 },
+ { 0xA60D, 0xA60F },
+ { 0xA876, 0xA877 },
+ { 0xA8CE, 0xA8CF },
+ { 0xA92F, 0xA92F },
+ { 0xAA5D, 0xAA5F },
+ { 0xFE50, 0xFE52 },
+ { 0xFE54, 0xFE57 },
+ { 0xFF01, 0xFF01 },
+ { 0xFF0C, 0xFF0C },
+ { 0xFF0E, 0xFF0E },
+ { 0xFF1A, 0xFF1B },
+ { 0xFF1F, 0xFF1F },
+ { 0xFF61, 0xFF61 },
+ { 0xFF64, 0xFF64 },
+ { 0x1039F, 0x1039F },
+ { 0x103D0, 0x103D0 },
+ { 0x1091F, 0x1091F },
+ { 0x12470, 0x12473 }
+
+#define PREDICATE(c) uc_is_property_terminal_punctuation (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_test.c b/tests/unictype/test-pr_test.c
new file mode 100644
index 0000000..388ae00
--- /dev/null
+++ b/tests/unictype/test-pr_test.c
@@ -0,0 +1,47 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ uc_property_t pr = UC_PROPERTY_COMPOSITE;
+ unsigned int c;
+
+ for (c = 0; c < 0x110000; c++)
+ ASSERT (uc_is_property (c, pr) == uc_is_property_composite (c));
+
+ return 0;
+}
diff --git a/tests/unictype/test-pr_titlecase.c b/tests/unictype/test-pr_titlecase.c
new file mode 100644
index 0000000..1004386
--- /dev/null
+++ b/tests/unictype/test-pr_titlecase.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x01C5, 0x01C5 },
+ { 0x01C8, 0x01C8 },
+ { 0x01CB, 0x01CB },
+ { 0x01F2, 0x01F2 },
+ { 0x1F88, 0x1F8F },
+ { 0x1F98, 0x1F9F },
+ { 0x1FA8, 0x1FAF },
+ { 0x1FBC, 0x1FBC },
+ { 0x1FCC, 0x1FCC },
+ { 0x1FFC, 0x1FFC }
+
+#define PREDICATE(c) uc_is_property_titlecase (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_unassigned_code_value.c b/tests/unictype/test-pr_unassigned_code_value.c
new file mode 100644
index 0000000..91bd161
--- /dev/null
+++ b/tests/unictype/test-pr_unassigned_code_value.c
@@ -0,0 +1,476 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0378, 0x0379 },
+ { 0x037F, 0x0383 },
+ { 0x038B, 0x038B },
+ { 0x038D, 0x038D },
+ { 0x03A2, 0x03A2 },
+ { 0x0524, 0x0530 },
+ { 0x0557, 0x0558 },
+ { 0x0560, 0x0560 },
+ { 0x0588, 0x0588 },
+ { 0x058B, 0x0590 },
+ { 0x05C8, 0x05CF },
+ { 0x05EB, 0x05EF },
+ { 0x05F5, 0x05FF },
+ { 0x0604, 0x0605 },
+ { 0x061C, 0x061D },
+ { 0x0620, 0x0620 },
+ { 0x065F, 0x065F },
+ { 0x070E, 0x070E },
+ { 0x074B, 0x074C },
+ { 0x07B2, 0x07BF },
+ { 0x07FB, 0x0900 },
+ { 0x093A, 0x093B },
+ { 0x094E, 0x094F },
+ { 0x0955, 0x0957 },
+ { 0x0973, 0x097A },
+ { 0x0980, 0x0980 },
+ { 0x0984, 0x0984 },
+ { 0x098D, 0x098E },
+ { 0x0991, 0x0992 },
+ { 0x09A9, 0x09A9 },
+ { 0x09B1, 0x09B1 },
+ { 0x09B3, 0x09B5 },
+ { 0x09BA, 0x09BB },
+ { 0x09C5, 0x09C6 },
+ { 0x09C9, 0x09CA },
+ { 0x09CF, 0x09D6 },
+ { 0x09D8, 0x09DB },
+ { 0x09DE, 0x09DE },
+ { 0x09E4, 0x09E5 },
+ { 0x09FB, 0x0A00 },
+ { 0x0A04, 0x0A04 },
+ { 0x0A0B, 0x0A0E },
+ { 0x0A11, 0x0A12 },
+ { 0x0A29, 0x0A29 },
+ { 0x0A31, 0x0A31 },
+ { 0x0A34, 0x0A34 },
+ { 0x0A37, 0x0A37 },
+ { 0x0A3A, 0x0A3B },
+ { 0x0A3D, 0x0A3D },
+ { 0x0A43, 0x0A46 },
+ { 0x0A49, 0x0A4A },
+ { 0x0A4E, 0x0A50 },
+ { 0x0A52, 0x0A58 },
+ { 0x0A5D, 0x0A5D },
+ { 0x0A5F, 0x0A65 },
+ { 0x0A76, 0x0A80 },
+ { 0x0A84, 0x0A84 },
+ { 0x0A8E, 0x0A8E },
+ { 0x0A92, 0x0A92 },
+ { 0x0AA9, 0x0AA9 },
+ { 0x0AB1, 0x0AB1 },
+ { 0x0AB4, 0x0AB4 },
+ { 0x0ABA, 0x0ABB },
+ { 0x0AC6, 0x0AC6 },
+ { 0x0ACA, 0x0ACA },
+ { 0x0ACE, 0x0ACF },
+ { 0x0AD1, 0x0ADF },
+ { 0x0AE4, 0x0AE5 },
+ { 0x0AF0, 0x0AF0 },
+ { 0x0AF2, 0x0B00 },
+ { 0x0B04, 0x0B04 },
+ { 0x0B0D, 0x0B0E },
+ { 0x0B11, 0x0B12 },
+ { 0x0B29, 0x0B29 },
+ { 0x0B31, 0x0B31 },
+ { 0x0B34, 0x0B34 },
+ { 0x0B3A, 0x0B3B },
+ { 0x0B45, 0x0B46 },
+ { 0x0B49, 0x0B4A },
+ { 0x0B4E, 0x0B55 },
+ { 0x0B58, 0x0B5B },
+ { 0x0B5E, 0x0B5E },
+ { 0x0B64, 0x0B65 },
+ { 0x0B72, 0x0B81 },
+ { 0x0B84, 0x0B84 },
+ { 0x0B8B, 0x0B8D },
+ { 0x0B91, 0x0B91 },
+ { 0x0B96, 0x0B98 },
+ { 0x0B9B, 0x0B9B },
+ { 0x0B9D, 0x0B9D },
+ { 0x0BA0, 0x0BA2 },
+ { 0x0BA5, 0x0BA7 },
+ { 0x0BAB, 0x0BAD },
+ { 0x0BBA, 0x0BBD },
+ { 0x0BC3, 0x0BC5 },
+ { 0x0BC9, 0x0BC9 },
+ { 0x0BCE, 0x0BCF },
+ { 0x0BD1, 0x0BD6 },
+ { 0x0BD8, 0x0BE5 },
+ { 0x0BFB, 0x0C00 },
+ { 0x0C04, 0x0C04 },
+ { 0x0C0D, 0x0C0D },
+ { 0x0C11, 0x0C11 },
+ { 0x0C29, 0x0C29 },
+ { 0x0C34, 0x0C34 },
+ { 0x0C3A, 0x0C3C },
+ { 0x0C45, 0x0C45 },
+ { 0x0C49, 0x0C49 },
+ { 0x0C4E, 0x0C54 },
+ { 0x0C57, 0x0C57 },
+ { 0x0C5A, 0x0C5F },
+ { 0x0C64, 0x0C65 },
+ { 0x0C70, 0x0C77 },
+ { 0x0C80, 0x0C81 },
+ { 0x0C84, 0x0C84 },
+ { 0x0C8D, 0x0C8D },
+ { 0x0C91, 0x0C91 },
+ { 0x0CA9, 0x0CA9 },
+ { 0x0CB4, 0x0CB4 },
+ { 0x0CBA, 0x0CBB },
+ { 0x0CC5, 0x0CC5 },
+ { 0x0CC9, 0x0CC9 },
+ { 0x0CCE, 0x0CD4 },
+ { 0x0CD7, 0x0CDD },
+ { 0x0CDF, 0x0CDF },
+ { 0x0CE4, 0x0CE5 },
+ { 0x0CF0, 0x0CF0 },
+ { 0x0CF3, 0x0D01 },
+ { 0x0D04, 0x0D04 },
+ { 0x0D0D, 0x0D0D },
+ { 0x0D11, 0x0D11 },
+ { 0x0D29, 0x0D29 },
+ { 0x0D3A, 0x0D3C },
+ { 0x0D45, 0x0D45 },
+ { 0x0D49, 0x0D49 },
+ { 0x0D4E, 0x0D56 },
+ { 0x0D58, 0x0D5F },
+ { 0x0D64, 0x0D65 },
+ { 0x0D76, 0x0D78 },
+ { 0x0D80, 0x0D81 },
+ { 0x0D84, 0x0D84 },
+ { 0x0D97, 0x0D99 },
+ { 0x0DB2, 0x0DB2 },
+ { 0x0DBC, 0x0DBC },
+ { 0x0DBE, 0x0DBF },
+ { 0x0DC7, 0x0DC9 },
+ { 0x0DCB, 0x0DCE },
+ { 0x0DD5, 0x0DD5 },
+ { 0x0DD7, 0x0DD7 },
+ { 0x0DE0, 0x0DF1 },
+ { 0x0DF5, 0x0E00 },
+ { 0x0E3B, 0x0E3E },
+ { 0x0E5C, 0x0E80 },
+ { 0x0E83, 0x0E83 },
+ { 0x0E85, 0x0E86 },
+ { 0x0E89, 0x0E89 },
+ { 0x0E8B, 0x0E8C },
+ { 0x0E8E, 0x0E93 },
+ { 0x0E98, 0x0E98 },
+ { 0x0EA0, 0x0EA0 },
+ { 0x0EA4, 0x0EA4 },
+ { 0x0EA6, 0x0EA6 },
+ { 0x0EA8, 0x0EA9 },
+ { 0x0EAC, 0x0EAC },
+ { 0x0EBA, 0x0EBA },
+ { 0x0EBE, 0x0EBF },
+ { 0x0EC5, 0x0EC5 },
+ { 0x0EC7, 0x0EC7 },
+ { 0x0ECE, 0x0ECF },
+ { 0x0EDA, 0x0EDB },
+ { 0x0EDE, 0x0EFF },
+ { 0x0F48, 0x0F48 },
+ { 0x0F6D, 0x0F70 },
+ { 0x0F8C, 0x0F8F },
+ { 0x0F98, 0x0F98 },
+ { 0x0FBD, 0x0FBD },
+ { 0x0FCD, 0x0FCD },
+ { 0x0FD5, 0x0FFF },
+ { 0x109A, 0x109D },
+ { 0x10C6, 0x10CF },
+ { 0x10FD, 0x10FF },
+ { 0x115A, 0x115E },
+ { 0x11A3, 0x11A7 },
+ { 0x11FA, 0x11FF },
+ { 0x1249, 0x1249 },
+ { 0x124E, 0x124F },
+ { 0x1257, 0x1257 },
+ { 0x1259, 0x1259 },
+ { 0x125E, 0x125F },
+ { 0x1289, 0x1289 },
+ { 0x128E, 0x128F },
+ { 0x12B1, 0x12B1 },
+ { 0x12B6, 0x12B7 },
+ { 0x12BF, 0x12BF },
+ { 0x12C1, 0x12C1 },
+ { 0x12C6, 0x12C7 },
+ { 0x12D7, 0x12D7 },
+ { 0x1311, 0x1311 },
+ { 0x1316, 0x1317 },
+ { 0x135B, 0x135E },
+ { 0x137D, 0x137F },
+ { 0x139A, 0x139F },
+ { 0x13F5, 0x1400 },
+ { 0x1677, 0x167F },
+ { 0x169D, 0x169F },
+ { 0x16F1, 0x16FF },
+ { 0x170D, 0x170D },
+ { 0x1715, 0x171F },
+ { 0x1737, 0x173F },
+ { 0x1754, 0x175F },
+ { 0x176D, 0x176D },
+ { 0x1771, 0x1771 },
+ { 0x1774, 0x177F },
+ { 0x17DE, 0x17DF },
+ { 0x17EA, 0x17EF },
+ { 0x17FA, 0x17FF },
+ { 0x180F, 0x180F },
+ { 0x181A, 0x181F },
+ { 0x1878, 0x187F },
+ { 0x18AB, 0x18FF },
+ { 0x191D, 0x191F },
+ { 0x192C, 0x192F },
+ { 0x193C, 0x193F },
+ { 0x1941, 0x1943 },
+ { 0x196E, 0x196F },
+ { 0x1975, 0x197F },
+ { 0x19AA, 0x19AF },
+ { 0x19CA, 0x19CF },
+ { 0x19DA, 0x19DD },
+ { 0x1A1C, 0x1A1D },
+ { 0x1A20, 0x1AFF },
+ { 0x1B4C, 0x1B4F },
+ { 0x1B7D, 0x1B7F },
+ { 0x1BAB, 0x1BAD },
+ { 0x1BBA, 0x1BFF },
+ { 0x1C38, 0x1C3A },
+ { 0x1C4A, 0x1C4C },
+ { 0x1C80, 0x1CFF },
+ { 0x1DE7, 0x1DFD },
+ { 0x1F16, 0x1F17 },
+ { 0x1F1E, 0x1F1F },
+ { 0x1F46, 0x1F47 },
+ { 0x1F4E, 0x1F4F },
+ { 0x1F58, 0x1F58 },
+ { 0x1F5A, 0x1F5A },
+ { 0x1F5C, 0x1F5C },
+ { 0x1F5E, 0x1F5E },
+ { 0x1F7E, 0x1F7F },
+ { 0x1FB5, 0x1FB5 },
+ { 0x1FC5, 0x1FC5 },
+ { 0x1FD4, 0x1FD5 },
+ { 0x1FDC, 0x1FDC },
+ { 0x1FF0, 0x1FF1 },
+ { 0x1FF5, 0x1FF5 },
+ { 0x1FFF, 0x1FFF },
+ { 0x2065, 0x2069 },
+ { 0x2072, 0x2073 },
+ { 0x208F, 0x208F },
+ { 0x2095, 0x209F },
+ { 0x20B6, 0x20CF },
+ { 0x20F1, 0x20FF },
+ { 0x2150, 0x2152 },
+ { 0x2189, 0x218F },
+ { 0x23E8, 0x23FF },
+ { 0x2427, 0x243F },
+ { 0x244B, 0x245F },
+ { 0x269E, 0x269F },
+ { 0x26BD, 0x26BF },
+ { 0x26C4, 0x2700 },
+ { 0x2705, 0x2705 },
+ { 0x270A, 0x270B },
+ { 0x2728, 0x2728 },
+ { 0x274C, 0x274C },
+ { 0x274E, 0x274E },
+ { 0x2753, 0x2755 },
+ { 0x2757, 0x2757 },
+ { 0x275F, 0x2760 },
+ { 0x2795, 0x2797 },
+ { 0x27B0, 0x27B0 },
+ { 0x27BF, 0x27BF },
+ { 0x27CB, 0x27CB },
+ { 0x27CD, 0x27CF },
+ { 0x2B4D, 0x2B4F },
+ { 0x2B55, 0x2BFF },
+ { 0x2C2F, 0x2C2F },
+ { 0x2C5F, 0x2C5F },
+ { 0x2C70, 0x2C70 },
+ { 0x2C7E, 0x2C7F },
+ { 0x2CEB, 0x2CF8 },
+ { 0x2D26, 0x2D2F },
+ { 0x2D66, 0x2D6E },
+ { 0x2D70, 0x2D7F },
+ { 0x2D97, 0x2D9F },
+ { 0x2DA7, 0x2DA7 },
+ { 0x2DAF, 0x2DAF },
+ { 0x2DB7, 0x2DB7 },
+ { 0x2DBF, 0x2DBF },
+ { 0x2DC7, 0x2DC7 },
+ { 0x2DCF, 0x2DCF },
+ { 0x2DD7, 0x2DD7 },
+ { 0x2DDF, 0x2DDF },
+ { 0x2E31, 0x2E7F },
+ { 0x2E9A, 0x2E9A },
+ { 0x2EF4, 0x2EFF },
+ { 0x2FD6, 0x2FEF },
+ { 0x2FFC, 0x2FFF },
+ { 0x3040, 0x3040 },
+ { 0x3097, 0x3098 },
+ { 0x3100, 0x3104 },
+ { 0x312E, 0x3130 },
+ { 0x318F, 0x318F },
+ { 0x31B8, 0x31BF },
+ { 0x31E4, 0x31EF },
+ { 0x321F, 0x321F },
+ { 0x3244, 0x324F },
+ { 0x32FF, 0x32FF },
+ { 0x4DB6, 0x4DBF },
+ { 0x9FC4, 0x9FFF },
+ { 0xA48D, 0xA48F },
+ { 0xA4C7, 0xA4FF },
+ { 0xA62C, 0xA63F },
+ { 0xA660, 0xA661 },
+ { 0xA674, 0xA67B },
+ { 0xA698, 0xA6FF },
+ { 0xA78D, 0xA7FA },
+ { 0xA82C, 0xA83F },
+ { 0xA878, 0xA87F },
+ { 0xA8C5, 0xA8CD },
+ { 0xA8DA, 0xA8FF },
+ { 0xA954, 0xA95E },
+ { 0xA960, 0xA9FF },
+ { 0xAA37, 0xAA3F },
+ { 0xAA4E, 0xAA4F },
+ { 0xAA5A, 0xAA5B },
+ { 0xAA60, 0xABFF },
+ { 0xD7A4, 0xD7FF },
+ { 0xFA2E, 0xFA2F },
+ { 0xFA6B, 0xFA6F },
+ { 0xFADA, 0xFAFF },
+ { 0xFB07, 0xFB12 },
+ { 0xFB18, 0xFB1C },
+ { 0xFB37, 0xFB37 },
+ { 0xFB3D, 0xFB3D },
+ { 0xFB3F, 0xFB3F },
+ { 0xFB42, 0xFB42 },
+ { 0xFB45, 0xFB45 },
+ { 0xFBB2, 0xFBD2 },
+ { 0xFD40, 0xFD4F },
+ { 0xFD90, 0xFD91 },
+ { 0xFDC8, 0xFDCF },
+ { 0xFDFE, 0xFDFF },
+ { 0xFE1A, 0xFE1F },
+ { 0xFE27, 0xFE2F },
+ { 0xFE53, 0xFE53 },
+ { 0xFE67, 0xFE67 },
+ { 0xFE6C, 0xFE6F },
+ { 0xFE75, 0xFE75 },
+ { 0xFEFD, 0xFEFE },
+ { 0xFF00, 0xFF00 },
+ { 0xFFBF, 0xFFC1 },
+ { 0xFFC8, 0xFFC9 },
+ { 0xFFD0, 0xFFD1 },
+ { 0xFFD8, 0xFFD9 },
+ { 0xFFDD, 0xFFDF },
+ { 0xFFE7, 0xFFE7 },
+ { 0xFFEF, 0xFFF8 },
+ { 0x1000C, 0x1000C },
+ { 0x10027, 0x10027 },
+ { 0x1003B, 0x1003B },
+ { 0x1003E, 0x1003E },
+ { 0x1004E, 0x1004F },
+ { 0x1005E, 0x1007F },
+ { 0x100FB, 0x100FF },
+ { 0x10103, 0x10106 },
+ { 0x10134, 0x10136 },
+ { 0x1018B, 0x1018F },
+ { 0x1019C, 0x101CF },
+ { 0x101FE, 0x1027F },
+ { 0x1029D, 0x1029F },
+ { 0x102D1, 0x102FF },
+ { 0x1031F, 0x1031F },
+ { 0x10324, 0x1032F },
+ { 0x1034B, 0x1037F },
+ { 0x1039E, 0x1039E },
+ { 0x103C4, 0x103C7 },
+ { 0x103D6, 0x103FF },
+ { 0x1049E, 0x1049F },
+ { 0x104AA, 0x107FF },
+ { 0x10806, 0x10807 },
+ { 0x10809, 0x10809 },
+ { 0x10836, 0x10836 },
+ { 0x10839, 0x1083B },
+ { 0x1083D, 0x1083E },
+ { 0x10840, 0x108FF },
+ { 0x1091A, 0x1091E },
+ { 0x1093A, 0x1093E },
+ { 0x10940, 0x109FF },
+ { 0x10A04, 0x10A04 },
+ { 0x10A07, 0x10A0B },
+ { 0x10A14, 0x10A14 },
+ { 0x10A18, 0x10A18 },
+ { 0x10A34, 0x10A37 },
+ { 0x10A3B, 0x10A3E },
+ { 0x10A48, 0x10A4F },
+ { 0x10A59, 0x11FFF },
+ { 0x1236F, 0x123FF },
+ { 0x12463, 0x1246F },
+ { 0x12474, 0x1CFFF },
+ { 0x1D0F6, 0x1D0FF },
+ { 0x1D127, 0x1D128 },
+ { 0x1D1DE, 0x1D1FF },
+ { 0x1D246, 0x1D2FF },
+ { 0x1D357, 0x1D35F },
+ { 0x1D372, 0x1D3FF },
+ { 0x1D455, 0x1D455 },
+ { 0x1D49D, 0x1D49D },
+ { 0x1D4A0, 0x1D4A1 },
+ { 0x1D4A3, 0x1D4A4 },
+ { 0x1D4A7, 0x1D4A8 },
+ { 0x1D4AD, 0x1D4AD },
+ { 0x1D4BA, 0x1D4BA },
+ { 0x1D4BC, 0x1D4BC },
+ { 0x1D4C4, 0x1D4C4 },
+ { 0x1D506, 0x1D506 },
+ { 0x1D50B, 0x1D50C },
+ { 0x1D515, 0x1D515 },
+ { 0x1D51D, 0x1D51D },
+ { 0x1D53A, 0x1D53A },
+ { 0x1D53F, 0x1D53F },
+ { 0x1D545, 0x1D545 },
+ { 0x1D547, 0x1D549 },
+ { 0x1D551, 0x1D551 },
+ { 0x1D6A6, 0x1D6A7 },
+ { 0x1D7CC, 0x1D7CD },
+ { 0x1D800, 0x1EFFF },
+ { 0x1F02C, 0x1F02F },
+ { 0x1F094, 0x1FFFD },
+ { 0x2A6D7, 0x2F7FF },
+ { 0x2FA1E, 0x2FFFD },
+ { 0x30000, 0x3FFFD },
+ { 0x40000, 0x4FFFD },
+ { 0x50000, 0x5FFFD },
+ { 0x60000, 0x6FFFD },
+ { 0x70000, 0x7FFFD },
+ { 0x80000, 0x8FFFD },
+ { 0x90000, 0x9FFFD },
+ { 0xA0000, 0xAFFFD },
+ { 0xB0000, 0xBFFFD },
+ { 0xC0000, 0xCFFFD },
+ { 0xD0000, 0xDFFFD },
+ { 0xE0000, 0xE0000 },
+ { 0xE0002, 0xE001F },
+ { 0xE0080, 0xE00FF },
+ { 0xE01F0, 0xEFFFD }
+
+#define PREDICATE(c) uc_is_property_unassigned_code_value (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_unified_ideograph.c b/tests/unictype/test-pr_unified_ideograph.c
new file mode 100644
index 0000000..e394751
--- /dev/null
+++ b/tests/unictype/test-pr_unified_ideograph.c
@@ -0,0 +1,32 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xFA0E, 0xFA0F },
+ { 0xFA11, 0xFA11 },
+ { 0xFA13, 0xFA14 },
+ { 0xFA1F, 0xFA1F },
+ { 0xFA21, 0xFA21 },
+ { 0xFA23, 0xFA24 },
+ { 0xFA27, 0xFA29 },
+ { 0x20000, 0x2A6D6 }
+
+#define PREDICATE(c) uc_is_property_unified_ideograph (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_uppercase.c b/tests/unictype/test-pr_uppercase.c
new file mode 100644
index 0000000..f44611b
--- /dev/null
+++ b/tests/unictype/test-pr_uppercase.c
@@ -0,0 +1,615 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00DE },
+ { 0x0100, 0x0100 },
+ { 0x0102, 0x0102 },
+ { 0x0104, 0x0104 },
+ { 0x0106, 0x0106 },
+ { 0x0108, 0x0108 },
+ { 0x010A, 0x010A },
+ { 0x010C, 0x010C },
+ { 0x010E, 0x010E },
+ { 0x0110, 0x0110 },
+ { 0x0112, 0x0112 },
+ { 0x0114, 0x0114 },
+ { 0x0116, 0x0116 },
+ { 0x0118, 0x0118 },
+ { 0x011A, 0x011A },
+ { 0x011C, 0x011C },
+ { 0x011E, 0x011E },
+ { 0x0120, 0x0120 },
+ { 0x0122, 0x0122 },
+ { 0x0124, 0x0124 },
+ { 0x0126, 0x0126 },
+ { 0x0128, 0x0128 },
+ { 0x012A, 0x012A },
+ { 0x012C, 0x012C },
+ { 0x012E, 0x012E },
+ { 0x0130, 0x0130 },
+ { 0x0132, 0x0132 },
+ { 0x0134, 0x0134 },
+ { 0x0136, 0x0136 },
+ { 0x0139, 0x0139 },
+ { 0x013B, 0x013B },
+ { 0x013D, 0x013D },
+ { 0x013F, 0x013F },
+ { 0x0141, 0x0141 },
+ { 0x0143, 0x0143 },
+ { 0x0145, 0x0145 },
+ { 0x0147, 0x0147 },
+ { 0x014A, 0x014A },
+ { 0x014C, 0x014C },
+ { 0x014E, 0x014E },
+ { 0x0150, 0x0150 },
+ { 0x0152, 0x0152 },
+ { 0x0154, 0x0154 },
+ { 0x0156, 0x0156 },
+ { 0x0158, 0x0158 },
+ { 0x015A, 0x015A },
+ { 0x015C, 0x015C },
+ { 0x015E, 0x015E },
+ { 0x0160, 0x0160 },
+ { 0x0162, 0x0162 },
+ { 0x0164, 0x0164 },
+ { 0x0166, 0x0166 },
+ { 0x0168, 0x0168 },
+ { 0x016A, 0x016A },
+ { 0x016C, 0x016C },
+ { 0x016E, 0x016E },
+ { 0x0170, 0x0170 },
+ { 0x0172, 0x0172 },
+ { 0x0174, 0x0174 },
+ { 0x0176, 0x0176 },
+ { 0x0178, 0x0179 },
+ { 0x017B, 0x017B },
+ { 0x017D, 0x017D },
+ { 0x0181, 0x0182 },
+ { 0x0184, 0x0184 },
+ { 0x0186, 0x0187 },
+ { 0x0189, 0x018B },
+ { 0x018E, 0x0191 },
+ { 0x0193, 0x0194 },
+ { 0x0196, 0x0198 },
+ { 0x019C, 0x019D },
+ { 0x019F, 0x01A0 },
+ { 0x01A2, 0x01A2 },
+ { 0x01A4, 0x01A4 },
+ { 0x01A6, 0x01A7 },
+ { 0x01A9, 0x01A9 },
+ { 0x01AC, 0x01AC },
+ { 0x01AE, 0x01AF },
+ { 0x01B1, 0x01B3 },
+ { 0x01B5, 0x01B5 },
+ { 0x01B7, 0x01B8 },
+ { 0x01BC, 0x01BC },
+ { 0x01C4, 0x01C4 },
+ { 0x01C7, 0x01C7 },
+ { 0x01CA, 0x01CA },
+ { 0x01CD, 0x01CD },
+ { 0x01CF, 0x01CF },
+ { 0x01D1, 0x01D1 },
+ { 0x01D3, 0x01D3 },
+ { 0x01D5, 0x01D5 },
+ { 0x01D7, 0x01D7 },
+ { 0x01D9, 0x01D9 },
+ { 0x01DB, 0x01DB },
+ { 0x01DE, 0x01DE },
+ { 0x01E0, 0x01E0 },
+ { 0x01E2, 0x01E2 },
+ { 0x01E4, 0x01E4 },
+ { 0x01E6, 0x01E6 },
+ { 0x01E8, 0x01E8 },
+ { 0x01EA, 0x01EA },
+ { 0x01EC, 0x01EC },
+ { 0x01EE, 0x01EE },
+ { 0x01F1, 0x01F1 },
+ { 0x01F4, 0x01F4 },
+ { 0x01F6, 0x01F8 },
+ { 0x01FA, 0x01FA },
+ { 0x01FC, 0x01FC },
+ { 0x01FE, 0x01FE },
+ { 0x0200, 0x0200 },
+ { 0x0202, 0x0202 },
+ { 0x0204, 0x0204 },
+ { 0x0206, 0x0206 },
+ { 0x0208, 0x0208 },
+ { 0x020A, 0x020A },
+ { 0x020C, 0x020C },
+ { 0x020E, 0x020E },
+ { 0x0210, 0x0210 },
+ { 0x0212, 0x0212 },
+ { 0x0214, 0x0214 },
+ { 0x0216, 0x0216 },
+ { 0x0218, 0x0218 },
+ { 0x021A, 0x021A },
+ { 0x021C, 0x021C },
+ { 0x021E, 0x021E },
+ { 0x0220, 0x0220 },
+ { 0x0222, 0x0222 },
+ { 0x0224, 0x0224 },
+ { 0x0226, 0x0226 },
+ { 0x0228, 0x0228 },
+ { 0x022A, 0x022A },
+ { 0x022C, 0x022C },
+ { 0x022E, 0x022E },
+ { 0x0230, 0x0230 },
+ { 0x0232, 0x0232 },
+ { 0x023A, 0x023B },
+ { 0x023D, 0x023E },
+ { 0x0241, 0x0241 },
+ { 0x0243, 0x0246 },
+ { 0x0248, 0x0248 },
+ { 0x024A, 0x024A },
+ { 0x024C, 0x024C },
+ { 0x024E, 0x024E },
+ { 0x0370, 0x0370 },
+ { 0x0372, 0x0372 },
+ { 0x0376, 0x0376 },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x038F },
+ { 0x0391, 0x03A1 },
+ { 0x03A3, 0x03AB },
+ { 0x03CF, 0x03CF },
+ { 0x03D2, 0x03D4 },
+ { 0x03D8, 0x03D8 },
+ { 0x03DA, 0x03DA },
+ { 0x03DC, 0x03DC },
+ { 0x03DE, 0x03DE },
+ { 0x03E0, 0x03E0 },
+ { 0x03E2, 0x03E2 },
+ { 0x03E4, 0x03E4 },
+ { 0x03E6, 0x03E6 },
+ { 0x03E8, 0x03E8 },
+ { 0x03EA, 0x03EA },
+ { 0x03EC, 0x03EC },
+ { 0x03EE, 0x03EE },
+ { 0x03F4, 0x03F4 },
+ { 0x03F7, 0x03F7 },
+ { 0x03F9, 0x03FA },
+ { 0x03FD, 0x042F },
+ { 0x0460, 0x0460 },
+ { 0x0462, 0x0462 },
+ { 0x0464, 0x0464 },
+ { 0x0466, 0x0466 },
+ { 0x0468, 0x0468 },
+ { 0x046A, 0x046A },
+ { 0x046C, 0x046C },
+ { 0x046E, 0x046E },
+ { 0x0470, 0x0470 },
+ { 0x0472, 0x0472 },
+ { 0x0474, 0x0474 },
+ { 0x0476, 0x0476 },
+ { 0x0478, 0x0478 },
+ { 0x047A, 0x047A },
+ { 0x047C, 0x047C },
+ { 0x047E, 0x047E },
+ { 0x0480, 0x0480 },
+ { 0x048A, 0x048A },
+ { 0x048C, 0x048C },
+ { 0x048E, 0x048E },
+ { 0x0490, 0x0490 },
+ { 0x0492, 0x0492 },
+ { 0x0494, 0x0494 },
+ { 0x0496, 0x0496 },
+ { 0x0498, 0x0498 },
+ { 0x049A, 0x049A },
+ { 0x049C, 0x049C },
+ { 0x049E, 0x049E },
+ { 0x04A0, 0x04A0 },
+ { 0x04A2, 0x04A2 },
+ { 0x04A4, 0x04A4 },
+ { 0x04A6, 0x04A6 },
+ { 0x04A8, 0x04A8 },
+ { 0x04AA, 0x04AA },
+ { 0x04AC, 0x04AC },
+ { 0x04AE, 0x04AE },
+ { 0x04B0, 0x04B0 },
+ { 0x04B2, 0x04B2 },
+ { 0x04B4, 0x04B4 },
+ { 0x04B6, 0x04B6 },
+ { 0x04B8, 0x04B8 },
+ { 0x04BA, 0x04BA },
+ { 0x04BC, 0x04BC },
+ { 0x04BE, 0x04BE },
+ { 0x04C0, 0x04C1 },
+ { 0x04C3, 0x04C3 },
+ { 0x04C5, 0x04C5 },
+ { 0x04C7, 0x04C7 },
+ { 0x04C9, 0x04C9 },
+ { 0x04CB, 0x04CB },
+ { 0x04CD, 0x04CD },
+ { 0x04D0, 0x04D0 },
+ { 0x04D2, 0x04D2 },
+ { 0x04D4, 0x04D4 },
+ { 0x04D6, 0x04D6 },
+ { 0x04D8, 0x04D8 },
+ { 0x04DA, 0x04DA },
+ { 0x04DC, 0x04DC },
+ { 0x04DE, 0x04DE },
+ { 0x04E0, 0x04E0 },
+ { 0x04E2, 0x04E2 },
+ { 0x04E4, 0x04E4 },
+ { 0x04E6, 0x04E6 },
+ { 0x04E8, 0x04E8 },
+ { 0x04EA, 0x04EA },
+ { 0x04EC, 0x04EC },
+ { 0x04EE, 0x04EE },
+ { 0x04F0, 0x04F0 },
+ { 0x04F2, 0x04F2 },
+ { 0x04F4, 0x04F4 },
+ { 0x04F6, 0x04F6 },
+ { 0x04F8, 0x04F8 },
+ { 0x04FA, 0x04FA },
+ { 0x04FC, 0x04FC },
+ { 0x04FE, 0x04FE },
+ { 0x0500, 0x0500 },
+ { 0x0502, 0x0502 },
+ { 0x0504, 0x0504 },
+ { 0x0506, 0x0506 },
+ { 0x0508, 0x0508 },
+ { 0x050A, 0x050A },
+ { 0x050C, 0x050C },
+ { 0x050E, 0x050E },
+ { 0x0510, 0x0510 },
+ { 0x0512, 0x0512 },
+ { 0x0514, 0x0514 },
+ { 0x0516, 0x0516 },
+ { 0x0518, 0x0518 },
+ { 0x051A, 0x051A },
+ { 0x051C, 0x051C },
+ { 0x051E, 0x051E },
+ { 0x0520, 0x0520 },
+ { 0x0522, 0x0522 },
+ { 0x0531, 0x0556 },
+ { 0x10A0, 0x10C5 },
+ { 0x1E00, 0x1E00 },
+ { 0x1E02, 0x1E02 },
+ { 0x1E04, 0x1E04 },
+ { 0x1E06, 0x1E06 },
+ { 0x1E08, 0x1E08 },
+ { 0x1E0A, 0x1E0A },
+ { 0x1E0C, 0x1E0C },
+ { 0x1E0E, 0x1E0E },
+ { 0x1E10, 0x1E10 },
+ { 0x1E12, 0x1E12 },
+ { 0x1E14, 0x1E14 },
+ { 0x1E16, 0x1E16 },
+ { 0x1E18, 0x1E18 },
+ { 0x1E1A, 0x1E1A },
+ { 0x1E1C, 0x1E1C },
+ { 0x1E1E, 0x1E1E },
+ { 0x1E20, 0x1E20 },
+ { 0x1E22, 0x1E22 },
+ { 0x1E24, 0x1E24 },
+ { 0x1E26, 0x1E26 },
+ { 0x1E28, 0x1E28 },
+ { 0x1E2A, 0x1E2A },
+ { 0x1E2C, 0x1E2C },
+ { 0x1E2E, 0x1E2E },
+ { 0x1E30, 0x1E30 },
+ { 0x1E32, 0x1E32 },
+ { 0x1E34, 0x1E34 },
+ { 0x1E36, 0x1E36 },
+ { 0x1E38, 0x1E38 },
+ { 0x1E3A, 0x1E3A },
+ { 0x1E3C, 0x1E3C },
+ { 0x1E3E, 0x1E3E },
+ { 0x1E40, 0x1E40 },
+ { 0x1E42, 0x1E42 },
+ { 0x1E44, 0x1E44 },
+ { 0x1E46, 0x1E46 },
+ { 0x1E48, 0x1E48 },
+ { 0x1E4A, 0x1E4A },
+ { 0x1E4C, 0x1E4C },
+ { 0x1E4E, 0x1E4E },
+ { 0x1E50, 0x1E50 },
+ { 0x1E52, 0x1E52 },
+ { 0x1E54, 0x1E54 },
+ { 0x1E56, 0x1E56 },
+ { 0x1E58, 0x1E58 },
+ { 0x1E5A, 0x1E5A },
+ { 0x1E5C, 0x1E5C },
+ { 0x1E5E, 0x1E5E },
+ { 0x1E60, 0x1E60 },
+ { 0x1E62, 0x1E62 },
+ { 0x1E64, 0x1E64 },
+ { 0x1E66, 0x1E66 },
+ { 0x1E68, 0x1E68 },
+ { 0x1E6A, 0x1E6A },
+ { 0x1E6C, 0x1E6C },
+ { 0x1E6E, 0x1E6E },
+ { 0x1E70, 0x1E70 },
+ { 0x1E72, 0x1E72 },
+ { 0x1E74, 0x1E74 },
+ { 0x1E76, 0x1E76 },
+ { 0x1E78, 0x1E78 },
+ { 0x1E7A, 0x1E7A },
+ { 0x1E7C, 0x1E7C },
+ { 0x1E7E, 0x1E7E },
+ { 0x1E80, 0x1E80 },
+ { 0x1E82, 0x1E82 },
+ { 0x1E84, 0x1E84 },
+ { 0x1E86, 0x1E86 },
+ { 0x1E88, 0x1E88 },
+ { 0x1E8A, 0x1E8A },
+ { 0x1E8C, 0x1E8C },
+ { 0x1E8E, 0x1E8E },
+ { 0x1E90, 0x1E90 },
+ { 0x1E92, 0x1E92 },
+ { 0x1E94, 0x1E94 },
+ { 0x1E9E, 0x1E9E },
+ { 0x1EA0, 0x1EA0 },
+ { 0x1EA2, 0x1EA2 },
+ { 0x1EA4, 0x1EA4 },
+ { 0x1EA6, 0x1EA6 },
+ { 0x1EA8, 0x1EA8 },
+ { 0x1EAA, 0x1EAA },
+ { 0x1EAC, 0x1EAC },
+ { 0x1EAE, 0x1EAE },
+ { 0x1EB0, 0x1EB0 },
+ { 0x1EB2, 0x1EB2 },
+ { 0x1EB4, 0x1EB4 },
+ { 0x1EB6, 0x1EB6 },
+ { 0x1EB8, 0x1EB8 },
+ { 0x1EBA, 0x1EBA },
+ { 0x1EBC, 0x1EBC },
+ { 0x1EBE, 0x1EBE },
+ { 0x1EC0, 0x1EC0 },
+ { 0x1EC2, 0x1EC2 },
+ { 0x1EC4, 0x1EC4 },
+ { 0x1EC6, 0x1EC6 },
+ { 0x1EC8, 0x1EC8 },
+ { 0x1ECA, 0x1ECA },
+ { 0x1ECC, 0x1ECC },
+ { 0x1ECE, 0x1ECE },
+ { 0x1ED0, 0x1ED0 },
+ { 0x1ED2, 0x1ED2 },
+ { 0x1ED4, 0x1ED4 },
+ { 0x1ED6, 0x1ED6 },
+ { 0x1ED8, 0x1ED8 },
+ { 0x1EDA, 0x1EDA },
+ { 0x1EDC, 0x1EDC },
+ { 0x1EDE, 0x1EDE },
+ { 0x1EE0, 0x1EE0 },
+ { 0x1EE2, 0x1EE2 },
+ { 0x1EE4, 0x1EE4 },
+ { 0x1EE6, 0x1EE6 },
+ { 0x1EE8, 0x1EE8 },
+ { 0x1EEA, 0x1EEA },
+ { 0x1EEC, 0x1EEC },
+ { 0x1EEE, 0x1EEE },
+ { 0x1EF0, 0x1EF0 },
+ { 0x1EF2, 0x1EF2 },
+ { 0x1EF4, 0x1EF4 },
+ { 0x1EF6, 0x1EF6 },
+ { 0x1EF8, 0x1EF8 },
+ { 0x1EFA, 0x1EFA },
+ { 0x1EFC, 0x1EFC },
+ { 0x1EFE, 0x1EFE },
+ { 0x1F08, 0x1F0F },
+ { 0x1F18, 0x1F1D },
+ { 0x1F28, 0x1F2F },
+ { 0x1F38, 0x1F3F },
+ { 0x1F48, 0x1F4D },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F5F },
+ { 0x1F68, 0x1F6F },
+ { 0x1FB8, 0x1FBB },
+ { 0x1FC8, 0x1FCB },
+ { 0x1FD8, 0x1FDB },
+ { 0x1FE8, 0x1FEC },
+ { 0x1FF8, 0x1FFB },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210B, 0x210D },
+ { 0x2110, 0x2112 },
+ { 0x2115, 0x2115 },
+ { 0x2119, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x212D },
+ { 0x2130, 0x2133 },
+ { 0x213E, 0x213F },
+ { 0x2145, 0x2145 },
+ { 0x2160, 0x216F },
+ { 0x2183, 0x2183 },
+ { 0x24B6, 0x24CF },
+ { 0x2C00, 0x2C2E },
+ { 0x2C60, 0x2C60 },
+ { 0x2C62, 0x2C64 },
+ { 0x2C67, 0x2C67 },
+ { 0x2C69, 0x2C69 },
+ { 0x2C6B, 0x2C6B },
+ { 0x2C6D, 0x2C6F },
+ { 0x2C72, 0x2C72 },
+ { 0x2C75, 0x2C75 },
+ { 0x2C80, 0x2C80 },
+ { 0x2C82, 0x2C82 },
+ { 0x2C84, 0x2C84 },
+ { 0x2C86, 0x2C86 },
+ { 0x2C88, 0x2C88 },
+ { 0x2C8A, 0x2C8A },
+ { 0x2C8C, 0x2C8C },
+ { 0x2C8E, 0x2C8E },
+ { 0x2C90, 0x2C90 },
+ { 0x2C92, 0x2C92 },
+ { 0x2C94, 0x2C94 },
+ { 0x2C96, 0x2C96 },
+ { 0x2C98, 0x2C98 },
+ { 0x2C9A, 0x2C9A },
+ { 0x2C9C, 0x2C9C },
+ { 0x2C9E, 0x2C9E },
+ { 0x2CA0, 0x2CA0 },
+ { 0x2CA2, 0x2CA2 },
+ { 0x2CA4, 0x2CA4 },
+ { 0x2CA6, 0x2CA6 },
+ { 0x2CA8, 0x2CA8 },
+ { 0x2CAA, 0x2CAA },
+ { 0x2CAC, 0x2CAC },
+ { 0x2CAE, 0x2CAE },
+ { 0x2CB0, 0x2CB0 },
+ { 0x2CB2, 0x2CB2 },
+ { 0x2CB4, 0x2CB4 },
+ { 0x2CB6, 0x2CB6 },
+ { 0x2CB8, 0x2CB8 },
+ { 0x2CBA, 0x2CBA },
+ { 0x2CBC, 0x2CBC },
+ { 0x2CBE, 0x2CBE },
+ { 0x2CC0, 0x2CC0 },
+ { 0x2CC2, 0x2CC2 },
+ { 0x2CC4, 0x2CC4 },
+ { 0x2CC6, 0x2CC6 },
+ { 0x2CC8, 0x2CC8 },
+ { 0x2CCA, 0x2CCA },
+ { 0x2CCC, 0x2CCC },
+ { 0x2CCE, 0x2CCE },
+ { 0x2CD0, 0x2CD0 },
+ { 0x2CD2, 0x2CD2 },
+ { 0x2CD4, 0x2CD4 },
+ { 0x2CD6, 0x2CD6 },
+ { 0x2CD8, 0x2CD8 },
+ { 0x2CDA, 0x2CDA },
+ { 0x2CDC, 0x2CDC },
+ { 0x2CDE, 0x2CDE },
+ { 0x2CE0, 0x2CE0 },
+ { 0x2CE2, 0x2CE2 },
+ { 0xA640, 0xA640 },
+ { 0xA642, 0xA642 },
+ { 0xA644, 0xA644 },
+ { 0xA646, 0xA646 },
+ { 0xA648, 0xA648 },
+ { 0xA64A, 0xA64A },
+ { 0xA64C, 0xA64C },
+ { 0xA64E, 0xA64E },
+ { 0xA650, 0xA650 },
+ { 0xA652, 0xA652 },
+ { 0xA654, 0xA654 },
+ { 0xA656, 0xA656 },
+ { 0xA658, 0xA658 },
+ { 0xA65A, 0xA65A },
+ { 0xA65C, 0xA65C },
+ { 0xA65E, 0xA65E },
+ { 0xA662, 0xA662 },
+ { 0xA664, 0xA664 },
+ { 0xA666, 0xA666 },
+ { 0xA668, 0xA668 },
+ { 0xA66A, 0xA66A },
+ { 0xA66C, 0xA66C },
+ { 0xA680, 0xA680 },
+ { 0xA682, 0xA682 },
+ { 0xA684, 0xA684 },
+ { 0xA686, 0xA686 },
+ { 0xA688, 0xA688 },
+ { 0xA68A, 0xA68A },
+ { 0xA68C, 0xA68C },
+ { 0xA68E, 0xA68E },
+ { 0xA690, 0xA690 },
+ { 0xA692, 0xA692 },
+ { 0xA694, 0xA694 },
+ { 0xA696, 0xA696 },
+ { 0xA722, 0xA722 },
+ { 0xA724, 0xA724 },
+ { 0xA726, 0xA726 },
+ { 0xA728, 0xA728 },
+ { 0xA72A, 0xA72A },
+ { 0xA72C, 0xA72C },
+ { 0xA72E, 0xA72E },
+ { 0xA732, 0xA732 },
+ { 0xA734, 0xA734 },
+ { 0xA736, 0xA736 },
+ { 0xA738, 0xA738 },
+ { 0xA73A, 0xA73A },
+ { 0xA73C, 0xA73C },
+ { 0xA73E, 0xA73E },
+ { 0xA740, 0xA740 },
+ { 0xA742, 0xA742 },
+ { 0xA744, 0xA744 },
+ { 0xA746, 0xA746 },
+ { 0xA748, 0xA748 },
+ { 0xA74A, 0xA74A },
+ { 0xA74C, 0xA74C },
+ { 0xA74E, 0xA74E },
+ { 0xA750, 0xA750 },
+ { 0xA752, 0xA752 },
+ { 0xA754, 0xA754 },
+ { 0xA756, 0xA756 },
+ { 0xA758, 0xA758 },
+ { 0xA75A, 0xA75A },
+ { 0xA75C, 0xA75C },
+ { 0xA75E, 0xA75E },
+ { 0xA760, 0xA760 },
+ { 0xA762, 0xA762 },
+ { 0xA764, 0xA764 },
+ { 0xA766, 0xA766 },
+ { 0xA768, 0xA768 },
+ { 0xA76A, 0xA76A },
+ { 0xA76C, 0xA76C },
+ { 0xA76E, 0xA76E },
+ { 0xA779, 0xA779 },
+ { 0xA77B, 0xA77B },
+ { 0xA77D, 0xA77E },
+ { 0xA780, 0xA780 },
+ { 0xA782, 0xA782 },
+ { 0xA784, 0xA784 },
+ { 0xA786, 0xA786 },
+ { 0xA78B, 0xA78B },
+ { 0xFF21, 0xFF3A },
+ { 0x10400, 0x10427 },
+ { 0x1D400, 0x1D419 },
+ { 0x1D434, 0x1D44D },
+ { 0x1D468, 0x1D481 },
+ { 0x1D49C, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B5 },
+ { 0x1D4D0, 0x1D4E9 },
+ { 0x1D504, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D538, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D56C, 0x1D585 },
+ { 0x1D5A0, 0x1D5B9 },
+ { 0x1D5D4, 0x1D5ED },
+ { 0x1D608, 0x1D621 },
+ { 0x1D63C, 0x1D655 },
+ { 0x1D670, 0x1D689 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6E2, 0x1D6FA },
+ { 0x1D71C, 0x1D734 },
+ { 0x1D756, 0x1D76E },
+ { 0x1D790, 0x1D7A8 },
+ { 0x1D7CA, 0x1D7CA }
+
+#define PREDICATE(c) uc_is_property_uppercase (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_variation_selector.c b/tests/unictype/test-pr_variation_selector.c
new file mode 100644
index 0000000..50aaa43
--- /dev/null
+++ b/tests/unictype/test-pr_variation_selector.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x180B, 0x180D },
+ { 0xFE00, 0xFE0F },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_property_variation_selector (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_white_space.c b/tests/unictype/test-pr_white_space.c
new file mode 100644
index 0000000..a7d8217
--- /dev/null
+++ b/tests/unictype/test-pr_white_space.c
@@ -0,0 +1,33 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0009, 0x000D },
+ { 0x0020, 0x0020 },
+ { 0x0085, 0x0085 },
+ { 0x00A0, 0x00A0 },
+ { 0x1680, 0x1680 },
+ { 0x180E, 0x180E },
+ { 0x2000, 0x200A },
+ { 0x2028, 0x2029 },
+ { 0x202F, 0x202F },
+ { 0x205F, 0x205F },
+ { 0x3000, 0x3000 }
+
+#define PREDICATE(c) uc_is_property_white_space (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_xid_continue.c b/tests/unictype/test-pr_xid_continue.c
new file mode 100644
index 0000000..14148c5
--- /dev/null
+++ b/tests/unictype/test-pr_xid_continue.c
@@ -0,0 +1,506 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0030, 0x0039 },
+ { 0x0041, 0x005A },
+ { 0x005F, 0x005F },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00B7, 0x00B7 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0300, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037B, 0x037D },
+ { 0x0386, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x0483, 0x0487 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF },
+ { 0x05C1, 0x05C2 },
+ { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0610, 0x061A },
+ { 0x0621, 0x065E },
+ { 0x0660, 0x0669 },
+ { 0x066E, 0x06D3 },
+ { 0x06D5, 0x06DC },
+ { 0x06DF, 0x06E8 },
+ { 0x06EA, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x074A },
+ { 0x074D, 0x07B1 },
+ { 0x07C0, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0901, 0x0939 },
+ { 0x093C, 0x094D },
+ { 0x0950, 0x0954 },
+ { 0x0958, 0x0963 },
+ { 0x0966, 0x096F },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0981, 0x0983 },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BC, 0x09C4 },
+ { 0x09C7, 0x09C8 },
+ { 0x09CB, 0x09CE },
+ { 0x09D7, 0x09D7 },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E3 },
+ { 0x09E6, 0x09F1 },
+ { 0x0A01, 0x0A03 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A3C, 0x0A3C },
+ { 0x0A3E, 0x0A42 },
+ { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D },
+ { 0x0A51, 0x0A51 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A66, 0x0A75 },
+ { 0x0A81, 0x0A83 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABC, 0x0AC5 },
+ { 0x0AC7, 0x0AC9 },
+ { 0x0ACB, 0x0ACD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE3 },
+ { 0x0AE6, 0x0AEF },
+ { 0x0B01, 0x0B03 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3C, 0x0B44 },
+ { 0x0B47, 0x0B48 },
+ { 0x0B4B, 0x0B4D },
+ { 0x0B56, 0x0B57 },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B63 },
+ { 0x0B66, 0x0B6F },
+ { 0x0B71, 0x0B71 },
+ { 0x0B82, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BBE, 0x0BC2 },
+ { 0x0BC6, 0x0BC8 },
+ { 0x0BCA, 0x0BCD },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0BD7, 0x0BD7 },
+ { 0x0BE6, 0x0BEF },
+ { 0x0C01, 0x0C03 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C44 },
+ { 0x0C46, 0x0C48 },
+ { 0x0C4A, 0x0C4D },
+ { 0x0C55, 0x0C56 },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C63 },
+ { 0x0C66, 0x0C6F },
+ { 0x0C82, 0x0C83 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBC, 0x0CC4 },
+ { 0x0CC6, 0x0CC8 },
+ { 0x0CCA, 0x0CCD },
+ { 0x0CD5, 0x0CD6 },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE3 },
+ { 0x0CE6, 0x0CEF },
+ { 0x0D02, 0x0D03 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D44 },
+ { 0x0D46, 0x0D48 },
+ { 0x0D4A, 0x0D4D },
+ { 0x0D57, 0x0D57 },
+ { 0x0D60, 0x0D63 },
+ { 0x0D66, 0x0D6F },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D82, 0x0D83 },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0DCA, 0x0DCA },
+ { 0x0DCF, 0x0DD4 },
+ { 0x0DD6, 0x0DD6 },
+ { 0x0DD8, 0x0DDF },
+ { 0x0DF2, 0x0DF3 },
+ { 0x0E01, 0x0E3A },
+ { 0x0E40, 0x0E4E },
+ { 0x0E50, 0x0E59 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB9 },
+ { 0x0EBB, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EC8, 0x0ECD },
+ { 0x0ED0, 0x0ED9 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F18, 0x0F19 },
+ { 0x0F20, 0x0F29 },
+ { 0x0F35, 0x0F35 },
+ { 0x0F37, 0x0F37 },
+ { 0x0F39, 0x0F39 },
+ { 0x0F3E, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F71, 0x0F84 },
+ { 0x0F86, 0x0F8B },
+ { 0x0F90, 0x0F97 },
+ { 0x0F99, 0x0FBC },
+ { 0x0FC6, 0x0FC6 },
+ { 0x1000, 0x1049 },
+ { 0x1050, 0x1099 },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x135F, 0x135F },
+ { 0x1369, 0x1371 },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x16EE, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1714 },
+ { 0x1720, 0x1734 },
+ { 0x1740, 0x1753 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1772, 0x1773 },
+ { 0x1780, 0x17B3 },
+ { 0x17B6, 0x17D3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DD },
+ { 0x17E0, 0x17E9 },
+ { 0x180B, 0x180D },
+ { 0x1810, 0x1819 },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1920, 0x192B },
+ { 0x1930, 0x193B },
+ { 0x1946, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19B0, 0x19C9 },
+ { 0x19D0, 0x19D9 },
+ { 0x1A00, 0x1A1B },
+ { 0x1B00, 0x1B4B },
+ { 0x1B50, 0x1B59 },
+ { 0x1B6B, 0x1B73 },
+ { 0x1B80, 0x1BAA },
+ { 0x1BAE, 0x1BB9 },
+ { 0x1C00, 0x1C37 },
+ { 0x1C40, 0x1C49 },
+ { 0x1C4D, 0x1C7D },
+ { 0x1D00, 0x1DE6 },
+ { 0x1DFE, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x203F, 0x2040 },
+ { 0x2054, 0x2054 },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x20D0, 0x20DC },
+ { 0x20E1, 0x20E1 },
+ { 0x20E5, 0x20F0 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2118, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x2188 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x2DE0, 0x2DFF },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x302F },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x3099, 0x309A },
+ { 0x309D, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66F },
+ { 0xA67C, 0xA67D },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA827 },
+ { 0xA840, 0xA873 },
+ { 0xA880, 0xA8C4 },
+ { 0xA8D0, 0xA8D9 },
+ { 0xA900, 0xA92D },
+ { 0xA930, 0xA953 },
+ { 0xAA00, 0xAA36 },
+ { 0xAA40, 0xAA4D },
+ { 0xAA50, 0xAA59 },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFC5D },
+ { 0xFC64, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDF9 },
+ { 0xFE00, 0xFE0F },
+ { 0xFE20, 0xFE26 },
+ { 0xFE33, 0xFE34 },
+ { 0xFE4D, 0xFE4F },
+ { 0xFE71, 0xFE71 },
+ { 0xFE73, 0xFE73 },
+ { 0xFE77, 0xFE77 },
+ { 0xFE79, 0xFE79 },
+ { 0xFE7B, 0xFE7B },
+ { 0xFE7D, 0xFE7D },
+ { 0xFE7F, 0xFEFC },
+ { 0xFF10, 0xFF19 },
+ { 0xFF21, 0xFF3A },
+ { 0xFF3F, 0xFF3F },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10140, 0x10174 },
+ { 0x101FD, 0x101FD },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x103D1, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x104A0, 0x104A9 },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A03 },
+ { 0x10A05, 0x10A06 },
+ { 0x10A0C, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x10A38, 0x10A3A },
+ { 0x10A3F, 0x10A3F },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x1D165, 0x1D169 },
+ { 0x1D16D, 0x1D172 },
+ { 0x1D17B, 0x1D182 },
+ { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD },
+ { 0x1D242, 0x1D244 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x1D7CE, 0x1D7FF },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D },
+ { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_property_xid_continue (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_xid_start.c b/tests/unictype/test-pr_xid_start.c
new file mode 100644
index 0000000..57326c0
--- /dev/null
+++ b/tests/unictype/test-pr_xid_start.c
@@ -0,0 +1,421 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0041, 0x005A },
+ { 0x0061, 0x007A },
+ { 0x00AA, 0x00AA },
+ { 0x00B5, 0x00B5 },
+ { 0x00BA, 0x00BA },
+ { 0x00C0, 0x00D6 },
+ { 0x00D8, 0x00F6 },
+ { 0x00F8, 0x02C1 },
+ { 0x02C6, 0x02D1 },
+ { 0x02E0, 0x02E4 },
+ { 0x02EC, 0x02EC },
+ { 0x02EE, 0x02EE },
+ { 0x0370, 0x0374 },
+ { 0x0376, 0x0377 },
+ { 0x037B, 0x037D },
+ { 0x0386, 0x0386 },
+ { 0x0388, 0x038A },
+ { 0x038C, 0x038C },
+ { 0x038E, 0x03A1 },
+ { 0x03A3, 0x03F5 },
+ { 0x03F7, 0x0481 },
+ { 0x048A, 0x0523 },
+ { 0x0531, 0x0556 },
+ { 0x0559, 0x0559 },
+ { 0x0561, 0x0587 },
+ { 0x05D0, 0x05EA },
+ { 0x05F0, 0x05F2 },
+ { 0x0621, 0x064A },
+ { 0x066E, 0x066F },
+ { 0x0671, 0x06D3 },
+ { 0x06D5, 0x06D5 },
+ { 0x06E5, 0x06E6 },
+ { 0x06EE, 0x06EF },
+ { 0x06FA, 0x06FC },
+ { 0x06FF, 0x06FF },
+ { 0x0710, 0x0710 },
+ { 0x0712, 0x072F },
+ { 0x074D, 0x07A5 },
+ { 0x07B1, 0x07B1 },
+ { 0x07CA, 0x07EA },
+ { 0x07F4, 0x07F5 },
+ { 0x07FA, 0x07FA },
+ { 0x0904, 0x0939 },
+ { 0x093D, 0x093D },
+ { 0x0950, 0x0950 },
+ { 0x0958, 0x0961 },
+ { 0x0971, 0x0972 },
+ { 0x097B, 0x097F },
+ { 0x0985, 0x098C },
+ { 0x098F, 0x0990 },
+ { 0x0993, 0x09A8 },
+ { 0x09AA, 0x09B0 },
+ { 0x09B2, 0x09B2 },
+ { 0x09B6, 0x09B9 },
+ { 0x09BD, 0x09BD },
+ { 0x09CE, 0x09CE },
+ { 0x09DC, 0x09DD },
+ { 0x09DF, 0x09E1 },
+ { 0x09F0, 0x09F1 },
+ { 0x0A05, 0x0A0A },
+ { 0x0A0F, 0x0A10 },
+ { 0x0A13, 0x0A28 },
+ { 0x0A2A, 0x0A30 },
+ { 0x0A32, 0x0A33 },
+ { 0x0A35, 0x0A36 },
+ { 0x0A38, 0x0A39 },
+ { 0x0A59, 0x0A5C },
+ { 0x0A5E, 0x0A5E },
+ { 0x0A72, 0x0A74 },
+ { 0x0A85, 0x0A8D },
+ { 0x0A8F, 0x0A91 },
+ { 0x0A93, 0x0AA8 },
+ { 0x0AAA, 0x0AB0 },
+ { 0x0AB2, 0x0AB3 },
+ { 0x0AB5, 0x0AB9 },
+ { 0x0ABD, 0x0ABD },
+ { 0x0AD0, 0x0AD0 },
+ { 0x0AE0, 0x0AE1 },
+ { 0x0B05, 0x0B0C },
+ { 0x0B0F, 0x0B10 },
+ { 0x0B13, 0x0B28 },
+ { 0x0B2A, 0x0B30 },
+ { 0x0B32, 0x0B33 },
+ { 0x0B35, 0x0B39 },
+ { 0x0B3D, 0x0B3D },
+ { 0x0B5C, 0x0B5D },
+ { 0x0B5F, 0x0B61 },
+ { 0x0B71, 0x0B71 },
+ { 0x0B83, 0x0B83 },
+ { 0x0B85, 0x0B8A },
+ { 0x0B8E, 0x0B90 },
+ { 0x0B92, 0x0B95 },
+ { 0x0B99, 0x0B9A },
+ { 0x0B9C, 0x0B9C },
+ { 0x0B9E, 0x0B9F },
+ { 0x0BA3, 0x0BA4 },
+ { 0x0BA8, 0x0BAA },
+ { 0x0BAE, 0x0BB9 },
+ { 0x0BD0, 0x0BD0 },
+ { 0x0C05, 0x0C0C },
+ { 0x0C0E, 0x0C10 },
+ { 0x0C12, 0x0C28 },
+ { 0x0C2A, 0x0C33 },
+ { 0x0C35, 0x0C39 },
+ { 0x0C3D, 0x0C3D },
+ { 0x0C58, 0x0C59 },
+ { 0x0C60, 0x0C61 },
+ { 0x0C85, 0x0C8C },
+ { 0x0C8E, 0x0C90 },
+ { 0x0C92, 0x0CA8 },
+ { 0x0CAA, 0x0CB3 },
+ { 0x0CB5, 0x0CB9 },
+ { 0x0CBD, 0x0CBD },
+ { 0x0CDE, 0x0CDE },
+ { 0x0CE0, 0x0CE1 },
+ { 0x0D05, 0x0D0C },
+ { 0x0D0E, 0x0D10 },
+ { 0x0D12, 0x0D28 },
+ { 0x0D2A, 0x0D39 },
+ { 0x0D3D, 0x0D3D },
+ { 0x0D60, 0x0D61 },
+ { 0x0D7A, 0x0D7F },
+ { 0x0D85, 0x0D96 },
+ { 0x0D9A, 0x0DB1 },
+ { 0x0DB3, 0x0DBB },
+ { 0x0DBD, 0x0DBD },
+ { 0x0DC0, 0x0DC6 },
+ { 0x0E01, 0x0E30 },
+ { 0x0E32, 0x0E32 },
+ { 0x0E40, 0x0E46 },
+ { 0x0E81, 0x0E82 },
+ { 0x0E84, 0x0E84 },
+ { 0x0E87, 0x0E88 },
+ { 0x0E8A, 0x0E8A },
+ { 0x0E8D, 0x0E8D },
+ { 0x0E94, 0x0E97 },
+ { 0x0E99, 0x0E9F },
+ { 0x0EA1, 0x0EA3 },
+ { 0x0EA5, 0x0EA5 },
+ { 0x0EA7, 0x0EA7 },
+ { 0x0EAA, 0x0EAB },
+ { 0x0EAD, 0x0EB0 },
+ { 0x0EB2, 0x0EB2 },
+ { 0x0EBD, 0x0EBD },
+ { 0x0EC0, 0x0EC4 },
+ { 0x0EC6, 0x0EC6 },
+ { 0x0EDC, 0x0EDD },
+ { 0x0F00, 0x0F00 },
+ { 0x0F40, 0x0F47 },
+ { 0x0F49, 0x0F6C },
+ { 0x0F88, 0x0F8B },
+ { 0x1000, 0x102A },
+ { 0x103F, 0x103F },
+ { 0x1050, 0x1055 },
+ { 0x105A, 0x105D },
+ { 0x1061, 0x1061 },
+ { 0x1065, 0x1066 },
+ { 0x106E, 0x1070 },
+ { 0x1075, 0x1081 },
+ { 0x108E, 0x108E },
+ { 0x10A0, 0x10C5 },
+ { 0x10D0, 0x10FA },
+ { 0x10FC, 0x10FC },
+ { 0x1100, 0x1159 },
+ { 0x115F, 0x11A2 },
+ { 0x11A8, 0x11F9 },
+ { 0x1200, 0x1248 },
+ { 0x124A, 0x124D },
+ { 0x1250, 0x1256 },
+ { 0x1258, 0x1258 },
+ { 0x125A, 0x125D },
+ { 0x1260, 0x1288 },
+ { 0x128A, 0x128D },
+ { 0x1290, 0x12B0 },
+ { 0x12B2, 0x12B5 },
+ { 0x12B8, 0x12BE },
+ { 0x12C0, 0x12C0 },
+ { 0x12C2, 0x12C5 },
+ { 0x12C8, 0x12D6 },
+ { 0x12D8, 0x1310 },
+ { 0x1312, 0x1315 },
+ { 0x1318, 0x135A },
+ { 0x1380, 0x138F },
+ { 0x13A0, 0x13F4 },
+ { 0x1401, 0x166C },
+ { 0x166F, 0x1676 },
+ { 0x1681, 0x169A },
+ { 0x16A0, 0x16EA },
+ { 0x16EE, 0x16F0 },
+ { 0x1700, 0x170C },
+ { 0x170E, 0x1711 },
+ { 0x1720, 0x1731 },
+ { 0x1740, 0x1751 },
+ { 0x1760, 0x176C },
+ { 0x176E, 0x1770 },
+ { 0x1780, 0x17B3 },
+ { 0x17D7, 0x17D7 },
+ { 0x17DC, 0x17DC },
+ { 0x1820, 0x1877 },
+ { 0x1880, 0x18A8 },
+ { 0x18AA, 0x18AA },
+ { 0x1900, 0x191C },
+ { 0x1950, 0x196D },
+ { 0x1970, 0x1974 },
+ { 0x1980, 0x19A9 },
+ { 0x19C1, 0x19C7 },
+ { 0x1A00, 0x1A16 },
+ { 0x1B05, 0x1B33 },
+ { 0x1B45, 0x1B4B },
+ { 0x1B83, 0x1BA0 },
+ { 0x1BAE, 0x1BAF },
+ { 0x1C00, 0x1C23 },
+ { 0x1C4D, 0x1C4F },
+ { 0x1C5A, 0x1C7D },
+ { 0x1D00, 0x1DBF },
+ { 0x1E00, 0x1F15 },
+ { 0x1F18, 0x1F1D },
+ { 0x1F20, 0x1F45 },
+ { 0x1F48, 0x1F4D },
+ { 0x1F50, 0x1F57 },
+ { 0x1F59, 0x1F59 },
+ { 0x1F5B, 0x1F5B },
+ { 0x1F5D, 0x1F5D },
+ { 0x1F5F, 0x1F7D },
+ { 0x1F80, 0x1FB4 },
+ { 0x1FB6, 0x1FBC },
+ { 0x1FBE, 0x1FBE },
+ { 0x1FC2, 0x1FC4 },
+ { 0x1FC6, 0x1FCC },
+ { 0x1FD0, 0x1FD3 },
+ { 0x1FD6, 0x1FDB },
+ { 0x1FE0, 0x1FEC },
+ { 0x1FF2, 0x1FF4 },
+ { 0x1FF6, 0x1FFC },
+ { 0x2071, 0x2071 },
+ { 0x207F, 0x207F },
+ { 0x2090, 0x2094 },
+ { 0x2102, 0x2102 },
+ { 0x2107, 0x2107 },
+ { 0x210A, 0x2113 },
+ { 0x2115, 0x2115 },
+ { 0x2118, 0x211D },
+ { 0x2124, 0x2124 },
+ { 0x2126, 0x2126 },
+ { 0x2128, 0x2128 },
+ { 0x212A, 0x2139 },
+ { 0x213C, 0x213F },
+ { 0x2145, 0x2149 },
+ { 0x214E, 0x214E },
+ { 0x2160, 0x2188 },
+ { 0x2C00, 0x2C2E },
+ { 0x2C30, 0x2C5E },
+ { 0x2C60, 0x2C6F },
+ { 0x2C71, 0x2C7D },
+ { 0x2C80, 0x2CE4 },
+ { 0x2D00, 0x2D25 },
+ { 0x2D30, 0x2D65 },
+ { 0x2D6F, 0x2D6F },
+ { 0x2D80, 0x2D96 },
+ { 0x2DA0, 0x2DA6 },
+ { 0x2DA8, 0x2DAE },
+ { 0x2DB0, 0x2DB6 },
+ { 0x2DB8, 0x2DBE },
+ { 0x2DC0, 0x2DC6 },
+ { 0x2DC8, 0x2DCE },
+ { 0x2DD0, 0x2DD6 },
+ { 0x2DD8, 0x2DDE },
+ { 0x3005, 0x3007 },
+ { 0x3021, 0x3029 },
+ { 0x3031, 0x3035 },
+ { 0x3038, 0x303C },
+ { 0x3041, 0x3096 },
+ { 0x309D, 0x309F },
+ { 0x30A1, 0x30FA },
+ { 0x30FC, 0x30FF },
+ { 0x3105, 0x312D },
+ { 0x3131, 0x318E },
+ { 0x31A0, 0x31B7 },
+ { 0x31F0, 0x31FF },
+ { 0x3400, 0x4DB5 },
+ { 0x4E00, 0x9FC3 },
+ { 0xA000, 0xA48C },
+ { 0xA500, 0xA60C },
+ { 0xA610, 0xA61F },
+ { 0xA62A, 0xA62B },
+ { 0xA640, 0xA65F },
+ { 0xA662, 0xA66E },
+ { 0xA67F, 0xA697 },
+ { 0xA717, 0xA71F },
+ { 0xA722, 0xA788 },
+ { 0xA78B, 0xA78C },
+ { 0xA7FB, 0xA801 },
+ { 0xA803, 0xA805 },
+ { 0xA807, 0xA80A },
+ { 0xA80C, 0xA822 },
+ { 0xA840, 0xA873 },
+ { 0xA882, 0xA8B3 },
+ { 0xA90A, 0xA925 },
+ { 0xA930, 0xA946 },
+ { 0xAA00, 0xAA28 },
+ { 0xAA40, 0xAA42 },
+ { 0xAA44, 0xAA4B },
+ { 0xAC00, 0xD7A3 },
+ { 0xF900, 0xFA2D },
+ { 0xFA30, 0xFA6A },
+ { 0xFA70, 0xFAD9 },
+ { 0xFB00, 0xFB06 },
+ { 0xFB13, 0xFB17 },
+ { 0xFB1D, 0xFB1D },
+ { 0xFB1F, 0xFB28 },
+ { 0xFB2A, 0xFB36 },
+ { 0xFB38, 0xFB3C },
+ { 0xFB3E, 0xFB3E },
+ { 0xFB40, 0xFB41 },
+ { 0xFB43, 0xFB44 },
+ { 0xFB46, 0xFBB1 },
+ { 0xFBD3, 0xFC5D },
+ { 0xFC64, 0xFD3D },
+ { 0xFD50, 0xFD8F },
+ { 0xFD92, 0xFDC7 },
+ { 0xFDF0, 0xFDF9 },
+ { 0xFE71, 0xFE71 },
+ { 0xFE73, 0xFE73 },
+ { 0xFE77, 0xFE77 },
+ { 0xFE79, 0xFE79 },
+ { 0xFE7B, 0xFE7B },
+ { 0xFE7D, 0xFE7D },
+ { 0xFE7F, 0xFEFC },
+ { 0xFF21, 0xFF3A },
+ { 0xFF41, 0xFF5A },
+ { 0xFF66, 0xFF9D },
+ { 0xFFA0, 0xFFBE },
+ { 0xFFC2, 0xFFC7 },
+ { 0xFFCA, 0xFFCF },
+ { 0xFFD2, 0xFFD7 },
+ { 0xFFDA, 0xFFDC },
+ { 0x10000, 0x1000B },
+ { 0x1000D, 0x10026 },
+ { 0x10028, 0x1003A },
+ { 0x1003C, 0x1003D },
+ { 0x1003F, 0x1004D },
+ { 0x10050, 0x1005D },
+ { 0x10080, 0x100FA },
+ { 0x10140, 0x10174 },
+ { 0x10280, 0x1029C },
+ { 0x102A0, 0x102D0 },
+ { 0x10300, 0x1031E },
+ { 0x10330, 0x1034A },
+ { 0x10380, 0x1039D },
+ { 0x103A0, 0x103C3 },
+ { 0x103C8, 0x103CF },
+ { 0x103D1, 0x103D5 },
+ { 0x10400, 0x1049D },
+ { 0x10800, 0x10805 },
+ { 0x10808, 0x10808 },
+ { 0x1080A, 0x10835 },
+ { 0x10837, 0x10838 },
+ { 0x1083C, 0x1083C },
+ { 0x1083F, 0x1083F },
+ { 0x10900, 0x10915 },
+ { 0x10920, 0x10939 },
+ { 0x10A00, 0x10A00 },
+ { 0x10A10, 0x10A13 },
+ { 0x10A15, 0x10A17 },
+ { 0x10A19, 0x10A33 },
+ { 0x12000, 0x1236E },
+ { 0x12400, 0x12462 },
+ { 0x1D400, 0x1D454 },
+ { 0x1D456, 0x1D49C },
+ { 0x1D49E, 0x1D49F },
+ { 0x1D4A2, 0x1D4A2 },
+ { 0x1D4A5, 0x1D4A6 },
+ { 0x1D4A9, 0x1D4AC },
+ { 0x1D4AE, 0x1D4B9 },
+ { 0x1D4BB, 0x1D4BB },
+ { 0x1D4BD, 0x1D4C3 },
+ { 0x1D4C5, 0x1D505 },
+ { 0x1D507, 0x1D50A },
+ { 0x1D50D, 0x1D514 },
+ { 0x1D516, 0x1D51C },
+ { 0x1D51E, 0x1D539 },
+ { 0x1D53B, 0x1D53E },
+ { 0x1D540, 0x1D544 },
+ { 0x1D546, 0x1D546 },
+ { 0x1D54A, 0x1D550 },
+ { 0x1D552, 0x1D6A5 },
+ { 0x1D6A8, 0x1D6C0 },
+ { 0x1D6C2, 0x1D6DA },
+ { 0x1D6DC, 0x1D6FA },
+ { 0x1D6FC, 0x1D714 },
+ { 0x1D716, 0x1D734 },
+ { 0x1D736, 0x1D74E },
+ { 0x1D750, 0x1D76E },
+ { 0x1D770, 0x1D788 },
+ { 0x1D78A, 0x1D7A8 },
+ { 0x1D7AA, 0x1D7C2 },
+ { 0x1D7C4, 0x1D7CB },
+ { 0x20000, 0x2A6D6 },
+ { 0x2F800, 0x2FA1D }
+
+#define PREDICATE(c) uc_is_property_xid_start (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_zero_width.c b/tests/unictype/test-pr_zero_width.c
new file mode 100644
index 0000000..faefd5e
--- /dev/null
+++ b/tests/unictype/test-pr_zero_width.c
@@ -0,0 +1,36 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x00AD, 0x00AD },
+ { 0x0600, 0x0603 },
+ { 0x06DD, 0x06DD },
+ { 0x070F, 0x070F },
+ { 0x17B4, 0x17B5 },
+ { 0x200B, 0x200F },
+ { 0x202A, 0x202E },
+ { 0x2060, 0x2064 },
+ { 0x206A, 0x206F },
+ { 0xFEFF, 0xFEFF },
+ { 0xFFF9, 0xFFFB },
+ { 0x1D173, 0x1D17A },
+ { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F }
+
+#define PREDICATE(c) uc_is_property_zero_width (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-predicate-part1.h b/tests/unictype/test-predicate-part1.h
new file mode 100644
index 0000000..e81de47
--- /dev/null
+++ b/tests/unictype/test-predicate-part1.h
@@ -0,0 +1,45 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed for c = 0x%04X\n", \
+ __FILE__, __LINE__, c); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+#define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+
+/* Interval of Unicode characters. */
+typedef struct { ucs4_t start; ucs4_t end; } interval_t;
+
+/* Set of Unicode characters, described as list of intervals, in increasing
+ order. */
+static const interval_t set[] =
+ {
diff --git a/tests/unictype/test-predicate-part2.h b/tests/unictype/test-predicate-part2.h
new file mode 100644
index 0000000..60b7c24
--- /dev/null
+++ b/tests/unictype/test-predicate-part2.h
@@ -0,0 +1,37 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ };
+
+int
+main ()
+{
+ unsigned int c;
+ size_t i;
+
+ c = 0;
+ for (i = 0; i < SIZEOF (set); i++)
+ {
+ for (; c < set[i].start; c++)
+ ASSERT (!PREDICATE (c));
+ for (; c <= set[i].end; c++)
+ ASSERT (PREDICATE (c));
+ }
+ for (; c < 0x110000; c++)
+ ASSERT (!PREDICATE (c));
+
+ return 0;
+}
diff --git a/tests/unictype/test-scripts.c b/tests/unictype/test-scripts.c
new file mode 100644
index 0000000..4b4b0f9
--- /dev/null
+++ b/tests/unictype/test-scripts.c
@@ -0,0 +1,86 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test the uc_script function. */
+ ASSERT (strcmp (uc_script ('A')->name, "Latin") == 0);
+ ASSERT (strcmp (uc_script ('%')->name, "Common") == 0);
+ ASSERT (uc_script (0xE0000) == NULL);
+
+ /* Test the uc_script_byname function. */
+ ASSERT (strcmp (uc_script_byname ("Armenian")->name, "Armenian") == 0);
+ ASSERT (uc_script_byname ("Pekinese") == NULL);
+
+ /* Test the uc_is_script function. */
+ ASSERT (uc_is_script ('A', uc_script_byname ("Latin")));
+ ASSERT (!uc_is_script ('A', uc_script_byname ("Common")));
+ ASSERT (!uc_is_script (0x05DA, uc_script_byname ("Latin")));
+ ASSERT (uc_is_script (0x05DA, uc_script_byname ("Hebrew")));
+
+ {
+ unsigned int c;
+
+ for (c = 0; c < 0x110000; c++)
+ {
+ const uc_script_t *script = uc_script (c);
+ if (script != NULL)
+ ASSERT (uc_is_script (c, script));
+ }
+ }
+
+ /* Test the uc_all_scripts function. */
+ {
+ const uc_script_t *scripts;
+ size_t nscripts;
+ size_t i;
+ bool found;
+
+ uc_all_scripts (&scripts, &nscripts);
+
+ found = false;
+ for (i = 0; i < nscripts; i++)
+ {
+ ASSERT (scripts[i].name != NULL);
+ if (strcmp (scripts[i].name, "Hebrew") == 0)
+ found = true;
+ }
+ ASSERT (found);
+ }
+
+ return 0;
+}
diff --git a/tests/unictype/test-sy_c_ident.c b/tests/unictype/test-sy_c_ident.c
new file mode 100644
index 0000000..00688e1
--- /dev/null
+++ b/tests/unictype/test-sy_c_ident.c
@@ -0,0 +1,50 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (uc_c_ident_category ('0') == UC_IDENTIFIER_VALID);
+ ASSERT (uc_c_ident_category ('X') == UC_IDENTIFIER_START);
+ ASSERT (uc_c_ident_category ('+') == UC_IDENTIFIER_INVALID);
+ ASSERT (uc_c_ident_category (0x00B2) == UC_IDENTIFIER_INVALID);
+ ASSERT (uc_c_ident_category (0x05DA) == UC_IDENTIFIER_START);
+
+ ASSERT (uc_c_ident_category (0x001B) == UC_IDENTIFIER_INVALID);
+ ASSERT (uc_c_ident_category (0xE0001) == UC_IDENTIFIER_INVALID);
+
+ return 0;
+}
diff --git a/tests/unictype/test-sy_c_whitespace.c b/tests/unictype/test-sy_c_whitespace.c
new file mode 100644
index 0000000..45b9bc0
--- /dev/null
+++ b/tests/unictype/test-sy_c_whitespace.c
@@ -0,0 +1,24 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0009, 0x000D },
+ { 0x0020, 0x0020 }
+
+#define PREDICATE(c) uc_is_c_whitespace (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-sy_java_ident.c b/tests/unictype/test-sy_java_ident.c
new file mode 100644
index 0000000..0a4eb0a
--- /dev/null
+++ b/tests/unictype/test-sy_java_ident.c
@@ -0,0 +1,50 @@
+/* Test the Unicode character type functions.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (uc_java_ident_category ('0') == UC_IDENTIFIER_VALID);
+ ASSERT (uc_java_ident_category ('X') == UC_IDENTIFIER_START);
+ ASSERT (uc_java_ident_category ('+') == UC_IDENTIFIER_INVALID);
+ ASSERT (uc_java_ident_category (0x00B2) == UC_IDENTIFIER_INVALID);
+ ASSERT (uc_java_ident_category (0x05DA) == UC_IDENTIFIER_START);
+
+ ASSERT (uc_java_ident_category (0x001B) == UC_IDENTIFIER_IGNORABLE);
+ ASSERT (uc_java_ident_category (0xE0001) == UC_IDENTIFIER_IGNORABLE);
+
+ return 0;
+}
diff --git a/tests/unictype/test-sy_java_whitespace.c b/tests/unictype/test-sy_java_whitespace.c
new file mode 100644
index 0000000..9e2943b
--- /dev/null
+++ b/tests/unictype/test-sy_java_whitespace.c
@@ -0,0 +1,25 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "test-predicate-part1.h"
+
+ { 0x0009, 0x000A },
+ { 0x000C, 0x000D },
+ { 0x0020, 0x0020 }
+
+#define PREDICATE(c) uc_is_java_whitespace (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unilbrk/test-u16-possible-linebreaks.c b/tests/unilbrk/test-u16-possible-linebreaks.c
new file mode 100644
index 0000000..4e0ef34
--- /dev/null
+++ b/tests/unilbrk/test-u16-possible-linebreaks.c
@@ -0,0 +1,96 @@
+/* Test of line breaking of UTF-16 strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u16_possible_linebreaks (NULL, 0, "GB18030", NULL);
+
+ {
+ static const uint16_t input[61] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u16_possible_linebreaks (input, SIZEOF (input), "GB18030", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 5
+ || i == 11 || i == 25
+ || i == 27 || i == 29 || i == 30 || i == 35
+ || i == 45 || i == 51
+ || i == 52 || i == 53 || i == 55 || i == 56
+ || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u16_possible_linebreaks (input, SIZEOF (input), "GB2312", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 5
+ || i == 11 || i == 25
+ || i == 27 || i == 29 || i == 30 || i == 35
+ || i == 37 || i == 45 || i == 51
+ || i == 52 || i == 53 || i == 55 || i == 56
+ || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unilbrk/test-u16-width-linebreaks.c b/tests/unilbrk/test-u16-width-linebreaks.c
new file mode 100644
index 0000000..b62d596
--- /dev/null
+++ b/tests/unilbrk/test-u16-width-linebreaks.c
@@ -0,0 +1,86 @@
+/* Test of line breaking of UTF-16 strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u16_width_linebreaks (NULL, 0, 80, 0, 0, NULL, "GB18030", NULL);
+
+ {
+ static const uint16_t input[61] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u16_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB18030", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u16_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB2312", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 11 || i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unilbrk/test-u32-possible-linebreaks.c b/tests/unilbrk/test-u32-possible-linebreaks.c
new file mode 100644
index 0000000..94e276a
--- /dev/null
+++ b/tests/unilbrk/test-u32-possible-linebreaks.c
@@ -0,0 +1,96 @@
+/* Test of line breaking of UTF-32 strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u32_possible_linebreaks (NULL, 0, "GB18030", NULL);
+
+ {
+ static const uint32_t input[61] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u32_possible_linebreaks (input, SIZEOF (input), "GB18030", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 5
+ || i == 11 || i == 25
+ || i == 27 || i == 29 || i == 30 || i == 35
+ || i == 45 || i == 51
+ || i == 52 || i == 53 || i == 55 || i == 56
+ || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u32_possible_linebreaks (input, SIZEOF (input), "GB2312", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 5
+ || i == 11 || i == 25
+ || i == 27 || i == 29 || i == 30 || i == 35
+ || i == 37 || i == 45 || i == 51
+ || i == 52 || i == 53 || i == 55 || i == 56
+ || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unilbrk/test-u32-width-linebreaks.c b/tests/unilbrk/test-u32-width-linebreaks.c
new file mode 100644
index 0000000..f684dee
--- /dev/null
+++ b/tests/unilbrk/test-u32-width-linebreaks.c
@@ -0,0 +1,86 @@
+/* Test of line breaking of UTF-32 strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u32_width_linebreaks (NULL, 0, 80, 0, 0, NULL, "GB18030", NULL);
+
+ {
+ static const uint32_t input[61] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u32_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB18030", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u32_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB2312", p);
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
+ i == 11 || i == 25 || i == 45 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unilbrk/test-u8-possible-linebreaks.c b/tests/unilbrk/test-u8-possible-linebreaks.c
new file mode 100644
index 0000000..c3a091d
--- /dev/null
+++ b/tests/unilbrk/test-u8-possible-linebreaks.c
@@ -0,0 +1,90 @@
+/* Test of line breaking of UTF-8 strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u8_possible_linebreaks (NULL, 0, "GB18030", NULL);
+
+ {
+ static const uint8_t input[91] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ "Gr\303\274\303\237 Gott. \320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\271\321\202\320\265! x=(-b\302\261sqrt(b\302\262-4ac))/(2a) \346\227\245\346\234\254\350\252\236,\344\270\255\346\226\207,\355\225\234\352\270\200\n";
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u8_possible_linebreaks (input, SIZEOF (input), "GB18030", p);
+ for (i = 0; i < 91; i++)
+ {
+ ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
+ i == 7
+ || i == 13 || i == 39
+ || i == 41 || i == 43 || i == 44 || i == 50
+ || i == 61 || i == 67
+ || i == 70 || i == 73 || i == 77 || i == 80
+ || i == 84 || i == 87 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u8_possible_linebreaks (input, SIZEOF (input), "GB2312", p);
+ for (i = 0; i < 91; i++)
+ {
+ ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
+ i == 7
+ || i == 13 || i == 39
+ || i == 41 || i == 43 || i == 44 || i == 50
+ || i == 52 || i == 61 || i == 67
+ || i == 70 || i == 73 || i == 77 || i == 80
+ || i == 84 || i == 87 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unilbrk/test-u8-width-linebreaks.c b/tests/unilbrk/test-u8-width-linebreaks.c
new file mode 100644
index 0000000..6c176f1
--- /dev/null
+++ b/tests/unilbrk/test-u8-width-linebreaks.c
@@ -0,0 +1,80 @@
+/* Test of line breaking of UTF-8 strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u8_width_linebreaks (NULL, 0, 80, 0, 0, NULL, "GB18030", NULL);
+
+ {
+ static const uint8_t input[91] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ "Gr\303\274\303\237 Gott. \320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\271\321\202\320\265! x=(-b\302\261sqrt(b\302\262-4ac))/(2a) \346\227\245\346\234\254\350\252\236,\344\270\255\346\226\207,\355\225\234\352\270\200\n";
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u8_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB18030", p);
+ for (i = 0; i < 91; i++)
+ {
+ ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
+ i == 39 || i == 61 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+
+ {
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u8_width_linebreaks (input, SIZEOF (input), 25, 0, 0, NULL, "GB2312", p);
+ for (i = 0; i < 91; i++)
+ {
+ ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
+ i == 13 || i == 39 || i == 61 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+ }
+
+ return 0;
+}
diff --git a/tests/unilbrk/test-ulc-possible-linebreaks.c b/tests/unilbrk/test-ulc-possible-linebreaks.c
new file mode 100644
index 0000000..fdd73be
--- /dev/null
+++ b/tests/unilbrk/test-ulc-possible-linebreaks.c
@@ -0,0 +1,66 @@
+/* Test of line breaking of strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ ulc_possible_linebreaks (NULL, 0, "GB18030", NULL);
+
+#if HAVE_ICONV
+ {
+ static const char input[36] =
+ /* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */
+ "Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n";
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ ulc_possible_linebreaks (input, SIZEOF (input), "ISO-8859-1", p);
+ for (i = 0; i < 36; i++)
+ {
+ ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY :
+ i == 5 || i == 11 || i == 13 || i == 15 || i == 16
+ || i == 21 || i == 31 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+#endif
+
+ return 0;
+}
diff --git a/tests/unilbrk/test-ulc-width-linebreaks.c b/tests/unilbrk/test-ulc-width-linebreaks.c
new file mode 100644
index 0000000..c0b2301
--- /dev/null
+++ b/tests/unilbrk/test-ulc-width-linebreaks.c
@@ -0,0 +1,65 @@
+/* Test of line breaking of strings.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "unilbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ ulc_width_linebreaks (NULL, 0, 80, 0, 0, NULL, "GB18030", NULL);
+
+#if HAVE_ICONV
+ {
+ static const char input[36] =
+ /* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */
+ "Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n";
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ ulc_width_linebreaks (input, SIZEOF (input), 12, 0, 0, NULL, "ISO-8859-1", p);
+ for (i = 0; i < 36; i++)
+ {
+ ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY :
+ i == 11 || i == 21 || i == 31 ? UC_BREAK_POSSIBLE :
+ UC_BREAK_PROHIBITED));
+ }
+ free (p);
+ }
+#endif
+
+ return 0;
+}
diff --git a/tests/uniname/UnicodeDataNames.txt b/tests/uniname/UnicodeDataNames.txt
new file mode 100644
index 0000000..5a4cf1a
--- /dev/null
+++ b/tests/uniname/UnicodeDataNames.txt
@@ -0,0 +1,30423 @@
+0020;SPACE;Zs;0;WS;;;;;N;;;;;
+0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;
+0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;;
+0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;;
+0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+0026;AMPERSAND;Po;0;ON;;;;;N;;;;;
+0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;
+0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;;
+0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;;
+002A;ASTERISK;Po;0;ON;;;;;N;;;;;
+002B;PLUS SIGN;Sm;0;ES;;;;;N;;;;;
+002C;COMMA;Po;0;CS;;;;;N;;;;;
+002D;HYPHEN-MINUS;Pd;0;ES;;;;;N;;;;;
+002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;;
+002F;SOLIDUS;Po;0;CS;;;;;N;SLASH;;;;
+0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
+0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
+0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
+0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;
+0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;
+0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;
+0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;
+0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
+0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;
+0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;
+003A;COLON;Po;0;CS;;;;;N;;;;;
+003B;SEMICOLON;Po;0;ON;;;;;N;;;;;
+003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003F;QUESTION MARK;Po;0;ON;;;;;N;;;;;
+0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;;
+0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;
+0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062;
+0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063;
+0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064;
+0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065;
+0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066;
+0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067;
+0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068;
+0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069;
+004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A;
+004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B;
+004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C;
+004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D;
+004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E;
+004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F;
+0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070;
+0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071;
+0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072;
+0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073;
+0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074;
+0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075;
+0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076;
+0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077;
+0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078;
+0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079;
+005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A;
+005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;
+005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;
+005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;
+005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;
+005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;
+0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;
+0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
+0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
+0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
+0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044
+0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045
+0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046
+0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047
+0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048
+0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049
+006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A
+006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B
+006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C
+006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D
+006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E
+006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F
+0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050
+0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051
+0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052
+0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053
+0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054
+0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055
+0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056
+0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057
+0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058
+0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059
+007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
+007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;;
+007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;;
+007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;;
+007E;TILDE;Sm;0;ON;;;;;N;;;;;
+00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;;
+00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;;
+00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;;
+00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
+00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
+00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;
+00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
+00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
+00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;
+00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;;
+00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
+00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;;
+00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;;
+00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;;
+00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;;
+00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;;
+00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;;2;2;N;SUPERSCRIPT DIGIT TWO;;;;
+00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
+00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
+00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
+00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;
+00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
+00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
+00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;
+00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;;
+00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
+00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
+00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;;
+00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;;
+00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0;
+00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1;
+00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2;
+00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3;
+00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4;
+00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5;
+00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6;
+00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7;
+00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8;
+00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9;
+00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA;
+00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB;
+00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC;
+00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED;
+00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE;
+00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF;
+00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0;
+00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1;
+00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2;
+00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3;
+00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4;
+00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5;
+00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6;
+00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;;
+00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8;
+00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9;
+00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA;
+00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB;
+00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC;
+00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD;
+00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE;
+00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;;
+00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0
+00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1
+00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2
+00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3
+00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4
+00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5
+00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6
+00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7
+00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8
+00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9
+00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA
+00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB
+00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC
+00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD
+00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE
+00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF
+00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0
+00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1
+00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2
+00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3
+00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4
+00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5
+00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6
+00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8
+00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9
+00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA
+00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB
+00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC
+00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD
+00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE
+00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178
+0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101;
+0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100
+0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103;
+0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102
+0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105;
+0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104
+0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107;
+0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106
+0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109;
+0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108
+010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B;
+010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A
+010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D;
+010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C
+010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F;
+010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E
+0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;
+0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110
+0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113;
+0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112
+0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115;
+0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114
+0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117;
+0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116
+0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119;
+0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118
+011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B;
+011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A
+011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D;
+011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C
+011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F;
+011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E
+0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121;
+0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120
+0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123;
+0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122
+0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125;
+0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124
+0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127;
+0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126
+0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129;
+0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128
+012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B;
+012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A
+012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D;
+012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C
+012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F;
+012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E
+0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;
+0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049
+0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133;
+0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132
+0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135;
+0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134
+0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137;
+0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136
+0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;;
+0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A;
+013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139
+013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C;
+013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B
+013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E;
+013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D
+013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140;
+0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F
+0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;
+0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141
+0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144;
+0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143
+0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146;
+0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145
+0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148;
+0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147
+0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;;
+014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B;
+014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A
+014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D;
+014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C
+014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F;
+014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E
+0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151;
+0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150
+0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153;
+0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152
+0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155;
+0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154
+0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157;
+0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156
+0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159;
+0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158
+015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B;
+015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A
+015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D;
+015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C
+015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F;
+015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E
+0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161;
+0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160
+0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163;
+0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162
+0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165;
+0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164
+0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167;
+0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166
+0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169;
+0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168
+016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B;
+016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A
+016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D;
+016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C
+016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F;
+016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E
+0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171;
+0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170
+0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173;
+0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172
+0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175;
+0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174
+0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177;
+0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176
+0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF;
+0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A;
+017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179
+017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C;
+017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B
+017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;
+017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D
+017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053
+0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243
+0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;
+0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;
+0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182
+0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185;
+0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184
+0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254;
+0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188;
+0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187
+0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256;
+018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257;
+018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C;
+018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B
+018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;;
+018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD;
+018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259;
+0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B;
+0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192;
+0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191
+0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260;
+0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263;
+0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6
+0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269;
+0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268;
+0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
+0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
+019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D
+019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
+019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
+019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
+019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220
+019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275;
+01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;
+01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0
+01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3;
+01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2
+01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5;
+01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4
+01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;*;;0280;
+01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;
+01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7
+01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;
+01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;
+01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;
+01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;
+01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC
+01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288;
+01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0;
+01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF
+01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A;
+01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B;
+01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4;
+01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3
+01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6;
+01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5
+01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292;
+01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9;
+01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8
+01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;;
+01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;
+01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;
+01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC
+01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
+01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7
+01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;
+01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;
+01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;;
+01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;;
+01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5
+01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5
+01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5
+01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8
+01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;01C8
+01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8
+01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB
+01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;01CB
+01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB
+01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE;
+01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD
+01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0;
+01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF
+01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2;
+01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1
+01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4;
+01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3
+01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6;
+01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5
+01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8;
+01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7
+01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA;
+01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9
+01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC;
+01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB
+01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E
+01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF;
+01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE
+01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1;
+01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0
+01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3;
+01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2
+01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5;
+01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4
+01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7;
+01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6
+01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9;
+01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8
+01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB;
+01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA
+01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED;
+01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC
+01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF;
+01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE
+01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;;
+01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2
+01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;01F2
+01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2
+01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5;
+01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4
+01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195;
+01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF;
+01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9;
+01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8
+01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB;
+01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA
+01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD;
+01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC
+01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF;
+01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE
+0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201;
+0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200
+0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203;
+0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202
+0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205;
+0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204
+0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207;
+0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206
+0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209;
+0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208
+020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B;
+020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A
+020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D;
+020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C
+020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F;
+020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E
+0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211;
+0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210
+0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213;
+0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212
+0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215;
+0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214
+0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217;
+0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216
+0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219;
+0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218
+021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B;
+021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A
+021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D;
+021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C
+021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;
+021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E
+0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E;
+0221;LATIN SMALL LETTER D WITH CURL;Ll;0;L;;;;;N;;;;;
+0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;
+0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222
+0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;
+0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224
+0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227;
+0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226
+0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229;
+0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228
+022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B;
+022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A
+022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D;
+022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C
+022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F;
+022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E
+0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231;
+0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230
+0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233;
+0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232
+0234;LATIN SMALL LETTER L WITH CURL;Ll;0;L;;;;;N;;;;;
+0235;LATIN SMALL LETTER N WITH CURL;Ll;0;L;;;;;N;;;;;
+0236;LATIN SMALL LETTER T WITH CURL;Ll;0;L;;;;;N;;;;;
+0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;;
+0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;;
+0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;;
+023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65;
+023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C;
+023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B
+023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A;
+023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66;
+023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
+0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
+0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242;
+0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241
+0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180;
+0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289;
+0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C;
+0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247;
+0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246
+0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249;
+0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248
+024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B;
+024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A
+024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D;
+024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C
+024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F;
+024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E
+0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;2C6F;;2C6F
+0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;2C6D;;2C6D
+0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;;
+0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181
+0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186
+0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;;
+0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189
+0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A
+0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;;
+0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
+025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
+025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
+025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
+025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
+025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
+025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
+0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
+0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
+0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
+0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
+0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
+0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;;
+0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;
+0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
+0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
+0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
+026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
+026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62
+026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
+026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
+026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
+026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
+0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;2C6E;;2C6E
+0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D
+0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;;
+0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;;
+0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F
+0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;;
+0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;;
+0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;;
+0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;;
+027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;
+027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64
+027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;
+027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
+0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;*;01A6;;01A6
+0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;
+0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;
+0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9
+0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
+0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
+0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
+0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
+0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
+0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244
+028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
+028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2
+028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245
+028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;
+028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;
+028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;
+0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;;
+0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;
+0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
+0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
+0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
+0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
+0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
+0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
+0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;;
+029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;;
+029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
+029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
+029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
+029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
+029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
+02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
+02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
+02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;;
+02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;;
+02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;;
+02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;;
+02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;;
+02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;;
+02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;;
+02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AE;LATIN SMALL LETTER TURNED H WITH FISHHOOK;Ll;0;L;;;;;N;;;;;
+02AF;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL;Ll;0;L;;;;;N;;;;;
+02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;;
+02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;;
+02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;;
+02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;;
+02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;;
+02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;;
+02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;;
+02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;;
+02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;;
+02B9;MODIFIER LETTER PRIME;Lm;0;ON;;;;;N;;;;;
+02BA;MODIFIER LETTER DOUBLE PRIME;Lm;0;ON;;;;;N;;;;;
+02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;;
+02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;;
+02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;;
+02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;;
+02C7;CARON;Lm;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;;
+02C8;MODIFIER LETTER VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
+02C9;MODIFIER LETTER MACRON;Lm;0;ON;;;;;N;;Mandarin Chinese first tone;;;
+02CA;MODIFIER LETTER ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;;
+02CB;MODIFIER LETTER GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;;
+02CC;MODIFIER LETTER LOW VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
+02CD;MODIFIER LETTER LOW MACRON;Lm;0;ON;;;;;N;;;;;
+02CE;MODIFIER LETTER LOW GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;;
+02CF;MODIFIER LETTER LOW ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;;
+02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;;
+02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;;
+02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;;
+02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;;
+02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;;
+02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;;
+02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;;
+02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;;
+02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;;
+02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;;
+02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;;
+02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;;
+02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;;
+02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;;
+02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;;
+02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;;
+02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;;
+02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EC;MODIFIER LETTER VOICING;Lm;0;ON;;;;;N;;;;;
+02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;
+02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02EF;MODIFIER LETTER LOW DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F0;MODIFIER LETTER LOW UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F1;MODIFIER LETTER LOW LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F2;MODIFIER LETTER LOW RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F3;MODIFIER LETTER LOW RING;Sk;0;ON;;;;;N;;;;;
+02F4;MODIFIER LETTER MIDDLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F5;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F6;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F7;MODIFIER LETTER LOW TILDE;Sk;0;ON;;;;;N;;;;;
+02F8;MODIFIER LETTER RAISED COLON;Sk;0;ON;;;;;N;;;;;
+02F9;MODIFIER LETTER BEGIN HIGH TONE;Sk;0;ON;;;;;N;;;;;
+02FA;MODIFIER LETTER END HIGH TONE;Sk;0;ON;;;;;N;;;;;
+02FB;MODIFIER LETTER BEGIN LOW TONE;Sk;0;ON;;;;;N;;;;;
+02FC;MODIFIER LETTER END LOW TONE;Sk;0;ON;;;;;N;;;;;
+02FD;MODIFIER LETTER SHELF;Sk;0;ON;;;;;N;;;;;
+02FE;MODIFIER LETTER OPEN SHELF;Sk;0;ON;;;;;N;;;;;
+02FF;MODIFIER LETTER LOW LEFT ARROW;Sk;0;ON;;;;;N;;;;;
+0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;;
+0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia, Tonos;;;
+0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;
+0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;
+0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;
+0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;;
+0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;;
+0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;
+0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;;
+0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;;
+030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;
+030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;
+030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;
+030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;;
+030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;
+030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;
+0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;
+0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;;
+0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;;
+0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;;
+0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;;
+0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;;
+0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;;
+0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;;
+0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;;
+0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;;
+031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;;
+031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;;
+031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;;
+031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;;
+031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;;
+031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;;
+0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;;
+0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;;
+0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;;
+0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;
+0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;;
+0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;;
+0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;;
+0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;;
+0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;;
+0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;;
+032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;;
+032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;;
+032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;;
+032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;;
+032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;;
+032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;;
+0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;;
+0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;;
+0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;;
+0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;;
+0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;;
+0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;;
+0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;;
+0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;;
+0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;;
+0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;;
+033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;;
+033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;;
+033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;;
+033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;;
+033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;;
+033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;;
+0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;;
+0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;;
+0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;;
+0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;;
+0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;;
+0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399
+0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;
+0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;;
+034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;;
+034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;;
+034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;
+034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;;
+0350;COMBINING RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+0351;COMBINING LEFT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+0352;COMBINING FERMATA;Mn;230;NSM;;;;;N;;;;;
+0353;COMBINING X BELOW;Mn;220;NSM;;;;;N;;;;;
+0354;COMBINING LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0355;COMBINING RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0356;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0357;COMBINING RIGHT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+0358;COMBINING DOT ABOVE RIGHT;Mn;232;NSM;;;;;N;;;;;
+0359;COMBINING ASTERISK BELOW;Mn;220;NSM;;;;;N;;;;;
+035A;COMBINING DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
+035B;COMBINING ZIGZAG ABOVE;Mn;230;NSM;;;;;N;;;;;
+035C;COMBINING DOUBLE BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
+035D;COMBINING DOUBLE BREVE;Mn;234;NSM;;;;;N;;;;;
+035E;COMBINING DOUBLE MACRON;Mn;234;NSM;;;;;N;;;;;
+035F;COMBINING DOUBLE MACRON BELOW;Mn;233;NSM;;;;;N;;;;;
+0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;
+0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;
+0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;
+0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;;
+0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;;
+0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;;
+0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;;
+0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;;
+0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;;
+0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;;
+036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;;
+036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;;
+036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;;
+036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;;
+036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;;
+036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;;
+0370;GREEK CAPITAL LETTER HETA;Lu;0;L;;;;;N;;;;0371;
+0371;GREEK SMALL LETTER HETA;Ll;0;L;;;;;N;;;0370;;0370
+0372;GREEK CAPITAL LETTER ARCHAIC SAMPI;Lu;0;L;;;;;N;;;;0373;
+0373;GREEK SMALL LETTER ARCHAIC SAMPI;Ll;0;L;;;;;N;;;0372;;0372
+0374;GREEK NUMERAL SIGN;Lm;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;
+0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;
+0376;GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA;Lu;0;L;;;;;N;;;;0377;
+0377;GREEK SMALL LETTER PAMPHYLIAN DIGAMMA;Ll;0;L;;;;;N;;;0376;;0376
+037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
+037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD
+037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE
+037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF
+037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;;
+0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
+0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
+0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
+0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;;
+0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD;
+0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE;
+038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF;
+038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC;
+038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD;
+038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE;
+0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;;
+0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1;
+0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2;
+0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3;
+0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4;
+0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5;
+0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6;
+0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7;
+0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;
+0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9;
+039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA;
+039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB;
+039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC;
+039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD;
+039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE;
+039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF;
+03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0;
+03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1;
+03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3;
+03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4;
+03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5;
+03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6;
+03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7;
+03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8;
+03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9;
+03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;
+03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;
+03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386
+03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388
+03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389
+03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A
+03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;
+03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391
+03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392
+03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393
+03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394
+03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395
+03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396
+03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397
+03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398
+03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399
+03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A
+03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B
+03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C
+03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D
+03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E
+03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F
+03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0
+03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1
+03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4
+03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5
+03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6
+03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7
+03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8
+03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9
+03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA
+03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB
+03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C
+03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E
+03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F
+03CF;GREEK CAPITAL KAI SYMBOL;Lu;0;L;;;;;N;;;;03D7;
+03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392
+03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398
+03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;;
+03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;
+03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;
+03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6
+03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0
+03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;03CF;;03CF
+03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9;
+03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;*;03D8;;03D8
+03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;
+03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA
+03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;
+03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC
+03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF;
+03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE
+03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;
+03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0
+03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;
+03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2
+03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;
+03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4
+03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7;
+03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6
+03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9;
+03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8
+03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB;
+03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA
+03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED;
+03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC
+03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF;
+03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE
+03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
+03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
+03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
+03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;
+03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395
+03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;;
+03F7;GREEK CAPITAL LETTER SHO;Lu;0;L;;;;;N;;;;03F8;
+03F8;GREEK SMALL LETTER SHO;Ll;0;L;;;;;N;;;03F7;;03F7
+03F9;GREEK CAPITAL LUNATE SIGMA SYMBOL;Lu;0;L;<compat> 03A3;;;;N;;;;03F2;
+03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB;
+03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA
+03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;;
+03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B;
+03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C;
+03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D;
+0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
+0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
+0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
+0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453;
+0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454;
+0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455;
+0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456;
+0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457;
+0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458;
+0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459;
+040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A;
+040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B;
+040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C;
+040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D;
+040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E;
+040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F;
+0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430;
+0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431;
+0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432;
+0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433;
+0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434;
+0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435;
+0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436;
+0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437;
+0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438;
+0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439;
+041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A;
+041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B;
+041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C;
+041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D;
+041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E;
+041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F;
+0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440;
+0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441;
+0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442;
+0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443;
+0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444;
+0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445;
+0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446;
+0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447;
+0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448;
+0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449;
+042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A;
+042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B;
+042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C;
+042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D;
+042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E;
+042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F;
+0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410
+0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411
+0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412
+0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413
+0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414
+0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415
+0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416
+0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417
+0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418
+0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419
+043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A
+043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B
+043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C
+043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D
+043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E
+043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F
+0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420
+0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421
+0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422
+0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423
+0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424
+0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425
+0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426
+0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427
+0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428
+0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429
+044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
+044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B
+044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C
+044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D
+044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E
+044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F
+0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400
+0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401
+0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402
+0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403
+0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404
+0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405
+0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406
+0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407
+0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408
+0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409
+045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A
+045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B
+045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C
+045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D
+045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E
+045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F
+0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461;
+0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460
+0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463;
+0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462
+0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465;
+0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464
+0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467;
+0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466
+0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469;
+0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468
+046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B;
+046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A
+046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D;
+046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C
+046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F;
+046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E
+0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471;
+0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470
+0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473;
+0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472
+0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475;
+0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474
+0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477;
+0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476
+0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479;
+0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478
+047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B;
+047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A
+047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D;
+047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C
+047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F;
+047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E
+0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481;
+0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480
+0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;;
+0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;;
+0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;;
+0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;;
+0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;
+0487;COMBINING CYRILLIC POKRYTIE;Mn;230;NSM;;;;;N;;;;;
+0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;
+0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B;
+048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A
+048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;
+048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C
+048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;
+048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E
+0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491;
+0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490
+0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493;
+0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492
+0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495;
+0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494
+0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497;
+0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496
+0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499;
+0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498
+049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B;
+049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A
+049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D;
+049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C
+049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F;
+049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E
+04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1;
+04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0
+04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3;
+04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2
+04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5;
+04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4
+04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7;
+04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6
+04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9;
+04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8
+04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB;
+04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA
+04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD;
+04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC
+04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF;
+04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE
+04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1;
+04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0
+04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3;
+04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2
+04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5;
+04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4
+04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7;
+04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6
+04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9;
+04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8
+04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB;
+04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA
+04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD;
+04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
+04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
+04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
+04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF;
+04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
+04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
+04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
+04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3
+04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6;
+04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5
+04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;
+04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7
+04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA;
+04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9
+04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;
+04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
+04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE;
+04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD
+04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0
+04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
+04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
+04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
+04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2
+04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5;
+04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4
+04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7;
+04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6
+04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9;
+04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8
+04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB;
+04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA
+04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD;
+04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC
+04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF;
+04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE
+04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1;
+04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0
+04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3;
+04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2
+04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5;
+04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4
+04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7;
+04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6
+04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9;
+04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8
+04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB;
+04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA
+04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED;
+04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC
+04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF;
+04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE
+04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1;
+04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0
+04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3;
+04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2
+04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5;
+04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4
+04F6;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER;Lu;0;L;;;;;N;;;;04F7;
+04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6
+04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
+04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
+04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB;
+04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA
+04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD;
+04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC
+04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF;
+04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE
+0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501;
+0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500
+0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503;
+0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502
+0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505;
+0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504
+0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507;
+0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506
+0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509;
+0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508
+050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B;
+050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A
+050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D;
+050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C
+050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F;
+050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E
+0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511;
+0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510
+0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513;
+0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512
+0514;CYRILLIC CAPITAL LETTER LHA;Lu;0;L;;;;;N;;;;0515;
+0515;CYRILLIC SMALL LETTER LHA;Ll;0;L;;;;;N;;;0514;;0514
+0516;CYRILLIC CAPITAL LETTER RHA;Lu;0;L;;;;;N;;;;0517;
+0517;CYRILLIC SMALL LETTER RHA;Ll;0;L;;;;;N;;;0516;;0516
+0518;CYRILLIC CAPITAL LETTER YAE;Lu;0;L;;;;;N;;;;0519;
+0519;CYRILLIC SMALL LETTER YAE;Ll;0;L;;;;;N;;;0518;;0518
+051A;CYRILLIC CAPITAL LETTER QA;Lu;0;L;;;;;N;;;;051B;
+051B;CYRILLIC SMALL LETTER QA;Ll;0;L;;;;;N;;;051A;;051A
+051C;CYRILLIC CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;051D;
+051D;CYRILLIC SMALL LETTER WE;Ll;0;L;;;;;N;;;051C;;051C
+051E;CYRILLIC CAPITAL LETTER ALEUT KA;Lu;0;L;;;;;N;;;;051F;
+051F;CYRILLIC SMALL LETTER ALEUT KA;Ll;0;L;;;;;N;;;051E;;051E
+0520;CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0521;
+0521;CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0520;;0520
+0522;CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0523;
+0523;CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0522;;0522
+0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
+0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
+0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
+0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564;
+0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565;
+0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566;
+0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567;
+0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568;
+0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569;
+053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A;
+053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B;
+053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C;
+053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D;
+053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E;
+053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F;
+0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570;
+0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571;
+0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572;
+0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573;
+0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574;
+0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575;
+0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576;
+0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577;
+0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578;
+0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579;
+054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A;
+054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B;
+054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C;
+054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D;
+054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E;
+054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F;
+0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580;
+0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581;
+0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582;
+0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583;
+0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584;
+0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585;
+0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586;
+0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;;
+055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;;
+055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;;
+055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;
+055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;
+055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;
+0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531
+0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532
+0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533
+0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534
+0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535
+0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536
+0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537
+0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538
+0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539
+056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A
+056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B
+056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C
+056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D
+056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E
+056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F
+0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540
+0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541
+0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542
+0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543
+0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544
+0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545
+0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546
+0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547
+0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548
+0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549
+057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A
+057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B
+057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C
+057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D
+057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E
+057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F
+0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550
+0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551
+0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552
+0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553
+0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554
+0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555
+0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556
+0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
+0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
+058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
+0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
+0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
+0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;;
+0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;;
+0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;;
+0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;;
+0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;;
+0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;;
+059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;;
+059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;;
+059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;;
+059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;;
+059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;;
+059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;;
+05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;;
+05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;;
+05A2;HEBREW ACCENT ATNAH HAFUKH;Mn;220;NSM;;;;;N;;;;;
+05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;;
+05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;;
+05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;;
+05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;;
+05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;;
+05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;;
+05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;;
+05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;;
+05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;;
+05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;;
+05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;;
+05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;;
+05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;;
+05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;;
+05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;;
+05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;;
+05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;;
+05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;;
+05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;;
+05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;;
+05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;
+05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;
+05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;
+05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;;
+05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;
+05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;;
+05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;;
+05BE;HEBREW PUNCTUATION MAQAF;Pd;0;R;;;;;N;;;;;
+05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;;
+05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;;
+05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;;
+05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;;
+05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;;
+05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;;
+05C5;HEBREW MARK LOWER DOT;Mn;220;NSM;;;;;N;;;;;
+05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;
+05C7;HEBREW POINT QAMATS QATAN;Mn;18;NSM;;;;;N;;;;;
+05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;;
+05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;;
+05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;;
+05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;;
+05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;;
+05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;;
+05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;;
+05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;;
+05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;;
+05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;;
+05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;;
+05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
+05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;;
+05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;;
+05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;;
+05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;;
+05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;;
+05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;;
+05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;;
+05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;;
+05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;
+05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;
+05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;
+05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;
+05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;
+05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;
+05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
+05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
+0600;ARABIC NUMBER SIGN;Cf;0;AN;;;;;N;;;;;
+0601;ARABIC SIGN SANAH;Cf;0;AN;;;;;N;;;;;
+0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;;
+0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;;
+0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;;
+0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;;
+0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;;
+0609;ARABIC-INDIC PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
+060A;ARABIC-INDIC PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
+060B;AFGHANI SIGN;Sc;0;AL;;;;;N;;;;;
+060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
+060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
+060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;;
+060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;;
+0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;;
+0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;;
+0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;;
+0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;;
+0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;;
+0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;;
+0616;ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH;Mn;230;NSM;;;;;N;;;;;
+0617;ARABIC SMALL HIGH ZAIN;Mn;230;NSM;;;;;N;;;;;
+0618;ARABIC SMALL FATHA;Mn;30;NSM;;;;;N;;;;;
+0619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;;
+061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;;
+061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
+061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
+061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
+0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
+0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
+0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
+0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
+0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
+0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
+0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
+0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
+0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
+062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
+062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
+062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
+062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
+062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
+062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
+0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
+0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
+0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
+0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
+0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
+0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
+0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
+0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
+0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
+063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
+063B;ARABIC LETTER KEHEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+063C;ARABIC LETTER KEHEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+063D;ARABIC LETTER FARSI YEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+063E;ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+063F;ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
+0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
+0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
+0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
+0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
+0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
+0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
+0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
+0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
+064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
+064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
+064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
+064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
+064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
+064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
+0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
+0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
+0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
+0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
+0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
+0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;;
+0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;;
+0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
+0659;ARABIC ZWARAKAY;Mn;230;NSM;;;;;N;;;;;
+065A;ARABIC VOWEL SIGN SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
+065B;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
+065C;ARABIC VOWEL SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+065D;ARABIC REVERSED DAMMA;Mn;230;NSM;;;;;N;;;;;
+065E;ARABIC FATHA WITH TWO DOTS;Mn;230;NSM;;;;;N;;;;;
+0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
+0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
+0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
+0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
+0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
+0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
+0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
+0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
+0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
+0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
+066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
+066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
+066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
+066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;
+066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;
+0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
+0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
+0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
+0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
+0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
+0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
+0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
+0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
+0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
+0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
+067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
+067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
+067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
+067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
+067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
+067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
+0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
+0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
+0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
+0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
+0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
+0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
+0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
+0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
+0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
+0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
+068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
+068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
+068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
+068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
+0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
+0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
+0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
+0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
+0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
+0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
+0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
+0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
+0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
+069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
+06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
+06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
+06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
+06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
+06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
+06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
+06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
+06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
+06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
+06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
+06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
+06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;
+06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
+06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
+06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
+06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
+06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
+06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
+06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
+06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
+06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
+06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
+06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
+06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
+06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
+06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
+06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
+06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
+06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
+06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
+06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
+06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
+06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
+06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;
+06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
+06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
+06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
+06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
+06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
+06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
+06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
+06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
+06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
+06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
+06DD;ARABIC END OF AYAH;Cf;0;AN;;;;;N;;;;;
+06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
+06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
+06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
+06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
+06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
+06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
+06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
+06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
+06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
+06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
+06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
+06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
+06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
+06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
+06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
+06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
+06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
+06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
+06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
+06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
+06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
+06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
+06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
+06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
+06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
+06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
+06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
+06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
+06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
+0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
+0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
+0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
+0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
+070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
+070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
+070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
+070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;;
+0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;
+0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;
+0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;
+0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;;
+0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;;
+0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;;
+0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;;
+0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;;
+0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;;
+071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;;
+071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;;
+071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;;
+071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;;
+071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;;
+0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;;
+0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;;
+0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;;
+0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;;
+0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;;
+0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;;
+0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;;
+0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;;
+0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;;
+0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;;
+072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;;
+072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;;
+072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;;
+072D;SYRIAC LETTER PERSIAN BHETH;Lo;0;AL;;;;;N;;;;;
+072E;SYRIAC LETTER PERSIAN GHAMAL;Lo;0;AL;;;;;N;;;;;
+072F;SYRIAC LETTER PERSIAN DHALATH;Lo;0;AL;;;;;N;;;;;
+0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;;
+0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;;
+073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;;
+073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;;
+0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;;
+0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;;
+0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;;
+0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;;
+074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;;
+074D;SYRIAC LETTER SOGDIAN ZHAIN;Lo;0;AL;;;;;N;;;;;
+074E;SYRIAC LETTER SOGDIAN KHAPH;Lo;0;AL;;;;;N;;;;;
+074F;SYRIAC LETTER SOGDIAN FE;Lo;0;AL;;;;;N;;;;;
+0750;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW;Lo;0;AL;;;;;N;;;;;
+0751;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0752;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0753;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0754;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0755;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+0756;ARABIC LETTER BEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+0757;ARABIC LETTER HAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0758;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0759;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+075A;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+075B;ARABIC LETTER REH WITH STROKE;Lo;0;AL;;;;;N;;;;;
+075C;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+075D;ARABIC LETTER AIN WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+075E;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE;Lo;0;AL;;;;;N;;;;;
+075F;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+0760;ARABIC LETTER FEH WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+0761;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0762;ARABIC LETTER KEHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0763;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0764;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0765;ARABIC LETTER MEEM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0766;ARABIC LETTER MEEM WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+0767;ARABIC LETTER NOON WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+0768;ARABIC LETTER NOON WITH SMALL TAH;Lo;0;AL;;;;;N;;;;;
+0769;ARABIC LETTER NOON WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+076A;ARABIC LETTER LAM WITH BAR;Lo;0;AL;;;;;N;;;;;
+076B;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+076C;ARABIC LETTER REH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
+076D;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+076E;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW;Lo;0;AL;;;;;N;;;;;
+076F;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;;
+0770;ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;;
+0771;ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;;
+0772;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE;Lo;0;AL;;;;;N;;;;;
+0773;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
+0774;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
+0775;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
+0776;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
+0777;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;;
+0778;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
+0779;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
+077A;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
+077B;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
+077C;ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;;
+077D;ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE;Lo;0;AL;;;;;N;;;;;
+077E;ARABIC LETTER SEEN WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+077F;ARABIC LETTER KAF WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;;
+0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;;
+0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;;
+0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;;
+0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;;
+0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;;
+0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;;
+0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;;
+078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;;
+078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;;
+078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;;
+078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;;
+078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;;
+078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;;
+0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;;
+0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;;
+0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;;
+0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;;
+0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;;
+0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;;
+0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;;
+0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;;
+0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;;
+079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;;
+079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;;
+079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;;
+079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;;
+079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;;
+079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;;
+07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;;
+07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;;
+07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;;
+07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;;
+07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;;
+07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;;
+07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;;
+07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;;
+07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;;
+07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;;
+07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;;
+07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;;
+07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;;
+07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;;
+07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;
+07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
+07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
+07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;;
+07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;;
+07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;;
+07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;;
+07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;;
+07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;;
+07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;;
+07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;;
+07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;;
+07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;;
+07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;;
+07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;;
+07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;;
+07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;;
+07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;;
+07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;;
+07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;;
+07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;;
+07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;;
+07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;;
+07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;;
+07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;;
+07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;;
+07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;;
+07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;;
+07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;;
+07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;;
+07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;;
+07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;;
+07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;;
+07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;;
+07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;;
+07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;;
+07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;;
+07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;;
+07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;;
+07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;;
+07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;;
+07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;;
+07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;;
+07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;;
+07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;;
+07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;;
+07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
+07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;;
+07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;;
+07F8;NKO COMMA;Po;0;ON;;;;;N;;;;;
+07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;;
+0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;;
+0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;;
+0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
+0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;;
+0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;;
+0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;;
+090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;;
+090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;;
+090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;;
+090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;;
+0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;;
+0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;;
+0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;;
+0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;;
+0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;;
+0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;;
+0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;;
+0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;
+091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;;
+091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;
+091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;;
+091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;
+091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;
+091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;;
+0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;;
+0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;;
+0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;;
+0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;;
+092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;;
+092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;
+092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;;
+092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;
+092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;;
+092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;;
+0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;;
+0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;;
+0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;;
+0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;;
+0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;;
+0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;;
+0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;;
+093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;;
+0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;;
+0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;;
+0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;;
+0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;;
+095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;;
+095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;;
+095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;;
+095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;;
+095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;;
+095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;;
+0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;;
+0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+0971;DEVANAGARI SIGN HIGH SPACING DOT;Lm;0;L;;;;;N;;;;;
+0972;DEVANAGARI LETTER CANDRA A;Lo;0;L;;;;;N;;;;;
+097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
+097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;;
+097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
+0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;;
+0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;;
+0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;;
+0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;;
+0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;;
+098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;;
+098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;;
+0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;;
+0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;;
+0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;;
+0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;;
+0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;;
+0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;;
+099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;;
+099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;;
+099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;;
+099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;;
+099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;;
+099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;;
+09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;;
+09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;;
+09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;;
+09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;;
+09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;;
+09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;;
+09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;;
+09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;;
+09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;;
+09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;;
+09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;;
+09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;;
+09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;;
+09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;;
+09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;;
+09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;;
+09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;;
+09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;;
+09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;;
+09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;;
+09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;;
+09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;;
+09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;;
+09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;;
+09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;;
+09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;;
+09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;;
+09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;;
+09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;;
+09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;;
+09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;;
+09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;;
+09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;;
+09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;;
+09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;;
+0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;;
+0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;
+0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;;
+0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;;
+0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;;
+0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;;
+0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;;
+0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;;
+0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;;
+0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;;
+0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;;
+0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;;
+0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;;
+0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;;
+0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;;
+0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;;
+0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;;
+0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;;
+0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;;
+0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;;
+0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;;
+0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;;
+0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;;
+0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0A51;GURMUKHI SIGN UDAAT;Mn;0;NSM;;;;;N;;;;;
+0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;;
+0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;;
+0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;;
+0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;;
+0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;;
+0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;;
+0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;;
+0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;;
+0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;
+0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;
+0A75;GURMUKHI SIGN YAKASH;Mn;0;NSM;;;;;N;;;;;
+0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;;
+0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;;
+0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;;
+0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;;
+0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;;
+0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;;
+0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;;
+0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;;
+0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;;
+0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;;
+0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;;
+0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;;
+0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;;
+0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;;
+0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;;
+0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;;
+0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;;
+0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;;
+0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;;
+0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;;
+0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;;
+0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;;
+0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;;
+0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;;
+0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;;
+0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;;
+0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;;
+0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;;
+0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;;
+0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;;
+0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;;
+0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;;
+0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;;
+0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;;
+0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;;
+0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;;
+0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;;
+0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;;
+0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;;
+0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;;
+0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;;
+0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;;
+0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;;
+0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;;
+0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;;
+0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;;
+0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;;
+0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;;
+0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;;
+0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0B44;ORIYA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;;
+0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;
+0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;
+0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;
+0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;;
+0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;;
+0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0B62;ORIYA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0B63;ORIYA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;
+0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;;
+0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;;
+0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;
+0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;
+0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;
+0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;;
+0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;;
+0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;;
+0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;;
+0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;;
+0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;;
+0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;;
+0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;;
+0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;;
+0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;;
+0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;;
+0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;;
+0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;;
+0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;;
+0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;;
+0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;;
+0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;;
+0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;;
+0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;;
+0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;;
+0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;;
+0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;;
+0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;;
+0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;;
+0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;;
+0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;;
+0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;;
+0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;;
+0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;;
+0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;;
+0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;;
+0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;;
+0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0BD0;TAMIL OM;Lo;0;L;;;;;N;;;;;
+0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;;
+0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;Naal;;;
+0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;Maatham;;;
+0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;Varudam;;;
+0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;Patru;;;
+0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;Varavu;;;
+0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;Merpadi;;;
+0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;Rupai;;;
+0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;Enn;;;
+0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
+0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;
+0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;
+0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;
+0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;;
+0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;;
+0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;;
+0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;;
+0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;;
+0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;;
+0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;;
+0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;;
+0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;;
+0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;;
+0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;;
+0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;;
+0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;;
+0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;;
+0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;;
+0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;;
+0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;;
+0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;;
+0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;;
+0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;;
+0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;;
+0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;;
+0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;;
+0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;;
+0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;;
+0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;;
+0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;;
+0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;;
+0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
+0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
+0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
+0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
+0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
+0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
+0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;
+0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;
+0C3D;TELUGU SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;;
+0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;;
+0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;;
+0C58;TELUGU LETTER TSA;Lo;0;L;;;;;N;;;;;
+0C59;TELUGU LETTER DZA;Lo;0;L;;;;;N;;;;;
+0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0C62;TELUGU VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0C63;TELUGU VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0C78;TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR;No;0;ON;;;;0;N;;;;;
+0C79;TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR;No;0;ON;;;;1;N;;;;;
+0C7A;TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR;No;0;ON;;;;2;N;;;;;
+0C7B;TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR;No;0;ON;;;;3;N;;;;;
+0C7C;TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR;No;0;ON;;;;1;N;;;;;
+0C7D;TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR;No;0;ON;;;;2;N;;;;;
+0C7E;TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR;No;0;ON;;;;3;N;;;;;
+0C7F;TELUGU SIGN TUUMU;So;0;L;;;;;N;;;;;
+0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
+0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;
+0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;
+0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;;
+0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;;
+0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;;
+0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;;
+0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;;
+0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;;
+0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;;
+0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;;
+0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;;
+0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;;
+0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;;
+0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;;
+0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;;
+0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;;
+0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;;
+0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;;
+0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;;
+0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;;
+0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;;
+0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;;
+0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;;
+0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;;
+0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;;
+0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;;
+0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;;
+0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;;
+0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;;
+0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;;
+0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;;
+0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;;
+0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;;
+0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;;
+0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;;
+0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;;
+0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
+0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0CF1;KANNADA SIGN JIHVAMULIYA;So;0;ON;;;;;N;;;;;
+0CF2;KANNADA SIGN UPADHMANIYA;So;0;ON;;;;;N;;;;;
+0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
+0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;
+0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;
+0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;;
+0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;;
+0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;;
+0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;;
+0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;;
+0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;;
+0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;;
+0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;;
+0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;;
+0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;;
+0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;;
+0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;;
+0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;;
+0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;;
+0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;;
+0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;;
+0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;;
+0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;;
+0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;;
+0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;;
+0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;;
+0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;;
+0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;;
+0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;;
+0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;;
+0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;;
+0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;;
+0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;;
+0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;;
+0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;;
+0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;;
+0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;;
+0D3D;MALAYALAM SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0D44;MALAYALAM VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;;
+0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;;
+0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;;
+0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0D62;MALAYALAM VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0D63;MALAYALAM VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0D70;MALAYALAM NUMBER TEN;No;0;L;;;;10;N;;;;;
+0D71;MALAYALAM NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+0D72;MALAYALAM NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+0D73;MALAYALAM FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;;
+0D74;MALAYALAM FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;;
+0D75;MALAYALAM FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;;
+0D79;MALAYALAM DATE MARK;So;0;L;;;;;N;;;;;
+0D7A;MALAYALAM LETTER CHILLU NN;Lo;0;L;;;;;N;;;;;
+0D7B;MALAYALAM LETTER CHILLU N;Lo;0;L;;;;;N;;;;;
+0D7C;MALAYALAM LETTER CHILLU RR;Lo;0;L;;;;;N;;;;;
+0D7D;MALAYALAM LETTER CHILLU L;Lo;0;L;;;;;N;;;;;
+0D7E;MALAYALAM LETTER CHILLU LL;Lo;0;L;;;;;N;;;;;
+0D7F;MALAYALAM LETTER CHILLU K;Lo;0;L;;;;;N;;;;;
+0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;
+0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;
+0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;
+0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;;
+0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;;
+0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;;
+0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;;
+0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;;
+0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;;
+0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;;
+0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;;
+0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;;
+0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;;
+0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;;
+0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;;
+0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;;
+0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;;
+0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;;
+0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;;
+0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;;
+0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;;
+0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;;
+0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;;
+0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;;
+0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;;
+0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;;
+0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;;
+0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;;
+0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;;
+0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;;
+0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;;
+0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;;
+0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
+0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
+0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
+0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;;
+0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;;
+0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;;
+0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;;
+0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;;
+0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;;
+0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;;
+0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;;
+0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;;
+0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;;
+0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;;
+0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;;
+0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;;
+0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;;
+0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;;
+0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;;
+0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;;
+0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;;
+0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;;
+0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;;
+0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;;
+0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;;
+0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;;
+0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;;
+0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;;
+0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;;
+0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;;
+0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;;
+0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;;
+0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;;
+0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;;
+0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;;
+0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;;
+0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;;
+0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;;
+0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;;
+0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;;
+0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;;
+0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;;
+0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;;
+0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;;
+0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;;
+0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;;
+0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;;
+0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;;
+0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;;
+0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;;
+0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;
+0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;
+0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;
+0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
+0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;
+0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;
+0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;
+0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;;
+0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;;
+0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;;
+0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;;
+0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;;
+0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;;
+0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;;
+0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;;
+0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;;
+0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;;
+0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;;
+0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;;
+0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;;
+0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;;
+0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;;
+0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;
+0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;
+0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;
+0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;
+0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;
+0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;
+0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;;
+0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;;
+0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;
+0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;
+0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;
+0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;
+0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;
+0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;
+0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;
+0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;
+0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;
+0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;
+0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;
+0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;
+0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;
+0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;
+0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;;
+0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;
+0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;
+0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;
+0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;
+0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;
+0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;
+0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;
+0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;
+0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;
+0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;
+0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;
+0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;
+0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;
+0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;
+0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;
+0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
+0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;
+0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;
+0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;
+0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;
+0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;
+0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;
+0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;;
+0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;;
+0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;;
+0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;;
+0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;;
+0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;;
+0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;;
+0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;;
+0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;
+0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
+0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
+0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
+0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
+0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
+0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;;
+0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;;
+0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;;
+0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;;
+0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;;
+0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;;
+0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;;
+0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;;
+0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;;
+0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;;
+0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;;
+0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;tsek tar;;;
+0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;;
+0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;;
+0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;;
+0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;;
+0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;;
+0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;;
+0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;;
+0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;;
+0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;;
+0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;;
+0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;;
+0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;;
+0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;;
+0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;;
+0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;;
+0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;;
+0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;;
+0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;;
+0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;;
+0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;;
+0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;;
+0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;;
+0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;;
+0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;;
+0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;;
+0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;;
+0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;;
+0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;;
+0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;;
+0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;;
+0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;;
+0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;;
+0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;;
+0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;;
+0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;;
+0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;gug ta yun;;;
+0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;gug ta ye;;;
+0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;ang kang yun;;;
+0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;ang kang ye;;;
+0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;;
+0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;;
+0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;
+0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;;
+0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;;
+0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;;
+0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;;
+0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;;
+0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;;
+0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;;
+0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;;
+0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;;
+0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;;
+0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;;
+0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;;
+0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;;
+0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;;
+0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;;
+0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;;
+0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;;
+0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;;
+0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;;
+0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;;
+0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;;
+0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;;
+0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;;
+0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;;
+0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;;
+0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
+0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;;
+0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;;
+0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;;
+0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;;
+0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;;
+0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;;
+0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;;
+0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;;
+0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;;
+0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;;
+0F6B;TIBETAN LETTER KKA;Lo;0;L;;;;;N;;;;;
+0F6C;TIBETAN LETTER RRA;Lo;0;L;;;;;N;;;;;
+0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;;
+0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;;
+0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;;
+0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;;
+0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;;
+0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;;
+0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;;
+0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;;
+0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;;
+0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;;
+0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;;
+0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;;
+0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;;
+0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;;
+0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;;
+0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;;
+0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;;
+0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;;
+0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;;
+0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;;
+0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;;
+0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;;
+0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;;
+0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;;
+0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;;
+0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;;
+0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;;
+0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;;
+0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;;
+0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;;
+0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;;
+0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;;
+0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;;
+0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;;
+0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;;
+0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;;
+0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;;
+0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;;
+0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;;
+0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;;
+0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;;
+0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;;
+0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;;
+0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;;
+0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;;
+0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;;
+0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;;
+0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;;
+0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;;
+0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;;
+0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;;
+0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;;
+0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;;
+0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;;
+0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;;
+0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;;
+0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;;
+0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;;
+0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;;
+0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;;
+0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;;
+0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;;
+0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;;
+0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;;
+0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;;
+0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;;
+0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;;
+0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;;
+0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;;
+0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;;
+0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;;
+0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;;
+0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;;
+0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;;
+0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;;
+0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;;
+0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;;
+0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;;
+0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;;
+0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;;
+0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;;
+0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;;
+0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;;
+0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;;
+0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;;
+0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;;
+0FCE;TIBETAN SIGN RDEL NAG RDEL DKAR;So;0;L;;;;;N;;dena deka;;;
+0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;dena sum;;;
+0FD0;TIBETAN MARK BSKA- SHOG GI MGO RGYAN;Po;0;L;;;;;N;;ka shog gi go gyen;;;
+0FD1;TIBETAN MARK MNYAM YIG GI MGO RGYAN;Po;0;L;;;;;N;;nyam yig gi go gyen;;;
+0FD2;TIBETAN MARK NYIS TSHEG;Po;0;L;;;;;N;;nyi tsek;;;
+0FD3;TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA;Po;0;L;;;;;N;;da nying yik go dun ma;;;
+0FD4;TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA;Po;0;L;;;;;N;;da nying yik go kab ma;;;
+1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;;
+1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;;
+1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;;
+1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;;
+1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;;
+1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;;
+1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;;
+1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;;
+1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;;
+1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;;
+100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;;
+100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;;
+100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;;
+100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;;
+100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;;
+100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;;
+1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;;
+1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;;
+1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;;
+1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;;
+1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;;
+1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;;
+1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;;
+1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;;
+1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;;
+1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;;
+101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;;
+101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;;
+101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;;
+101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;;
+101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;;
+101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;;
+1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;;
+1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;;
+1022;MYANMAR LETTER SHAN A;Lo;0;L;;;;;N;;;;;
+1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;;
+1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;;
+1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;;
+1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;;
+1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;;
+1028;MYANMAR LETTER MON E;Lo;0;L;;;;;N;;;;;
+1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;;
+102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;;
+102B;MYANMAR VOWEL SIGN TALL AA;Mc;0;L;;;;;N;;;;;
+102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1033;MYANMAR VOWEL SIGN MON II;Mn;0;NSM;;;;;N;;;;;
+1034;MYANMAR VOWEL SIGN MON O;Mn;0;NSM;;;;;N;;;;;
+1035;MYANMAR VOWEL SIGN E ABOVE;Mn;0;NSM;;;;;N;;;;;
+1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;;
+1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+103A;MYANMAR SIGN ASAT;Mn;9;NSM;;;;;N;;;;;
+103B;MYANMAR CONSONANT SIGN MEDIAL YA;Mc;0;L;;;;;N;;;;;
+103C;MYANMAR CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;;
+103D;MYANMAR CONSONANT SIGN MEDIAL WA;Mn;0;NSM;;;;;N;;;;;
+103E;MYANMAR CONSONANT SIGN MEDIAL HA;Mn;0;NSM;;;;;N;;;;;
+103F;MYANMAR LETTER GREAT SA;Lo;0;L;;;;;N;;;;;
+1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;;
+104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;;
+104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;;
+104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;;
+104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;;
+104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;;
+1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;;
+1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;;
+1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+105A;MYANMAR LETTER MON NGA;Lo;0;L;;;;;N;;;;;
+105B;MYANMAR LETTER MON JHA;Lo;0;L;;;;;N;;;;;
+105C;MYANMAR LETTER MON BBA;Lo;0;L;;;;;N;;;;;
+105D;MYANMAR LETTER MON BBE;Lo;0;L;;;;;N;;;;;
+105E;MYANMAR CONSONANT SIGN MON MEDIAL NA;Mn;0;NSM;;;;;N;;;;;
+105F;MYANMAR CONSONANT SIGN MON MEDIAL MA;Mn;0;NSM;;;;;N;;;;;
+1060;MYANMAR CONSONANT SIGN MON MEDIAL LA;Mn;0;NSM;;;;;N;;;;;
+1061;MYANMAR LETTER SGAW KAREN SHA;Lo;0;L;;;;;N;;;;;
+1062;MYANMAR VOWEL SIGN SGAW KAREN EU;Mc;0;L;;;;;N;;;;;
+1063;MYANMAR TONE MARK SGAW KAREN HATHI;Mc;0;L;;;;;N;;;;;
+1064;MYANMAR TONE MARK SGAW KAREN KE PHO;Mc;0;L;;;;;N;;;;;
+1065;MYANMAR LETTER WESTERN PWO KAREN THA;Lo;0;L;;;;;N;;;;;
+1066;MYANMAR LETTER WESTERN PWO KAREN PWA;Lo;0;L;;;;;N;;;;;
+1067;MYANMAR VOWEL SIGN WESTERN PWO KAREN EU;Mc;0;L;;;;;N;;;;;
+1068;MYANMAR VOWEL SIGN WESTERN PWO KAREN UE;Mc;0;L;;;;;N;;;;;
+1069;MYANMAR SIGN WESTERN PWO KAREN TONE-1;Mc;0;L;;;;;N;;;;;
+106A;MYANMAR SIGN WESTERN PWO KAREN TONE-2;Mc;0;L;;;;;N;;;;;
+106B;MYANMAR SIGN WESTERN PWO KAREN TONE-3;Mc;0;L;;;;;N;;;;;
+106C;MYANMAR SIGN WESTERN PWO KAREN TONE-4;Mc;0;L;;;;;N;;;;;
+106D;MYANMAR SIGN WESTERN PWO KAREN TONE-5;Mc;0;L;;;;;N;;;;;
+106E;MYANMAR LETTER EASTERN PWO KAREN NNA;Lo;0;L;;;;;N;;;;;
+106F;MYANMAR LETTER EASTERN PWO KAREN YWA;Lo;0;L;;;;;N;;;;;
+1070;MYANMAR LETTER EASTERN PWO KAREN GHWA;Lo;0;L;;;;;N;;;;;
+1071;MYANMAR VOWEL SIGN GEBA KAREN I;Mn;0;NSM;;;;;N;;;;;
+1072;MYANMAR VOWEL SIGN KAYAH OE;Mn;0;NSM;;;;;N;;;;;
+1073;MYANMAR VOWEL SIGN KAYAH U;Mn;0;NSM;;;;;N;;;;;
+1074;MYANMAR VOWEL SIGN KAYAH EE;Mn;0;NSM;;;;;N;;;;;
+1075;MYANMAR LETTER SHAN KA;Lo;0;L;;;;;N;;;;;
+1076;MYANMAR LETTER SHAN KHA;Lo;0;L;;;;;N;;;;;
+1077;MYANMAR LETTER SHAN GA;Lo;0;L;;;;;N;;;;;
+1078;MYANMAR LETTER SHAN CA;Lo;0;L;;;;;N;;;;;
+1079;MYANMAR LETTER SHAN ZA;Lo;0;L;;;;;N;;;;;
+107A;MYANMAR LETTER SHAN NYA;Lo;0;L;;;;;N;;;;;
+107B;MYANMAR LETTER SHAN DA;Lo;0;L;;;;;N;;;;;
+107C;MYANMAR LETTER SHAN NA;Lo;0;L;;;;;N;;;;;
+107D;MYANMAR LETTER SHAN PHA;Lo;0;L;;;;;N;;;;;
+107E;MYANMAR LETTER SHAN FA;Lo;0;L;;;;;N;;;;;
+107F;MYANMAR LETTER SHAN BA;Lo;0;L;;;;;N;;;;;
+1080;MYANMAR LETTER SHAN THA;Lo;0;L;;;;;N;;;;;
+1081;MYANMAR LETTER SHAN HA;Lo;0;L;;;;;N;;;;;
+1082;MYANMAR CONSONANT SIGN SHAN MEDIAL WA;Mn;0;NSM;;;;;N;;;;;
+1083;MYANMAR VOWEL SIGN SHAN AA;Mc;0;L;;;;;N;;;;;
+1084;MYANMAR VOWEL SIGN SHAN E;Mc;0;L;;;;;N;;;;;
+1085;MYANMAR VOWEL SIGN SHAN E ABOVE;Mn;0;NSM;;;;;N;;;;;
+1086;MYANMAR VOWEL SIGN SHAN FINAL Y;Mn;0;NSM;;;;;N;;;;;
+1087;MYANMAR SIGN SHAN TONE-2;Mc;0;L;;;;;N;;;;;
+1088;MYANMAR SIGN SHAN TONE-3;Mc;0;L;;;;;N;;;;;
+1089;MYANMAR SIGN SHAN TONE-5;Mc;0;L;;;;;N;;;;;
+108A;MYANMAR SIGN SHAN TONE-6;Mc;0;L;;;;;N;;;;;
+108B;MYANMAR SIGN SHAN COUNCIL TONE-2;Mc;0;L;;;;;N;;;;;
+108C;MYANMAR SIGN SHAN COUNCIL TONE-3;Mc;0;L;;;;;N;;;;;
+108D;MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE;Mn;220;NSM;;;;;N;;;;;
+108E;MYANMAR LETTER RUMAI PALAUNG FA;Lo;0;L;;;;;N;;;;;
+108F;MYANMAR SIGN RUMAI PALAUNG TONE-5;Mc;0;L;;;;;N;;;;;
+1090;MYANMAR SHAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1091;MYANMAR SHAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1092;MYANMAR SHAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1093;MYANMAR SHAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1094;MYANMAR SHAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1095;MYANMAR SHAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1096;MYANMAR SHAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1097;MYANMAR SHAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1098;MYANMAR SHAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1099;MYANMAR SHAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+109E;MYANMAR SYMBOL SHAN ONE;So;0;L;;;;;N;;;;;
+109F;MYANMAR SYMBOL SHAN EXCLAMATION;So;0;L;;;;;N;;;;;
+10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;2D00;
+10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;2D01;
+10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;2D02;
+10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;2D03;
+10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;2D04;
+10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;2D05;
+10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;2D06;
+10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;2D07;
+10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;2D08;
+10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;2D09;
+10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;2D0A;
+10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;2D0B;
+10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;2D0C;
+10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;2D0D;
+10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;2D0E;
+10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;2D0F;
+10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;2D10;
+10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;2D11;
+10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;2D12;
+10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;2D13;
+10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;2D14;
+10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;2D15;
+10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;2D16;
+10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;2D17;
+10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;2D18;
+10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;2D19;
+10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;2D1A;
+10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;2D1B;
+10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;2D1C;
+10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;2D1D;
+10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;2D1E;
+10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;2D1F;
+10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;2D20;
+10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;2D21;
+10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;2D22;
+10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;2D23;
+10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;2D24;
+10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;2D25;
+10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
+10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
+10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
+10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;
+10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;
+10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;
+10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;
+10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;
+10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;
+10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;
+10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;
+10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;
+10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;
+10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;
+10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;
+10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;
+10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;
+10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;
+10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;
+10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;
+10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;
+10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;
+10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;
+10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;
+10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;
+10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;
+10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;
+10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;
+10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;
+10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;
+10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;
+10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;
+10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;
+10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;
+10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;
+10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;
+10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
+10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
+10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
+10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;;
+10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;;
+10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;;
+10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;
+10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;
+1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;;
+1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;;
+1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;;
+1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;;
+110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;;
+110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;
+1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;;
+1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;
+111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;
+111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;;
+1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
+1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;
+1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;;
+112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;;
+112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;;
+112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;
+1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;;
+1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
+113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;;
+113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;
+113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;;
+113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;;
+113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;;
+1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;;
+1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;;
+1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;;
+1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;;
+114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;;
+114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;;
+114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;;
+114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;;
+114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;;
+1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;;
+1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;;
+1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;;
+1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;;
+1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;;
+1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;;
+1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;;
+1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;;
+1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;;
+1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;;
+1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;;
+116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;;
+116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;;
+116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;;
+116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;;
+116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;;
+116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;;
+1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;;
+1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;;
+1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;;
+1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;;
+1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;;
+1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;;
+1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;;
+1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;;
+1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;;
+1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;;
+117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;;
+117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;;
+117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;;
+117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;;
+117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;;
+117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;;
+1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;;
+1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;;
+1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;;
+1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;;
+1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;;
+1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;;
+1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;;
+1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;;
+1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;;
+1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;;
+118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;;
+118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;;
+118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;;
+118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;;
+118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;;
+118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;;
+1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;;
+1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;;
+1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;;
+1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;;
+1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;;
+1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;;
+1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;;
+1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;;
+1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;;
+1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;;
+119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;;
+119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;;
+119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;;
+119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;;
+119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;;
+119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;;
+11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;;
+11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;;
+11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;;
+11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;;
+11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;;
+11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;;
+11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;;
+11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;;
+11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;;
+11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;;
+11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;;
+11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;;
+11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;;
+11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;;
+11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;;
+11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;;
+11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;;
+11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;
+11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;;
+11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;;
+11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;
+11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;
+11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;
+11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;;
+11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;;
+11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;;
+11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;;
+11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;;
+11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;
+11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;;
+11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
+11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;;
+11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;;
+11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;;
+11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;;
+1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;;
+1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;;
+1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
+1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+1207;ETHIOPIC SYLLABLE HOA;Lo;0;L;;;;;N;;;;;
+1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;;
+120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
+120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;;
+1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;;
+1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;;
+1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;;
+1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;;
+1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;;
+1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;;
+1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;;
+1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;;
+1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;;
+121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
+121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;;
+1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;;
+1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;;
+1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;;
+1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;;
+1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;;
+1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;;
+1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;;
+1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;;
+1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;;
+122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;;
+122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;;
+122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;;
+1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;;
+1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
+1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;;
+1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
+123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;;
+123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
+123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;;
+1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;;
+1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;;
+1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;;
+1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;;
+1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+1247;ETHIOPIC SYLLABLE QOA;Lo;0;L;;;;;N;;;;;
+1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;;
+124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;;
+124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;;
+124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;;
+124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;;
+1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;;
+1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;;
+1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;;
+1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;;
+1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;;
+1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;;
+1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;;
+1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;;
+125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;;
+125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;;
+125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;;
+125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;;
+1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;;
+1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
+1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;;
+1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;;
+126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
+126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;;
+126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;;
+1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;;
+1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
+1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;;
+1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;;
+127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
+127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;;
+1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;;
+1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;;
+1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;;
+1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;;
+1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;;
+1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+1287;ETHIOPIC SYLLABLE XOA;Lo;0;L;;;;;N;;;;;
+1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;;
+128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;;
+128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;;
+128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;;
+128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;;
+1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;;
+1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
+1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;;
+1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
+1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;;
+129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
+129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
+129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;;
+12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;;
+12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;;
+12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;;
+12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;;
+12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;;
+12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;;
+12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;;
+12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;;
+12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;;
+12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
+12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+12AF;ETHIOPIC SYLLABLE KOA;Lo;0;L;;;;;N;;;;;
+12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;;
+12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;;
+12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;;
+12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;;
+12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;;
+12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;;
+12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;;
+12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;;
+12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;;
+12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;;
+12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;;
+12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;;
+12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;;
+12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;;
+12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;;
+12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;;
+12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;;
+12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;;
+12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;;
+12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
+12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+12CF;ETHIOPIC SYLLABLE WOA;Lo;0;L;;;;;N;;;;;
+12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;;
+12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;;
+12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;;
+12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;;
+12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;;
+12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;;
+12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;;
+12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;;
+12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
+12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;;
+12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
+12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;;
+12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
+12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;;
+12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;;
+12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;;
+12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
+12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;;
+12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+12EF;ETHIOPIC SYLLABLE YOA;Lo;0;L;;;;;N;;;;;
+12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;;
+12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
+12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;;
+12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;;
+12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;;
+12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;
+1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;;
+1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;;
+1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
+1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;;
+1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;;
+1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;;
+130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
+130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+130F;ETHIOPIC SYLLABLE GOA;Lo;0;L;;;;;N;;;;;
+1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;;
+1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;;
+1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;;
+1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;;
+1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;;
+1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;;
+131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;;
+131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+131F;ETHIOPIC SYLLABLE GGWAA;Lo;0;L;;;;;N;;;;;
+1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;;
+1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;;
+1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;;
+1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;;
+1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
+1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;;
+1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;;
+1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;;
+1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;;
+132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;;
+132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;;
+132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;;
+1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;;
+1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;;
+1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;;
+1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;;
+1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;;
+1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;;
+1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;;
+1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;;
+1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;;
+1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;;
+133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;;
+133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;;
+133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;;
+133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;;
+133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;;
+133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;;
+1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;;
+1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;;
+1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;;
+1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;;
+1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;;
+1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;;
+1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;;
+1347;ETHIOPIC SYLLABLE TZOA;Lo;0;L;;;;;N;;;;;
+1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;;
+134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
+134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;;
+134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;;
+1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;;
+1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
+1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;;
+1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;;
+1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;;
+1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;;
+135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;;
+135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;
+1360;ETHIOPIC SECTION MARK;So;0;L;;;;;N;;;;;
+1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
+1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
+1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
+1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;;
+1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;;
+1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;;
+1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;;
+1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+1369;ETHIOPIC DIGIT ONE;No;0;L;;;1;1;N;;;;;
+136A;ETHIOPIC DIGIT TWO;No;0;L;;;2;2;N;;;;;
+136B;ETHIOPIC DIGIT THREE;No;0;L;;;3;3;N;;;;;
+136C;ETHIOPIC DIGIT FOUR;No;0;L;;;4;4;N;;;;;
+136D;ETHIOPIC DIGIT FIVE;No;0;L;;;5;5;N;;;;;
+136E;ETHIOPIC DIGIT SIX;No;0;L;;;6;6;N;;;;;
+136F;ETHIOPIC DIGIT SEVEN;No;0;L;;;7;7;N;;;;;
+1370;ETHIOPIC DIGIT EIGHT;No;0;L;;;8;8;N;;;;;
+1371;ETHIOPIC DIGIT NINE;No;0;L;;;9;9;N;;;;;
+1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;;
+1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
+1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
+137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;;
+137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+1380;ETHIOPIC SYLLABLE SEBATBEIT MWA;Lo;0;L;;;;;N;;;;;
+1381;ETHIOPIC SYLLABLE MWI;Lo;0;L;;;;;N;;;;;
+1382;ETHIOPIC SYLLABLE MWEE;Lo;0;L;;;;;N;;;;;
+1383;ETHIOPIC SYLLABLE MWE;Lo;0;L;;;;;N;;;;;
+1384;ETHIOPIC SYLLABLE SEBATBEIT BWA;Lo;0;L;;;;;N;;;;;
+1385;ETHIOPIC SYLLABLE BWI;Lo;0;L;;;;;N;;;;;
+1386;ETHIOPIC SYLLABLE BWEE;Lo;0;L;;;;;N;;;;;
+1387;ETHIOPIC SYLLABLE BWE;Lo;0;L;;;;;N;;;;;
+1388;ETHIOPIC SYLLABLE SEBATBEIT FWA;Lo;0;L;;;;;N;;;;;
+1389;ETHIOPIC SYLLABLE FWI;Lo;0;L;;;;;N;;;;;
+138A;ETHIOPIC SYLLABLE FWEE;Lo;0;L;;;;;N;;;;;
+138B;ETHIOPIC SYLLABLE FWE;Lo;0;L;;;;;N;;;;;
+138C;ETHIOPIC SYLLABLE SEBATBEIT PWA;Lo;0;L;;;;;N;;;;;
+138D;ETHIOPIC SYLLABLE PWI;Lo;0;L;;;;;N;;;;;
+138E;ETHIOPIC SYLLABLE PWEE;Lo;0;L;;;;;N;;;;;
+138F;ETHIOPIC SYLLABLE PWE;Lo;0;L;;;;;N;;;;;
+1390;ETHIOPIC TONAL MARK YIZET;So;0;ON;;;;;N;;;;;
+1391;ETHIOPIC TONAL MARK DERET;So;0;ON;;;;;N;;;;;
+1392;ETHIOPIC TONAL MARK RIKRIK;So;0;ON;;;;;N;;;;;
+1393;ETHIOPIC TONAL MARK SHORT RIKRIK;So;0;ON;;;;;N;;;;;
+1394;ETHIOPIC TONAL MARK DIFAT;So;0;ON;;;;;N;;;;;
+1395;ETHIOPIC TONAL MARK KENAT;So;0;ON;;;;;N;;;;;
+1396;ETHIOPIC TONAL MARK CHIRET;So;0;ON;;;;;N;;;;;
+1397;ETHIOPIC TONAL MARK HIDET;So;0;ON;;;;;N;;;;;
+1398;ETHIOPIC TONAL MARK DERET-HIDET;So;0;ON;;;;;N;;;;;
+1399;ETHIOPIC TONAL MARK KURT;So;0;ON;;;;;N;;;;;
+13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;;
+13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;;
+13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;;
+13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;;
+13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;;
+13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;;
+13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;;
+13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;;
+13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;;
+13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;;
+13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;;
+13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;;
+13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;;
+13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;;
+13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;;
+13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;;
+13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;;
+13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;;
+13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;;
+13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;;
+13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;;
+13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;;
+13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;;
+13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;;
+13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;;
+13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;;
+13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;;
+13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;;
+13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;;
+13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;;
+13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;;
+13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;;
+13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;;
+13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;;
+13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;;
+13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;;
+13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;;
+13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;;
+13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;;
+13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;;
+13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;;
+13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;;
+13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;;
+13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;;
+13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;;
+13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;;
+13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;;
+13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;;
+13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;;
+13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;;
+13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;;
+13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;;
+13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;;
+13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;;
+13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;;
+13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;;
+13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;;
+13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;;
+13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;;
+13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;;
+13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;;
+13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;;
+13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;;
+13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;;
+13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;;
+13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;;
+13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;;
+13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;;
+13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;;
+13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;;
+13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;;
+13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;;
+13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;;
+13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;;
+13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;;
+13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;;
+13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;;
+13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;;
+13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;;
+13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;;
+13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;;
+13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;;
+13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;;
+13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;;
+13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;;
+1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;;
+1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;;
+1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;;
+1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;;
+1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;;
+1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;;
+1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;;
+1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;;
+1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;;
+140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;;
+140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;;
+140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;;
+140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;;
+140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;;
+140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;;
+1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;;
+1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;;
+1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;;
+1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;;
+1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;;
+1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;;
+1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;;
+1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;;
+1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;;
+1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;;
+141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;;
+141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;;
+141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;;
+141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;;
+141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;;
+1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;;
+1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;;
+1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;;
+1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;;
+1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;;
+1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;;
+1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;;
+1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;;
+1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;;
+1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;;
+142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;;
+142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;;
+142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;;
+142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;;
+142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;;
+142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;;
+1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;;
+1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;;
+1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;;
+1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;;
+1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;;
+1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;;
+1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;;
+1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;;
+1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;;
+1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;;
+143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;;
+143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;;
+143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;;
+143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;;
+143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;;
+143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;;
+1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;;
+1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;;
+1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;;
+1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;;
+1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;;
+1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;;
+1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;;
+1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;;
+144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;;
+144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;;
+144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;;
+144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;;
+144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;;
+144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;;
+1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;;
+1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;;
+1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;;
+1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;;
+1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;;
+1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;;
+1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;;
+1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;;
+1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;;
+1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;;
+145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;;
+145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;;
+145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;;
+145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;;
+145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;;
+145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;;
+1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;;
+1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;;
+1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;;
+1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;;
+1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;;
+1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;;
+1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;;
+1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;;
+1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;;
+1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;;
+146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;;
+146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;;
+146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;;
+146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;;
+146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;;
+146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;;
+1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;;
+1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;;
+1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;;
+1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;;
+1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;;
+1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;;
+1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;;
+1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;;
+1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;;
+1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;;
+147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;;
+147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;;
+147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;;
+147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;;
+147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;;
+147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;;
+1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;;
+1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;;
+1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;;
+1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;;
+1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;;
+1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;;
+1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;;
+1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;;
+1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;;
+1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;;
+148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;;
+148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;;
+148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;;
+148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;;
+148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;;
+148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;;
+1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;;
+1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;;
+1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;;
+1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;;
+1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;;
+1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;;
+1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;;
+1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;;
+1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;;
+1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;;
+149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;;
+149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;;
+149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;;
+149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;;
+149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;;
+149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;;
+14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;;
+14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;;
+14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;;
+14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;;
+14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;;
+14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;;
+14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;;
+14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;;
+14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;;
+14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;;
+14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;;
+14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;;
+14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;;
+14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;;
+14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;;
+14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;;
+14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;;
+14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;;
+14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;;
+14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;;
+14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;;
+14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;;
+14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;;
+14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;;
+14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;;
+14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;;
+14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;;
+14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;;
+14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;;
+14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;;
+14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;;
+14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;;
+14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;;
+14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;;
+14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;;
+14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;;
+14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;;
+14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;;
+14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;;
+14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;;
+14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;;
+14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;;
+14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;;
+14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;;
+14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;;
+14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;;
+14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;;
+14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;;
+14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;;
+14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;;
+14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;;
+14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;;
+14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;;
+14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;;
+14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;;
+14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;;
+14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;;
+14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;;
+14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;;
+14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;;
+14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;;
+14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;;
+14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;;
+14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;;
+14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;;
+14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;;
+14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;;
+14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;;
+14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;;
+14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;;
+14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;;
+14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;;
+14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;;
+14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;;
+14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;;
+14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;;
+14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;;
+14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;;
+14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;;
+14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;;
+14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;;
+14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;;
+14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;;
+14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;;
+14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;;
+14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;;
+14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;;
+14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;;
+14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;;
+14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;;
+14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;;
+14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;;
+14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;;
+14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;;
+14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;;
+14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;;
+1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;;
+1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;;
+1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;;
+1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;;
+1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;;
+1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;;
+1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;;
+1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;;
+1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;;
+1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;;
+150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;;
+150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;;
+150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;;
+150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;;
+150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;;
+150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;;
+1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;;
+1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;;
+1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;;
+1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;;
+1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;;
+1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;;
+1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;;
+1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;;
+1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;;
+1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;;
+151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;;
+151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;;
+151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;;
+151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;;
+151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;;
+151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;;
+1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;;
+1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;;
+1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;;
+1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;;
+1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;;
+1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;;
+1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;;
+1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;;
+1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;;
+1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;;
+152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;;
+152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;;
+152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;;
+152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;;
+152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;;
+152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;;
+1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;;
+1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;;
+1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;;
+1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;;
+1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;;
+1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;;
+1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;;
+1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;;
+1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;;
+1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;;
+153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;;
+153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;;
+153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;;
+153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;;
+153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;;
+153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;;
+1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;;
+1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;;
+1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;;
+1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;;
+1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;;
+1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;;
+1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;;
+1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;;
+1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;;
+1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;;
+154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;;
+154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;;
+154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;;
+154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;;
+154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;;
+154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;;
+1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;;
+1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;;
+1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;;
+1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;;
+1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;;
+1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;;
+1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;;
+1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;;
+1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;;
+1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;;
+155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;;
+155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;;
+155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;;
+155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;;
+155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;;
+155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;;
+1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;;
+1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;;
+1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;;
+1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;;
+1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;;
+1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;;
+1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;;
+1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;;
+1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;;
+1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;;
+156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;;
+156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;;
+156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;;
+156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;;
+156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;;
+156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;;
+1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;;
+1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;;
+1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;;
+1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;;
+1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;;
+1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;;
+1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;;
+1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;;
+1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;;
+1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;;
+157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;;
+157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;;
+157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;;
+157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;;
+157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;;
+157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;;
+1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;;
+1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;;
+1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;;
+1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;;
+1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;;
+1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;;
+1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;;
+1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;;
+1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;;
+1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;;
+158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;;
+158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;;
+158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;;
+158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;;
+158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;;
+158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;;
+1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;;
+1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;;
+1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;;
+1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;;
+1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;;
+1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;;
+1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;;
+1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;;
+1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;;
+1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;;
+159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;;
+159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;;
+159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;;
+159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;;
+159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;;
+159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;;
+15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;;
+15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;;
+15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;;
+15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;;
+15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;;
+15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;;
+15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;;
+15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;;
+15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;;
+15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;;
+15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;;
+15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;;
+15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;;
+15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;;
+15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;;
+15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;;
+15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;;
+15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;;
+15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;;
+15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;;
+15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;;
+15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;;
+15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;;
+15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;;
+15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;;
+15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;;
+15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;;
+15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;;
+15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;;
+15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;;
+15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;;
+15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;;
+15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;;
+15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;;
+15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;;
+15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;;
+15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;;
+15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;;
+15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;;
+15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;;
+15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;;
+15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;;
+15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;;
+15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;;
+15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;;
+15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;;
+15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;;
+15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;;
+15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;;
+15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;;
+15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;;
+15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;;
+15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;;
+15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;;
+15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;;
+15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;;
+15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;;
+15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;;
+15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;;
+15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;;
+15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;;
+15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;;
+15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;;
+15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;;
+15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;;
+15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;;
+15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;;
+15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;;
+15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;;
+15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;;
+15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;;
+15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;;
+15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;;
+15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;;
+15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;;
+15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;;
+15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;;
+15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;;
+15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;;
+15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;;
+15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;;
+15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;;
+15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;;
+15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;;
+15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;;
+15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;;
+15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;;
+15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;;
+15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;;
+15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;;
+15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;;
+15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;;
+15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;;
+15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;;
+15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;;
+15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;;
+1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;;
+1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;;
+1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;;
+1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;;
+1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;;
+1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;;
+1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;;
+1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;;
+1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;;
+1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;;
+160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;;
+160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;;
+160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;;
+160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;;
+160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;;
+160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;;
+1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;;
+1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;;
+1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;;
+1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;;
+1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;;
+1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;;
+1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;;
+1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;;
+1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;;
+1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;;
+161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;;
+161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;;
+161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;;
+161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;;
+161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;;
+161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;;
+1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;;
+1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;;
+1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;;
+1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;;
+1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;;
+1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;;
+1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;;
+1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;;
+1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;;
+1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;;
+162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;;
+162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;;
+162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;;
+162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;;
+162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;;
+162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;;
+1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;;
+1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;;
+1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;;
+1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;;
+1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;;
+1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;;
+1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;;
+1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;;
+1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;;
+1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;;
+163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;;
+163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;;
+163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;;
+163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;;
+163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;;
+163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;;
+1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;;
+1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;;
+1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;;
+1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;;
+1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;;
+1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;;
+1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;;
+1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;;
+1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;;
+1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;;
+164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;;
+164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;;
+164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;;
+164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;;
+164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;;
+164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;;
+1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;;
+1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;;
+1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;;
+1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;;
+1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;;
+1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;;
+1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;;
+1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;;
+1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;;
+1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;;
+165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;;
+165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;;
+165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;;
+165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;;
+165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;;
+165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;;
+1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;;
+1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;;
+1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;;
+1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;;
+1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;;
+1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;;
+1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;;
+1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;;
+1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;;
+1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;;
+166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;
+166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;
+166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;
+166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;
+166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;
+166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;
+1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;
+1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;;
+1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;;
+1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;;
+1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;;
+1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;;
+1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;;
+1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;;
+1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;;
+1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;;
+1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;;
+1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;;
+1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;;
+1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;;
+1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;;
+1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;;
+1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;;
+168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;;
+168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;;
+168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;;
+168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;;
+168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;;
+168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;;
+1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;;
+1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;;
+1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;;
+1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;;
+1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;;
+1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;;
+1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;;
+1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;;
+1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;
+1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;
+169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;
+169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;;
+169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;;
+16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;
+16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;
+16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;
+16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;;
+16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;;
+16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;;
+16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;;
+16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;;
+16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;;
+16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;;
+16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;;
+16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;;
+16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;;
+16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;;
+16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;;
+16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;;
+16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;;
+16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;;
+16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;;
+16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;;
+16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;;
+16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;;
+16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;;
+16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;;
+16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;;
+16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;;
+16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;;
+16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;;
+16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;;
+16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;;
+16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;;
+16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;;
+16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;;
+16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;;
+16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;;
+16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;;
+16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;;
+16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;;
+16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;;
+16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;;
+16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;;
+16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;;
+16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;;
+16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;;
+16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;;
+16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;;
+16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;;
+16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;;
+16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;;
+16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;;
+16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;;
+16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;;
+16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;;
+16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;;
+16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;;
+16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;;
+16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;;
+16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;;
+16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;;
+16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;;
+16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;;
+16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;;
+16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;;
+16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;;
+16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;;
+16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;;
+16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;;
+16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;;
+16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;;
+16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;;
+16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;;
+16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;golden number 17;;;
+16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;golden number 18;;;
+16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;golden number 19;;;
+1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;
+1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;
+1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;
+1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;;
+1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;;
+1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;;
+1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;;
+1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;;
+1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;;
+1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;;
+170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;;
+170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;;
+170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;;
+170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;;
+170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;;
+1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;;
+1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;;
+1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;;
+1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;;
+1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;;
+1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;;
+1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;;
+1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;;
+1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;;
+1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;;
+1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;;
+1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;;
+172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;;
+172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;;
+172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;;
+172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;;
+172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;;
+172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;;
+1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;;
+1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;;
+1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;;
+1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;;
+1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;;
+1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;;
+1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;;
+1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;;
+1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;;
+1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;;
+1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;;
+1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;;
+1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;;
+174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;;
+174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;;
+174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;;
+174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;;
+174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;;
+174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;;
+1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;;
+1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;;
+1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;;
+1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;;
+1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;;
+1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;;
+1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;;
+1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;;
+1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;;
+1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;;
+1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;;
+176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;;
+176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;;
+176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;;
+176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;;
+176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;;
+1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;;
+1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;
+1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;
+1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;
+1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;;
+1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;;
+1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;;
+1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;;
+1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;;
+1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;;
+1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;;
+178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;;
+178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;;
+178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;;
+178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;;
+178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;;
+178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;;
+1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;;
+1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;;
+1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;;
+1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;;
+1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;;
+1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;;
+1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;;
+1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;;
+1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;;
+1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;;
+179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;;
+179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;;
+179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;;
+179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;;
+179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;;
+179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;;
+17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;;
+17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;;
+17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;;
+17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;*;;;
+17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;*;;;
+17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;;
+17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;;
+17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;;
+17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;;
+17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;;
+17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;;
+17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;;
+17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;;
+17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;;
+17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;;
+17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;;
+17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;;
+17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
+17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
+17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
+17B4;KHMER VOWEL INHERENT AQ;Cf;0;L;;;;;N;;*;;;
+17B5;KHMER VOWEL INHERENT AA;Cf;0;L;;;;;N;;*;;;
+17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;;
+17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;;
+17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;;
+17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
+17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;;
+17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;;
+17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;;
+17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;;
+17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;;
+17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;;
+17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;;
+17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;;
+17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;;
+17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;;
+17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;;
+17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;;
+17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;;
+17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;*;;;
+17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;
+17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;
+17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;
+17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;;
+17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;*;;;
+17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;
+17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;
+17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;
+17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;;
+17DD;KHMER SIGN ATTHACAN;Mn;230;NSM;;;;;N;;;;;
+17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+17F0;KHMER SYMBOL LEK ATTAK SON;No;0;ON;;;;0;N;;;;;
+17F1;KHMER SYMBOL LEK ATTAK MUOY;No;0;ON;;;;1;N;;;;;
+17F2;KHMER SYMBOL LEK ATTAK PII;No;0;ON;;;;2;N;;;;;
+17F3;KHMER SYMBOL LEK ATTAK BEI;No;0;ON;;;;3;N;;;;;
+17F4;KHMER SYMBOL LEK ATTAK BUON;No;0;ON;;;;4;N;;;;;
+17F5;KHMER SYMBOL LEK ATTAK PRAM;No;0;ON;;;;5;N;;;;;
+17F6;KHMER SYMBOL LEK ATTAK PRAM-MUOY;No;0;ON;;;;6;N;;;;;
+17F7;KHMER SYMBOL LEK ATTAK PRAM-PII;No;0;ON;;;;7;N;;;;;
+17F8;KHMER SYMBOL LEK ATTAK PRAM-BEI;No;0;ON;;;;8;N;;;;;
+17F9;KHMER SYMBOL LEK ATTAK PRAM-BUON;No;0;ON;;;;9;N;;;;;
+1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;;
+1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;;
+1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;;
+1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;
+1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;
+1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
+1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;
+1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
+1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
+180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;
+180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;
+180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
+180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
+180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;;
+1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;;
+1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;;
+1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;;
+1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;;
+1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;;
+1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;;
+1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;;
+1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;;
+1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;;
+1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;;
+182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;;
+182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;;
+182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;;
+182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;;
+182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;;
+182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;;
+1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;;
+1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;;
+1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;;
+1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;;
+1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;;
+1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;;
+1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;;
+1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;;
+183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;;
+183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;;
+183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;;
+1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;;
+1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;;
+1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
+1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;;
+1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;;
+1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;;
+1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;;
+1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;;
+1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;;
+1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;;
+184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;;
+184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;;
+184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;;
+184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;;
+184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;;
+184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;;
+1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;;
+1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;;
+1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;;
+1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;;
+1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;;
+1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;;
+1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;;
+1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;;
+1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;;
+1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;;
+185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;;
+185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;;
+185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;;
+185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;;
+185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;;
+185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;;
+1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;;
+1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;;
+1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;;
+1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;;
+1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;;
+1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;;
+1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;;
+1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;;
+1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;;
+1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;;
+186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;;
+186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;;
+186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;;
+186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;;
+186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;;
+186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;;
+1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;;
+1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;;
+1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;;
+1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;;
+1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;;
+1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;
+1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;
+1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;
+1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;
+1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;
+1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;
+1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;;
+1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;;
+1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;;
+1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;;
+1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;;
+1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;;
+1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;;
+188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;;
+188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;;
+188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;;
+188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;;
+1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;;
+1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;;
+1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;;
+1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;;
+1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;;
+189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;;
+189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;;
+189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;;
+18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;;
+18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;;
+18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;;
+18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;;
+18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;;
+18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;;
+18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;;
+18AA;MONGOLIAN LETTER MANCHU ALI GALI LHA;Lo;0;L;;;;;N;;;;;
+1900;LIMBU VOWEL-CARRIER LETTER;Lo;0;L;;;;;N;;;;;
+1901;LIMBU LETTER KA;Lo;0;L;;;;;N;;;;;
+1902;LIMBU LETTER KHA;Lo;0;L;;;;;N;;;;;
+1903;LIMBU LETTER GA;Lo;0;L;;;;;N;;;;;
+1904;LIMBU LETTER GHA;Lo;0;L;;;;;N;;;;;
+1905;LIMBU LETTER NGA;Lo;0;L;;;;;N;;;;;
+1906;LIMBU LETTER CA;Lo;0;L;;;;;N;;;;;
+1907;LIMBU LETTER CHA;Lo;0;L;;;;;N;;;;;
+1908;LIMBU LETTER JA;Lo;0;L;;;;;N;;;;;
+1909;LIMBU LETTER JHA;Lo;0;L;;;;;N;;;;;
+190A;LIMBU LETTER YAN;Lo;0;L;;;;;N;;;;;
+190B;LIMBU LETTER TA;Lo;0;L;;;;;N;;;;;
+190C;LIMBU LETTER THA;Lo;0;L;;;;;N;;;;;
+190D;LIMBU LETTER DA;Lo;0;L;;;;;N;;;;;
+190E;LIMBU LETTER DHA;Lo;0;L;;;;;N;;;;;
+190F;LIMBU LETTER NA;Lo;0;L;;;;;N;;;;;
+1910;LIMBU LETTER PA;Lo;0;L;;;;;N;;;;;
+1911;LIMBU LETTER PHA;Lo;0;L;;;;;N;;;;;
+1912;LIMBU LETTER BA;Lo;0;L;;;;;N;;;;;
+1913;LIMBU LETTER BHA;Lo;0;L;;;;;N;;;;;
+1914;LIMBU LETTER MA;Lo;0;L;;;;;N;;;;;
+1915;LIMBU LETTER YA;Lo;0;L;;;;;N;;;;;
+1916;LIMBU LETTER RA;Lo;0;L;;;;;N;;;;;
+1917;LIMBU LETTER LA;Lo;0;L;;;;;N;;;;;
+1918;LIMBU LETTER WA;Lo;0;L;;;;;N;;;;;
+1919;LIMBU LETTER SHA;Lo;0;L;;;;;N;;;;;
+191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;;
+191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;;
+191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;;
+1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
+1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1923;LIMBU VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+1924;LIMBU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+1925;LIMBU VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+1926;LIMBU VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+1927;LIMBU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+1928;LIMBU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+1929;LIMBU SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;;
+192A;LIMBU SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;;
+192B;LIMBU SUBJOINED LETTER WA;Mc;0;L;;;;;N;;;;;
+1930;LIMBU SMALL LETTER KA;Mc;0;L;;;;;N;;;;;
+1931;LIMBU SMALL LETTER NGA;Mc;0;L;;;;;N;;;;;
+1932;LIMBU SMALL LETTER ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1933;LIMBU SMALL LETTER TA;Mc;0;L;;;;;N;;;;;
+1934;LIMBU SMALL LETTER NA;Mc;0;L;;;;;N;;;;;
+1935;LIMBU SMALL LETTER PA;Mc;0;L;;;;;N;;;;;
+1936;LIMBU SMALL LETTER MA;Mc;0;L;;;;;N;;;;;
+1937;LIMBU SMALL LETTER RA;Mc;0;L;;;;;N;;;;;
+1938;LIMBU SMALL LETTER LA;Mc;0;L;;;;;N;;;;;
+1939;LIMBU SIGN MUKPHRENG;Mn;222;NSM;;;;;N;;;;;
+193A;LIMBU SIGN KEMPHRENG;Mn;230;NSM;;;;;N;;;;;
+193B;LIMBU SIGN SA-I;Mn;220;NSM;;;;;N;;;;;
+1940;LIMBU SIGN LOO;So;0;ON;;;;;N;;;;;
+1944;LIMBU EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+1945;LIMBU QUESTION MARK;Po;0;ON;;;;;N;;;;;
+1946;LIMBU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1947;LIMBU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1948;LIMBU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1949;LIMBU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+194A;LIMBU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+194B;LIMBU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+194C;LIMBU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+194D;LIMBU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+194E;LIMBU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+194F;LIMBU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1950;TAI LE LETTER KA;Lo;0;L;;;;;N;;;;;
+1951;TAI LE LETTER XA;Lo;0;L;;;;;N;;;;;
+1952;TAI LE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1953;TAI LE LETTER TSA;Lo;0;L;;;;;N;;;;;
+1954;TAI LE LETTER SA;Lo;0;L;;;;;N;;;;;
+1955;TAI LE LETTER YA;Lo;0;L;;;;;N;;;;;
+1956;TAI LE LETTER TA;Lo;0;L;;;;;N;;;;;
+1957;TAI LE LETTER THA;Lo;0;L;;;;;N;;;;;
+1958;TAI LE LETTER LA;Lo;0;L;;;;;N;;;;;
+1959;TAI LE LETTER PA;Lo;0;L;;;;;N;;;;;
+195A;TAI LE LETTER PHA;Lo;0;L;;;;;N;;;;;
+195B;TAI LE LETTER MA;Lo;0;L;;;;;N;;;;;
+195C;TAI LE LETTER FA;Lo;0;L;;;;;N;;;;;
+195D;TAI LE LETTER VA;Lo;0;L;;;;;N;;;;;
+195E;TAI LE LETTER HA;Lo;0;L;;;;;N;;;;;
+195F;TAI LE LETTER QA;Lo;0;L;;;;;N;;;;;
+1960;TAI LE LETTER KHA;Lo;0;L;;;;;N;;;;;
+1961;TAI LE LETTER TSHA;Lo;0;L;;;;;N;;;;;
+1962;TAI LE LETTER NA;Lo;0;L;;;;;N;;;;;
+1963;TAI LE LETTER A;Lo;0;L;;;;;N;;;;;
+1964;TAI LE LETTER I;Lo;0;L;;;;;N;;;;;
+1965;TAI LE LETTER EE;Lo;0;L;;;;;N;;;;;
+1966;TAI LE LETTER EH;Lo;0;L;;;;;N;;;;;
+1967;TAI LE LETTER U;Lo;0;L;;;;;N;;;;;
+1968;TAI LE LETTER OO;Lo;0;L;;;;;N;;;;;
+1969;TAI LE LETTER O;Lo;0;L;;;;;N;;;;;
+196A;TAI LE LETTER UE;Lo;0;L;;;;;N;;;;;
+196B;TAI LE LETTER E;Lo;0;L;;;;;N;;;;;
+196C;TAI LE LETTER AUE;Lo;0;L;;;;;N;;;;;
+196D;TAI LE LETTER AI;Lo;0;L;;;;;N;;;;;
+1970;TAI LE LETTER TONE-2;Lo;0;L;;;;;N;;;;;
+1971;TAI LE LETTER TONE-3;Lo;0;L;;;;;N;;;;;
+1972;TAI LE LETTER TONE-4;Lo;0;L;;;;;N;;;;;
+1973;TAI LE LETTER TONE-5;Lo;0;L;;;;;N;;;;;
+1974;TAI LE LETTER TONE-6;Lo;0;L;;;;;N;;;;;
+1980;NEW TAI LUE LETTER HIGH QA;Lo;0;L;;;;;N;;;;;
+1981;NEW TAI LUE LETTER LOW QA;Lo;0;L;;;;;N;;;;;
+1982;NEW TAI LUE LETTER HIGH KA;Lo;0;L;;;;;N;;;;;
+1983;NEW TAI LUE LETTER HIGH XA;Lo;0;L;;;;;N;;;;;
+1984;NEW TAI LUE LETTER HIGH NGA;Lo;0;L;;;;;N;;;;;
+1985;NEW TAI LUE LETTER LOW KA;Lo;0;L;;;;;N;;;;;
+1986;NEW TAI LUE LETTER LOW XA;Lo;0;L;;;;;N;;;;;
+1987;NEW TAI LUE LETTER LOW NGA;Lo;0;L;;;;;N;;;;;
+1988;NEW TAI LUE LETTER HIGH TSA;Lo;0;L;;;;;N;;;;;
+1989;NEW TAI LUE LETTER HIGH SA;Lo;0;L;;;;;N;;;;;
+198A;NEW TAI LUE LETTER HIGH YA;Lo;0;L;;;;;N;;;;;
+198B;NEW TAI LUE LETTER LOW TSA;Lo;0;L;;;;;N;;;;;
+198C;NEW TAI LUE LETTER LOW SA;Lo;0;L;;;;;N;;;;;
+198D;NEW TAI LUE LETTER LOW YA;Lo;0;L;;;;;N;;;;;
+198E;NEW TAI LUE LETTER HIGH TA;Lo;0;L;;;;;N;;;;;
+198F;NEW TAI LUE LETTER HIGH THA;Lo;0;L;;;;;N;;;;;
+1990;NEW TAI LUE LETTER HIGH NA;Lo;0;L;;;;;N;;;;;
+1991;NEW TAI LUE LETTER LOW TA;Lo;0;L;;;;;N;;;;;
+1992;NEW TAI LUE LETTER LOW THA;Lo;0;L;;;;;N;;;;;
+1993;NEW TAI LUE LETTER LOW NA;Lo;0;L;;;;;N;;;;;
+1994;NEW TAI LUE LETTER HIGH PA;Lo;0;L;;;;;N;;;;;
+1995;NEW TAI LUE LETTER HIGH PHA;Lo;0;L;;;;;N;;;;;
+1996;NEW TAI LUE LETTER HIGH MA;Lo;0;L;;;;;N;;;;;
+1997;NEW TAI LUE LETTER LOW PA;Lo;0;L;;;;;N;;;;;
+1998;NEW TAI LUE LETTER LOW PHA;Lo;0;L;;;;;N;;;;;
+1999;NEW TAI LUE LETTER LOW MA;Lo;0;L;;;;;N;;;;;
+199A;NEW TAI LUE LETTER HIGH FA;Lo;0;L;;;;;N;;;;;
+199B;NEW TAI LUE LETTER HIGH VA;Lo;0;L;;;;;N;;;;;
+199C;NEW TAI LUE LETTER HIGH LA;Lo;0;L;;;;;N;;;;;
+199D;NEW TAI LUE LETTER LOW FA;Lo;0;L;;;;;N;;;;;
+199E;NEW TAI LUE LETTER LOW VA;Lo;0;L;;;;;N;;;;;
+199F;NEW TAI LUE LETTER LOW LA;Lo;0;L;;;;;N;;;;;
+19A0;NEW TAI LUE LETTER HIGH HA;Lo;0;L;;;;;N;;;;;
+19A1;NEW TAI LUE LETTER HIGH DA;Lo;0;L;;;;;N;;;;;
+19A2;NEW TAI LUE LETTER HIGH BA;Lo;0;L;;;;;N;;;;;
+19A3;NEW TAI LUE LETTER LOW HA;Lo;0;L;;;;;N;;;;;
+19A4;NEW TAI LUE LETTER LOW DA;Lo;0;L;;;;;N;;;;;
+19A5;NEW TAI LUE LETTER LOW BA;Lo;0;L;;;;;N;;;;;
+19A6;NEW TAI LUE LETTER HIGH KVA;Lo;0;L;;;;;N;;;;;
+19A7;NEW TAI LUE LETTER HIGH XVA;Lo;0;L;;;;;N;;;;;
+19A8;NEW TAI LUE LETTER LOW KVA;Lo;0;L;;;;;N;;;;;
+19A9;NEW TAI LUE LETTER LOW XVA;Lo;0;L;;;;;N;;;;;
+19B0;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER;Mc;0;L;;;;;N;;;;;
+19B1;NEW TAI LUE VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+19B2;NEW TAI LUE VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+19B3;NEW TAI LUE VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+19B4;NEW TAI LUE VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+19B5;NEW TAI LUE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+19B6;NEW TAI LUE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+19B7;NEW TAI LUE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+19B8;NEW TAI LUE VOWEL SIGN OA;Mc;0;L;;;;;N;;;;;
+19B9;NEW TAI LUE VOWEL SIGN UE;Mc;0;L;;;;;N;;;;;
+19BA;NEW TAI LUE VOWEL SIGN AY;Mc;0;L;;;;;N;;;;;
+19BB;NEW TAI LUE VOWEL SIGN AAY;Mc;0;L;;;;;N;;;;;
+19BC;NEW TAI LUE VOWEL SIGN UY;Mc;0;L;;;;;N;;;;;
+19BD;NEW TAI LUE VOWEL SIGN OY;Mc;0;L;;;;;N;;;;;
+19BE;NEW TAI LUE VOWEL SIGN OAY;Mc;0;L;;;;;N;;;;;
+19BF;NEW TAI LUE VOWEL SIGN UEY;Mc;0;L;;;;;N;;;;;
+19C0;NEW TAI LUE VOWEL SIGN IY;Mc;0;L;;;;;N;;;;;
+19C1;NEW TAI LUE LETTER FINAL V;Lo;0;L;;;;;N;;;;;
+19C2;NEW TAI LUE LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
+19C3;NEW TAI LUE LETTER FINAL N;Lo;0;L;;;;;N;;;;;
+19C4;NEW TAI LUE LETTER FINAL M;Lo;0;L;;;;;N;;;;;
+19C5;NEW TAI LUE LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+19C6;NEW TAI LUE LETTER FINAL D;Lo;0;L;;;;;N;;;;;
+19C7;NEW TAI LUE LETTER FINAL B;Lo;0;L;;;;;N;;;;;
+19C8;NEW TAI LUE TONE MARK-1;Mc;0;L;;;;;N;;;;;
+19C9;NEW TAI LUE TONE MARK-2;Mc;0;L;;;;;N;;;;;
+19D0;NEW TAI LUE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+19D1;NEW TAI LUE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+19D2;NEW TAI LUE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+19D3;NEW TAI LUE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+19D4;NEW TAI LUE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+19D5;NEW TAI LUE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+19D6;NEW TAI LUE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+19D7;NEW TAI LUE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+19D8;NEW TAI LUE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+19D9;NEW TAI LUE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+19DE;NEW TAI LUE SIGN LAE;Po;0;ON;;;;;N;;;;;
+19DF;NEW TAI LUE SIGN LAEV;Po;0;ON;;;;;N;;;;;
+19E0;KHMER SYMBOL PATHAMASAT;So;0;ON;;;;;N;;;;;
+19E1;KHMER SYMBOL MUOY KOET;So;0;ON;;;;;N;;;;;
+19E2;KHMER SYMBOL PII KOET;So;0;ON;;;;;N;;;;;
+19E3;KHMER SYMBOL BEI KOET;So;0;ON;;;;;N;;;;;
+19E4;KHMER SYMBOL BUON KOET;So;0;ON;;;;;N;;;;;
+19E5;KHMER SYMBOL PRAM KOET;So;0;ON;;;;;N;;;;;
+19E6;KHMER SYMBOL PRAM-MUOY KOET;So;0;ON;;;;;N;;;;;
+19E7;KHMER SYMBOL PRAM-PII KOET;So;0;ON;;;;;N;;;;;
+19E8;KHMER SYMBOL PRAM-BEI KOET;So;0;ON;;;;;N;;;;;
+19E9;KHMER SYMBOL PRAM-BUON KOET;So;0;ON;;;;;N;;;;;
+19EA;KHMER SYMBOL DAP KOET;So;0;ON;;;;;N;;;;;
+19EB;KHMER SYMBOL DAP-MUOY KOET;So;0;ON;;;;;N;;;;;
+19EC;KHMER SYMBOL DAP-PII KOET;So;0;ON;;;;;N;;;;;
+19ED;KHMER SYMBOL DAP-BEI KOET;So;0;ON;;;;;N;;;;;
+19EE;KHMER SYMBOL DAP-BUON KOET;So;0;ON;;;;;N;;;;;
+19EF;KHMER SYMBOL DAP-PRAM KOET;So;0;ON;;;;;N;;;;;
+19F0;KHMER SYMBOL TUTEYASAT;So;0;ON;;;;;N;;;;;
+19F1;KHMER SYMBOL MUOY ROC;So;0;ON;;;;;N;;;;;
+19F2;KHMER SYMBOL PII ROC;So;0;ON;;;;;N;;;;;
+19F3;KHMER SYMBOL BEI ROC;So;0;ON;;;;;N;;;;;
+19F4;KHMER SYMBOL BUON ROC;So;0;ON;;;;;N;;;;;
+19F5;KHMER SYMBOL PRAM ROC;So;0;ON;;;;;N;;;;;
+19F6;KHMER SYMBOL PRAM-MUOY ROC;So;0;ON;;;;;N;;;;;
+19F7;KHMER SYMBOL PRAM-PII ROC;So;0;ON;;;;;N;;;;;
+19F8;KHMER SYMBOL PRAM-BEI ROC;So;0;ON;;;;;N;;;;;
+19F9;KHMER SYMBOL PRAM-BUON ROC;So;0;ON;;;;;N;;;;;
+19FA;KHMER SYMBOL DAP ROC;So;0;ON;;;;;N;;;;;
+19FB;KHMER SYMBOL DAP-MUOY ROC;So;0;ON;;;;;N;;;;;
+19FC;KHMER SYMBOL DAP-PII ROC;So;0;ON;;;;;N;;;;;
+19FD;KHMER SYMBOL DAP-BEI ROC;So;0;ON;;;;;N;;;;;
+19FE;KHMER SYMBOL DAP-BUON ROC;So;0;ON;;;;;N;;;;;
+19FF;KHMER SYMBOL DAP-PRAM ROC;So;0;ON;;;;;N;;;;;
+1A00;BUGINESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1A01;BUGINESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1A02;BUGINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1A03;BUGINESE LETTER NGKA;Lo;0;L;;;;;N;;;;;
+1A04;BUGINESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1A05;BUGINESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1A06;BUGINESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1A07;BUGINESE LETTER MPA;Lo;0;L;;;;;N;;;;;
+1A08;BUGINESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1A09;BUGINESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1A0A;BUGINESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1A0B;BUGINESE LETTER NRA;Lo;0;L;;;;;N;;;;;
+1A0C;BUGINESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1A0D;BUGINESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1A0E;BUGINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1A0F;BUGINESE LETTER NYCA;Lo;0;L;;;;;N;;;;;
+1A10;BUGINESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1A11;BUGINESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1A12;BUGINESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1A13;BUGINESE LETTER VA;Lo;0;L;;;;;N;;;;;
+1A14;BUGINESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1A15;BUGINESE LETTER A;Lo;0;L;;;;;N;;;;;
+1A16;BUGINESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1A17;BUGINESE VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;;
+1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;;
+1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;
+1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;
+1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;ardhacandra;;;
+1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;candrabindu;;;
+1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;anusvara;;;
+1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;repha;;;
+1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;visarga;;;
+1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;a;;;
+1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;aa;;;
+1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;i;;;
+1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;ii;;;
+1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;u;;;
+1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;uu;;;
+1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;vocalic r;;;
+1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;vocalic rr;;;
+1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;vocalic l;;;
+1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;vocalic ll;;;
+1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;e;;;
+1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;ai;;;
+1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;o;;;
+1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;au;;;
+1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;kha;;;
+1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;gha;;;
+1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;cha;;;
+1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;jha;;;
+1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;tta;;;
+1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ttha;;;
+1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;dda;;;
+1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ddha;;;
+1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;nna;;;
+1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;tha;;;
+1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;dha;;;
+1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;pha;;;
+1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;bha;;;
+1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;;
+1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;sha;;;
+1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;ssa;;;
+1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;nukta;;;
+1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;aa;;;
+1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;i;;;
+1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;ii;;;
+1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;u;;;
+1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;uu;;;
+1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;vocalic r;;;
+1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;vocalic rr;;;
+1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;vocalic l;;;
+1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;vocalic ll;;;
+1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;e;;;
+1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;ai;;;
+1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;o;;;
+1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;au;;;
+1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;ae;;;
+1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;oe;;;
+1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;virama;;;
+1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;;
+1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;;
+1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;;
+1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;;
+1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;;
+1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;
+1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;
+1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1B5A;BALINESE PANTI;Po;0;L;;;;;N;;section;;;
+1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;honorific section;;;
+1B5C;BALINESE WINDU;Po;0;L;;;;;N;;punctuation ring;;;
+1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;colon;;;
+1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;danda;;;
+1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;double danda;;;
+1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;line-breaking hyphen;;;
+1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;;
+1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;;
+1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;;
+1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;;
+1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;;
+1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;;
+1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;;
+1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;;
+1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;;
+1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;;
+1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;;
+1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;;
+1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;;
+1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;;
+1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;;
+1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;;
+1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;;
+1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;;
+1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;;
+1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;;
+1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;;
+1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;;
+1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;;
+1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;;
+1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;
+1B80;SUNDANESE SIGN PANYECEK;Mn;0;NSM;;;;;N;;;;;
+1B81;SUNDANESE SIGN PANGLAYAR;Mn;0;NSM;;;;;N;;;;;
+1B82;SUNDANESE SIGN PANGWISAD;Mc;0;L;;;;;N;;;;;
+1B83;SUNDANESE LETTER A;Lo;0;L;;;;;N;;;;;
+1B84;SUNDANESE LETTER I;Lo;0;L;;;;;N;;;;;
+1B85;SUNDANESE LETTER U;Lo;0;L;;;;;N;;;;;
+1B86;SUNDANESE LETTER AE;Lo;0;L;;;;;N;;;;;
+1B87;SUNDANESE LETTER O;Lo;0;L;;;;;N;;;;;
+1B88;SUNDANESE LETTER E;Lo;0;L;;;;;N;;;;;
+1B89;SUNDANESE LETTER EU;Lo;0;L;;;;;N;;;;;
+1B8A;SUNDANESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1B8B;SUNDANESE LETTER QA;Lo;0;L;;;;;N;;;;;
+1B8C;SUNDANESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1B8D;SUNDANESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1B8E;SUNDANESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1B8F;SUNDANESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1B90;SUNDANESE LETTER ZA;Lo;0;L;;;;;N;;;;;
+1B91;SUNDANESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1B92;SUNDANESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1B93;SUNDANESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1B94;SUNDANESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1B95;SUNDANESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1B96;SUNDANESE LETTER FA;Lo;0;L;;;;;N;;;;;
+1B97;SUNDANESE LETTER VA;Lo;0;L;;;;;N;;;;;
+1B98;SUNDANESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1B99;SUNDANESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1B9A;SUNDANESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1B9B;SUNDANESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1B9C;SUNDANESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1B9D;SUNDANESE LETTER WA;Lo;0;L;;;;;N;;;;;
+1B9E;SUNDANESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1B9F;SUNDANESE LETTER XA;Lo;0;L;;;;;N;;;;;
+1BA0;SUNDANESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1BA1;SUNDANESE CONSONANT SIGN PAMINGKAL;Mc;0;L;;;;;N;;;;;
+1BA2;SUNDANESE CONSONANT SIGN PANYAKRA;Mn;0;NSM;;;;;N;;;;;
+1BA3;SUNDANESE CONSONANT SIGN PANYIKU;Mn;0;NSM;;;;;N;;;;;
+1BA4;SUNDANESE VOWEL SIGN PANGHULU;Mn;0;NSM;;;;;N;;;;;
+1BA5;SUNDANESE VOWEL SIGN PANYUKU;Mn;0;NSM;;;;;N;;;;;
+1BA6;SUNDANESE VOWEL SIGN PANAELAENG;Mc;0;L;;;;;N;;;;;
+1BA7;SUNDANESE VOWEL SIGN PANOLONG;Mc;0;L;;;;;N;;;;;
+1BA8;SUNDANESE VOWEL SIGN PAMEPET;Mn;0;NSM;;;;;N;;;;;
+1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;;
+1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;;
+1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;;
+1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;;
+1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1BB1;SUNDANESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1BB2;SUNDANESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1BB3;SUNDANESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1BB4;SUNDANESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1BB5;SUNDANESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1BB6;SUNDANESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1BB7;SUNDANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1BB8;SUNDANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1BB9;SUNDANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1C00;LEPCHA LETTER KA;Lo;0;L;;;;;N;;;;;
+1C01;LEPCHA LETTER KLA;Lo;0;L;;;;;N;;;;;
+1C02;LEPCHA LETTER KHA;Lo;0;L;;;;;N;;;;;
+1C03;LEPCHA LETTER GA;Lo;0;L;;;;;N;;;;;
+1C04;LEPCHA LETTER GLA;Lo;0;L;;;;;N;;;;;
+1C05;LEPCHA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1C06;LEPCHA LETTER CA;Lo;0;L;;;;;N;;;;;
+1C07;LEPCHA LETTER CHA;Lo;0;L;;;;;N;;;;;
+1C08;LEPCHA LETTER JA;Lo;0;L;;;;;N;;;;;
+1C09;LEPCHA LETTER NYA;Lo;0;L;;;;;N;;;;;
+1C0A;LEPCHA LETTER TA;Lo;0;L;;;;;N;;;;;
+1C0B;LEPCHA LETTER THA;Lo;0;L;;;;;N;;;;;
+1C0C;LEPCHA LETTER DA;Lo;0;L;;;;;N;;;;;
+1C0D;LEPCHA LETTER NA;Lo;0;L;;;;;N;;;;;
+1C0E;LEPCHA LETTER PA;Lo;0;L;;;;;N;;;;;
+1C0F;LEPCHA LETTER PLA;Lo;0;L;;;;;N;;;;;
+1C10;LEPCHA LETTER PHA;Lo;0;L;;;;;N;;;;;
+1C11;LEPCHA LETTER FA;Lo;0;L;;;;;N;;;;;
+1C12;LEPCHA LETTER FLA;Lo;0;L;;;;;N;;;;;
+1C13;LEPCHA LETTER BA;Lo;0;L;;;;;N;;;;;
+1C14;LEPCHA LETTER BLA;Lo;0;L;;;;;N;;;;;
+1C15;LEPCHA LETTER MA;Lo;0;L;;;;;N;;;;;
+1C16;LEPCHA LETTER MLA;Lo;0;L;;;;;N;;;;;
+1C17;LEPCHA LETTER TSA;Lo;0;L;;;;;N;;;;;
+1C18;LEPCHA LETTER TSHA;Lo;0;L;;;;;N;;;;;
+1C19;LEPCHA LETTER DZA;Lo;0;L;;;;;N;;;;;
+1C1A;LEPCHA LETTER YA;Lo;0;L;;;;;N;;;;;
+1C1B;LEPCHA LETTER RA;Lo;0;L;;;;;N;;;;;
+1C1C;LEPCHA LETTER LA;Lo;0;L;;;;;N;;;;;
+1C1D;LEPCHA LETTER HA;Lo;0;L;;;;;N;;;;;
+1C1E;LEPCHA LETTER HLA;Lo;0;L;;;;;N;;;;;
+1C1F;LEPCHA LETTER VA;Lo;0;L;;;;;N;;;;;
+1C20;LEPCHA LETTER SA;Lo;0;L;;;;;N;;;;;
+1C21;LEPCHA LETTER SHA;Lo;0;L;;;;;N;;;;;
+1C22;LEPCHA LETTER WA;Lo;0;L;;;;;N;;;;;
+1C23;LEPCHA LETTER A;Lo;0;L;;;;;N;;;;;
+1C24;LEPCHA SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;;
+1C25;LEPCHA SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;;
+1C26;LEPCHA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+1C27;LEPCHA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+1C28;LEPCHA VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+1C29;LEPCHA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+1C2A;LEPCHA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+1C2B;LEPCHA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+1C2C;LEPCHA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+1C2D;LEPCHA CONSONANT SIGN K;Mn;0;NSM;;;;;N;;;;;
+1C2E;LEPCHA CONSONANT SIGN M;Mn;0;NSM;;;;;N;;;;;
+1C2F;LEPCHA CONSONANT SIGN L;Mn;0;NSM;;;;;N;;;;;
+1C30;LEPCHA CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;;
+1C31;LEPCHA CONSONANT SIGN P;Mn;0;NSM;;;;;N;;;;;
+1C32;LEPCHA CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;;
+1C33;LEPCHA CONSONANT SIGN T;Mn;0;NSM;;;;;N;;;;;
+1C34;LEPCHA CONSONANT SIGN NYIN-DO;Mc;0;L;;;;;N;;;;;
+1C35;LEPCHA CONSONANT SIGN KANG;Mc;0;L;;;;;N;;;;;
+1C36;LEPCHA SIGN RAN;Mn;0;NSM;;;;;N;;;;;
+1C37;LEPCHA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+1C3B;LEPCHA PUNCTUATION TA-ROL;Po;0;L;;;;;N;;;;;
+1C3C;LEPCHA PUNCTUATION NYET THYOOM TA-ROL;Po;0;L;;;;;N;;;;;
+1C3D;LEPCHA PUNCTUATION CER-WA;Po;0;L;;;;;N;;;;;
+1C3E;LEPCHA PUNCTUATION TSHOOK CER-WA;Po;0;L;;;;;N;;;;;
+1C3F;LEPCHA PUNCTUATION TSHOOK;Po;0;L;;;;;N;;;;;
+1C40;LEPCHA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1C41;LEPCHA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1C42;LEPCHA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1C43;LEPCHA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1C44;LEPCHA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1C45;LEPCHA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1C46;LEPCHA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1C47;LEPCHA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1C48;LEPCHA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1C49;LEPCHA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1C4D;LEPCHA LETTER TTA;Lo;0;L;;;;;N;;;;;
+1C4E;LEPCHA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1C4F;LEPCHA LETTER DDA;Lo;0;L;;;;;N;;;;;
+1C50;OL CHIKI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1C51;OL CHIKI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1C52;OL CHIKI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1C53;OL CHIKI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1C54;OL CHIKI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1C55;OL CHIKI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1C56;OL CHIKI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1C57;OL CHIKI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1C58;OL CHIKI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1C59;OL CHIKI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1C5A;OL CHIKI LETTER LA;Lo;0;L;;;;;N;;;;;
+1C5B;OL CHIKI LETTER AT;Lo;0;L;;;;;N;;;;;
+1C5C;OL CHIKI LETTER AG;Lo;0;L;;;;;N;;;;;
+1C5D;OL CHIKI LETTER ANG;Lo;0;L;;;;;N;;;;;
+1C5E;OL CHIKI LETTER AL;Lo;0;L;;;;;N;;;;;
+1C5F;OL CHIKI LETTER LAA;Lo;0;L;;;;;N;;;;;
+1C60;OL CHIKI LETTER AAK;Lo;0;L;;;;;N;;;;;
+1C61;OL CHIKI LETTER AAJ;Lo;0;L;;;;;N;;;;;
+1C62;OL CHIKI LETTER AAM;Lo;0;L;;;;;N;;;;;
+1C63;OL CHIKI LETTER AAW;Lo;0;L;;;;;N;;;;;
+1C64;OL CHIKI LETTER LI;Lo;0;L;;;;;N;;;;;
+1C65;OL CHIKI LETTER IS;Lo;0;L;;;;;N;;;;;
+1C66;OL CHIKI LETTER IH;Lo;0;L;;;;;N;;;;;
+1C67;OL CHIKI LETTER INY;Lo;0;L;;;;;N;;;;;
+1C68;OL CHIKI LETTER IR;Lo;0;L;;;;;N;;;;;
+1C69;OL CHIKI LETTER LU;Lo;0;L;;;;;N;;;;;
+1C6A;OL CHIKI LETTER UC;Lo;0;L;;;;;N;;;;;
+1C6B;OL CHIKI LETTER UD;Lo;0;L;;;;;N;;;;;
+1C6C;OL CHIKI LETTER UNN;Lo;0;L;;;;;N;;;;;
+1C6D;OL CHIKI LETTER UY;Lo;0;L;;;;;N;;;;;
+1C6E;OL CHIKI LETTER LE;Lo;0;L;;;;;N;;;;;
+1C6F;OL CHIKI LETTER EP;Lo;0;L;;;;;N;;;;;
+1C70;OL CHIKI LETTER EDD;Lo;0;L;;;;;N;;;;;
+1C71;OL CHIKI LETTER EN;Lo;0;L;;;;;N;;;;;
+1C72;OL CHIKI LETTER ERR;Lo;0;L;;;;;N;;;;;
+1C73;OL CHIKI LETTER LO;Lo;0;L;;;;;N;;;;;
+1C74;OL CHIKI LETTER OTT;Lo;0;L;;;;;N;;;;;
+1C75;OL CHIKI LETTER OB;Lo;0;L;;;;;N;;;;;
+1C76;OL CHIKI LETTER OV;Lo;0;L;;;;;N;;;;;
+1C77;OL CHIKI LETTER OH;Lo;0;L;;;;;N;;;;;
+1C78;OL CHIKI MU TTUDDAG;Lm;0;L;;;;;N;;;;;
+1C79;OL CHIKI GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;;
+1C7A;OL CHIKI MU-GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;;
+1C7B;OL CHIKI RELAA;Lm;0;L;;;;;N;;;;;
+1C7C;OL CHIKI PHAARKAA;Lm;0;L;;;;;N;;;;;
+1C7D;OL CHIKI AHAD;Lm;0;L;;;;;N;;;;;
+1C7E;OL CHIKI PUNCTUATION MUCAAD;Po;0;L;;;;;N;;;;;
+1C7F;OL CHIKI PUNCTUATION DOUBLE MUCAAD;Po;0;L;;;;;N;;;;;
+1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
+1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
+1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
+1D03;LATIN LETTER SMALL CAPITAL BARRED B;Ll;0;L;;;;;N;;;;;
+1D04;LATIN LETTER SMALL CAPITAL C;Ll;0;L;;;;;N;;;;;
+1D05;LATIN LETTER SMALL CAPITAL D;Ll;0;L;;;;;N;;;;;
+1D06;LATIN LETTER SMALL CAPITAL ETH;Ll;0;L;;;;;N;;;;;
+1D07;LATIN LETTER SMALL CAPITAL E;Ll;0;L;;;;;N;;;;;
+1D08;LATIN SMALL LETTER TURNED OPEN E;Ll;0;L;;;;;N;;;;;
+1D09;LATIN SMALL LETTER TURNED I;Ll;0;L;;;;;N;;;;;
+1D0A;LATIN LETTER SMALL CAPITAL J;Ll;0;L;;;;;N;;;;;
+1D0B;LATIN LETTER SMALL CAPITAL K;Ll;0;L;;;;;N;;;;;
+1D0C;LATIN LETTER SMALL CAPITAL L WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D0D;LATIN LETTER SMALL CAPITAL M;Ll;0;L;;;;;N;;;;;
+1D0E;LATIN LETTER SMALL CAPITAL REVERSED N;Ll;0;L;;;;;N;;;;;
+1D0F;LATIN LETTER SMALL CAPITAL O;Ll;0;L;;;;;N;;;;;
+1D10;LATIN LETTER SMALL CAPITAL OPEN O;Ll;0;L;;;;;N;;;;;
+1D11;LATIN SMALL LETTER SIDEWAYS O;Ll;0;L;;;;;N;;;;;
+1D12;LATIN SMALL LETTER SIDEWAYS OPEN O;Ll;0;L;;;;;N;;;;;
+1D13;LATIN SMALL LETTER SIDEWAYS O WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D14;LATIN SMALL LETTER TURNED OE;Ll;0;L;;;;;N;;;;;
+1D15;LATIN LETTER SMALL CAPITAL OU;Ll;0;L;;;;;N;;;;;
+1D16;LATIN SMALL LETTER TOP HALF O;Ll;0;L;;;;;N;;;;;
+1D17;LATIN SMALL LETTER BOTTOM HALF O;Ll;0;L;;;;;N;;;;;
+1D18;LATIN LETTER SMALL CAPITAL P;Ll;0;L;;;;;N;;;;;
+1D19;LATIN LETTER SMALL CAPITAL REVERSED R;Ll;0;L;;;;;N;;;;;
+1D1A;LATIN LETTER SMALL CAPITAL TURNED R;Ll;0;L;;;;;N;;;;;
+1D1B;LATIN LETTER SMALL CAPITAL T;Ll;0;L;;;;;N;;;;;
+1D1C;LATIN LETTER SMALL CAPITAL U;Ll;0;L;;;;;N;;;;;
+1D1D;LATIN SMALL LETTER SIDEWAYS U;Ll;0;L;;;;;N;;;;;
+1D1E;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U;Ll;0;L;;;;;N;;;;;
+1D1F;LATIN SMALL LETTER SIDEWAYS TURNED M;Ll;0;L;;;;;N;;;;;
+1D20;LATIN LETTER SMALL CAPITAL V;Ll;0;L;;;;;N;;;;;
+1D21;LATIN LETTER SMALL CAPITAL W;Ll;0;L;;;;;N;;;;;
+1D22;LATIN LETTER SMALL CAPITAL Z;Ll;0;L;;;;;N;;;;;
+1D23;LATIN LETTER SMALL CAPITAL EZH;Ll;0;L;;;;;N;;;;;
+1D24;LATIN LETTER VOICED LARYNGEAL SPIRANT;Ll;0;L;;;;;N;;;;;
+1D25;LATIN LETTER AIN;Ll;0;L;;;;;N;;;;;
+1D26;GREEK LETTER SMALL CAPITAL GAMMA;Ll;0;L;;;;;N;;;;;
+1D27;GREEK LETTER SMALL CAPITAL LAMDA;Ll;0;L;;;;;N;;;;;
+1D28;GREEK LETTER SMALL CAPITAL PI;Ll;0;L;;;;;N;;;;;
+1D29;GREEK LETTER SMALL CAPITAL RHO;Ll;0;L;;;;;N;;;;;
+1D2A;GREEK LETTER SMALL CAPITAL PSI;Ll;0;L;;;;;N;;;;;
+1D2B;CYRILLIC LETTER SMALL CAPITAL EL;Ll;0;L;;;;;N;;;;;
+1D2C;MODIFIER LETTER CAPITAL A;Lm;0;L;<super> 0041;;;;N;;;;;
+1D2D;MODIFIER LETTER CAPITAL AE;Lm;0;L;<super> 00C6;;;;N;;;;;
+1D2E;MODIFIER LETTER CAPITAL B;Lm;0;L;<super> 0042;;;;N;;;;;
+1D2F;MODIFIER LETTER CAPITAL BARRED B;Lm;0;L;;;;;N;;;;;
+1D30;MODIFIER LETTER CAPITAL D;Lm;0;L;<super> 0044;;;;N;;;;;
+1D31;MODIFIER LETTER CAPITAL E;Lm;0;L;<super> 0045;;;;N;;;;;
+1D32;MODIFIER LETTER CAPITAL REVERSED E;Lm;0;L;<super> 018E;;;;N;;;;;
+1D33;MODIFIER LETTER CAPITAL G;Lm;0;L;<super> 0047;;;;N;;;;;
+1D34;MODIFIER LETTER CAPITAL H;Lm;0;L;<super> 0048;;;;N;;;;;
+1D35;MODIFIER LETTER CAPITAL I;Lm;0;L;<super> 0049;;;;N;;;;;
+1D36;MODIFIER LETTER CAPITAL J;Lm;0;L;<super> 004A;;;;N;;;;;
+1D37;MODIFIER LETTER CAPITAL K;Lm;0;L;<super> 004B;;;;N;;;;;
+1D38;MODIFIER LETTER CAPITAL L;Lm;0;L;<super> 004C;;;;N;;;;;
+1D39;MODIFIER LETTER CAPITAL M;Lm;0;L;<super> 004D;;;;N;;;;;
+1D3A;MODIFIER LETTER CAPITAL N;Lm;0;L;<super> 004E;;;;N;;;;;
+1D3B;MODIFIER LETTER CAPITAL REVERSED N;Lm;0;L;;;;;N;;;;;
+1D3C;MODIFIER LETTER CAPITAL O;Lm;0;L;<super> 004F;;;;N;;;;;
+1D3D;MODIFIER LETTER CAPITAL OU;Lm;0;L;<super> 0222;;;;N;;;;;
+1D3E;MODIFIER LETTER CAPITAL P;Lm;0;L;<super> 0050;;;;N;;;;;
+1D3F;MODIFIER LETTER CAPITAL R;Lm;0;L;<super> 0052;;;;N;;;;;
+1D40;MODIFIER LETTER CAPITAL T;Lm;0;L;<super> 0054;;;;N;;;;;
+1D41;MODIFIER LETTER CAPITAL U;Lm;0;L;<super> 0055;;;;N;;;;;
+1D42;MODIFIER LETTER CAPITAL W;Lm;0;L;<super> 0057;;;;N;;;;;
+1D43;MODIFIER LETTER SMALL A;Lm;0;L;<super> 0061;;;;N;;;;;
+1D44;MODIFIER LETTER SMALL TURNED A;Lm;0;L;<super> 0250;;;;N;;;;;
+1D45;MODIFIER LETTER SMALL ALPHA;Lm;0;L;<super> 0251;;;;N;;;;;
+1D46;MODIFIER LETTER SMALL TURNED AE;Lm;0;L;<super> 1D02;;;;N;;;;;
+1D47;MODIFIER LETTER SMALL B;Lm;0;L;<super> 0062;;;;N;;;;;
+1D48;MODIFIER LETTER SMALL D;Lm;0;L;<super> 0064;;;;N;;;;;
+1D49;MODIFIER LETTER SMALL E;Lm;0;L;<super> 0065;;;;N;;;;;
+1D4A;MODIFIER LETTER SMALL SCHWA;Lm;0;L;<super> 0259;;;;N;;;;;
+1D4B;MODIFIER LETTER SMALL OPEN E;Lm;0;L;<super> 025B;;;;N;;;;;
+1D4C;MODIFIER LETTER SMALL TURNED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
+1D4D;MODIFIER LETTER SMALL G;Lm;0;L;<super> 0067;;;;N;;;;;
+1D4E;MODIFIER LETTER SMALL TURNED I;Lm;0;L;;;;;N;;;;;
+1D4F;MODIFIER LETTER SMALL K;Lm;0;L;<super> 006B;;;;N;;;;;
+1D50;MODIFIER LETTER SMALL M;Lm;0;L;<super> 006D;;;;N;;;;;
+1D51;MODIFIER LETTER SMALL ENG;Lm;0;L;<super> 014B;;;;N;;;;;
+1D52;MODIFIER LETTER SMALL O;Lm;0;L;<super> 006F;;;;N;;;;;
+1D53;MODIFIER LETTER SMALL OPEN O;Lm;0;L;<super> 0254;;;;N;;;;;
+1D54;MODIFIER LETTER SMALL TOP HALF O;Lm;0;L;<super> 1D16;;;;N;;;;;
+1D55;MODIFIER LETTER SMALL BOTTOM HALF O;Lm;0;L;<super> 1D17;;;;N;;;;;
+1D56;MODIFIER LETTER SMALL P;Lm;0;L;<super> 0070;;;;N;;;;;
+1D57;MODIFIER LETTER SMALL T;Lm;0;L;<super> 0074;;;;N;;;;;
+1D58;MODIFIER LETTER SMALL U;Lm;0;L;<super> 0075;;;;N;;;;;
+1D59;MODIFIER LETTER SMALL SIDEWAYS U;Lm;0;L;<super> 1D1D;;;;N;;;;;
+1D5A;MODIFIER LETTER SMALL TURNED M;Lm;0;L;<super> 026F;;;;N;;;;;
+1D5B;MODIFIER LETTER SMALL V;Lm;0;L;<super> 0076;;;;N;;;;;
+1D5C;MODIFIER LETTER SMALL AIN;Lm;0;L;<super> 1D25;;;;N;;;;;
+1D5D;MODIFIER LETTER SMALL BETA;Lm;0;L;<super> 03B2;;;;N;;;;;
+1D5E;MODIFIER LETTER SMALL GREEK GAMMA;Lm;0;L;<super> 03B3;;;;N;;;;;
+1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;;
+1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;;
+1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;;
+1D62;LATIN SUBSCRIPT SMALL LETTER I;Ll;0;L;<sub> 0069;;;;N;;;;;
+1D63;LATIN SUBSCRIPT SMALL LETTER R;Ll;0;L;<sub> 0072;;;;N;;;;;
+1D64;LATIN SUBSCRIPT SMALL LETTER U;Ll;0;L;<sub> 0075;;;;N;;;;;
+1D65;LATIN SUBSCRIPT SMALL LETTER V;Ll;0;L;<sub> 0076;;;;N;;;;;
+1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Ll;0;L;<sub> 03B2;;;;N;;;;;
+1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Ll;0;L;<sub> 03B3;;;;N;;;;;
+1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Ll;0;L;<sub> 03C1;;;;N;;;;;
+1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Ll;0;L;<sub> 03C6;;;;N;;;;;
+1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Ll;0;L;<sub> 03C7;;;;N;;;;;
+1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;;
+1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6E;LATIN SMALL LETTER F WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6F;LATIN SMALL LETTER M WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D70;LATIN SMALL LETTER N WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D71;LATIN SMALL LETTER P WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D72;LATIN SMALL LETTER R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D73;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D74;LATIN SMALL LETTER S WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D75;LATIN SMALL LETTER T WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D76;LATIN SMALL LETTER Z WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D77;LATIN SMALL LETTER TURNED G;Ll;0;L;;;;;N;;;;;
+1D78;MODIFIER LETTER CYRILLIC EN;Lm;0;L;<super> 043D;;;;N;;;;;
+1D79;LATIN SMALL LETTER INSULAR G;Ll;0;L;;;;;N;;;A77D;;A77D
+1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;;
+1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63
+1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D81;LATIN SMALL LETTER D WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D82;LATIN SMALL LETTER F WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D83;LATIN SMALL LETTER G WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D84;LATIN SMALL LETTER K WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D85;LATIN SMALL LETTER L WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D86;LATIN SMALL LETTER M WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D87;LATIN SMALL LETTER N WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D88;LATIN SMALL LETTER P WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D89;LATIN SMALL LETTER R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8A;LATIN SMALL LETTER S WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;;
+1D92;LATIN SMALL LETTER E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D93;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D94;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D95;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D96;LATIN SMALL LETTER I WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D97;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D98;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D99;LATIN SMALL LETTER U WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D9A;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D9B;MODIFIER LETTER SMALL TURNED ALPHA;Lm;0;L;<super> 0252;;;;N;;;;;
+1D9C;MODIFIER LETTER SMALL C;Lm;0;L;<super> 0063;;;;N;;;;;
+1D9D;MODIFIER LETTER SMALL C WITH CURL;Lm;0;L;<super> 0255;;;;N;;;;;
+1D9E;MODIFIER LETTER SMALL ETH;Lm;0;L;<super> 00F0;;;;N;;;;;
+1D9F;MODIFIER LETTER SMALL REVERSED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
+1DA0;MODIFIER LETTER SMALL F;Lm;0;L;<super> 0066;;;;N;;;;;
+1DA1;MODIFIER LETTER SMALL DOTLESS J WITH STROKE;Lm;0;L;<super> 025F;;;;N;;;;;
+1DA2;MODIFIER LETTER SMALL SCRIPT G;Lm;0;L;<super> 0261;;;;N;;;;;
+1DA3;MODIFIER LETTER SMALL TURNED H;Lm;0;L;<super> 0265;;;;N;;;;;
+1DA4;MODIFIER LETTER SMALL I WITH STROKE;Lm;0;L;<super> 0268;;;;N;;;;;
+1DA5;MODIFIER LETTER SMALL IOTA;Lm;0;L;<super> 0269;;;;N;;;;;
+1DA6;MODIFIER LETTER SMALL CAPITAL I;Lm;0;L;<super> 026A;;;;N;;;;;
+1DA7;MODIFIER LETTER SMALL CAPITAL I WITH STROKE;Lm;0;L;<super> 1D7B;;;;N;;;;;
+1DA8;MODIFIER LETTER SMALL J WITH CROSSED-TAIL;Lm;0;L;<super> 029D;;;;N;;;;;
+1DA9;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK;Lm;0;L;<super> 026D;;;;N;;;;;
+1DAA;MODIFIER LETTER SMALL L WITH PALATAL HOOK;Lm;0;L;<super> 1D85;;;;N;;;;;
+1DAB;MODIFIER LETTER SMALL CAPITAL L;Lm;0;L;<super> 029F;;;;N;;;;;
+1DAC;MODIFIER LETTER SMALL M WITH HOOK;Lm;0;L;<super> 0271;;;;N;;;;;
+1DAD;MODIFIER LETTER SMALL TURNED M WITH LONG LEG;Lm;0;L;<super> 0270;;;;N;;;;;
+1DAE;MODIFIER LETTER SMALL N WITH LEFT HOOK;Lm;0;L;<super> 0272;;;;N;;;;;
+1DAF;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK;Lm;0;L;<super> 0273;;;;N;;;;;
+1DB0;MODIFIER LETTER SMALL CAPITAL N;Lm;0;L;<super> 0274;;;;N;;;;;
+1DB1;MODIFIER LETTER SMALL BARRED O;Lm;0;L;<super> 0275;;;;N;;;;;
+1DB2;MODIFIER LETTER SMALL PHI;Lm;0;L;<super> 0278;;;;N;;;;;
+1DB3;MODIFIER LETTER SMALL S WITH HOOK;Lm;0;L;<super> 0282;;;;N;;;;;
+1DB4;MODIFIER LETTER SMALL ESH;Lm;0;L;<super> 0283;;;;N;;;;;
+1DB5;MODIFIER LETTER SMALL T WITH PALATAL HOOK;Lm;0;L;<super> 01AB;;;;N;;;;;
+1DB6;MODIFIER LETTER SMALL U BAR;Lm;0;L;<super> 0289;;;;N;;;;;
+1DB7;MODIFIER LETTER SMALL UPSILON;Lm;0;L;<super> 028A;;;;N;;;;;
+1DB8;MODIFIER LETTER SMALL CAPITAL U;Lm;0;L;<super> 1D1C;;;;N;;;;;
+1DB9;MODIFIER LETTER SMALL V WITH HOOK;Lm;0;L;<super> 028B;;;;N;;;;;
+1DBA;MODIFIER LETTER SMALL TURNED V;Lm;0;L;<super> 028C;;;;N;;;;;
+1DBB;MODIFIER LETTER SMALL Z;Lm;0;L;<super> 007A;;;;N;;;;;
+1DBC;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK;Lm;0;L;<super> 0290;;;;N;;;;;
+1DBD;MODIFIER LETTER SMALL Z WITH CURL;Lm;0;L;<super> 0291;;;;N;;;;;
+1DBE;MODIFIER LETTER SMALL EZH;Lm;0;L;<super> 0292;;;;N;;;;;
+1DBF;MODIFIER LETTER SMALL THETA;Lm;0;L;<super> 03B8;;;;N;;;;;
+1DC0;COMBINING DOTTED GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;;
+1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;;
+1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;;
+1DCB;COMBINING BREVE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DCC;COMBINING MACRON-BREVE;Mn;230;NSM;;;;;N;;;;;
+1DCD;COMBINING DOUBLE CIRCUMFLEX ABOVE;Mn;234;NSM;;;;;N;;;;;
+1DCE;COMBINING OGONEK ABOVE;Mn;214;NSM;;;;;N;;;;;
+1DCF;COMBINING ZIGZAG BELOW;Mn;220;NSM;;;;;N;;;;;
+1DD0;COMBINING IS BELOW;Mn;202;NSM;;;;;N;;;;;
+1DD1;COMBINING UR ABOVE;Mn;230;NSM;;;;;N;;;;;
+1DD2;COMBINING US ABOVE;Mn;230;NSM;;;;;N;;;;;
+1DD3;COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE;Mn;230;NSM;;;;;N;;;;;
+1DD4;COMBINING LATIN SMALL LETTER AE;Mn;230;NSM;;;;;N;;;;;
+1DD5;COMBINING LATIN SMALL LETTER AO;Mn;230;NSM;;;;;N;;;;;
+1DD6;COMBINING LATIN SMALL LETTER AV;Mn;230;NSM;;;;;N;;;;;
+1DD7;COMBINING LATIN SMALL LETTER C CEDILLA;Mn;230;NSM;;;;;N;;;;;
+1DD8;COMBINING LATIN SMALL LETTER INSULAR D;Mn;230;NSM;;;;;N;;;;;
+1DD9;COMBINING LATIN SMALL LETTER ETH;Mn;230;NSM;;;;;N;;;;;
+1DDA;COMBINING LATIN SMALL LETTER G;Mn;230;NSM;;;;;N;;;;;
+1DDB;COMBINING LATIN LETTER SMALL CAPITAL G;Mn;230;NSM;;;;;N;;;;;
+1DDC;COMBINING LATIN SMALL LETTER K;Mn;230;NSM;;;;;N;;;;;
+1DDD;COMBINING LATIN SMALL LETTER L;Mn;230;NSM;;;;;N;;;;;
+1DDE;COMBINING LATIN LETTER SMALL CAPITAL L;Mn;230;NSM;;;;;N;;;;;
+1DDF;COMBINING LATIN LETTER SMALL CAPITAL M;Mn;230;NSM;;;;;N;;;;;
+1DE0;COMBINING LATIN SMALL LETTER N;Mn;230;NSM;;;;;N;;;;;
+1DE1;COMBINING LATIN LETTER SMALL CAPITAL N;Mn;230;NSM;;;;;N;;;;;
+1DE2;COMBINING LATIN LETTER SMALL CAPITAL R;Mn;230;NSM;;;;;N;;;;;
+1DE3;COMBINING LATIN SMALL LETTER R ROTUNDA;Mn;230;NSM;;;;;N;;;;;
+1DE4;COMBINING LATIN SMALL LETTER S;Mn;230;NSM;;;;;N;;;;;
+1DE5;COMBINING LATIN SMALL LETTER LONG S;Mn;230;NSM;;;;;N;;;;;
+1DE6;COMBINING LATIN SMALL LETTER Z;Mn;230;NSM;;;;;N;;;;;
+1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;
+1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00
+1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;
+1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02
+1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05;
+1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04
+1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07;
+1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06
+1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09;
+1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08
+1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B;
+1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A
+1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D;
+1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C
+1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F;
+1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E
+1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11;
+1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10
+1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13;
+1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12
+1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15;
+1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14
+1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17;
+1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16
+1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19;
+1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18
+1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B;
+1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A
+1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D;
+1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C
+1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F;
+1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E
+1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21;
+1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20
+1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23;
+1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22
+1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25;
+1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24
+1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27;
+1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26
+1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29;
+1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28
+1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B;
+1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A
+1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D;
+1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C
+1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F;
+1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E
+1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31;
+1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30
+1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33;
+1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32
+1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35;
+1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34
+1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37;
+1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36
+1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39;
+1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38
+1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B;
+1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A
+1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D;
+1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C
+1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F;
+1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E
+1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41;
+1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40
+1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43;
+1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42
+1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45;
+1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44
+1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47;
+1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46
+1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49;
+1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48
+1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B;
+1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A
+1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D;
+1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C
+1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F;
+1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E
+1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51;
+1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50
+1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53;
+1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52
+1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55;
+1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54
+1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57;
+1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56
+1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59;
+1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58
+1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B;
+1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A
+1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D;
+1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C
+1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F;
+1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E
+1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61;
+1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60
+1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63;
+1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62
+1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65;
+1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64
+1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67;
+1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66
+1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69;
+1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68
+1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B;
+1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A
+1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D;
+1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C
+1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F;
+1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E
+1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71;
+1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70
+1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73;
+1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72
+1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75;
+1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74
+1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77;
+1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76
+1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79;
+1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78
+1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B;
+1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A
+1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D;
+1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C
+1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F;
+1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E
+1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81;
+1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80
+1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83;
+1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82
+1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85;
+1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84
+1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87;
+1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86
+1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89;
+1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88
+1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B;
+1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A
+1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D;
+1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C
+1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F;
+1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E
+1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91;
+1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90
+1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93;
+1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92
+1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95;
+1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94
+1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;;
+1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;;
+1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;;
+1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;;
+1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;
+1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60
+1E9C;LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;;;
+1E9D;LATIN SMALL LETTER LONG S WITH HIGH STROKE;Ll;0;L;;;;;N;;;;;
+1E9E;LATIN CAPITAL LETTER SHARP S;Lu;0;L;;;;;N;;;;00DF;
+1E9F;LATIN SMALL LETTER DELTA;Ll;0;L;;;;;N;;;;;
+1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1;
+1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0
+1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3;
+1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2
+1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5;
+1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4
+1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7;
+1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6
+1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9;
+1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8
+1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB;
+1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA
+1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD;
+1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC
+1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF;
+1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE
+1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1;
+1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0
+1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3;
+1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2
+1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5;
+1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4
+1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7;
+1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6
+1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9;
+1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8
+1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB;
+1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA
+1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD;
+1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC
+1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF;
+1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE
+1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1;
+1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0
+1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3;
+1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2
+1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5;
+1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4
+1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7;
+1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6
+1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9;
+1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8
+1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB;
+1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA
+1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD;
+1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC
+1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF;
+1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE
+1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1;
+1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0
+1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3;
+1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2
+1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5;
+1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4
+1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7;
+1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6
+1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9;
+1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8
+1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB;
+1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA
+1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD;
+1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC
+1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF;
+1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE
+1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1;
+1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0
+1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3;
+1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2
+1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5;
+1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4
+1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7;
+1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6
+1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9;
+1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8
+1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB;
+1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA
+1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED;
+1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC
+1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF;
+1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE
+1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1;
+1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0
+1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3;
+1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2
+1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5;
+1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4
+1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7;
+1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6
+1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9;
+1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8
+1EFA;LATIN CAPITAL LETTER MIDDLE-WELSH LL;Lu;0;L;;;;;N;;;;1EFB;
+1EFB;LATIN SMALL LETTER MIDDLE-WELSH LL;Ll;0;L;;;;;N;;;1EFA;;1EFA
+1EFC;LATIN CAPITAL LETTER MIDDLE-WELSH V;Lu;0;L;;;;;N;;;;1EFD;
+1EFD;LATIN SMALL LETTER MIDDLE-WELSH V;Ll;0;L;;;;;N;;;1EFC;;1EFC
+1EFE;LATIN CAPITAL LETTER Y WITH LOOP;Lu;0;L;;;;;N;;;;1EFF;
+1EFF;LATIN SMALL LETTER Y WITH LOOP;Ll;0;L;;;;;N;;;1EFE;;1EFE
+1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08
+1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09
+1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A
+1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B
+1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C
+1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D
+1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E
+1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F
+1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00;
+1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01;
+1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02;
+1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03;
+1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04;
+1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05;
+1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06;
+1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07;
+1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18
+1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19
+1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A
+1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B
+1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C
+1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D
+1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10;
+1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11;
+1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12;
+1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13;
+1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14;
+1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15;
+1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28
+1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29
+1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A
+1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B
+1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C
+1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D
+1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E
+1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F
+1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20;
+1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21;
+1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22;
+1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23;
+1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24;
+1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25;
+1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26;
+1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27;
+1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38
+1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39
+1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A
+1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B
+1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C
+1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D
+1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E
+1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F
+1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30;
+1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31;
+1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32;
+1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33;
+1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34;
+1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35;
+1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36;
+1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37;
+1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48
+1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49
+1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A
+1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B
+1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C
+1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D
+1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40;
+1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41;
+1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42;
+1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43;
+1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44;
+1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45;
+1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;;
+1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59
+1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;;
+1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B
+1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;;
+1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D
+1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;;
+1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F
+1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51;
+1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53;
+1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55;
+1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57;
+1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68
+1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69
+1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A
+1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B
+1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C
+1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D
+1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E
+1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F
+1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60;
+1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61;
+1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62;
+1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63;
+1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64;
+1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65;
+1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66;
+1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67;
+1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA
+1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB
+1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8
+1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9
+1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA
+1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB
+1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA
+1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB
+1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8
+1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9
+1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA
+1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB
+1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA
+1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB
+1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88
+1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89
+1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A
+1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B
+1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C
+1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D
+1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E
+1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F
+1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80;
+1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81;
+1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82;
+1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83;
+1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84;
+1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85;
+1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86;
+1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87;
+1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98
+1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99
+1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A
+1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B
+1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C
+1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D
+1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E
+1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F
+1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90;
+1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91;
+1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92;
+1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93;
+1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94;
+1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95;
+1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96;
+1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97;
+1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8
+1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9
+1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA
+1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB
+1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC
+1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD
+1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE
+1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF
+1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0;
+1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1;
+1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2;
+1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3;
+1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4;
+1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5;
+1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6;
+1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7;
+1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8
+1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9
+1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;;
+1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC
+1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;;
+1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;;
+1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;;
+1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0;
+1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1;
+1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70;
+1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71;
+1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3;
+1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399
+1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;;
+1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;;
+1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;;
+1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC
+1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;;
+1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;;
+1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;;
+1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72;
+1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73;
+1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74;
+1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75;
+1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3;
+1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;;
+1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;;
+1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;;
+1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8
+1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9
+1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;;
+1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;;
+1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;;
+1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;;
+1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0;
+1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1;
+1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76;
+1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77;
+1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;;
+1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;;
+1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;;
+1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8
+1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9
+1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;;
+1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;;
+1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;;
+1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC
+1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;;
+1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;;
+1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0;
+1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1;
+1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A;
+1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B;
+1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5;
+1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;;
+1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;;
+1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;;
+1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;;
+1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC
+1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;;
+1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;;
+1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;;
+1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78;
+1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79;
+1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C;
+1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D;
+1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3;
+1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;;
+1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;;
+2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;;
+2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;;
+2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
+2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200B;ZERO WIDTH SPACE;Cf;0;BN;;;;;N;;;;;
+200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;;
+200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;;
+200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;;
+200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;;
+2010;HYPHEN;Pd;0;ON;;;;;N;;;;;
+2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;;
+2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;;
+2013;EN DASH;Pd;0;ON;;;;;N;;;;;
+2014;EM DASH;Pd;0;ON;;;;;N;;;;;
+2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;
+2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;
+2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;
+2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;;
+2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;;
+201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;;
+201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;;
+201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;;
+201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;;
+201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;;
+201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
+2020;DAGGER;Po;0;ON;;;;;N;;;;;
+2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;
+2022;BULLET;Po;0;ON;;;;;N;;;;;
+2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;;
+2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;;
+2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;;
+2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;;
+2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;;
+2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;;
+2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;;
+202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;;
+202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;;
+202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;
+202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;
+202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;
+202F;NARROW NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;;;;;
+2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
+2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
+2032;PRIME;Po;0;ET;;;;;N;;;;;
+2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;;
+2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;;
+2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;;
+2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;;
+2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;;
+2038;CARET;Po;0;ON;;;;;N;;;;;
+2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;;
+203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;;
+203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;;
+203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;;
+203D;INTERROBANG;Po;0;ON;;;;;N;;;;;
+203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;;
+203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;;
+2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;;
+2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;;
+2042;ASTERISM;Po;0;ON;;;;;N;;;;;
+2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;;
+2044;FRACTION SLASH;Sm;0;CS;;;;;N;;;;;
+2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;
+2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;
+2047;DOUBLE QUESTION MARK;Po;0;ON;<compat> 003F 003F;;;;N;;;;;
+2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;
+2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;
+204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;
+204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;
+204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;;
+204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;;
+2050;CLOSE UP;Po;0;ON;;;;;N;;;;;
+2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;;
+2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2053;SWUNG DASH;Po;0;ON;;;;;N;;;;;
+2054;INVERTED UNDERTIE;Pc;0;ON;;;;;N;;;;;
+2055;FLOWER PUNCTUATION MARK;Po;0;ON;;;;;N;;;;;
+2056;THREE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2057;QUADRUPLE PRIME;Po;0;ON;<compat> 2032 2032 2032 2032;;;;N;;;;;
+2058;FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2059;FIVE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+205A;TWO DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+205B;FOUR DOT MARK;Po;0;ON;;;;;N;;;;;
+205C;DOTTED CROSS;Po;0;ON;;;;;N;;;;;
+205D;TRICOLON;Po;0;ON;;;;;N;;;;;
+205E;VERTICAL FOUR DOTS;Po;0;ON;;;;;N;;;;;
+205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2060;WORD JOINER;Cf;0;BN;;;;;N;;;;;
+2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;;
+2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;
+2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;
+2064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;;
+206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;
+2071;SUPERSCRIPT LATIN SMALL LETTER I;Ll;0;L;<super> 0069;;;;N;;;;;
+2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;
+2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;
+2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;;6;6;N;SUPERSCRIPT DIGIT SIX;;;;
+2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;;
+2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;
+2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;;
+207A;SUPERSCRIPT PLUS SIGN;Sm;0;ES;<super> 002B;;;;N;;;;;
+207B;SUPERSCRIPT MINUS;Sm;0;ES;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;;
+207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;;
+207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;;
+207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;;
+207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L;<super> 006E;;;;N;;;;;
+2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;;
+2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;;
+2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;;2;2;N;SUBSCRIPT DIGIT TWO;;;;
+2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;;3;3;N;SUBSCRIPT DIGIT THREE;;;;
+2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;;4;4;N;SUBSCRIPT DIGIT FOUR;;;;
+2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;;5;5;N;SUBSCRIPT DIGIT FIVE;;;;
+2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;;6;6;N;SUBSCRIPT DIGIT SIX;;;;
+2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;;7;7;N;SUBSCRIPT DIGIT SEVEN;;;;
+2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;;8;8;N;SUBSCRIPT DIGIT EIGHT;;;;
+2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;;9;9;N;SUBSCRIPT DIGIT NINE;;;;
+208A;SUBSCRIPT PLUS SIGN;Sm;0;ES;<sub> 002B;;;;N;;;;;
+208B;SUBSCRIPT MINUS;Sm;0;ES;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;;
+208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;;
+208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;;
+208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;;
+2090;LATIN SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0061;;;;N;;;;;
+2091;LATIN SUBSCRIPT SMALL LETTER E;Lm;0;L;<sub> 0065;;;;N;;;;;
+2092;LATIN SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 006F;;;;N;;;;;
+2093;LATIN SUBSCRIPT SMALL LETTER X;Lm;0;L;<sub> 0078;;;;N;;;;;
+2094;LATIN SUBSCRIPT SMALL LETTER SCHWA;Lm;0;L;<sub> 0259;;;;N;;;;;
+20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;;
+20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;;
+20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;;
+20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;;
+20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;;
+20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;;
+20A9;WON SIGN;Sc;0;ET;;;;;N;;;;;
+20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;;
+20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;;
+20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;;
+20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;
+20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;
+20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;
+20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;;
+20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;;
+20B2;GUARANI SIGN;Sc;0;ET;;;;;N;;;;;
+20B3;AUSTRAL SIGN;Sc;0;ET;;;;;N;;;;;
+20B4;HRYVNIA SIGN;Sc;0;ET;;;;;N;;;;;
+20B5;CEDI SIGN;Sc;0;ET;;;;;N;;;;;
+20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
+20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
+20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
+20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;;
+20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;;
+20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;;
+20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;;
+20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;;
+20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;;
+20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;;
+20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;;
+20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;;
+20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;;
+20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;;
+20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;;
+20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;;
+20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;;
+20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;
+20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;
+20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;
+20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;;
+20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;;
+20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;;
+20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+20F0;COMBINING ASTERISK ABOVE;Mn;230;NSM;;;;;N;;;;;
+2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
+2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
+2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
+2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;;
+2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;;
+2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;;
+2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;;
+2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;;
+2108;SCRUPLE;So;0;ON;;;;;N;;;;;
+2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;;
+210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;;
+210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;;
+210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;;
+210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;;
+210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;;
+2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;;
+2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;;
+2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;;
+2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;;
+2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;;
+2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;;
+2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;;
+2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;;
+2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;;
+211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;;
+211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;;
+211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;;
+211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;;
+211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;;
+211F;RESPONSE;So;0;ON;;;;;N;;;;;
+2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;;
+2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;
+2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;;
+2123;VERSICLE;So;0;ON;;;;;N;;;;;
+2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;;
+2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;;
+2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9;
+2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;;
+2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;;
+2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;;
+212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B;
+212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5;
+212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;;
+212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;;
+212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;;
+212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;
+2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;
+2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E;
+2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;
+2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;
+2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;;
+2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;;
+2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;
+2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
+213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;
+213B;FACSIMILE SIGN;So;0;ON;<compat> 0046 0041 0058;;;;N;;;;;
+213C;DOUBLE-STRUCK SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON;<font> 2211;;;;Y;;;;;
+2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;;
+2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;;
+2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+214A;PROPERTY LINE;So;0;ON;;;;;N;;;;;
+214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;;
+214C;PER SIGN;So;0;ON;;;;;N;;;;;
+214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;;
+214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132
+214F;SYMBOL FOR SAMARITAN SOURCE;So;0;L;;;;;N;;;;;
+2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
+2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
+2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
+2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;;
+2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;;
+2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;;
+2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;;
+215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;;
+215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;;
+215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;;
+215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;;
+215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;;
+215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;;
+2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170;
+2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171;
+2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172;
+2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173;
+2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174;
+2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175;
+2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176;
+2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177;
+2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178;
+2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179;
+216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A;
+216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B;
+216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C;
+216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D;
+216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E;
+216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F;
+2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160
+2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161
+2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162
+2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163
+2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164
+2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165
+2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166
+2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167
+2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168
+2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169
+217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A
+217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B
+217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C
+217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D
+217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E
+217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F
+2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;
+2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;
+2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;
+2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184;
+2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183
+2185;ROMAN NUMERAL SIX LATE FORM;Nl;0;L;;;;6;N;;;;;
+2186;ROMAN NUMERAL FIFTY EARLY FORM;Nl;0;L;;;;50;N;;;;;
+2187;ROMAN NUMERAL FIFTY THOUSAND;Nl;0;L;;;;50000;N;;;;;
+2188;ROMAN NUMERAL ONE HUNDRED THOUSAND;Nl;0;L;;;;100000;N;;;;;
+2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;
+2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;
+2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;
+2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;;
+2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;;
+2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;;
+2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;
+2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;
+2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;
+219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
+219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
+219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;
+219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;
+219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;
+219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;
+21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
+21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;
+21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;
+21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
+21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;
+21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;
+21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
+21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;
+21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;
+21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;
+21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;;
+21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;
+21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;
+21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;
+21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;
+21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;
+21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;
+21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;
+21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;;
+21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;;
+21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;;
+21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;;
+21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;;
+21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;;
+21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;;
+21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;;
+21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;;
+21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;;
+21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;;
+21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;;
+21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;;
+21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;;
+21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;;
+21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;;
+21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;;
+21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;;
+21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;;
+21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;;
+21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;;
+21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;
+21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;
+21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;
+21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;
+21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
+21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;
+21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;
+21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;
+21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;;
+21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;;
+21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;;
+21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;;
+21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;;
+21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;;
+21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;;
+21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;;
+21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;;
+21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;;
+21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;;
+21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;;
+21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;;
+21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;;
+21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;;
+21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;;
+21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;;
+21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;;
+21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;;
+21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;;
+21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;;
+21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;;
+21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
+21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;;
+21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;
+21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;
+21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+2200;FOR ALL;Sm;0;ON;;;;;N;;;;;
+2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;
+2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;
+2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;;
+2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;;
+2205;EMPTY SET;Sm;0;ON;;;;;N;;;;;
+2206;INCREMENT;Sm;0;ON;;;;;N;;;;;
+2207;NABLA;Sm;0;ON;;;;;N;;;;;
+2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;;
+220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;;
+220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220E;END OF PROOF;Sm;0;ON;;;;;N;;;;;
+220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;;
+2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;;
+2212;MINUS SIGN;Sm;0;ES;;;;;N;;;;;
+2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;;
+2214;DOT PLUS;Sm;0;ON;;;;;N;;;;;
+2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2216;SET MINUS;Sm;0;ON;;;;;Y;;;;;
+2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;;
+221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;;
+221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;;
+221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;;
+221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;;
+221E;INFINITY;Sm;0;ON;;;;;N;;;;;
+221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;;
+2220;ANGLE;Sm;0;ON;;;;;Y;;;;;
+2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;;
+2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+2223;DIVIDES;Sm;0;ON;;;;;N;;;;;
+2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;;
+2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;;
+2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2229;INTERSECTION;Sm;0;ON;;;;;N;;;;;
+222A;UNION;Sm;0;ON;;;;;N;;;;;
+222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;;
+222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;;
+222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;;
+2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;;
+2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2234;THEREFORE;Sm;0;ON;;;;;N;;;;;
+2235;BECAUSE;Sm;0;ON;;;;;N;;;;;
+2236;RATIO;Sm;0;ON;;;;;N;;;;;
+2237;PROPORTION;Sm;0;ON;;;;;N;;;;;
+2238;DOT MINUS;Sm;0;ON;;;;;N;;;;;
+2239;EXCESS;Sm;0;ON;;;;;Y;;;;;
+223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;;
+223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;;
+223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;;
+223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;;
+223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;;
+2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;;
+2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;;
+2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;;
+2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;;
+2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;;
+224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;;
+224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;;
+2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;;
+2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;;
+2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;;
+2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;;
+2259;ESTIMATES;Sm;0;ON;;;;;N;;;;;
+225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;;
+225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;;
+225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;;
+225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;;
+225E;MEASURED BY;Sm;0;ON;;;;;N;;;;;
+225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;;
+2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;;
+2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;;
+2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;;
+2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;;
+2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;;
+2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;;
+2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;;
+2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;;
+226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
+226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
+226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
+226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;
+226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
+226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
+2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
+2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;;
+2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;;
+2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;;
+2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;;
+2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;;
+2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;;
+2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;;
+2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;;
+2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;;
+227A;PRECEDES;Sm;0;ON;;;;;Y;;;;;
+227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;;
+2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;;
+2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;;
+2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;;
+2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;;
+2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;;
+2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;;
+2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;;
+228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;;
+228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;;
+228C;MULTISET;Sm;0;ON;;;;;Y;;;;;
+228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;;
+228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;;
+228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;;
+2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;;
+2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;;
+2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;;
+2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;;
+229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;;
+229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;;
+229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;;
+22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;;
+22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;;
+22A5;UP TACK;Sm;0;ON;;;;;N;;;;;
+22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;;
+22A7;MODELS;Sm;0;ON;;;;;Y;;;;;
+22A8;TRUE;Sm;0;ON;;;;;Y;;;;;
+22A9;FORCES;Sm;0;ON;;;;;Y;;;;;
+22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;;
+22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;;
+22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;;
+22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;;
+22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;;
+22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;;
+22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;;
+22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;;
+22BB;XOR;Sm;0;ON;;;;;N;;;;;
+22BC;NAND;Sm;0;ON;;;;;N;;;;;
+22BD;NOR;Sm;0;ON;;;;;N;;;;;
+22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;;
+22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;;
+22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;;
+22C8;BOWTIE;Sm;0;ON;;;;;N;;;;;
+22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;;
+22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;;
+22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;;
+22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;;
+22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;;
+22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;;
+22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;;
+22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;;
+22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;;
+22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;;
+22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;;
+22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;;
+22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;;
+22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;;
+22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;;
+22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;;
+22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;;
+22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;;
+22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;;
+22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;;
+22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;;
+22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;;
+22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;;
+22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;;
+22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;;
+2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;
+2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;
+2302;HOUSE;So;0;ON;;;;;N;;;;;
+2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;;
+2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;;
+2305;PROJECTIVE;So;0;ON;;;;;N;;;;;
+2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
+2307;WAVY LINE;So;0;ON;;;;;N;;;;;
+2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;
+2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;
+230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
+230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
+230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
+230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;;
+2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;;
+2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;;
+2312;ARC;So;0;ON;;;;;N;;;;;
+2313;SEGMENT;So;0;ON;;;;;N;;;;;
+2314;SECTOR;So;0;ON;;;;;N;;;;;
+2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;;
+2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;;
+2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;;
+2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;;
+2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;;
+231A;WATCH;So;0;ON;;;;;N;;;;;
+231B;HOURGLASS;So;0;ON;;;;;N;;;;;
+231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;;
+231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;;
+231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;;
+231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;;
+2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2322;FROWN;So;0;ON;;;;;N;;;;;
+2323;SMILE;So;0;ON;;;;;N;;;;;
+2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;;
+2325;OPTION KEY;So;0;ON;;;;;N;;;;;
+2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;;
+2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;;
+2328;KEYBOARD;So;0;ON;;;;;N;;;;;
+2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;;
+232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;;
+232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;;
+232C;BENZENE RING;So;0;ON;;;;;N;;;;;
+232D;CYLINDRICITY;So;0;ON;;;;;N;;;;;
+232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;;
+232F;SYMMETRY;So;0;ON;;;;;N;;;;;
+2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;;
+2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;;
+2332;CONICAL TAPER;So;0;ON;;;;;N;;;;;
+2333;SLOPE;So;0;ON;;;;;N;;;;;
+2334;COUNTERBORE;So;0;ON;;;;;N;;;;;
+2335;COUNTERSINK;So;0;ON;;;;;N;;;;;
+2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;;
+2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;;
+2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;;
+2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;;
+233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;;
+233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;;
+233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;;
+233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;;
+233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;;
+233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;;
+2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;;
+2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;;
+2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;;
+2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;;
+2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;;
+2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;;
+2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;;
+2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;;
+2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;;
+2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;;
+234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;;
+234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;;
+234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;;
+234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;;
+234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;;
+234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;;
+2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;;
+2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;;
+2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;;
+2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;;
+2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;;
+2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;;
+2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;;
+2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;;
+2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;;
+2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;;
+235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;;
+235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;;
+235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;;
+235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;;
+235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;;
+235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;;
+2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;;
+2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;;
+2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;;
+2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;;
+2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;;
+2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;;
+2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;;
+2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;;
+2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;;
+2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;;
+236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;;
+236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;;
+236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;;
+236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;;
+236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;;
+236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;;
+2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;;
+2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;;
+2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;;
+2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;;
+2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;;
+2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;;
+2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;;
+2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;;
+2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;;
+2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;
+237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;
+237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;
+237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;;
+237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;
+237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;
+237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
+2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;;
+2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;;
+2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;;
+2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;;
+2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;;
+2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2388;HELM SYMBOL;So;0;ON;;;;;N;;;;;
+2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;;
+238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;;
+238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;;
+238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;;
+238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;;
+238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;;
+238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;
+2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;
+2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;
+2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;
+2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
+2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;;
+23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;;
+23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;;
+23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;;
+23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;;
+23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;;
+23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;;
+23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;;
+23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;;
+23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;;
+23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;;
+23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;;
+23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;;
+23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;;
+23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;;
+23CF;EJECT SYMBOL;So;0;ON;;;;;N;;;;;
+23D0;VERTICAL LINE EXTENSION;So;0;ON;;;;;N;;;;;
+23D1;METRICAL BREVE;So;0;ON;;;;;N;;;;;
+23D2;METRICAL LONG OVER SHORT;So;0;ON;;;;;N;;;;;
+23D3;METRICAL SHORT OVER LONG;So;0;ON;;;;;N;;;;;
+23D4;METRICAL LONG OVER TWO SHORTS;So;0;ON;;;;;N;;;;;
+23D5;METRICAL TWO SHORTS OVER LONG;So;0;ON;;;;;N;;;;;
+23D6;METRICAL TWO SHORTS JOINED;So;0;ON;;;;;N;;;;;
+23D7;METRICAL TRISEME;So;0;ON;;;;;N;;;;;
+23D8;METRICAL TETRASEME;So;0;ON;;;;;N;;;;;
+23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;;
+23DA;EARTH GROUND;So;0;ON;;;;;N;;;;;
+23DB;FUSE;So;0;ON;;;;;N;;;;;
+23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;;
+23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;;
+23E5;FLATNESS;So;0;ON;;;;;N;;;;;
+23E6;AC CURRENT;So;0;ON;;;;;N;;;;;
+23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;;
+2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
+2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
+2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
+2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;;
+2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;;
+2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;;
+2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;;
+2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;;
+2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;;
+2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;;
+240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;;
+240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;;
+240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;;
+240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;;
+240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;;
+240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;;
+2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;;
+2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;;
+2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;;
+2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;;
+2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;;
+2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;;
+2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;;
+2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;;
+2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;;
+2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;;
+241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;;
+241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;;
+241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;;
+241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;;
+241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;;
+241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;;
+2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;;
+2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;;
+2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;;
+2423;OPEN BOX;So;0;ON;;;;;N;;;;;
+2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;
+2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;
+2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;
+2440;OCR HOOK;So;0;ON;;;;;N;;;;;
+2441;OCR CHAIR;So;0;ON;;;;;N;;;;;
+2442;OCR FORK;So;0;ON;;;;;N;;;;;
+2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;;
+2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;;
+2445;OCR BOW TIE;So;0;ON;;;;;N;;;;;
+2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;;
+2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;;
+2448;OCR DASH;So;0;ON;;;;;N;;;;;
+2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;;
+244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;;
+2460;CIRCLED DIGIT ONE;No;0;ON;<circle> 0031;;1;1;N;;;;;
+2461;CIRCLED DIGIT TWO;No;0;ON;<circle> 0032;;2;2;N;;;;;
+2462;CIRCLED DIGIT THREE;No;0;ON;<circle> 0033;;3;3;N;;;;;
+2463;CIRCLED DIGIT FOUR;No;0;ON;<circle> 0034;;4;4;N;;;;;
+2464;CIRCLED DIGIT FIVE;No;0;ON;<circle> 0035;;5;5;N;;;;;
+2465;CIRCLED DIGIT SIX;No;0;ON;<circle> 0036;;6;6;N;;;;;
+2466;CIRCLED DIGIT SEVEN;No;0;ON;<circle> 0037;;7;7;N;;;;;
+2467;CIRCLED DIGIT EIGHT;No;0;ON;<circle> 0038;;8;8;N;;;;;
+2468;CIRCLED DIGIT NINE;No;0;ON;<circle> 0039;;9;9;N;;;;;
+2469;CIRCLED NUMBER TEN;No;0;ON;<circle> 0031 0030;;;10;N;;;;;
+246A;CIRCLED NUMBER ELEVEN;No;0;ON;<circle> 0031 0031;;;11;N;;;;;
+246B;CIRCLED NUMBER TWELVE;No;0;ON;<circle> 0031 0032;;;12;N;;;;;
+246C;CIRCLED NUMBER THIRTEEN;No;0;ON;<circle> 0031 0033;;;13;N;;;;;
+246D;CIRCLED NUMBER FOURTEEN;No;0;ON;<circle> 0031 0034;;;14;N;;;;;
+246E;CIRCLED NUMBER FIFTEEN;No;0;ON;<circle> 0031 0035;;;15;N;;;;;
+246F;CIRCLED NUMBER SIXTEEN;No;0;ON;<circle> 0031 0036;;;16;N;;;;;
+2470;CIRCLED NUMBER SEVENTEEN;No;0;ON;<circle> 0031 0037;;;17;N;;;;;
+2471;CIRCLED NUMBER EIGHTEEN;No;0;ON;<circle> 0031 0038;;;18;N;;;;;
+2472;CIRCLED NUMBER NINETEEN;No;0;ON;<circle> 0031 0039;;;19;N;;;;;
+2473;CIRCLED NUMBER TWENTY;No;0;ON;<circle> 0032 0030;;;20;N;;;;;
+2474;PARENTHESIZED DIGIT ONE;No;0;ON;<compat> 0028 0031 0029;;1;1;N;;;;;
+2475;PARENTHESIZED DIGIT TWO;No;0;ON;<compat> 0028 0032 0029;;2;2;N;;;;;
+2476;PARENTHESIZED DIGIT THREE;No;0;ON;<compat> 0028 0033 0029;;3;3;N;;;;;
+2477;PARENTHESIZED DIGIT FOUR;No;0;ON;<compat> 0028 0034 0029;;4;4;N;;;;;
+2478;PARENTHESIZED DIGIT FIVE;No;0;ON;<compat> 0028 0035 0029;;5;5;N;;;;;
+2479;PARENTHESIZED DIGIT SIX;No;0;ON;<compat> 0028 0036 0029;;6;6;N;;;;;
+247A;PARENTHESIZED DIGIT SEVEN;No;0;ON;<compat> 0028 0037 0029;;7;7;N;;;;;
+247B;PARENTHESIZED DIGIT EIGHT;No;0;ON;<compat> 0028 0038 0029;;8;8;N;;;;;
+247C;PARENTHESIZED DIGIT NINE;No;0;ON;<compat> 0028 0039 0029;;9;9;N;;;;;
+247D;PARENTHESIZED NUMBER TEN;No;0;ON;<compat> 0028 0031 0030 0029;;;10;N;;;;;
+247E;PARENTHESIZED NUMBER ELEVEN;No;0;ON;<compat> 0028 0031 0031 0029;;;11;N;;;;;
+247F;PARENTHESIZED NUMBER TWELVE;No;0;ON;<compat> 0028 0031 0032 0029;;;12;N;;;;;
+2480;PARENTHESIZED NUMBER THIRTEEN;No;0;ON;<compat> 0028 0031 0033 0029;;;13;N;;;;;
+2481;PARENTHESIZED NUMBER FOURTEEN;No;0;ON;<compat> 0028 0031 0034 0029;;;14;N;;;;;
+2482;PARENTHESIZED NUMBER FIFTEEN;No;0;ON;<compat> 0028 0031 0035 0029;;;15;N;;;;;
+2483;PARENTHESIZED NUMBER SIXTEEN;No;0;ON;<compat> 0028 0031 0036 0029;;;16;N;;;;;
+2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;ON;<compat> 0028 0031 0037 0029;;;17;N;;;;;
+2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;ON;<compat> 0028 0031 0038 0029;;;18;N;;;;;
+2486;PARENTHESIZED NUMBER NINETEEN;No;0;ON;<compat> 0028 0031 0039 0029;;;19;N;;;;;
+2487;PARENTHESIZED NUMBER TWENTY;No;0;ON;<compat> 0028 0032 0030 0029;;;20;N;;;;;
+2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;;
+2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;;
+248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;;
+248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;;
+248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;;
+248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;;
+248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;;
+248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;;
+2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;;
+2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;;
+2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;;
+2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;;
+2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;;
+2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;;
+2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;;
+2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;;
+2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;;
+2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;;
+249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;;
+249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;;
+249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;;
+249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;;
+249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;;
+249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;;
+24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;;
+24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;;
+24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;;
+24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;;
+24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;;
+24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;;
+24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;;
+24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;;
+24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;;
+24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;;
+24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;;
+24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;;
+24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;;
+24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;;
+24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;;
+24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;;
+24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;;
+24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;;
+24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;;
+24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;;
+24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;;
+24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;;
+24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0;
+24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1;
+24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2;
+24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3;
+24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4;
+24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5;
+24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6;
+24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7;
+24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8;
+24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9;
+24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA;
+24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB;
+24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC;
+24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD;
+24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE;
+24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF;
+24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0;
+24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1;
+24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2;
+24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3;
+24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4;
+24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5;
+24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6;
+24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7;
+24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8;
+24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9;
+24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6
+24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7
+24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8
+24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9
+24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA
+24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB
+24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC
+24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD
+24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE
+24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF
+24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0
+24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1
+24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2
+24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3
+24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4
+24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5
+24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6
+24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7
+24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8
+24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9
+24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA
+24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB
+24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC
+24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD
+24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE
+24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF
+24EA;CIRCLED DIGIT ZERO;No;0;ON;<circle> 0030;;0;0;N;;;;;
+24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;;
+24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;;
+24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;;
+24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;;
+24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;;
+24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;;
+24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;;
+24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;;
+24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;;
+24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;;
+24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;;
+24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;;
+24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;;
+24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;;
+24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;;
+24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;;
+24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;;
+24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;;
+24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;;
+24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;;
+24FF;NEGATIVE CIRCLED DIGIT ZERO;No;0;ON;;;0;0;N;;;;;
+2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;
+2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;
+2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;
+2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;;
+2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;;
+2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;;
+2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;;
+2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;;
+2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;;
+2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;;
+250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;;
+250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;;
+250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;;
+250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;;
+250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;;
+250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;;
+2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;;
+2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;;
+2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;;
+2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;;
+2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;;
+2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;;
+2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;;
+2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;;
+2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;;
+2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;;
+251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;;
+251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;;
+251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;;
+251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;;
+251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;;
+251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;;
+2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;;
+2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;;
+2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;;
+2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;;
+2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;;
+2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;;
+2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;;
+2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;;
+2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;;
+252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;;
+252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;;
+252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;;
+252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;;
+252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;;
+252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;;
+2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;;
+2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;;
+2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;;
+2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;;
+2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;;
+2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;;
+2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;;
+2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;;
+2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;;
+2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;;
+253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;;
+253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;;
+253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;;
+253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;;
+253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;;
+253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;;
+2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;;
+2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;;
+2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;;
+2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;;
+2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;;
+2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;;
+2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;;
+2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;;
+2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;;
+254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;;
+254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;;
+254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;;
+254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;;
+254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;;
+254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;;
+2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;;
+2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;;
+2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;;
+2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;;
+2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;;
+2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;;
+2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;;
+2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;;
+2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;;
+2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;;
+255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;;
+255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;;
+255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;;
+255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;;
+255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;;
+255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;;
+2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;;
+2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;;
+2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;;
+2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;;
+2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;;
+2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;;
+2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;;
+2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;;
+2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;;
+2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;;
+256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;;
+256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;;
+256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;;
+256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;;
+256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;;
+256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;;
+2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;;
+2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;;
+2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;;
+2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;;
+2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;;
+2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;;
+2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;;
+2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;;
+2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;;
+2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;;
+257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;;
+257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;;
+257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;;
+257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;;
+257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;;
+257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;;
+2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;;
+2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2588;FULL BLOCK;So;0;ON;;;;;N;;;;;
+2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;;
+258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;;
+258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;
+2591;LIGHT SHADE;So;0;ON;;;;;N;;;;;
+2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+2593;DARK SHADE;So;0;ON;;;;;N;;;;;
+2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;;
+2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;;
+2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;;
+2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;;
+259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;
+25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;
+25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;
+25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;
+25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;;
+25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;;
+25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;;
+25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;;
+25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;
+25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;
+25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;
+25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
+25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;
+25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;
+25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;
+25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;;
+25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;;
+25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;;
+25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;
+25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;
+25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;
+25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
+25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;
+25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;
+25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;
+25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;;
+25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;;
+25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;;
+25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+25C9;FISHEYE;So;0;ON;;;;;N;;;;;
+25CA;LOZENGE;So;0;ON;;;;;N;;;;;
+25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;;
+25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25CE;BULLSEYE;So;0;ON;;;;;N;;;;;
+25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;;
+25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E6;WHITE BULLET;So;0;ON;;;;;N;;;;;
+25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;;
+25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;;
+25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;;
+25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;;
+25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;;
+25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+2601;CLOUD;So;0;ON;;;;;N;;;;;
+2602;UMBRELLA;So;0;ON;;;;;N;;;;;
+2603;SNOWMAN;So;0;ON;;;;;N;;;;;
+2604;COMET;So;0;ON;;;;;N;;;;;
+2605;BLACK STAR;So;0;ON;;;;;N;;;;;
+2606;WHITE STAR;So;0;ON;;;;;N;;;;;
+2607;LIGHTNING;So;0;ON;;;;;N;;;;;
+2608;THUNDERSTORM;So;0;ON;;;;;N;;;;;
+2609;SUN;So;0;ON;;;;;N;;;;;
+260A;ASCENDING NODE;So;0;ON;;;;;N;;;;;
+260B;DESCENDING NODE;So;0;ON;;;;;N;;;;;
+260C;CONJUNCTION;So;0;ON;;;;;N;;;;;
+260D;OPPOSITION;So;0;ON;;;;;N;;;;;
+260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;;
+260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;;
+2610;BALLOT BOX;So;0;ON;;;;;N;;;;;
+2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;
+2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;
+2613;SALTIRE;So;0;ON;;;;;N;;;;;
+2614;UMBRELLA WITH RAIN DROPS;So;0;ON;;;;;N;;;;;
+2615;HOT BEVERAGE;So;0;ON;;;;;N;;;;;
+2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;;
+2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;;
+2618;SHAMROCK;So;0;ON;;;;;N;;;;;
+2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
+2621;CAUTION SIGN;So;0;ON;;;;;N;;;;;
+2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;;
+2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;;
+2624;CADUCEUS;So;0;ON;;;;;N;;;;;
+2625;ANKH;So;0;ON;;;;;N;;;;;
+2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;;
+2627;CHI RHO;So;0;ON;;;;;N;;;;;
+2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;;
+2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;;
+262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;;
+262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;;
+262C;ADI SHAKTI;So;0;ON;;;;;N;;;;;
+262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;;
+262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;;
+262F;YIN YANG;So;0;ON;;;;;N;;;;;
+2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;;
+2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;;
+2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;;
+2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;;
+2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;;
+2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;;
+2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;;
+2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
+2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;;
+2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;;
+263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;;
+263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;;
+263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263F;MERCURY;So;0;ON;;;;;N;;;;;
+2640;FEMALE SIGN;So;0;ON;;;;;N;;;;;
+2641;EARTH;So;0;ON;;;;;N;;;;;
+2642;MALE SIGN;So;0;ON;;;;;N;;;;;
+2643;JUPITER;So;0;ON;;;;;N;;;;;
+2644;SATURN;So;0;ON;;;;;N;;;;;
+2645;URANUS;So;0;ON;;;;;N;;;;;
+2646;NEPTUNE;So;0;ON;;;;;N;;;;;
+2647;PLUTO;So;0;ON;;;;;N;;;;;
+2648;ARIES;So;0;ON;;;;;N;;;;;
+2649;TAURUS;So;0;ON;;;;;N;;;;;
+264A;GEMINI;So;0;ON;;;;;N;;;;;
+264B;CANCER;So;0;ON;;;;;N;;;;;
+264C;LEO;So;0;ON;;;;;N;;;;;
+264D;VIRGO;So;0;ON;;;;;N;;;;;
+264E;LIBRA;So;0;ON;;;;;N;;;;;
+264F;SCORPIUS;So;0;ON;;;;;N;;;;;
+2650;SAGITTARIUS;So;0;ON;;;;;N;;;;;
+2651;CAPRICORN;So;0;ON;;;;;N;;;;;
+2652;AQUARIUS;So;0;ON;;;;;N;;;;;
+2653;PISCES;So;0;ON;;;;;N;;;;;
+2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;;
+2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;;
+2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;;
+2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;;
+2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;;
+265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;;
+265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;;
+265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;;
+265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;;
+265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;;
+2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;;
+2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;;
+2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;;
+2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;;
+2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;;
+2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;;
+2668;HOT SPRINGS;So;0;ON;;;;;N;;;;;
+2669;QUARTER NOTE;So;0;ON;;;;;N;;;;;
+266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;;
+266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;;
+266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;
+266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;
+266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;
+266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
+2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;pete;;;
+2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;hdpe;;;
+2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;pvc;;;
+2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;ldpe;;;
+2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;pp;;;
+2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;ps;;;
+2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;other;;;
+267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;;
+267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+267E;PERMANENT PAPER SIGN;So;0;ON;;;;;N;;;;;
+267F;WHEELCHAIR SYMBOL;So;0;ON;;;;;N;;;;;
+2680;DIE FACE-1;So;0;ON;;;;;N;;;;;
+2681;DIE FACE-2;So;0;ON;;;;;N;;;;;
+2682;DIE FACE-3;So;0;ON;;;;;N;;;;;
+2683;DIE FACE-4;So;0;ON;;;;;N;;;;;
+2684;DIE FACE-5;So;0;ON;;;;;N;;;;;
+2685;DIE FACE-6;So;0;ON;;;;;N;;;;;
+2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;;
+2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;;
+2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;;
+2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;;
+268A;MONOGRAM FOR YANG;So;0;ON;;;;;N;;;;;
+268B;MONOGRAM FOR YIN;So;0;ON;;;;;N;;;;;
+268C;DIGRAM FOR GREATER YANG;So;0;ON;;;;;N;;;;;
+268D;DIGRAM FOR LESSER YIN;So;0;ON;;;;;N;;;;;
+268E;DIGRAM FOR LESSER YANG;So;0;ON;;;;;N;;;;;
+268F;DIGRAM FOR GREATER YIN;So;0;ON;;;;;N;;;;;
+2690;WHITE FLAG;So;0;ON;;;;;N;;;;;
+2691;BLACK FLAG;So;0;ON;;;;;N;;;;;
+2692;HAMMER AND PICK;So;0;ON;;;;;N;;;;;
+2693;ANCHOR;So;0;ON;;;;;N;;;;;
+2694;CROSSED SWORDS;So;0;ON;;;;;N;;;;;
+2695;STAFF OF AESCULAPIUS;So;0;ON;;;;;N;;;;;
+2696;SCALES;So;0;ON;;;;;N;;;;;
+2697;ALEMBIC;So;0;ON;;;;;N;;;;;
+2698;FLOWER;So;0;ON;;;;;N;;;;;
+2699;GEAR;So;0;ON;;;;;N;;;;;
+269A;STAFF OF HERMES;So;0;ON;;;;;N;;;;;
+269B;ATOM SYMBOL;So;0;ON;;;;;N;;;;;
+269C;FLEUR-DE-LIS;So;0;ON;;;;;N;;;;;
+269D;OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
+26A0;WARNING SIGN;So;0;ON;;;;;N;;;;;
+26A1;HIGH VOLTAGE SIGN;So;0;ON;;;;;N;;;;;
+26A2;DOUBLED FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A3;DOUBLED MALE SIGN;So;0;ON;;;;;N;;;;;
+26A4;INTERLOCKED FEMALE AND MALE SIGN;So;0;ON;;;;;N;;;;;
+26A5;MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A6;MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26A7;MALE WITH STROKE AND MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A8;VERTICAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26A9;HORIZONTAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26AA;MEDIUM WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+26AB;MEDIUM BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+26AC;MEDIUM SMALL WHITE CIRCLE;So;0;L;;;;;N;;;;;
+26AD;MARRIAGE SYMBOL;So;0;ON;;;;;N;;;;;
+26AE;DIVORCE SYMBOL;So;0;ON;;;;;N;;;;;
+26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;;
+26B0;COFFIN;So;0;ON;;;;;N;;;;;
+26B1;FUNERAL URN;So;0;ON;;;;;N;;;;;
+26B2;NEUTER;So;0;ON;;;;;N;;;;;
+26B3;CERES;So;0;ON;;;;;N;;;;;
+26B4;PALLAS;So;0;ON;;;;;N;;;;;
+26B5;JUNO;So;0;ON;;;;;N;;;;;
+26B6;VESTA;So;0;ON;;;;;N;;;;;
+26B7;CHIRON;So;0;ON;;;;;N;;;;;
+26B8;BLACK MOON LILITH;So;0;ON;;;;;N;;;;;
+26B9;SEXTILE;So;0;ON;;;;;N;;;;;
+26BA;SEMISEXTILE;So;0;ON;;;;;N;;;;;
+26BB;QUINCUNX;So;0;ON;;;;;N;;;;;
+26BC;SESQUIQUADRATE;So;0;ON;;;;;N;;;;;
+26C0;WHITE DRAUGHTS MAN;So;0;ON;;;;;N;;;;;
+26C1;WHITE DRAUGHTS KING;So;0;ON;;;;;N;;;;;
+26C2;BLACK DRAUGHTS MAN;So;0;ON;;;;;N;;;;;
+26C3;BLACK DRAUGHTS KING;So;0;ON;;;;;N;;;;;
+2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
+2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;
+2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;
+2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;
+2708;AIRPLANE;So;0;ON;;;;;N;;;;;
+2709;ENVELOPE;So;0;ON;;;;;N;;;;;
+270C;VICTORY HAND;So;0;ON;;;;;N;;;;;
+270D;WRITING HAND;So;0;ON;;;;;N;;;;;
+270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+270F;PENCIL;So;0;ON;;;;;N;;;;;
+2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+2711;WHITE NIB;So;0;ON;;;;;N;;;;;
+2712;BLACK NIB;So;0;ON;;;;;N;;;;;
+2713;CHECK MARK;So;0;ON;;;;;N;;;;;
+2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
+2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2717;BALLOT X;So;0;ON;;;;;N;;;;;
+2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;
+2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;;
+271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;;
+271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;;
+271D;LATIN CROSS;So;0;ON;;;;;N;;;;;
+271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
+271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;;
+2720;MALTESE CROSS;So;0;ON;;;;;N;;;;;
+2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;
+2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
+272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;;
+272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;;
+272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;;
+272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;;
+2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;;
+2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;;
+2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;;
+273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;;
+273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;;
+2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;;
+2744;SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2747;SPARKLE;So;0;ON;;;;;N;;;;;
+2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;;
+2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;
+2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;
+2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;
+2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;;
+2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;
+2766;FLORAL HEART;So;0;ON;;;;;N;;;;;
+2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
+2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;
+2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;
+2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;;
+277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;;
+277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;;
+277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;;
+277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;;
+277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;;
+277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;;
+2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;;
+2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;;
+2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;;
+2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;;
+2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;;
+2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;;
+2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;;
+2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;;
+278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;;
+278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;;
+278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;;
+278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;;
+278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;;
+278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;;
+2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;;
+2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;;
+2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;;
+2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;;
+2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;;
+279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;;
+279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;;
+279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;;
+279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;;
+279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;;
+279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;;
+27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;;
+27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;;
+27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;;
+27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;;
+27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;;
+27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;;
+27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;;
+27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;;
+27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;;
+27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;;
+27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;;
+27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;;
+27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;;
+27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;;
+27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;;
+27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;
+27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;
+27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;
+27C0;THREE DIMENSIONAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+27C1;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE;Sm;0;ON;;;;;N;;;;;
+27C2;PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
+27C3;OPEN SUBSET;Sm;0;ON;;;;;Y;;;;;
+27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;;
+27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;;
+27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;;
+27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;;
+27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;Y;;;;;
+27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+27CC;LONG DIVISION;Sm;0;ON;;;;;Y;;;;;
+27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
+27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;;
+27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;;
+27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;;
+27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;;
+27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;;
+27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;;
+27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;;
+27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;;
+27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27EC;MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;
+27ED;MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;
+27EE;MATHEMATICAL LEFT FLATTENED PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+27EF;MATHEMATICAL RIGHT FLATTENED PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;
+2800;BRAILLE PATTERN BLANK;So;0;L;;;;;N;;;;;
+2801;BRAILLE PATTERN DOTS-1;So;0;L;;;;;N;;;;;
+2802;BRAILLE PATTERN DOTS-2;So;0;L;;;;;N;;;;;
+2803;BRAILLE PATTERN DOTS-12;So;0;L;;;;;N;;;;;
+2804;BRAILLE PATTERN DOTS-3;So;0;L;;;;;N;;;;;
+2805;BRAILLE PATTERN DOTS-13;So;0;L;;;;;N;;;;;
+2806;BRAILLE PATTERN DOTS-23;So;0;L;;;;;N;;;;;
+2807;BRAILLE PATTERN DOTS-123;So;0;L;;;;;N;;;;;
+2808;BRAILLE PATTERN DOTS-4;So;0;L;;;;;N;;;;;
+2809;BRAILLE PATTERN DOTS-14;So;0;L;;;;;N;;;;;
+280A;BRAILLE PATTERN DOTS-24;So;0;L;;;;;N;;;;;
+280B;BRAILLE PATTERN DOTS-124;So;0;L;;;;;N;;;;;
+280C;BRAILLE PATTERN DOTS-34;So;0;L;;;;;N;;;;;
+280D;BRAILLE PATTERN DOTS-134;So;0;L;;;;;N;;;;;
+280E;BRAILLE PATTERN DOTS-234;So;0;L;;;;;N;;;;;
+280F;BRAILLE PATTERN DOTS-1234;So;0;L;;;;;N;;;;;
+2810;BRAILLE PATTERN DOTS-5;So;0;L;;;;;N;;;;;
+2811;BRAILLE PATTERN DOTS-15;So;0;L;;;;;N;;;;;
+2812;BRAILLE PATTERN DOTS-25;So;0;L;;;;;N;;;;;
+2813;BRAILLE PATTERN DOTS-125;So;0;L;;;;;N;;;;;
+2814;BRAILLE PATTERN DOTS-35;So;0;L;;;;;N;;;;;
+2815;BRAILLE PATTERN DOTS-135;So;0;L;;;;;N;;;;;
+2816;BRAILLE PATTERN DOTS-235;So;0;L;;;;;N;;;;;
+2817;BRAILLE PATTERN DOTS-1235;So;0;L;;;;;N;;;;;
+2818;BRAILLE PATTERN DOTS-45;So;0;L;;;;;N;;;;;
+2819;BRAILLE PATTERN DOTS-145;So;0;L;;;;;N;;;;;
+281A;BRAILLE PATTERN DOTS-245;So;0;L;;;;;N;;;;;
+281B;BRAILLE PATTERN DOTS-1245;So;0;L;;;;;N;;;;;
+281C;BRAILLE PATTERN DOTS-345;So;0;L;;;;;N;;;;;
+281D;BRAILLE PATTERN DOTS-1345;So;0;L;;;;;N;;;;;
+281E;BRAILLE PATTERN DOTS-2345;So;0;L;;;;;N;;;;;
+281F;BRAILLE PATTERN DOTS-12345;So;0;L;;;;;N;;;;;
+2820;BRAILLE PATTERN DOTS-6;So;0;L;;;;;N;;;;;
+2821;BRAILLE PATTERN DOTS-16;So;0;L;;;;;N;;;;;
+2822;BRAILLE PATTERN DOTS-26;So;0;L;;;;;N;;;;;
+2823;BRAILLE PATTERN DOTS-126;So;0;L;;;;;N;;;;;
+2824;BRAILLE PATTERN DOTS-36;So;0;L;;;;;N;;;;;
+2825;BRAILLE PATTERN DOTS-136;So;0;L;;;;;N;;;;;
+2826;BRAILLE PATTERN DOTS-236;So;0;L;;;;;N;;;;;
+2827;BRAILLE PATTERN DOTS-1236;So;0;L;;;;;N;;;;;
+2828;BRAILLE PATTERN DOTS-46;So;0;L;;;;;N;;;;;
+2829;BRAILLE PATTERN DOTS-146;So;0;L;;;;;N;;;;;
+282A;BRAILLE PATTERN DOTS-246;So;0;L;;;;;N;;;;;
+282B;BRAILLE PATTERN DOTS-1246;So;0;L;;;;;N;;;;;
+282C;BRAILLE PATTERN DOTS-346;So;0;L;;;;;N;;;;;
+282D;BRAILLE PATTERN DOTS-1346;So;0;L;;;;;N;;;;;
+282E;BRAILLE PATTERN DOTS-2346;So;0;L;;;;;N;;;;;
+282F;BRAILLE PATTERN DOTS-12346;So;0;L;;;;;N;;;;;
+2830;BRAILLE PATTERN DOTS-56;So;0;L;;;;;N;;;;;
+2831;BRAILLE PATTERN DOTS-156;So;0;L;;;;;N;;;;;
+2832;BRAILLE PATTERN DOTS-256;So;0;L;;;;;N;;;;;
+2833;BRAILLE PATTERN DOTS-1256;So;0;L;;;;;N;;;;;
+2834;BRAILLE PATTERN DOTS-356;So;0;L;;;;;N;;;;;
+2835;BRAILLE PATTERN DOTS-1356;So;0;L;;;;;N;;;;;
+2836;BRAILLE PATTERN DOTS-2356;So;0;L;;;;;N;;;;;
+2837;BRAILLE PATTERN DOTS-12356;So;0;L;;;;;N;;;;;
+2838;BRAILLE PATTERN DOTS-456;So;0;L;;;;;N;;;;;
+2839;BRAILLE PATTERN DOTS-1456;So;0;L;;;;;N;;;;;
+283A;BRAILLE PATTERN DOTS-2456;So;0;L;;;;;N;;;;;
+283B;BRAILLE PATTERN DOTS-12456;So;0;L;;;;;N;;;;;
+283C;BRAILLE PATTERN DOTS-3456;So;0;L;;;;;N;;;;;
+283D;BRAILLE PATTERN DOTS-13456;So;0;L;;;;;N;;;;;
+283E;BRAILLE PATTERN DOTS-23456;So;0;L;;;;;N;;;;;
+283F;BRAILLE PATTERN DOTS-123456;So;0;L;;;;;N;;;;;
+2840;BRAILLE PATTERN DOTS-7;So;0;L;;;;;N;;;;;
+2841;BRAILLE PATTERN DOTS-17;So;0;L;;;;;N;;;;;
+2842;BRAILLE PATTERN DOTS-27;So;0;L;;;;;N;;;;;
+2843;BRAILLE PATTERN DOTS-127;So;0;L;;;;;N;;;;;
+2844;BRAILLE PATTERN DOTS-37;So;0;L;;;;;N;;;;;
+2845;BRAILLE PATTERN DOTS-137;So;0;L;;;;;N;;;;;
+2846;BRAILLE PATTERN DOTS-237;So;0;L;;;;;N;;;;;
+2847;BRAILLE PATTERN DOTS-1237;So;0;L;;;;;N;;;;;
+2848;BRAILLE PATTERN DOTS-47;So;0;L;;;;;N;;;;;
+2849;BRAILLE PATTERN DOTS-147;So;0;L;;;;;N;;;;;
+284A;BRAILLE PATTERN DOTS-247;So;0;L;;;;;N;;;;;
+284B;BRAILLE PATTERN DOTS-1247;So;0;L;;;;;N;;;;;
+284C;BRAILLE PATTERN DOTS-347;So;0;L;;;;;N;;;;;
+284D;BRAILLE PATTERN DOTS-1347;So;0;L;;;;;N;;;;;
+284E;BRAILLE PATTERN DOTS-2347;So;0;L;;;;;N;;;;;
+284F;BRAILLE PATTERN DOTS-12347;So;0;L;;;;;N;;;;;
+2850;BRAILLE PATTERN DOTS-57;So;0;L;;;;;N;;;;;
+2851;BRAILLE PATTERN DOTS-157;So;0;L;;;;;N;;;;;
+2852;BRAILLE PATTERN DOTS-257;So;0;L;;;;;N;;;;;
+2853;BRAILLE PATTERN DOTS-1257;So;0;L;;;;;N;;;;;
+2854;BRAILLE PATTERN DOTS-357;So;0;L;;;;;N;;;;;
+2855;BRAILLE PATTERN DOTS-1357;So;0;L;;;;;N;;;;;
+2856;BRAILLE PATTERN DOTS-2357;So;0;L;;;;;N;;;;;
+2857;BRAILLE PATTERN DOTS-12357;So;0;L;;;;;N;;;;;
+2858;BRAILLE PATTERN DOTS-457;So;0;L;;;;;N;;;;;
+2859;BRAILLE PATTERN DOTS-1457;So;0;L;;;;;N;;;;;
+285A;BRAILLE PATTERN DOTS-2457;So;0;L;;;;;N;;;;;
+285B;BRAILLE PATTERN DOTS-12457;So;0;L;;;;;N;;;;;
+285C;BRAILLE PATTERN DOTS-3457;So;0;L;;;;;N;;;;;
+285D;BRAILLE PATTERN DOTS-13457;So;0;L;;;;;N;;;;;
+285E;BRAILLE PATTERN DOTS-23457;So;0;L;;;;;N;;;;;
+285F;BRAILLE PATTERN DOTS-123457;So;0;L;;;;;N;;;;;
+2860;BRAILLE PATTERN DOTS-67;So;0;L;;;;;N;;;;;
+2861;BRAILLE PATTERN DOTS-167;So;0;L;;;;;N;;;;;
+2862;BRAILLE PATTERN DOTS-267;So;0;L;;;;;N;;;;;
+2863;BRAILLE PATTERN DOTS-1267;So;0;L;;;;;N;;;;;
+2864;BRAILLE PATTERN DOTS-367;So;0;L;;;;;N;;;;;
+2865;BRAILLE PATTERN DOTS-1367;So;0;L;;;;;N;;;;;
+2866;BRAILLE PATTERN DOTS-2367;So;0;L;;;;;N;;;;;
+2867;BRAILLE PATTERN DOTS-12367;So;0;L;;;;;N;;;;;
+2868;BRAILLE PATTERN DOTS-467;So;0;L;;;;;N;;;;;
+2869;BRAILLE PATTERN DOTS-1467;So;0;L;;;;;N;;;;;
+286A;BRAILLE PATTERN DOTS-2467;So;0;L;;;;;N;;;;;
+286B;BRAILLE PATTERN DOTS-12467;So;0;L;;;;;N;;;;;
+286C;BRAILLE PATTERN DOTS-3467;So;0;L;;;;;N;;;;;
+286D;BRAILLE PATTERN DOTS-13467;So;0;L;;;;;N;;;;;
+286E;BRAILLE PATTERN DOTS-23467;So;0;L;;;;;N;;;;;
+286F;BRAILLE PATTERN DOTS-123467;So;0;L;;;;;N;;;;;
+2870;BRAILLE PATTERN DOTS-567;So;0;L;;;;;N;;;;;
+2871;BRAILLE PATTERN DOTS-1567;So;0;L;;;;;N;;;;;
+2872;BRAILLE PATTERN DOTS-2567;So;0;L;;;;;N;;;;;
+2873;BRAILLE PATTERN DOTS-12567;So;0;L;;;;;N;;;;;
+2874;BRAILLE PATTERN DOTS-3567;So;0;L;;;;;N;;;;;
+2875;BRAILLE PATTERN DOTS-13567;So;0;L;;;;;N;;;;;
+2876;BRAILLE PATTERN DOTS-23567;So;0;L;;;;;N;;;;;
+2877;BRAILLE PATTERN DOTS-123567;So;0;L;;;;;N;;;;;
+2878;BRAILLE PATTERN DOTS-4567;So;0;L;;;;;N;;;;;
+2879;BRAILLE PATTERN DOTS-14567;So;0;L;;;;;N;;;;;
+287A;BRAILLE PATTERN DOTS-24567;So;0;L;;;;;N;;;;;
+287B;BRAILLE PATTERN DOTS-124567;So;0;L;;;;;N;;;;;
+287C;BRAILLE PATTERN DOTS-34567;So;0;L;;;;;N;;;;;
+287D;BRAILLE PATTERN DOTS-134567;So;0;L;;;;;N;;;;;
+287E;BRAILLE PATTERN DOTS-234567;So;0;L;;;;;N;;;;;
+287F;BRAILLE PATTERN DOTS-1234567;So;0;L;;;;;N;;;;;
+2880;BRAILLE PATTERN DOTS-8;So;0;L;;;;;N;;;;;
+2881;BRAILLE PATTERN DOTS-18;So;0;L;;;;;N;;;;;
+2882;BRAILLE PATTERN DOTS-28;So;0;L;;;;;N;;;;;
+2883;BRAILLE PATTERN DOTS-128;So;0;L;;;;;N;;;;;
+2884;BRAILLE PATTERN DOTS-38;So;0;L;;;;;N;;;;;
+2885;BRAILLE PATTERN DOTS-138;So;0;L;;;;;N;;;;;
+2886;BRAILLE PATTERN DOTS-238;So;0;L;;;;;N;;;;;
+2887;BRAILLE PATTERN DOTS-1238;So;0;L;;;;;N;;;;;
+2888;BRAILLE PATTERN DOTS-48;So;0;L;;;;;N;;;;;
+2889;BRAILLE PATTERN DOTS-148;So;0;L;;;;;N;;;;;
+288A;BRAILLE PATTERN DOTS-248;So;0;L;;;;;N;;;;;
+288B;BRAILLE PATTERN DOTS-1248;So;0;L;;;;;N;;;;;
+288C;BRAILLE PATTERN DOTS-348;So;0;L;;;;;N;;;;;
+288D;BRAILLE PATTERN DOTS-1348;So;0;L;;;;;N;;;;;
+288E;BRAILLE PATTERN DOTS-2348;So;0;L;;;;;N;;;;;
+288F;BRAILLE PATTERN DOTS-12348;So;0;L;;;;;N;;;;;
+2890;BRAILLE PATTERN DOTS-58;So;0;L;;;;;N;;;;;
+2891;BRAILLE PATTERN DOTS-158;So;0;L;;;;;N;;;;;
+2892;BRAILLE PATTERN DOTS-258;So;0;L;;;;;N;;;;;
+2893;BRAILLE PATTERN DOTS-1258;So;0;L;;;;;N;;;;;
+2894;BRAILLE PATTERN DOTS-358;So;0;L;;;;;N;;;;;
+2895;BRAILLE PATTERN DOTS-1358;So;0;L;;;;;N;;;;;
+2896;BRAILLE PATTERN DOTS-2358;So;0;L;;;;;N;;;;;
+2897;BRAILLE PATTERN DOTS-12358;So;0;L;;;;;N;;;;;
+2898;BRAILLE PATTERN DOTS-458;So;0;L;;;;;N;;;;;
+2899;BRAILLE PATTERN DOTS-1458;So;0;L;;;;;N;;;;;
+289A;BRAILLE PATTERN DOTS-2458;So;0;L;;;;;N;;;;;
+289B;BRAILLE PATTERN DOTS-12458;So;0;L;;;;;N;;;;;
+289C;BRAILLE PATTERN DOTS-3458;So;0;L;;;;;N;;;;;
+289D;BRAILLE PATTERN DOTS-13458;So;0;L;;;;;N;;;;;
+289E;BRAILLE PATTERN DOTS-23458;So;0;L;;;;;N;;;;;
+289F;BRAILLE PATTERN DOTS-123458;So;0;L;;;;;N;;;;;
+28A0;BRAILLE PATTERN DOTS-68;So;0;L;;;;;N;;;;;
+28A1;BRAILLE PATTERN DOTS-168;So;0;L;;;;;N;;;;;
+28A2;BRAILLE PATTERN DOTS-268;So;0;L;;;;;N;;;;;
+28A3;BRAILLE PATTERN DOTS-1268;So;0;L;;;;;N;;;;;
+28A4;BRAILLE PATTERN DOTS-368;So;0;L;;;;;N;;;;;
+28A5;BRAILLE PATTERN DOTS-1368;So;0;L;;;;;N;;;;;
+28A6;BRAILLE PATTERN DOTS-2368;So;0;L;;;;;N;;;;;
+28A7;BRAILLE PATTERN DOTS-12368;So;0;L;;;;;N;;;;;
+28A8;BRAILLE PATTERN DOTS-468;So;0;L;;;;;N;;;;;
+28A9;BRAILLE PATTERN DOTS-1468;So;0;L;;;;;N;;;;;
+28AA;BRAILLE PATTERN DOTS-2468;So;0;L;;;;;N;;;;;
+28AB;BRAILLE PATTERN DOTS-12468;So;0;L;;;;;N;;;;;
+28AC;BRAILLE PATTERN DOTS-3468;So;0;L;;;;;N;;;;;
+28AD;BRAILLE PATTERN DOTS-13468;So;0;L;;;;;N;;;;;
+28AE;BRAILLE PATTERN DOTS-23468;So;0;L;;;;;N;;;;;
+28AF;BRAILLE PATTERN DOTS-123468;So;0;L;;;;;N;;;;;
+28B0;BRAILLE PATTERN DOTS-568;So;0;L;;;;;N;;;;;
+28B1;BRAILLE PATTERN DOTS-1568;So;0;L;;;;;N;;;;;
+28B2;BRAILLE PATTERN DOTS-2568;So;0;L;;;;;N;;;;;
+28B3;BRAILLE PATTERN DOTS-12568;So;0;L;;;;;N;;;;;
+28B4;BRAILLE PATTERN DOTS-3568;So;0;L;;;;;N;;;;;
+28B5;BRAILLE PATTERN DOTS-13568;So;0;L;;;;;N;;;;;
+28B6;BRAILLE PATTERN DOTS-23568;So;0;L;;;;;N;;;;;
+28B7;BRAILLE PATTERN DOTS-123568;So;0;L;;;;;N;;;;;
+28B8;BRAILLE PATTERN DOTS-4568;So;0;L;;;;;N;;;;;
+28B9;BRAILLE PATTERN DOTS-14568;So;0;L;;;;;N;;;;;
+28BA;BRAILLE PATTERN DOTS-24568;So;0;L;;;;;N;;;;;
+28BB;BRAILLE PATTERN DOTS-124568;So;0;L;;;;;N;;;;;
+28BC;BRAILLE PATTERN DOTS-34568;So;0;L;;;;;N;;;;;
+28BD;BRAILLE PATTERN DOTS-134568;So;0;L;;;;;N;;;;;
+28BE;BRAILLE PATTERN DOTS-234568;So;0;L;;;;;N;;;;;
+28BF;BRAILLE PATTERN DOTS-1234568;So;0;L;;;;;N;;;;;
+28C0;BRAILLE PATTERN DOTS-78;So;0;L;;;;;N;;;;;
+28C1;BRAILLE PATTERN DOTS-178;So;0;L;;;;;N;;;;;
+28C2;BRAILLE PATTERN DOTS-278;So;0;L;;;;;N;;;;;
+28C3;BRAILLE PATTERN DOTS-1278;So;0;L;;;;;N;;;;;
+28C4;BRAILLE PATTERN DOTS-378;So;0;L;;;;;N;;;;;
+28C5;BRAILLE PATTERN DOTS-1378;So;0;L;;;;;N;;;;;
+28C6;BRAILLE PATTERN DOTS-2378;So;0;L;;;;;N;;;;;
+28C7;BRAILLE PATTERN DOTS-12378;So;0;L;;;;;N;;;;;
+28C8;BRAILLE PATTERN DOTS-478;So;0;L;;;;;N;;;;;
+28C9;BRAILLE PATTERN DOTS-1478;So;0;L;;;;;N;;;;;
+28CA;BRAILLE PATTERN DOTS-2478;So;0;L;;;;;N;;;;;
+28CB;BRAILLE PATTERN DOTS-12478;So;0;L;;;;;N;;;;;
+28CC;BRAILLE PATTERN DOTS-3478;So;0;L;;;;;N;;;;;
+28CD;BRAILLE PATTERN DOTS-13478;So;0;L;;;;;N;;;;;
+28CE;BRAILLE PATTERN DOTS-23478;So;0;L;;;;;N;;;;;
+28CF;BRAILLE PATTERN DOTS-123478;So;0;L;;;;;N;;;;;
+28D0;BRAILLE PATTERN DOTS-578;So;0;L;;;;;N;;;;;
+28D1;BRAILLE PATTERN DOTS-1578;So;0;L;;;;;N;;;;;
+28D2;BRAILLE PATTERN DOTS-2578;So;0;L;;;;;N;;;;;
+28D3;BRAILLE PATTERN DOTS-12578;So;0;L;;;;;N;;;;;
+28D4;BRAILLE PATTERN DOTS-3578;So;0;L;;;;;N;;;;;
+28D5;BRAILLE PATTERN DOTS-13578;So;0;L;;;;;N;;;;;
+28D6;BRAILLE PATTERN DOTS-23578;So;0;L;;;;;N;;;;;
+28D7;BRAILLE PATTERN DOTS-123578;So;0;L;;;;;N;;;;;
+28D8;BRAILLE PATTERN DOTS-4578;So;0;L;;;;;N;;;;;
+28D9;BRAILLE PATTERN DOTS-14578;So;0;L;;;;;N;;;;;
+28DA;BRAILLE PATTERN DOTS-24578;So;0;L;;;;;N;;;;;
+28DB;BRAILLE PATTERN DOTS-124578;So;0;L;;;;;N;;;;;
+28DC;BRAILLE PATTERN DOTS-34578;So;0;L;;;;;N;;;;;
+28DD;BRAILLE PATTERN DOTS-134578;So;0;L;;;;;N;;;;;
+28DE;BRAILLE PATTERN DOTS-234578;So;0;L;;;;;N;;;;;
+28DF;BRAILLE PATTERN DOTS-1234578;So;0;L;;;;;N;;;;;
+28E0;BRAILLE PATTERN DOTS-678;So;0;L;;;;;N;;;;;
+28E1;BRAILLE PATTERN DOTS-1678;So;0;L;;;;;N;;;;;
+28E2;BRAILLE PATTERN DOTS-2678;So;0;L;;;;;N;;;;;
+28E3;BRAILLE PATTERN DOTS-12678;So;0;L;;;;;N;;;;;
+28E4;BRAILLE PATTERN DOTS-3678;So;0;L;;;;;N;;;;;
+28E5;BRAILLE PATTERN DOTS-13678;So;0;L;;;;;N;;;;;
+28E6;BRAILLE PATTERN DOTS-23678;So;0;L;;;;;N;;;;;
+28E7;BRAILLE PATTERN DOTS-123678;So;0;L;;;;;N;;;;;
+28E8;BRAILLE PATTERN DOTS-4678;So;0;L;;;;;N;;;;;
+28E9;BRAILLE PATTERN DOTS-14678;So;0;L;;;;;N;;;;;
+28EA;BRAILLE PATTERN DOTS-24678;So;0;L;;;;;N;;;;;
+28EB;BRAILLE PATTERN DOTS-124678;So;0;L;;;;;N;;;;;
+28EC;BRAILLE PATTERN DOTS-34678;So;0;L;;;;;N;;;;;
+28ED;BRAILLE PATTERN DOTS-134678;So;0;L;;;;;N;;;;;
+28EE;BRAILLE PATTERN DOTS-234678;So;0;L;;;;;N;;;;;
+28EF;BRAILLE PATTERN DOTS-1234678;So;0;L;;;;;N;;;;;
+28F0;BRAILLE PATTERN DOTS-5678;So;0;L;;;;;N;;;;;
+28F1;BRAILLE PATTERN DOTS-15678;So;0;L;;;;;N;;;;;
+28F2;BRAILLE PATTERN DOTS-25678;So;0;L;;;;;N;;;;;
+28F3;BRAILLE PATTERN DOTS-125678;So;0;L;;;;;N;;;;;
+28F4;BRAILLE PATTERN DOTS-35678;So;0;L;;;;;N;;;;;
+28F5;BRAILLE PATTERN DOTS-135678;So;0;L;;;;;N;;;;;
+28F6;BRAILLE PATTERN DOTS-235678;So;0;L;;;;;N;;;;;
+28F7;BRAILLE PATTERN DOTS-1235678;So;0;L;;;;;N;;;;;
+28F8;BRAILLE PATTERN DOTS-45678;So;0;L;;;;;N;;;;;
+28F9;BRAILLE PATTERN DOTS-145678;So;0;L;;;;;N;;;;;
+28FA;BRAILLE PATTERN DOTS-245678;So;0;L;;;;;N;;;;;
+28FB;BRAILLE PATTERN DOTS-1245678;So;0;L;;;;;N;;;;;
+28FC;BRAILLE PATTERN DOTS-345678;So;0;L;;;;;N;;;;;
+28FD;BRAILLE PATTERN DOTS-1345678;So;0;L;;;;;N;;;;;
+28FE;BRAILLE PATTERN DOTS-2345678;So;0;L;;;;;N;;;;;
+28FF;BRAILLE PATTERN DOTS-12345678;So;0;L;;;;;N;;;;;
+2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;
+2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;
+2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;;
+2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;;
+2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;;
+2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;;
+2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;;
+293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;;
+293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
+2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;;
+2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;;
+297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;;
+2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;;
+2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;;
+2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;;
+2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;;
+2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;;
+2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;;
+2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;;
+2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;;
+298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;;
+298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;;
+298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;;
+298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;;
+298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;;
+298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;;
+2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;;
+2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;;
+2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;;
+2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;
+2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;
+2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;;
+299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;;
+299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;;
+299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;;
+299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;;
+299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;;
+29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;;
+29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;;
+29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;;
+29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
+29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;;
+29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;;
+29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;;
+29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;;
+29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;;
+29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;;
+29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;;
+29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;;
+29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;;
+29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;;
+29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;;
+29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;;
+29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;;
+29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;;
+29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;;
+29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;;
+29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;;
+29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;;
+29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;;
+29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;;
+29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;;
+29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;;
+29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+29FE;TINY;Sm;0;ON;;;;;N;;;;;
+29FF;MINY;Sm;0;ON;;;;;N;;;;;
+2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;;
+2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;;
+2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON;<compat> 222B 222B 222B 222B;;;;Y;;;;;
+2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;;
+2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;;
+2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;;
+2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;;
+2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;;
+2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;;
+2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;;
+2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;;
+2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;;
+2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1D;JOIN;Sm;0;ON;;;;;N;;;;;
+2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;;
+2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;;
+2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;;
+2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;;
+2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;;
+2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;;
+2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;;
+2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;;
+2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;;
+2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;;
+2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;;
+2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;;
+2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;;
+2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;;
+2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A74;DOUBLE COLON EQUAL;Sm;0;ON;<compat> 003A 003A 003D;;;;Y;;;;;
+2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D;;;;N;;;;;
+2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D 003D;;;;N;;;;;
+2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;;
+2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;;
+2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;;
+2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;;
+2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;;
+2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;;
+2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;;
+2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;not independent;;;
+2ADD;NONFORKING;Sm;0;ON;;;;;N;;independent;;;
+2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;;
+2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;;
+2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;;
+2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;;
+2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;;
+2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;;
+2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;;
+2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+2B00;NORTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B01;NORTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B02;SOUTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B03;SOUTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B04;LEFT RIGHT WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B05;LEFTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B06;UPWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B07;DOWNWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B08;NORTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B09;NORTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0A;SOUTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0B;SOUTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0C;LEFT RIGHT BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0D;UP DOWN BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0E;RIGHTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2B0F;RIGHTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2B10;LEFTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
+2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
+2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;;
+2B1B;BLACK LARGE SQUARE;So;0;ON;;;;;N;;;;;
+2B1C;WHITE LARGE SQUARE;So;0;ON;;;;;N;;;;;
+2B1D;BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;;
+2B1E;WHITE VERY SMALL SQUARE;So;0;ON;;;;;N;;;;;
+2B1F;BLACK PENTAGON;So;0;ON;;;;;N;;;;;
+2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;;
+2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;;
+2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;;
+2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;;
+2B24;BLACK LARGE CIRCLE;So;0;ON;;;;;N;;;;;
+2B25;BLACK MEDIUM DIAMOND;So;0;ON;;;;;N;;;;;
+2B26;WHITE MEDIUM DIAMOND;So;0;ON;;;;;N;;;;;
+2B27;BLACK MEDIUM LOZENGE;So;0;ON;;;;;N;;;;;
+2B28;WHITE MEDIUM LOZENGE;So;0;ON;;;;;N;;;;;
+2B29;BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+2B2A;BLACK SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+2B2B;WHITE SMALL LOZENGE;So;0;ON;;;;;N;;;;;
+2B2C;BLACK HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;;
+2B2D;WHITE HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;;
+2B2E;BLACK VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;;
+2B2F;WHITE VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;;
+2B30;LEFT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+2B31;THREE LEFTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;
+2B32;LEFT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+2B33;LONG LEFTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;
+2B34;LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2B35;LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2B36;LEFTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2B37;LEFTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2B38;LEFTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;
+2B39;LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2B3A;LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2B3B;LEFTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;
+2B3C;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2B3D;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2B3E;LEFTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
+2B3F;WAVE ARROW POINTING DIRECTLY LEFT;Sm;0;ON;;;;;N;;;;;
+2B40;EQUALS SIGN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2B41;REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2B42;LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2B43;RIGHTWARDS ARROW THROUGH GREATER-THAN;Sm;0;ON;;;;;N;;;;;
+2B44;RIGHTWARDS ARROW THROUGH SUPERSET;Sm;0;ON;;;;;N;;;;;
+2B45;LEFTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;;
+2B46;RIGHTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;;
+2B47;REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2B48;RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2B49;TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2B4A;LEFTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2B4B;LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2B4C;RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2B50;WHITE MEDIUM STAR;So;0;ON;;;;;N;;;;;
+2B51;BLACK SMALL STAR;So;0;ON;;;;;N;;;;;
+2B52;WHITE SMALL STAR;So;0;ON;;;;;N;;;;;
+2B53;BLACK RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;;
+2B54;WHITE RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;;
+2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
+2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
+2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
+2C03;GLAGOLITIC CAPITAL LETTER GLAGOLI;Lu;0;L;;;;;N;;;;2C33;
+2C04;GLAGOLITIC CAPITAL LETTER DOBRO;Lu;0;L;;;;;N;;;;2C34;
+2C05;GLAGOLITIC CAPITAL LETTER YESTU;Lu;0;L;;;;;N;;;;2C35;
+2C06;GLAGOLITIC CAPITAL LETTER ZHIVETE;Lu;0;L;;;;;N;;;;2C36;
+2C07;GLAGOLITIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;2C37;
+2C08;GLAGOLITIC CAPITAL LETTER ZEMLJA;Lu;0;L;;;;;N;;;;2C38;
+2C09;GLAGOLITIC CAPITAL LETTER IZHE;Lu;0;L;;;;;N;;;;2C39;
+2C0A;GLAGOLITIC CAPITAL LETTER INITIAL IZHE;Lu;0;L;;;;;N;;;;2C3A;
+2C0B;GLAGOLITIC CAPITAL LETTER I;Lu;0;L;;;;;N;;;;2C3B;
+2C0C;GLAGOLITIC CAPITAL LETTER DJERVI;Lu;0;L;;;;;N;;;;2C3C;
+2C0D;GLAGOLITIC CAPITAL LETTER KAKO;Lu;0;L;;;;;N;;;;2C3D;
+2C0E;GLAGOLITIC CAPITAL LETTER LJUDIJE;Lu;0;L;;;;;N;;;;2C3E;
+2C0F;GLAGOLITIC CAPITAL LETTER MYSLITE;Lu;0;L;;;;;N;;;;2C3F;
+2C10;GLAGOLITIC CAPITAL LETTER NASHI;Lu;0;L;;;;;N;;;;2C40;
+2C11;GLAGOLITIC CAPITAL LETTER ONU;Lu;0;L;;;;;N;;;;2C41;
+2C12;GLAGOLITIC CAPITAL LETTER POKOJI;Lu;0;L;;;;;N;;;;2C42;
+2C13;GLAGOLITIC CAPITAL LETTER RITSI;Lu;0;L;;;;;N;;;;2C43;
+2C14;GLAGOLITIC CAPITAL LETTER SLOVO;Lu;0;L;;;;;N;;;;2C44;
+2C15;GLAGOLITIC CAPITAL LETTER TVRIDO;Lu;0;L;;;;;N;;;;2C45;
+2C16;GLAGOLITIC CAPITAL LETTER UKU;Lu;0;L;;;;;N;;;;2C46;
+2C17;GLAGOLITIC CAPITAL LETTER FRITU;Lu;0;L;;;;;N;;;;2C47;
+2C18;GLAGOLITIC CAPITAL LETTER HERU;Lu;0;L;;;;;N;;;;2C48;
+2C19;GLAGOLITIC CAPITAL LETTER OTU;Lu;0;L;;;;;N;;;;2C49;
+2C1A;GLAGOLITIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;2C4A;
+2C1B;GLAGOLITIC CAPITAL LETTER SHTA;Lu;0;L;;;;;N;;;;2C4B;
+2C1C;GLAGOLITIC CAPITAL LETTER TSI;Lu;0;L;;;;;N;;;;2C4C;
+2C1D;GLAGOLITIC CAPITAL LETTER CHRIVI;Lu;0;L;;;;;N;;;;2C4D;
+2C1E;GLAGOLITIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;2C4E;
+2C1F;GLAGOLITIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;;;;2C4F;
+2C20;GLAGOLITIC CAPITAL LETTER YERI;Lu;0;L;;;;;N;;;;2C50;
+2C21;GLAGOLITIC CAPITAL LETTER YATI;Lu;0;L;;;;;N;;;;2C51;
+2C22;GLAGOLITIC CAPITAL LETTER SPIDERY HA;Lu;0;L;;;;;N;;;;2C52;
+2C23;GLAGOLITIC CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;2C53;
+2C24;GLAGOLITIC CAPITAL LETTER SMALL YUS;Lu;0;L;;;;;N;;;;2C54;
+2C25;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL;Lu;0;L;;;;;N;;;;2C55;
+2C26;GLAGOLITIC CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;2C56;
+2C27;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS;Lu;0;L;;;;;N;;;;2C57;
+2C28;GLAGOLITIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;2C58;
+2C29;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS;Lu;0;L;;;;;N;;;;2C59;
+2C2A;GLAGOLITIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;2C5A;
+2C2B;GLAGOLITIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;2C5B;
+2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C;
+2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D;
+2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E;
+2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00
+2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01
+2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02
+2C33;GLAGOLITIC SMALL LETTER GLAGOLI;Ll;0;L;;;;;N;;;2C03;;2C03
+2C34;GLAGOLITIC SMALL LETTER DOBRO;Ll;0;L;;;;;N;;;2C04;;2C04
+2C35;GLAGOLITIC SMALL LETTER YESTU;Ll;0;L;;;;;N;;;2C05;;2C05
+2C36;GLAGOLITIC SMALL LETTER ZHIVETE;Ll;0;L;;;;;N;;;2C06;;2C06
+2C37;GLAGOLITIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;2C07;;2C07
+2C38;GLAGOLITIC SMALL LETTER ZEMLJA;Ll;0;L;;;;;N;;;2C08;;2C08
+2C39;GLAGOLITIC SMALL LETTER IZHE;Ll;0;L;;;;;N;;;2C09;;2C09
+2C3A;GLAGOLITIC SMALL LETTER INITIAL IZHE;Ll;0;L;;;;;N;;;2C0A;;2C0A
+2C3B;GLAGOLITIC SMALL LETTER I;Ll;0;L;;;;;N;;;2C0B;;2C0B
+2C3C;GLAGOLITIC SMALL LETTER DJERVI;Ll;0;L;;;;;N;;;2C0C;;2C0C
+2C3D;GLAGOLITIC SMALL LETTER KAKO;Ll;0;L;;;;;N;;;2C0D;;2C0D
+2C3E;GLAGOLITIC SMALL LETTER LJUDIJE;Ll;0;L;;;;;N;;;2C0E;;2C0E
+2C3F;GLAGOLITIC SMALL LETTER MYSLITE;Ll;0;L;;;;;N;;;2C0F;;2C0F
+2C40;GLAGOLITIC SMALL LETTER NASHI;Ll;0;L;;;;;N;;;2C10;;2C10
+2C41;GLAGOLITIC SMALL LETTER ONU;Ll;0;L;;;;;N;;;2C11;;2C11
+2C42;GLAGOLITIC SMALL LETTER POKOJI;Ll;0;L;;;;;N;;;2C12;;2C12
+2C43;GLAGOLITIC SMALL LETTER RITSI;Ll;0;L;;;;;N;;;2C13;;2C13
+2C44;GLAGOLITIC SMALL LETTER SLOVO;Ll;0;L;;;;;N;;;2C14;;2C14
+2C45;GLAGOLITIC SMALL LETTER TVRIDO;Ll;0;L;;;;;N;;;2C15;;2C15
+2C46;GLAGOLITIC SMALL LETTER UKU;Ll;0;L;;;;;N;;;2C16;;2C16
+2C47;GLAGOLITIC SMALL LETTER FRITU;Ll;0;L;;;;;N;;;2C17;;2C17
+2C48;GLAGOLITIC SMALL LETTER HERU;Ll;0;L;;;;;N;;;2C18;;2C18
+2C49;GLAGOLITIC SMALL LETTER OTU;Ll;0;L;;;;;N;;;2C19;;2C19
+2C4A;GLAGOLITIC SMALL LETTER PE;Ll;0;L;;;;;N;;;2C1A;;2C1A
+2C4B;GLAGOLITIC SMALL LETTER SHTA;Ll;0;L;;;;;N;;;2C1B;;2C1B
+2C4C;GLAGOLITIC SMALL LETTER TSI;Ll;0;L;;;;;N;;;2C1C;;2C1C
+2C4D;GLAGOLITIC SMALL LETTER CHRIVI;Ll;0;L;;;;;N;;;2C1D;;2C1D
+2C4E;GLAGOLITIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;2C1E;;2C1E
+2C4F;GLAGOLITIC SMALL LETTER YERU;Ll;0;L;;;;;N;;;2C1F;;2C1F
+2C50;GLAGOLITIC SMALL LETTER YERI;Ll;0;L;;;;;N;;;2C20;;2C20
+2C51;GLAGOLITIC SMALL LETTER YATI;Ll;0;L;;;;;N;;;2C21;;2C21
+2C52;GLAGOLITIC SMALL LETTER SPIDERY HA;Ll;0;L;;;;;N;;;2C22;;2C22
+2C53;GLAGOLITIC SMALL LETTER YU;Ll;0;L;;;;;N;;;2C23;;2C23
+2C54;GLAGOLITIC SMALL LETTER SMALL YUS;Ll;0;L;;;;;N;;;2C24;;2C24
+2C55;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL;Ll;0;L;;;;;N;;;2C25;;2C25
+2C56;GLAGOLITIC SMALL LETTER YO;Ll;0;L;;;;;N;;;2C26;;2C26
+2C57;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS;Ll;0;L;;;;;N;;;2C27;;2C27
+2C58;GLAGOLITIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;2C28;;2C28
+2C59;GLAGOLITIC SMALL LETTER IOTATED BIG YUS;Ll;0;L;;;;;N;;;2C29;;2C29
+2C5A;GLAGOLITIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;2C2A;;2C2A
+2C5B;GLAGOLITIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;2C2B;;2C2B
+2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C
+2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D
+2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E
+2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61;
+2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60
+2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B;
+2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D;
+2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D;
+2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A
+2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E
+2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68;
+2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67
+2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A;
+2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69
+2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C;
+2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B
+2C6D;LATIN CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;0251;
+2C6E;LATIN CAPITAL LETTER M WITH HOOK;Lu;0;L;;;;;N;;;;0271;
+2C6F;LATIN CAPITAL LETTER TURNED A;Lu;0;L;;;;;N;;;;0250;
+2C71;LATIN SMALL LETTER V WITH RIGHT HOOK;Ll;0;L;;;;;N;;;;;
+2C72;LATIN CAPITAL LETTER W WITH HOOK;Lu;0;L;;;;;N;;;;2C73;
+2C73;LATIN SMALL LETTER W WITH HOOK;Ll;0;L;;;;;N;;;2C72;;2C72
+2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;;
+2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76;
+2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75
+2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;;
+2C78;LATIN SMALL LETTER E WITH NOTCH;Ll;0;L;;;;;N;;;;;
+2C79;LATIN SMALL LETTER TURNED R WITH TAIL;Ll;0;L;;;;;N;;;;;
+2C7A;LATIN SMALL LETTER O WITH LOW RING INSIDE;Ll;0;L;;;;;N;;;;;
+2C7B;LATIN LETTER SMALL CAPITAL TURNED E;Ll;0;L;;;;;N;;;;;
+2C7C;LATIN SUBSCRIPT SMALL LETTER J;Ll;0;L;<sub> 006A;;;;N;;;;;
+2C7D;MODIFIER LETTER CAPITAL V;Lm;0;L;<super> 0056;;;;N;;;;;
+2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81;
+2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80
+2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83;
+2C83;COPTIC SMALL LETTER VIDA;Ll;0;L;;;;;N;;;2C82;;2C82
+2C84;COPTIC CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;2C85;
+2C85;COPTIC SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;2C84;;2C84
+2C86;COPTIC CAPITAL LETTER DALDA;Lu;0;L;;;;;N;;;;2C87;
+2C87;COPTIC SMALL LETTER DALDA;Ll;0;L;;;;;N;;;2C86;;2C86
+2C88;COPTIC CAPITAL LETTER EIE;Lu;0;L;;;;;N;;;;2C89;
+2C89;COPTIC SMALL LETTER EIE;Ll;0;L;;;;;N;;;2C88;;2C88
+2C8A;COPTIC CAPITAL LETTER SOU;Lu;0;L;;;;;N;;;;2C8B;
+2C8B;COPTIC SMALL LETTER SOU;Ll;0;L;;;;;N;;;2C8A;;2C8A
+2C8C;COPTIC CAPITAL LETTER ZATA;Lu;0;L;;;;;N;;;;2C8D;
+2C8D;COPTIC SMALL LETTER ZATA;Ll;0;L;;;;;N;;;2C8C;;2C8C
+2C8E;COPTIC CAPITAL LETTER HATE;Lu;0;L;;;;;N;;;;2C8F;
+2C8F;COPTIC SMALL LETTER HATE;Ll;0;L;;;;;N;;;2C8E;;2C8E
+2C90;COPTIC CAPITAL LETTER THETHE;Lu;0;L;;;;;N;;;;2C91;
+2C91;COPTIC SMALL LETTER THETHE;Ll;0;L;;;;;N;;;2C90;;2C90
+2C92;COPTIC CAPITAL LETTER IAUDA;Lu;0;L;;;;;N;;;;2C93;
+2C93;COPTIC SMALL LETTER IAUDA;Ll;0;L;;;;;N;;;2C92;;2C92
+2C94;COPTIC CAPITAL LETTER KAPA;Lu;0;L;;;;;N;;;;2C95;
+2C95;COPTIC SMALL LETTER KAPA;Ll;0;L;;;;;N;;;2C94;;2C94
+2C96;COPTIC CAPITAL LETTER LAULA;Lu;0;L;;;;;N;;;;2C97;
+2C97;COPTIC SMALL LETTER LAULA;Ll;0;L;;;;;N;;;2C96;;2C96
+2C98;COPTIC CAPITAL LETTER MI;Lu;0;L;;;;;N;;;;2C99;
+2C99;COPTIC SMALL LETTER MI;Ll;0;L;;;;;N;;;2C98;;2C98
+2C9A;COPTIC CAPITAL LETTER NI;Lu;0;L;;;;;N;;;;2C9B;
+2C9B;COPTIC SMALL LETTER NI;Ll;0;L;;;;;N;;;2C9A;;2C9A
+2C9C;COPTIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;2C9D;
+2C9D;COPTIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;2C9C;;2C9C
+2C9E;COPTIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;2C9F;
+2C9F;COPTIC SMALL LETTER O;Ll;0;L;;;;;N;;;2C9E;;2C9E
+2CA0;COPTIC CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;2CA1;
+2CA1;COPTIC SMALL LETTER PI;Ll;0;L;;;;;N;;;2CA0;;2CA0
+2CA2;COPTIC CAPITAL LETTER RO;Lu;0;L;;;;;N;;;;2CA3;
+2CA3;COPTIC SMALL LETTER RO;Ll;0;L;;;;;N;;;2CA2;;2CA2
+2CA4;COPTIC CAPITAL LETTER SIMA;Lu;0;L;;;;;N;;;;2CA5;
+2CA5;COPTIC SMALL LETTER SIMA;Ll;0;L;;;;;N;;;2CA4;;2CA4
+2CA6;COPTIC CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;2CA7;
+2CA7;COPTIC SMALL LETTER TAU;Ll;0;L;;;;;N;;;2CA6;;2CA6
+2CA8;COPTIC CAPITAL LETTER UA;Lu;0;L;;;;;N;;;;2CA9;
+2CA9;COPTIC SMALL LETTER UA;Ll;0;L;;;;;N;;;2CA8;;2CA8
+2CAA;COPTIC CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;2CAB;
+2CAB;COPTIC SMALL LETTER FI;Ll;0;L;;;;;N;;;2CAA;;2CAA
+2CAC;COPTIC CAPITAL LETTER KHI;Lu;0;L;;;;;N;;;;2CAD;
+2CAD;COPTIC SMALL LETTER KHI;Ll;0;L;;;;;N;;;2CAC;;2CAC
+2CAE;COPTIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;2CAF;
+2CAF;COPTIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;2CAE;;2CAE
+2CB0;COPTIC CAPITAL LETTER OOU;Lu;0;L;;;;;N;;;;2CB1;
+2CB1;COPTIC SMALL LETTER OOU;Ll;0;L;;;;;N;;;2CB0;;2CB0
+2CB2;COPTIC CAPITAL LETTER DIALECT-P ALEF;Lu;0;L;;;;;N;;;;2CB3;
+2CB3;COPTIC SMALL LETTER DIALECT-P ALEF;Ll;0;L;;;;;N;;;2CB2;;2CB2
+2CB4;COPTIC CAPITAL LETTER OLD COPTIC AIN;Lu;0;L;;;;;N;;;;2CB5;
+2CB5;COPTIC SMALL LETTER OLD COPTIC AIN;Ll;0;L;;;;;N;;;2CB4;;2CB4
+2CB6;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE;Lu;0;L;;;;;N;;;;2CB7;
+2CB7;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE;Ll;0;L;;;;;N;;;2CB6;;2CB6
+2CB8;COPTIC CAPITAL LETTER DIALECT-P KAPA;Lu;0;L;;;;;N;;;;2CB9;
+2CB9;COPTIC SMALL LETTER DIALECT-P KAPA;Ll;0;L;;;;;N;;;2CB8;;2CB8
+2CBA;COPTIC CAPITAL LETTER DIALECT-P NI;Lu;0;L;;;;;N;;;;2CBB;
+2CBB;COPTIC SMALL LETTER DIALECT-P NI;Ll;0;L;;;;;N;;;2CBA;;2CBA
+2CBC;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI;Lu;0;L;;;;;N;;;;2CBD;
+2CBD;COPTIC SMALL LETTER CRYPTOGRAMMIC NI;Ll;0;L;;;;;N;;;2CBC;;2CBC
+2CBE;COPTIC CAPITAL LETTER OLD COPTIC OOU;Lu;0;L;;;;;N;;;;2CBF;
+2CBF;COPTIC SMALL LETTER OLD COPTIC OOU;Ll;0;L;;;;;N;;;2CBE;;2CBE
+2CC0;COPTIC CAPITAL LETTER SAMPI;Lu;0;L;;;;;N;;;;2CC1;
+2CC1;COPTIC SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;2CC0;;2CC0
+2CC2;COPTIC CAPITAL LETTER CROSSED SHEI;Lu;0;L;;;;;N;;;;2CC3;
+2CC3;COPTIC SMALL LETTER CROSSED SHEI;Ll;0;L;;;;;N;;;2CC2;;2CC2
+2CC4;COPTIC CAPITAL LETTER OLD COPTIC SHEI;Lu;0;L;;;;;N;;;;2CC5;
+2CC5;COPTIC SMALL LETTER OLD COPTIC SHEI;Ll;0;L;;;;;N;;;2CC4;;2CC4
+2CC6;COPTIC CAPITAL LETTER OLD COPTIC ESH;Lu;0;L;;;;;N;;;;2CC7;
+2CC7;COPTIC SMALL LETTER OLD COPTIC ESH;Ll;0;L;;;;;N;;;2CC6;;2CC6
+2CC8;COPTIC CAPITAL LETTER AKHMIMIC KHEI;Lu;0;L;;;;;N;;;;2CC9;
+2CC9;COPTIC SMALL LETTER AKHMIMIC KHEI;Ll;0;L;;;;;N;;;2CC8;;2CC8
+2CCA;COPTIC CAPITAL LETTER DIALECT-P HORI;Lu;0;L;;;;;N;;;;2CCB;
+2CCB;COPTIC SMALL LETTER DIALECT-P HORI;Ll;0;L;;;;;N;;;2CCA;;2CCA
+2CCC;COPTIC CAPITAL LETTER OLD COPTIC HORI;Lu;0;L;;;;;N;;;;2CCD;
+2CCD;COPTIC SMALL LETTER OLD COPTIC HORI;Ll;0;L;;;;;N;;;2CCC;;2CCC
+2CCE;COPTIC CAPITAL LETTER OLD COPTIC HA;Lu;0;L;;;;;N;;;;2CCF;
+2CCF;COPTIC SMALL LETTER OLD COPTIC HA;Ll;0;L;;;;;N;;;2CCE;;2CCE
+2CD0;COPTIC CAPITAL LETTER L-SHAPED HA;Lu;0;L;;;;;N;;;;2CD1;
+2CD1;COPTIC SMALL LETTER L-SHAPED HA;Ll;0;L;;;;;N;;;2CD0;;2CD0
+2CD2;COPTIC CAPITAL LETTER OLD COPTIC HEI;Lu;0;L;;;;;N;;;;2CD3;
+2CD3;COPTIC SMALL LETTER OLD COPTIC HEI;Ll;0;L;;;;;N;;;2CD2;;2CD2
+2CD4;COPTIC CAPITAL LETTER OLD COPTIC HAT;Lu;0;L;;;;;N;;;;2CD5;
+2CD5;COPTIC SMALL LETTER OLD COPTIC HAT;Ll;0;L;;;;;N;;;2CD4;;2CD4
+2CD6;COPTIC CAPITAL LETTER OLD COPTIC GANGIA;Lu;0;L;;;;;N;;;;2CD7;
+2CD7;COPTIC SMALL LETTER OLD COPTIC GANGIA;Ll;0;L;;;;;N;;;2CD6;;2CD6
+2CD8;COPTIC CAPITAL LETTER OLD COPTIC DJA;Lu;0;L;;;;;N;;;;2CD9;
+2CD9;COPTIC SMALL LETTER OLD COPTIC DJA;Ll;0;L;;;;;N;;;2CD8;;2CD8
+2CDA;COPTIC CAPITAL LETTER OLD COPTIC SHIMA;Lu;0;L;;;;;N;;;;2CDB;
+2CDB;COPTIC SMALL LETTER OLD COPTIC SHIMA;Ll;0;L;;;;;N;;;2CDA;;2CDA
+2CDC;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA;Lu;0;L;;;;;N;;;;2CDD;
+2CDD;COPTIC SMALL LETTER OLD NUBIAN SHIMA;Ll;0;L;;;;;N;;;2CDC;;2CDC
+2CDE;COPTIC CAPITAL LETTER OLD NUBIAN NGI;Lu;0;L;;;;;N;;;;2CDF;
+2CDF;COPTIC SMALL LETTER OLD NUBIAN NGI;Ll;0;L;;;;;N;;;2CDE;;2CDE
+2CE0;COPTIC CAPITAL LETTER OLD NUBIAN NYI;Lu;0;L;;;;;N;;;;2CE1;
+2CE1;COPTIC SMALL LETTER OLD NUBIAN NYI;Ll;0;L;;;;;N;;;2CE0;;2CE0
+2CE2;COPTIC CAPITAL LETTER OLD NUBIAN WAU;Lu;0;L;;;;;N;;;;2CE3;
+2CE3;COPTIC SMALL LETTER OLD NUBIAN WAU;Ll;0;L;;;;;N;;;2CE2;;2CE2
+2CE4;COPTIC SYMBOL KAI;Ll;0;L;;;;;N;;;;;
+2CE5;COPTIC SYMBOL MI RO;So;0;ON;;;;;N;;;;;
+2CE6;COPTIC SYMBOL PI RO;So;0;ON;;;;;N;;;;;
+2CE7;COPTIC SYMBOL STAUROS;So;0;ON;;;;;N;;;;;
+2CE8;COPTIC SYMBOL TAU RO;So;0;ON;;;;;N;;;;;
+2CE9;COPTIC SYMBOL KHI RO;So;0;ON;;;;;N;;;;;
+2CEA;COPTIC SYMBOL SHIMA SIMA;So;0;ON;;;;;N;;;;;
+2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2CFC;COPTIC OLD NUBIAN VERSE DIVIDER;Po;0;ON;;;;;N;;;;;
+2CFD;COPTIC FRACTION ONE HALF;No;0;ON;;;;1/2;N;;;;;
+2CFE;COPTIC FULL STOP;Po;0;ON;;;;;N;;;;;
+2CFF;COPTIC MORPHOLOGICAL DIVIDER;Po;0;ON;;;;;N;;;;;
+2D00;GEORGIAN SMALL LETTER AN;Ll;0;L;;;;;N;;Khutsuri;10A0;;10A0
+2D01;GEORGIAN SMALL LETTER BAN;Ll;0;L;;;;;N;;Khutsuri;10A1;;10A1
+2D02;GEORGIAN SMALL LETTER GAN;Ll;0;L;;;;;N;;Khutsuri;10A2;;10A2
+2D03;GEORGIAN SMALL LETTER DON;Ll;0;L;;;;;N;;Khutsuri;10A3;;10A3
+2D04;GEORGIAN SMALL LETTER EN;Ll;0;L;;;;;N;;Khutsuri;10A4;;10A4
+2D05;GEORGIAN SMALL LETTER VIN;Ll;0;L;;;;;N;;Khutsuri;10A5;;10A5
+2D06;GEORGIAN SMALL LETTER ZEN;Ll;0;L;;;;;N;;Khutsuri;10A6;;10A6
+2D07;GEORGIAN SMALL LETTER TAN;Ll;0;L;;;;;N;;Khutsuri;10A7;;10A7
+2D08;GEORGIAN SMALL LETTER IN;Ll;0;L;;;;;N;;Khutsuri;10A8;;10A8
+2D09;GEORGIAN SMALL LETTER KAN;Ll;0;L;;;;;N;;Khutsuri;10A9;;10A9
+2D0A;GEORGIAN SMALL LETTER LAS;Ll;0;L;;;;;N;;Khutsuri;10AA;;10AA
+2D0B;GEORGIAN SMALL LETTER MAN;Ll;0;L;;;;;N;;Khutsuri;10AB;;10AB
+2D0C;GEORGIAN SMALL LETTER NAR;Ll;0;L;;;;;N;;Khutsuri;10AC;;10AC
+2D0D;GEORGIAN SMALL LETTER ON;Ll;0;L;;;;;N;;Khutsuri;10AD;;10AD
+2D0E;GEORGIAN SMALL LETTER PAR;Ll;0;L;;;;;N;;Khutsuri;10AE;;10AE
+2D0F;GEORGIAN SMALL LETTER ZHAR;Ll;0;L;;;;;N;;Khutsuri;10AF;;10AF
+2D10;GEORGIAN SMALL LETTER RAE;Ll;0;L;;;;;N;;Khutsuri;10B0;;10B0
+2D11;GEORGIAN SMALL LETTER SAN;Ll;0;L;;;;;N;;Khutsuri;10B1;;10B1
+2D12;GEORGIAN SMALL LETTER TAR;Ll;0;L;;;;;N;;Khutsuri;10B2;;10B2
+2D13;GEORGIAN SMALL LETTER UN;Ll;0;L;;;;;N;;Khutsuri;10B3;;10B3
+2D14;GEORGIAN SMALL LETTER PHAR;Ll;0;L;;;;;N;;Khutsuri;10B4;;10B4
+2D15;GEORGIAN SMALL LETTER KHAR;Ll;0;L;;;;;N;;Khutsuri;10B5;;10B5
+2D16;GEORGIAN SMALL LETTER GHAN;Ll;0;L;;;;;N;;Khutsuri;10B6;;10B6
+2D17;GEORGIAN SMALL LETTER QAR;Ll;0;L;;;;;N;;Khutsuri;10B7;;10B7
+2D18;GEORGIAN SMALL LETTER SHIN;Ll;0;L;;;;;N;;Khutsuri;10B8;;10B8
+2D19;GEORGIAN SMALL LETTER CHIN;Ll;0;L;;;;;N;;Khutsuri;10B9;;10B9
+2D1A;GEORGIAN SMALL LETTER CAN;Ll;0;L;;;;;N;;Khutsuri;10BA;;10BA
+2D1B;GEORGIAN SMALL LETTER JIL;Ll;0;L;;;;;N;;Khutsuri;10BB;;10BB
+2D1C;GEORGIAN SMALL LETTER CIL;Ll;0;L;;;;;N;;Khutsuri;10BC;;10BC
+2D1D;GEORGIAN SMALL LETTER CHAR;Ll;0;L;;;;;N;;Khutsuri;10BD;;10BD
+2D1E;GEORGIAN SMALL LETTER XAN;Ll;0;L;;;;;N;;Khutsuri;10BE;;10BE
+2D1F;GEORGIAN SMALL LETTER JHAN;Ll;0;L;;;;;N;;Khutsuri;10BF;;10BF
+2D20;GEORGIAN SMALL LETTER HAE;Ll;0;L;;;;;N;;Khutsuri;10C0;;10C0
+2D21;GEORGIAN SMALL LETTER HE;Ll;0;L;;;;;N;;Khutsuri;10C1;;10C1
+2D22;GEORGIAN SMALL LETTER HIE;Ll;0;L;;;;;N;;Khutsuri;10C2;;10C2
+2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;Khutsuri;10C3;;10C3
+2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;Khutsuri;10C4;;10C4
+2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;Khutsuri;10C5;;10C5
+2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;;
+2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;;
+2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;;
+2D33;TIFINAGH LETTER YAG;Lo;0;L;;;;;N;;;;;
+2D34;TIFINAGH LETTER YAGHH;Lo;0;L;;;;;N;;;;;
+2D35;TIFINAGH LETTER BERBER ACADEMY YAJ;Lo;0;L;;;;;N;;;;;
+2D36;TIFINAGH LETTER YAJ;Lo;0;L;;;;;N;;;;;
+2D37;TIFINAGH LETTER YAD;Lo;0;L;;;;;N;;;;;
+2D38;TIFINAGH LETTER YADH;Lo;0;L;;;;;N;;;;;
+2D39;TIFINAGH LETTER YADD;Lo;0;L;;;;;N;;;;;
+2D3A;TIFINAGH LETTER YADDH;Lo;0;L;;;;;N;;;;;
+2D3B;TIFINAGH LETTER YEY;Lo;0;L;;;;;N;;;;;
+2D3C;TIFINAGH LETTER YAF;Lo;0;L;;;;;N;;;;;
+2D3D;TIFINAGH LETTER YAK;Lo;0;L;;;;;N;;;;;
+2D3E;TIFINAGH LETTER TUAREG YAK;Lo;0;L;;;;;N;;;;;
+2D3F;TIFINAGH LETTER YAKHH;Lo;0;L;;;;;N;;;;;
+2D40;TIFINAGH LETTER YAH;Lo;0;L;;;;;N;;Tuareg yab;;;
+2D41;TIFINAGH LETTER BERBER ACADEMY YAH;Lo;0;L;;;;;N;;;;;
+2D42;TIFINAGH LETTER TUAREG YAH;Lo;0;L;;;;;N;;;;;
+2D43;TIFINAGH LETTER YAHH;Lo;0;L;;;;;N;;;;;
+2D44;TIFINAGH LETTER YAA;Lo;0;L;;;;;N;;;;;
+2D45;TIFINAGH LETTER YAKH;Lo;0;L;;;;;N;;;;;
+2D46;TIFINAGH LETTER TUAREG YAKH;Lo;0;L;;;;;N;;;;;
+2D47;TIFINAGH LETTER YAQ;Lo;0;L;;;;;N;;;;;
+2D48;TIFINAGH LETTER TUAREG YAQ;Lo;0;L;;;;;N;;;;;
+2D49;TIFINAGH LETTER YI;Lo;0;L;;;;;N;;;;;
+2D4A;TIFINAGH LETTER YAZH;Lo;0;L;;;;;N;;;;;
+2D4B;TIFINAGH LETTER AHAGGAR YAZH;Lo;0;L;;;;;N;;;;;
+2D4C;TIFINAGH LETTER TUAREG YAZH;Lo;0;L;;;;;N;;;;;
+2D4D;TIFINAGH LETTER YAL;Lo;0;L;;;;;N;;;;;
+2D4E;TIFINAGH LETTER YAM;Lo;0;L;;;;;N;;;;;
+2D4F;TIFINAGH LETTER YAN;Lo;0;L;;;;;N;;;;;
+2D50;TIFINAGH LETTER TUAREG YAGN;Lo;0;L;;;;;N;;;;;
+2D51;TIFINAGH LETTER TUAREG YANG;Lo;0;L;;;;;N;;;;;
+2D52;TIFINAGH LETTER YAP;Lo;0;L;;;;;N;;;;;
+2D53;TIFINAGH LETTER YU;Lo;0;L;;;;;N;;Tuareg yaw;;;
+2D54;TIFINAGH LETTER YAR;Lo;0;L;;;;;N;;;;;
+2D55;TIFINAGH LETTER YARR;Lo;0;L;;;;;N;;;;;
+2D56;TIFINAGH LETTER YAGH;Lo;0;L;;;;;N;;;;;
+2D57;TIFINAGH LETTER TUAREG YAGH;Lo;0;L;;;;;N;;;;;
+2D58;TIFINAGH LETTER AYER YAGH;Lo;0;L;;;;;N;;Adrar yaj;;;
+2D59;TIFINAGH LETTER YAS;Lo;0;L;;;;;N;;;;;
+2D5A;TIFINAGH LETTER YASS;Lo;0;L;;;;;N;;;;;
+2D5B;TIFINAGH LETTER YASH;Lo;0;L;;;;;N;;;;;
+2D5C;TIFINAGH LETTER YAT;Lo;0;L;;;;;N;;;;;
+2D5D;TIFINAGH LETTER YATH;Lo;0;L;;;;;N;;;;;
+2D5E;TIFINAGH LETTER YACH;Lo;0;L;;;;;N;;;;;
+2D5F;TIFINAGH LETTER YATT;Lo;0;L;;;;;N;;;;;
+2D60;TIFINAGH LETTER YAV;Lo;0;L;;;;;N;;;;;
+2D61;TIFINAGH LETTER YAW;Lo;0;L;;;;;N;;;;;
+2D62;TIFINAGH LETTER YAY;Lo;0;L;;;;;N;;;;;
+2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;;
+2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;harpoon yaz;;;
+2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;;
+2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;tamatart;;;
+2D80;ETHIOPIC SYLLABLE LOA;Lo;0;L;;;;;N;;;;;
+2D81;ETHIOPIC SYLLABLE MOA;Lo;0;L;;;;;N;;;;;
+2D82;ETHIOPIC SYLLABLE ROA;Lo;0;L;;;;;N;;;;;
+2D83;ETHIOPIC SYLLABLE SOA;Lo;0;L;;;;;N;;;;;
+2D84;ETHIOPIC SYLLABLE SHOA;Lo;0;L;;;;;N;;;;;
+2D85;ETHIOPIC SYLLABLE BOA;Lo;0;L;;;;;N;;;;;
+2D86;ETHIOPIC SYLLABLE TOA;Lo;0;L;;;;;N;;;;;
+2D87;ETHIOPIC SYLLABLE COA;Lo;0;L;;;;;N;;;;;
+2D88;ETHIOPIC SYLLABLE NOA;Lo;0;L;;;;;N;;;;;
+2D89;ETHIOPIC SYLLABLE NYOA;Lo;0;L;;;;;N;;;;;
+2D8A;ETHIOPIC SYLLABLE GLOTTAL OA;Lo;0;L;;;;;N;;;;;
+2D8B;ETHIOPIC SYLLABLE ZOA;Lo;0;L;;;;;N;;;;;
+2D8C;ETHIOPIC SYLLABLE DOA;Lo;0;L;;;;;N;;;;;
+2D8D;ETHIOPIC SYLLABLE DDOA;Lo;0;L;;;;;N;;;;;
+2D8E;ETHIOPIC SYLLABLE JOA;Lo;0;L;;;;;N;;;;;
+2D8F;ETHIOPIC SYLLABLE THOA;Lo;0;L;;;;;N;;;;;
+2D90;ETHIOPIC SYLLABLE CHOA;Lo;0;L;;;;;N;;;;;
+2D91;ETHIOPIC SYLLABLE PHOA;Lo;0;L;;;;;N;;;;;
+2D92;ETHIOPIC SYLLABLE POA;Lo;0;L;;;;;N;;;;;
+2D93;ETHIOPIC SYLLABLE GGWA;Lo;0;L;;;;;N;;;;;
+2D94;ETHIOPIC SYLLABLE GGWI;Lo;0;L;;;;;N;;;;;
+2D95;ETHIOPIC SYLLABLE GGWEE;Lo;0;L;;;;;N;;;;;
+2D96;ETHIOPIC SYLLABLE GGWE;Lo;0;L;;;;;N;;;;;
+2DA0;ETHIOPIC SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+2DA1;ETHIOPIC SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+2DA2;ETHIOPIC SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+2DA3;ETHIOPIC SYLLABLE SSAA;Lo;0;L;;;;;N;;;;;
+2DA4;ETHIOPIC SYLLABLE SSEE;Lo;0;L;;;;;N;;;;;
+2DA5;ETHIOPIC SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+2DA6;ETHIOPIC SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+2DA8;ETHIOPIC SYLLABLE CCA;Lo;0;L;;;;;N;;;;;
+2DA9;ETHIOPIC SYLLABLE CCU;Lo;0;L;;;;;N;;;;;
+2DAA;ETHIOPIC SYLLABLE CCI;Lo;0;L;;;;;N;;;;;
+2DAB;ETHIOPIC SYLLABLE CCAA;Lo;0;L;;;;;N;;;;;
+2DAC;ETHIOPIC SYLLABLE CCEE;Lo;0;L;;;;;N;;;;;
+2DAD;ETHIOPIC SYLLABLE CCE;Lo;0;L;;;;;N;;;;;
+2DAE;ETHIOPIC SYLLABLE CCO;Lo;0;L;;;;;N;;;;;
+2DB0;ETHIOPIC SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+2DB1;ETHIOPIC SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+2DB2;ETHIOPIC SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+2DB3;ETHIOPIC SYLLABLE ZZAA;Lo;0;L;;;;;N;;;;;
+2DB4;ETHIOPIC SYLLABLE ZZEE;Lo;0;L;;;;;N;;;;;
+2DB5;ETHIOPIC SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+2DB6;ETHIOPIC SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+2DB8;ETHIOPIC SYLLABLE CCHA;Lo;0;L;;;;;N;;;;;
+2DB9;ETHIOPIC SYLLABLE CCHU;Lo;0;L;;;;;N;;;;;
+2DBA;ETHIOPIC SYLLABLE CCHI;Lo;0;L;;;;;N;;;;;
+2DBB;ETHIOPIC SYLLABLE CCHAA;Lo;0;L;;;;;N;;;;;
+2DBC;ETHIOPIC SYLLABLE CCHEE;Lo;0;L;;;;;N;;;;;
+2DBD;ETHIOPIC SYLLABLE CCHE;Lo;0;L;;;;;N;;;;;
+2DBE;ETHIOPIC SYLLABLE CCHO;Lo;0;L;;;;;N;;;;;
+2DC0;ETHIOPIC SYLLABLE QYA;Lo;0;L;;;;;N;;;;;
+2DC1;ETHIOPIC SYLLABLE QYU;Lo;0;L;;;;;N;;;;;
+2DC2;ETHIOPIC SYLLABLE QYI;Lo;0;L;;;;;N;;;;;
+2DC3;ETHIOPIC SYLLABLE QYAA;Lo;0;L;;;;;N;;;;;
+2DC4;ETHIOPIC SYLLABLE QYEE;Lo;0;L;;;;;N;;;;;
+2DC5;ETHIOPIC SYLLABLE QYE;Lo;0;L;;;;;N;;;;;
+2DC6;ETHIOPIC SYLLABLE QYO;Lo;0;L;;;;;N;;;;;
+2DC8;ETHIOPIC SYLLABLE KYA;Lo;0;L;;;;;N;;;;;
+2DC9;ETHIOPIC SYLLABLE KYU;Lo;0;L;;;;;N;;;;;
+2DCA;ETHIOPIC SYLLABLE KYI;Lo;0;L;;;;;N;;;;;
+2DCB;ETHIOPIC SYLLABLE KYAA;Lo;0;L;;;;;N;;;;;
+2DCC;ETHIOPIC SYLLABLE KYEE;Lo;0;L;;;;;N;;;;;
+2DCD;ETHIOPIC SYLLABLE KYE;Lo;0;L;;;;;N;;;;;
+2DCE;ETHIOPIC SYLLABLE KYO;Lo;0;L;;;;;N;;;;;
+2DD0;ETHIOPIC SYLLABLE XYA;Lo;0;L;;;;;N;;;;;
+2DD1;ETHIOPIC SYLLABLE XYU;Lo;0;L;;;;;N;;;;;
+2DD2;ETHIOPIC SYLLABLE XYI;Lo;0;L;;;;;N;;;;;
+2DD3;ETHIOPIC SYLLABLE XYAA;Lo;0;L;;;;;N;;;;;
+2DD4;ETHIOPIC SYLLABLE XYEE;Lo;0;L;;;;;N;;;;;
+2DD5;ETHIOPIC SYLLABLE XYE;Lo;0;L;;;;;N;;;;;
+2DD6;ETHIOPIC SYLLABLE XYO;Lo;0;L;;;;;N;;;;;
+2DD8;ETHIOPIC SYLLABLE GYA;Lo;0;L;;;;;N;;;;;
+2DD9;ETHIOPIC SYLLABLE GYU;Lo;0;L;;;;;N;;;;;
+2DDA;ETHIOPIC SYLLABLE GYI;Lo;0;L;;;;;N;;;;;
+2DDB;ETHIOPIC SYLLABLE GYAA;Lo;0;L;;;;;N;;;;;
+2DDC;ETHIOPIC SYLLABLE GYEE;Lo;0;L;;;;;N;;;;;
+2DDD;ETHIOPIC SYLLABLE GYE;Lo;0;L;;;;;N;;;;;
+2DDE;ETHIOPIC SYLLABLE GYO;Lo;0;L;;;;;N;;;;;
+2DE0;COMBINING CYRILLIC LETTER BE;Mn;230;NSM;;;;;N;;;;;
+2DE1;COMBINING CYRILLIC LETTER VE;Mn;230;NSM;;;;;N;;;;;
+2DE2;COMBINING CYRILLIC LETTER GHE;Mn;230;NSM;;;;;N;;;;;
+2DE3;COMBINING CYRILLIC LETTER DE;Mn;230;NSM;;;;;N;;;;;
+2DE4;COMBINING CYRILLIC LETTER ZHE;Mn;230;NSM;;;;;N;;;;;
+2DE5;COMBINING CYRILLIC LETTER ZE;Mn;230;NSM;;;;;N;;;;;
+2DE6;COMBINING CYRILLIC LETTER KA;Mn;230;NSM;;;;;N;;;;;
+2DE7;COMBINING CYRILLIC LETTER EL;Mn;230;NSM;;;;;N;;;;;
+2DE8;COMBINING CYRILLIC LETTER EM;Mn;230;NSM;;;;;N;;;;;
+2DE9;COMBINING CYRILLIC LETTER EN;Mn;230;NSM;;;;;N;;;;;
+2DEA;COMBINING CYRILLIC LETTER O;Mn;230;NSM;;;;;N;;;;;
+2DEB;COMBINING CYRILLIC LETTER PE;Mn;230;NSM;;;;;N;;;;;
+2DEC;COMBINING CYRILLIC LETTER ER;Mn;230;NSM;;;;;N;;;;;
+2DED;COMBINING CYRILLIC LETTER ES;Mn;230;NSM;;;;;N;;;;;
+2DEE;COMBINING CYRILLIC LETTER TE;Mn;230;NSM;;;;;N;;;;;
+2DEF;COMBINING CYRILLIC LETTER HA;Mn;230;NSM;;;;;N;;;;;
+2DF0;COMBINING CYRILLIC LETTER TSE;Mn;230;NSM;;;;;N;;;;;
+2DF1;COMBINING CYRILLIC LETTER CHE;Mn;230;NSM;;;;;N;;;;;
+2DF2;COMBINING CYRILLIC LETTER SHA;Mn;230;NSM;;;;;N;;;;;
+2DF3;COMBINING CYRILLIC LETTER SHCHA;Mn;230;NSM;;;;;N;;;;;
+2DF4;COMBINING CYRILLIC LETTER FITA;Mn;230;NSM;;;;;N;;;;;
+2DF5;COMBINING CYRILLIC LETTER ES-TE;Mn;230;NSM;;;;;N;;;;;
+2DF6;COMBINING CYRILLIC LETTER A;Mn;230;NSM;;;;;N;;;;;
+2DF7;COMBINING CYRILLIC LETTER IE;Mn;230;NSM;;;;;N;;;;;
+2DF8;COMBINING CYRILLIC LETTER DJERV;Mn;230;NSM;;;;;N;;;;;
+2DF9;COMBINING CYRILLIC LETTER MONOGRAPH UK;Mn;230;NSM;;;;;N;;;;;
+2DFA;COMBINING CYRILLIC LETTER YAT;Mn;230;NSM;;;;;N;;;;;
+2DFB;COMBINING CYRILLIC LETTER YU;Mn;230;NSM;;;;;N;;;;;
+2DFC;COMBINING CYRILLIC LETTER IOTIFIED A;Mn;230;NSM;;;;;N;;;;;
+2DFD;COMBINING CYRILLIC LETTER LITTLE YUS;Mn;230;NSM;;;;;N;;;;;
+2DFE;COMBINING CYRILLIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;;
+2DFF;COMBINING CYRILLIC LETTER IOTIFIED BIG YUS;Mn;230;NSM;;;;;N;;;;;
+2E00;RIGHT ANGLE SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
+2E01;RIGHT ANGLE DOTTED SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
+2E02;LEFT SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E03;RIGHT SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E04;LEFT DOTTED SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E05;RIGHT DOTTED SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E06;RAISED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
+2E07;RAISED DOTTED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
+2E08;DOTTED TRANSPOSITION MARKER;Po;0;ON;;;;;N;;;;;
+2E09;LEFT TRANSPOSITION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E0A;RIGHT TRANSPOSITION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E0B;RAISED SQUARE;Po;0;ON;;;;;N;;;;;
+2E0C;LEFT RAISED OMISSION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E0D;RIGHT RAISED OMISSION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E0E;EDITORIAL CORONIS;Po;0;ON;;;;;N;;;;;
+2E0F;PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E10;FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E11;REVERSED FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E12;HYPODIASTOLE;Po;0;ON;;;;;N;;;;;
+2E13;DOTTED OBELOS;Po;0;ON;;;;;N;;;;;
+2E14;DOWNWARDS ANCORA;Po;0;ON;;;;;N;;;;;
+2E15;UPWARDS ANCORA;Po;0;ON;;;;;N;;;;;
+2E16;DOTTED RIGHT-POINTING ANGLE;Po;0;ON;;;;;N;;;;;
+2E17;DOUBLE OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;;
+2E18;INVERTED INTERROBANG;Po;0;ON;;;;;N;;;;;
+2E19;PALM BRANCH;Po;0;ON;;;;;N;;;;;
+2E1A;HYPHEN WITH DIAERESIS;Pd;0;ON;;;;;N;;;;;
+2E1B;TILDE WITH RING ABOVE;Po;0;ON;;;;;N;;;;;
+2E1C;LEFT LOW PARAPHRASE BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E1D;RIGHT LOW PARAPHRASE BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E1E;TILDE WITH DOT ABOVE;Po;0;ON;;;;;N;;;;;
+2E1F;TILDE WITH DOT BELOW;Po;0;ON;;;;;N;;;;;
+2E20;LEFT VERTICAL BAR WITH QUILL;Pi;0;ON;;;;;Y;;;;;
+2E21;RIGHT VERTICAL BAR WITH QUILL;Pf;0;ON;;;;;Y;;;;;
+2E22;TOP LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;;
+2E23;TOP RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;;
+2E24;BOTTOM LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;;
+2E25;BOTTOM RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;;
+2E26;LEFT SIDEWAYS U BRACKET;Ps;0;ON;;;;;Y;;;;;
+2E27;RIGHT SIDEWAYS U BRACKET;Pe;0;ON;;;;;Y;;;;;
+2E28;LEFT DOUBLE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+2E29;RIGHT DOUBLE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+2E2A;TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2E2B;ONE DOT OVER TWO DOTS PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2E2C;SQUARED FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2E2D;FIVE DOT MARK;Po;0;ON;;;;;N;;;;;
+2E2E;REVERSED QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2E2F;VERTICAL TILDE;Lm;0;ON;;;;;N;;;;;
+2E30;RING POINT;Po;0;ON;;;;;N;;;;;
+2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
+2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
+2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
+2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;;
+2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;;
+2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;;
+2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;;
+2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;;
+2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;;
+2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;;
+2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;;
+2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;;
+2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;;
+2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;;
+2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;;
+2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;;
+2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;;
+2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;;
+2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;;
+2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;;
+2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;;
+2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;;
+2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;;
+2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;;
+2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;;
+2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;;
+2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;;
+2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;;
+2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;;
+2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;;
+2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;;
+2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;;
+2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;;
+2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;;
+2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;;
+2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;;
+2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;;
+2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;;
+2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;;
+2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;;
+2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;;
+2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;;
+2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;;
+2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;;
+2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;;
+2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;;
+2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;;
+2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;;
+2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;;
+2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;;
+2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;;
+2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;;
+2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;;
+2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;;
+2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;;
+2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;;
+2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;;
+2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;;
+2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;;
+2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;;
+2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;;
+2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;;
+2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;;
+2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;;
+2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;;
+2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;;
+2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;;
+2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;;
+2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;;
+2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;;
+2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;;
+2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;;
+2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;;
+2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;;
+2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;;
+2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;;
+2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;;
+2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;;
+2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;;
+2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;;
+2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;;
+2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;;
+2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;;
+2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;;
+2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;;
+2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;;
+2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;;
+2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;;
+2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;;
+2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;;
+2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;;
+2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;;
+2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;;
+2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;;
+2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;;
+2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;;
+2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;;
+2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;;
+2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;;
+2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;;
+2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;;
+2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;;
+2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;;
+2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;;
+2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;;
+2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;;
+2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;;
+2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;;
+2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;;
+2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;;
+2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;;
+2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;;
+2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;;
+2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;;
+2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;;
+2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;;
+2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;;
+2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;;
+2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;;
+2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;;
+2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;;
+2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;;
+2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;;
+2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;;
+2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;;
+2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;;
+2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;;
+2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;;
+2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;;
+2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;;
+2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;;
+2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;;
+2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;;
+2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;;
+2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;;
+2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;;
+2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;;
+2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;;
+2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;;
+2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;;
+2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;;
+2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;;
+2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;;
+2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;;
+2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;;
+2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;;
+2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;;
+2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;;
+2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;;
+2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;;
+2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;;
+2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;;
+2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;;
+2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;;
+2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;;
+2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;;
+2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;;
+2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;;
+2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;;
+2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;;
+2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;;
+2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;;
+2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;;
+2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;;
+2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;;
+2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;;
+2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;;
+2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;;
+2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;;
+2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;;
+2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;;
+2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;;
+2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;;
+2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;;
+2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;;
+2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;;
+2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;;
+2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;;
+2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;;
+2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;;
+2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;;
+2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;;
+2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;;
+2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;;
+2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;;
+2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;;
+2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;;
+2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;;
+2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;;
+2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;;
+2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;;
+2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;;
+2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;;
+2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;;
+2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;;
+2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;;
+2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;;
+2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;;
+2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;;
+2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;;
+2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;;
+2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;;
+2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;;
+2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;;
+2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;;
+2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;;
+2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;;
+2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;;
+2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;;
+2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;;
+2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;;
+2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;;
+2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;;
+2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;;
+2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;;
+2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;;
+2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;;
+2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;;
+2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;;
+2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;;
+2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;;
+2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;;
+2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;;
+2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;;
+2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;;
+2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;;
+2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;;
+2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;;
+2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;;
+2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;;
+2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;;
+2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;;
+2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;;
+2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;;
+2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;;
+2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;;
+2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;;
+2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;;
+2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;;
+2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;;
+2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;;
+2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;;
+2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;;
+2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;;
+2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;;
+2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;;
+2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;;
+2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;;
+2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;;
+2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;;
+2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;;
+2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;;
+2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;;
+2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;;
+2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;;
+2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;;
+2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;;
+2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;;
+2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;;
+2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;;
+2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;;
+2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;;
+2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;;
+2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;;
+2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;;
+2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;;
+2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;;
+2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;;
+2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;;
+2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;;
+2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;;
+2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;;
+2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;;
+2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;;
+2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;;
+2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;;
+2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;;
+2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;;
+2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;;
+2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;;
+2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;;
+2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;;
+2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;;
+2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;;
+2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;;
+2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;;
+2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;;
+2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;;
+2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;;
+2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;;
+2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;;
+2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;;
+2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;;
+2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;;
+2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;;
+2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;;
+2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;;
+2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;;
+2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;;
+2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;;
+2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;;
+2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;;
+2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;;
+2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;;
+2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;;
+2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;;
+2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;;
+2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;;
+2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;;
+2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;;
+2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;;
+2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;;
+2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;;
+2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;;
+2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;;
+2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;;
+2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;;
+2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;;
+2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;;
+2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;;
+2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;;
+2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;;
+2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;;
+2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;;
+2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;;
+2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;;
+2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;;
+2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;;
+2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;;
+2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;;
+2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;;
+2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;;
+2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
+2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
+2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
+3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
+3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
+3003;DITTO MARK;Po;0;ON;;;;;N;;;;;
+3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;;
+3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;;
+3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;;
+3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;;
+3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;;
+300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;;
+300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;;
+300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;;
+300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;;
+300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;;
+300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;;
+3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;;
+3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;;
+3012;POSTAL MARK;So;0;ON;;;;;N;;;;;
+3013;GETA MARK;So;0;ON;;;;;N;;;;;
+3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;;
+3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;;
+3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;;
+3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;;
+3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;;
+3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;;
+301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;
+301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;
+301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;
+301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;;
+301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
+301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
+3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;
+3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;
+3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;
+3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;;
+3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;;
+3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;;
+3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;;
+3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;;
+3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;;
+3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;;
+302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;
+302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
+302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
+302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
+302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
+3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
+3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
+3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;;
+3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;;
+3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;;
+3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;
+3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;
+303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;
+303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+303C;MASU MARK;Lo;0;L;;;;;N;;;;;
+303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;;
+303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;
+303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;
+3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
+3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;;
+3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;;
+3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;;
+3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;;
+304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;;
+304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;;
+304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;;
+304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;;
+304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;;
+3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;;
+3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;;
+3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;;
+3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;;
+3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;;
+3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;;
+3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;;
+3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;;
+3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;;
+3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;;
+305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;;
+305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;;
+305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;;
+305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;;
+305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;;
+305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;;
+3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;;
+3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;;
+3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;;
+3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;;
+3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;;
+3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;;
+3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;;
+3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;;
+3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;;
+306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;;
+306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;;
+306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;;
+306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;;
+306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;;
+306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;;
+3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;;
+3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;;
+3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;;
+3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;;
+3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;;
+3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;;
+3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;;
+3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;;
+3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;;
+3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;;
+307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;;
+307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;;
+307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;;
+307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;;
+307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;;
+307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;;
+3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;;
+3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;;
+3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;;
+3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;;
+3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;;
+3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;;
+3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;;
+308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;;
+308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;;
+308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;;
+308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;;
+308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;;
+3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;;
+3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;;
+3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;
+3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;
+3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;
+3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
+309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
+309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;
+309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;
+309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;
+309F;HIRAGANA DIGRAPH YORI;Lo;0;L;<vertical> 3088 308A;;;;N;;;;;
+30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;
+30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
+30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;;
+30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;;
+30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;;
+30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;;
+30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;;
+30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;;
+30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;;
+30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;;
+30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;;
+30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;;
+30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;;
+30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;;
+30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;;
+30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;;
+30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;;
+30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;;
+30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;;
+30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;;
+30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;;
+30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;;
+30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;;
+30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;;
+30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;;
+30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;;
+30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;;
+30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;;
+30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;;
+30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;;
+30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;;
+30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;;
+30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;;
+30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;;
+30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;;
+30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;;
+30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;;
+30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;;
+30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;;
+30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;;
+30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;;
+30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;;
+30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;;
+30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;;
+30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;;
+30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;;
+30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;;
+30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;;
+30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;;
+30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;;
+30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;;
+30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;;
+30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;;
+30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;;
+30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;;
+30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;;
+30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;;
+30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;;
+30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;;
+30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;;
+30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;;
+30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;;
+30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;;
+30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;;
+30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;;
+30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;;
+30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;;
+30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;;
+30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;;
+30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;;
+30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;;
+30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;;
+30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;;
+30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;;
+30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;;
+30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;;
+30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;;
+30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;;
+30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;;
+30FB;KATAKANA MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;
+30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;
+30FF;KATAKANA DIGRAPH KOTO;Lo;0;L;<vertical> 30B3 30C8;;;;N;;;;;
+3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;
+3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;
+3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;
+3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;;
+3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;;
+310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;;
+310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;;
+310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;;
+310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;;
+310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;;
+310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;;
+3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;;
+3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;;
+3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;;
+3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;;
+3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;;
+3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;;
+3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;;
+3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;;
+3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;;
+3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;;
+311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;;
+311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;;
+311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;;
+311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;;
+311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;;
+311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;;
+3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;;
+3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;;
+3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;;
+3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;;
+3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;;
+3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;;
+3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;;
+3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;;
+3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;;
+3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;;
+312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;;
+312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;;
+312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;
+312D;BOPOMOFO LETTER IH;Lo;0;L;;;;;N;;;;;
+3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;
+3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;
+3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
+3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;;
+3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;;
+3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;;
+3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;;
+3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;;
+3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;;
+313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;;
+313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;;
+313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;;
+313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;;
+313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;;
+313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;;
+3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;;
+3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;;
+3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;;
+3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;;
+3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;;
+3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;;
+3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;;
+3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;;
+3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;;
+3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;;
+314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;;
+314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;;
+314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;;
+314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;;
+314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;;
+314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;;
+3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;;
+3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;;
+3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;;
+3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;;
+3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;;
+3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;;
+3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;;
+3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;;
+3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;;
+3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;;
+315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;;
+315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;;
+315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;;
+315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;;
+315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;;
+315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;;
+3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;;
+3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;;
+3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;;
+3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;;
+3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;;
+3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;;
+3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;;
+3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;;
+3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;;
+3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;;
+316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;;
+316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;;
+316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;;
+316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;;
+316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;;
+316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;;
+3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;;
+3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;;
+3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;;
+3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;;
+3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;;
+3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;;
+3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;;
+3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;;
+3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;;
+3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;;
+317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;;
+317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;;
+317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;;
+317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;;
+317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;;
+317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;;
+3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;;
+3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;;
+3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;;
+3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;;
+3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;;
+3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;;
+3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;;
+3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;;
+3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;;
+3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;;
+318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;;
+318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;;
+318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;;
+318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;;
+318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;
+3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;;
+3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;;
+3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;1;N;KAERITEN ITI;Kaeriten;;;
+3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;2;N;KAERITEN NI;Kaeriten;;;
+3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;3;N;KAERITEN SAN;Kaeriten;;;
+3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;4;N;KAERITEN SI;Kaeriten;;;
+3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;;
+3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;;
+3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;Kaeriten;;;
+3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;Kaeriten;;;
+319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;Kaeriten;;;
+319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;Kaeriten;;;
+319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;Kaeriten;;;
+319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;Kaeriten;;;
+319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;Kaeriten;;;
+319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;;
+31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;;
+31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;;
+31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;;
+31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;;
+31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;;
+31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;;
+31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;;
+31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;;
+31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;;
+31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;;
+31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;;
+31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;;
+31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;;
+31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;;
+31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;;
+31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;;
+31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;;
+31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;;
+31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;;
+31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;;
+31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;;
+31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;
+31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;
+31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;
+31C0;CJK STROKE T;So;0;ON;;;;;N;;;;;
+31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;;
+31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;;
+31C3;CJK STROKE BXG;So;0;ON;;;;;N;;;;;
+31C4;CJK STROKE SW;So;0;ON;;;;;N;;;;;
+31C5;CJK STROKE HZZ;So;0;ON;;;;;N;;;;;
+31C6;CJK STROKE HZG;So;0;ON;;;;;N;;;;;
+31C7;CJK STROKE HP;So;0;ON;;;;;N;;;;;
+31C8;CJK STROKE HZWG;So;0;ON;;;;;N;;;;;
+31C9;CJK STROKE SZWG;So;0;ON;;;;;N;;;;;
+31CA;CJK STROKE HZT;So;0;ON;;;;;N;;;;;
+31CB;CJK STROKE HZZP;So;0;ON;;;;;N;;;;;
+31CC;CJK STROKE HPWG;So;0;ON;;;;;N;;;;;
+31CD;CJK STROKE HZW;So;0;ON;;;;;N;;;;;
+31CE;CJK STROKE HZZZ;So;0;ON;;;;;N;;;;;
+31CF;CJK STROKE N;So;0;ON;;;;;N;;;;;
+31D0;CJK STROKE H;So;0;ON;;;;;N;;;;;
+31D1;CJK STROKE S;So;0;ON;;;;;N;;;;;
+31D2;CJK STROKE P;So;0;ON;;;;;N;;;;;
+31D3;CJK STROKE SP;So;0;ON;;;;;N;;;;;
+31D4;CJK STROKE D;So;0;ON;;;;;N;;;;;
+31D5;CJK STROKE HZ;So;0;ON;;;;;N;;;;;
+31D6;CJK STROKE HG;So;0;ON;;;;;N;;;;;
+31D7;CJK STROKE SZ;So;0;ON;;;;;N;;;;;
+31D8;CJK STROKE SWZ;So;0;ON;;;;;N;;;;;
+31D9;CJK STROKE ST;So;0;ON;;;;;N;;;;;
+31DA;CJK STROKE SG;So;0;ON;;;;;N;;;;;
+31DB;CJK STROKE PD;So;0;ON;;;;;N;;;;;
+31DC;CJK STROKE PZ;So;0;ON;;;;;N;;;;;
+31DD;CJK STROKE TN;So;0;ON;;;;;N;;;;;
+31DE;CJK STROKE SZZ;So;0;ON;;;;;N;;;;;
+31DF;CJK STROKE SWG;So;0;ON;;;;;N;;;;;
+31E0;CJK STROKE HXWG;So;0;ON;;;;;N;;;;;
+31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;;
+31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;;
+31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;;
+31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
+31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
+31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
+31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;;
+31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;;
+31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;;
+31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;;
+31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;;
+31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;;
+31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;;
+31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;;
+31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;;
+31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;;
+31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;;
+31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;;
+31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;;
+3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;
+3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;
+3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;
+3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;;
+3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;;
+3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;;
+3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;;
+3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;;
+3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;;
+3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;;
+320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;;
+320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;;
+320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;;
+320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;;
+320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;;
+320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;;
+3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;;
+3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;;
+3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;;
+3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;;
+3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;;
+3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;;
+3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;;
+3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;;
+3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;;
+3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;;
+321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;;
+321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;;
+321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;;
+321D;PARENTHESIZED KOREAN CHARACTER OJEON;So;0;ON;<compat> 0028 110B 1169 110C 1165 11AB 0029;;;;N;;;;;
+321E;PARENTHESIZED KOREAN CHARACTER O HU;So;0;ON;<compat> 0028 110B 1169 1112 116E 0029;;;;N;;;;;
+3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;1;N;;;;;
+3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;2;N;;;;;
+3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;3;N;;;;;
+3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;4;N;;;;;
+3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;5;N;;;;;
+3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;6;N;;;;;
+3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;7;N;;;;;
+3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;8;N;;;;;
+3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;9;N;;;;;
+3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;10;N;;;;;
+322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;;
+322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;;
+322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;;
+322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;;
+322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;;
+322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;;
+3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;;
+3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;;
+3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;;
+3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;;
+3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;;
+3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;;
+3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;;
+3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;;
+3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;;
+3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;;
+323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;;
+323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;;
+323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;;
+323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;;
+323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;;
+323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;;
+3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;;
+3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;
+3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;
+3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;
+3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;;
+3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;
+3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;
+3253;CIRCLED NUMBER TWENTY THREE;No;0;ON;<circle> 0032 0033;;;23;N;;;;;
+3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON;<circle> 0032 0034;;;24;N;;;;;
+3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON;<circle> 0032 0035;;;25;N;;;;;
+3256;CIRCLED NUMBER TWENTY SIX;No;0;ON;<circle> 0032 0036;;;26;N;;;;;
+3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON;<circle> 0032 0037;;;27;N;;;;;
+3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON;<circle> 0032 0038;;;28;N;;;;;
+3259;CIRCLED NUMBER TWENTY NINE;No;0;ON;<circle> 0032 0039;;;29;N;;;;;
+325A;CIRCLED NUMBER THIRTY;No;0;ON;<circle> 0033 0030;;;30;N;;;;;
+325B;CIRCLED NUMBER THIRTY ONE;No;0;ON;<circle> 0033 0031;;;31;N;;;;;
+325C;CIRCLED NUMBER THIRTY TWO;No;0;ON;<circle> 0033 0032;;;32;N;;;;;
+325D;CIRCLED NUMBER THIRTY THREE;No;0;ON;<circle> 0033 0033;;;33;N;;;;;
+325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON;<circle> 0033 0034;;;34;N;;;;;
+325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON;<circle> 0033 0035;;;35;N;;;;;
+3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;
+3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;
+3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;
+3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;;
+3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;;
+3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;;
+3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;;
+3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;;
+3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;;
+3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;;
+326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;;
+326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;;
+326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;;
+326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;;
+326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;;
+326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;;
+3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;;
+3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;;
+3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;;
+3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;;
+3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;;
+3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;;
+3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;;
+3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;;
+3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;;
+3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;;
+327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;;
+327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;;
+327C;CIRCLED KOREAN CHARACTER CHAMKO;So;0;ON;<circle> 110E 1161 11B7 1100 1169;;;;N;;;;;
+327D;CIRCLED KOREAN CHARACTER JUEUI;So;0;ON;<circle> 110C 116E 110B 1174;;;;N;;;;;
+327E;CIRCLED HANGUL IEUNG U;So;0;ON;<circle> 110B 116E;;;;N;;;;;
+327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;;
+3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;;
+3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;;
+3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;;
+3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;;
+3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;;
+3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;;
+3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;;
+3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;;
+3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;;
+3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;;
+328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;;
+328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;;
+328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;;
+328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;;
+328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;;
+328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;;
+3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;;
+3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;;
+3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;;
+3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;;
+3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;;
+3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;;
+3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;;
+3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;;
+3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;;
+3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;;
+329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;;
+329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;;
+329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;;
+329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;;
+329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;;
+329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;;
+32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;;
+32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;;
+32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;;
+32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;;
+32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;;
+32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;;
+32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;;
+32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;;
+32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;;
+32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;;
+32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;;
+32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;;
+32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;;
+32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;;
+32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;
+32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;
+32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;
+32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON;<circle> 0033 0036;;;36;N;;;;;
+32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON;<circle> 0033 0037;;;37;N;;;;;
+32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON;<circle> 0033 0038;;;38;N;;;;;
+32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON;<circle> 0033 0039;;;39;N;;;;;
+32B5;CIRCLED NUMBER FORTY;No;0;ON;<circle> 0034 0030;;;40;N;;;;;
+32B6;CIRCLED NUMBER FORTY ONE;No;0;ON;<circle> 0034 0031;;;41;N;;;;;
+32B7;CIRCLED NUMBER FORTY TWO;No;0;ON;<circle> 0034 0032;;;42;N;;;;;
+32B8;CIRCLED NUMBER FORTY THREE;No;0;ON;<circle> 0034 0033;;;43;N;;;;;
+32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON;<circle> 0034 0034;;;44;N;;;;;
+32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON;<circle> 0034 0035;;;45;N;;;;;
+32BB;CIRCLED NUMBER FORTY SIX;No;0;ON;<circle> 0034 0036;;;46;N;;;;;
+32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON;<circle> 0034 0037;;;47;N;;;;;
+32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON;<circle> 0034 0038;;;48;N;;;;;
+32BE;CIRCLED NUMBER FORTY NINE;No;0;ON;<circle> 0034 0039;;;49;N;;;;;
+32BF;CIRCLED NUMBER FIFTY;No;0;ON;<circle> 0035 0030;;;50;N;;;;;
+32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;
+32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;
+32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;
+32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;;
+32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;;
+32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;;
+32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;;
+32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;;
+32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;;
+32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;;
+32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;;
+32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;;
+32CC;SQUARE HG;So;0;ON;<square> 0048 0067;;;;N;;;;;
+32CD;SQUARE ERG;So;0;ON;<square> 0065 0072 0067;;;;N;;;;;
+32CE;SQUARE EV;So;0;ON;<square> 0065 0056;;;;N;;;;;
+32CF;LIMITED LIABILITY SIGN;So;0;ON;<square> 004C 0054 0044;;;;N;;;;;
+32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;;
+32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;;
+32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;;
+32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;;
+32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;;
+32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;;
+32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;;
+32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;;
+32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;;
+32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;;
+32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;;
+32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;;
+32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;;
+32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;;
+32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;;
+32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;;
+32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;;
+32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;;
+32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;;
+32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;;
+32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;;
+32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;;
+32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;;
+32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;;
+32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;;
+32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;;
+32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;;
+32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;;
+32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;;
+32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;;
+32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;;
+32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;;
+32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;;
+32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;;
+32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;;
+32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;;
+32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;;
+32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;;
+32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;;
+32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;;
+32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;;
+32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;;
+32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;;
+32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;;
+32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
+32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
+32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
+3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
+3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
+3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
+3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;;
+3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;;
+3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;;
+3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;;
+3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;;
+3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;;
+3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;;
+330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;;
+330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;;
+330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;;
+330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;;
+330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;;
+330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;;
+3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;;
+3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;;
+3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;;
+3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;;
+3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;;
+3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;;
+3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;;
+3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;;
+3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;;
+3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;;
+331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;;
+331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;;
+331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;;
+331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;;
+331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;;
+331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;;
+3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;;
+3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;;
+3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;;
+3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;;
+3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;;
+3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;;
+3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;;
+3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;;
+3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;;
+3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;;
+332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;;
+332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;;
+332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;;
+332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;;
+332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;;
+332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;;
+3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;;
+3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;;
+3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;;
+3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;;
+3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;;
+3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;;
+3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;;
+3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;;
+3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;;
+3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;;
+333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;;
+333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;;
+333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;;
+333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;;
+333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;;
+333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;;
+3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;;
+3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;;
+3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;;
+3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;;
+3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;;
+3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;;
+3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;;
+3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;;
+3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;;
+3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;;
+334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;;
+334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;;
+334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;;
+334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;;
+334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;;
+334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;;
+3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;;
+3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;;
+3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;;
+3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;;
+3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;;
+3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;;
+3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;;
+3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;;
+3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;;
+3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;;
+335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;;
+335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;;
+335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;;
+335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;;
+335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;;
+335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;;
+3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;;
+3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;;
+3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;;
+3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;;
+3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;;
+3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;;
+3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;;
+3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;;
+3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;;
+3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;;
+336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;;
+336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;;
+336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;;
+336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;;
+336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;;
+336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;;
+3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;;
+3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;;
+3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;;
+3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;;
+3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;;
+3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;;
+3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;;
+3377;SQUARE DM;So;0;ON;<square> 0064 006D;;;;N;;;;;
+3378;SQUARE DM SQUARED;So;0;ON;<square> 0064 006D 00B2;;;;N;;;;;
+3379;SQUARE DM CUBED;So;0;ON;<square> 0064 006D 00B3;;;;N;;;;;
+337A;SQUARE IU;So;0;ON;<square> 0049 0055;;;;N;;;;;
+337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;;
+337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;;
+337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;;
+337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;;
+337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;;
+3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;;
+3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;;
+3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;;
+3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;;
+3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;;
+3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;;
+3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;;
+3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;;
+3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;;
+3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;;
+338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;;
+338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;;
+338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;;
+338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;;
+338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;;
+338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;;
+3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;;
+3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;;
+3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;;
+3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;;
+3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;;
+3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;;
+3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;;
+3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;;
+3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;;
+3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;;
+339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;;
+339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;;
+339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;;
+339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;;
+339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;;
+339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;;
+33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;;
+33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;;
+33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;;
+33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;;
+33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;;
+33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;;
+33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;;
+33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;;
+33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;;
+33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;;
+33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;;
+33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;;
+33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;;
+33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;;
+33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;;
+33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;;
+33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;;
+33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;;
+33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;;
+33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;;
+33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;;
+33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;;
+33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;;
+33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;;
+33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;;
+33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;;
+33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;;
+33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;;
+33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;;
+33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;;
+33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;;
+33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;;
+33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;;
+33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;;
+33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;;
+33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;;
+33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;;
+33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;;
+33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;;
+33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;;
+33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;;
+33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;;
+33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;;
+33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;;
+33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;;
+33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;;
+33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;;
+33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;;
+33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;;
+33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;;
+33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;;
+33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;;
+33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;;
+33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;;
+33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;;
+33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;;
+33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;;
+33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;;
+33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;;
+33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;;
+33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;;
+33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;;
+33DE;SQUARE V OVER M;So;0;ON;<square> 0056 2215 006D;;;;N;;;;;
+33DF;SQUARE A OVER M;So;0;ON;<square> 0041 2215 006D;;;;N;;;;;
+33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;;
+33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;;
+33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;;
+33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;;
+33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;;
+33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;;
+33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;;
+33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;;
+33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;;
+33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;;
+33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;;
+33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;;
+33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;;
+33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;;
+33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;;
+33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;;
+33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;;
+33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;;
+33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;;
+33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;;
+33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;;
+33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;;
+33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;;
+33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;;
+33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;;
+33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;;
+33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;;
+33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;;
+33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;;
+33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;;
+33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;;
+33FF;SQUARE GAL;So;0;ON;<square> 0067 0061 006C;;;;N;;;;;
+4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;;
+4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;;
+4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;;
+4DC3;HEXAGRAM FOR YOUTHFUL FOLLY;So;0;ON;;;;;N;;;;;
+4DC4;HEXAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
+4DC5;HEXAGRAM FOR CONFLICT;So;0;ON;;;;;N;;;;;
+4DC6;HEXAGRAM FOR THE ARMY;So;0;ON;;;;;N;;;;;
+4DC7;HEXAGRAM FOR HOLDING TOGETHER;So;0;ON;;;;;N;;;;;
+4DC8;HEXAGRAM FOR SMALL TAMING;So;0;ON;;;;;N;;;;;
+4DC9;HEXAGRAM FOR TREADING;So;0;ON;;;;;N;;;;;
+4DCA;HEXAGRAM FOR PEACE;So;0;ON;;;;;N;;;;;
+4DCB;HEXAGRAM FOR STANDSTILL;So;0;ON;;;;;N;;;;;
+4DCC;HEXAGRAM FOR FELLOWSHIP;So;0;ON;;;;;N;;;;;
+4DCD;HEXAGRAM FOR GREAT POSSESSION;So;0;ON;;;;;N;;;;;
+4DCE;HEXAGRAM FOR MODESTY;So;0;ON;;;;;N;;;;;
+4DCF;HEXAGRAM FOR ENTHUSIASM;So;0;ON;;;;;N;;;;;
+4DD0;HEXAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
+4DD1;HEXAGRAM FOR WORK ON THE DECAYED;So;0;ON;;;;;N;;;;;
+4DD2;HEXAGRAM FOR APPROACH;So;0;ON;;;;;N;;;;;
+4DD3;HEXAGRAM FOR CONTEMPLATION;So;0;ON;;;;;N;;;;;
+4DD4;HEXAGRAM FOR BITING THROUGH;So;0;ON;;;;;N;;;;;
+4DD5;HEXAGRAM FOR GRACE;So;0;ON;;;;;N;;;;;
+4DD6;HEXAGRAM FOR SPLITTING APART;So;0;ON;;;;;N;;;;;
+4DD7;HEXAGRAM FOR RETURN;So;0;ON;;;;;N;;;;;
+4DD8;HEXAGRAM FOR INNOCENCE;So;0;ON;;;;;N;;;;;
+4DD9;HEXAGRAM FOR GREAT TAMING;So;0;ON;;;;;N;;;;;
+4DDA;HEXAGRAM FOR MOUTH CORNERS;So;0;ON;;;;;N;;;;;
+4DDB;HEXAGRAM FOR GREAT PREPONDERANCE;So;0;ON;;;;;N;;;;;
+4DDC;HEXAGRAM FOR THE ABYSMAL WATER;So;0;ON;;;;;N;;;;;
+4DDD;HEXAGRAM FOR THE CLINGING FIRE;So;0;ON;;;;;N;;;;;
+4DDE;HEXAGRAM FOR INFLUENCE;So;0;ON;;;;;N;;;;;
+4DDF;HEXAGRAM FOR DURATION;So;0;ON;;;;;N;;;;;
+4DE0;HEXAGRAM FOR RETREAT;So;0;ON;;;;;N;;;;;
+4DE1;HEXAGRAM FOR GREAT POWER;So;0;ON;;;;;N;;;;;
+4DE2;HEXAGRAM FOR PROGRESS;So;0;ON;;;;;N;;;;;
+4DE3;HEXAGRAM FOR DARKENING OF THE LIGHT;So;0;ON;;;;;N;;;;;
+4DE4;HEXAGRAM FOR THE FAMILY;So;0;ON;;;;;N;;;;;
+4DE5;HEXAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
+4DE6;HEXAGRAM FOR OBSTRUCTION;So;0;ON;;;;;N;;;;;
+4DE7;HEXAGRAM FOR DELIVERANCE;So;0;ON;;;;;N;;;;;
+4DE8;HEXAGRAM FOR DECREASE;So;0;ON;;;;;N;;;;;
+4DE9;HEXAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
+4DEA;HEXAGRAM FOR BREAKTHROUGH;So;0;ON;;;;;N;;;;;
+4DEB;HEXAGRAM FOR COMING TO MEET;So;0;ON;;;;;N;;;;;
+4DEC;HEXAGRAM FOR GATHERING TOGETHER;So;0;ON;;;;;N;;;;;
+4DED;HEXAGRAM FOR PUSHING UPWARD;So;0;ON;;;;;N;;;;;
+4DEE;HEXAGRAM FOR OPPRESSION;So;0;ON;;;;;N;;;;;
+4DEF;HEXAGRAM FOR THE WELL;So;0;ON;;;;;N;;;;;
+4DF0;HEXAGRAM FOR REVOLUTION;So;0;ON;;;;;N;;;;;
+4DF1;HEXAGRAM FOR THE CAULDRON;So;0;ON;;;;;N;;;;;
+4DF2;HEXAGRAM FOR THE AROUSING THUNDER;So;0;ON;;;;;N;;;;;
+4DF3;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN;So;0;ON;;;;;N;;;;;
+4DF4;HEXAGRAM FOR DEVELOPMENT;So;0;ON;;;;;N;;;;;
+4DF5;HEXAGRAM FOR THE MARRYING MAIDEN;So;0;ON;;;;;N;;;;;
+4DF6;HEXAGRAM FOR ABUNDANCE;So;0;ON;;;;;N;;;;;
+4DF7;HEXAGRAM FOR THE WANDERER;So;0;ON;;;;;N;;;;;
+4DF8;HEXAGRAM FOR THE GENTLE WIND;So;0;ON;;;;;N;;;;;
+4DF9;HEXAGRAM FOR THE JOYOUS LAKE;So;0;ON;;;;;N;;;;;
+4DFA;HEXAGRAM FOR DISPERSION;So;0;ON;;;;;N;;;;;
+4DFB;HEXAGRAM FOR LIMITATION;So;0;ON;;;;;N;;;;;
+4DFC;HEXAGRAM FOR INNER TRUTH;So;0;ON;;;;;N;;;;;
+4DFD;HEXAGRAM FOR SMALL PREPONDERANCE;So;0;ON;;;;;N;;;;;
+4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
+4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
+A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
+A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
+A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
+A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;;
+A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;;
+A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;;
+A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;;
+A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;;
+A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;;
+A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;;
+A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;;
+A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;;
+A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;;
+A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;;
+A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;;
+A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;;
+A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;;
+A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;;
+A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;;
+A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;;
+A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;;
+A015;YI SYLLABLE WU;Lm;0;L;;;;;N;;;;;
+A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;;
+A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;;
+A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;;
+A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;;
+A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;;
+A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;;
+A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;;
+A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;;
+A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;;
+A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;;
+A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;;
+A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;;
+A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;;
+A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;;
+A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;;
+A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;;
+A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;;
+A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;;
+A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;;
+A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;;
+A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;;
+A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;;
+A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;;
+A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;;
+A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;;
+A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;;
+A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;;
+A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;;
+A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;;
+A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;;
+A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;;
+A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;;
+A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;;
+A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;;
+A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;;
+A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;;
+A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;;
+A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;;
+A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;;
+A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;;
+A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;;
+A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;;
+A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;;
+A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;;
+A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;;
+A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;;
+A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;;
+A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;;
+A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;;
+A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;;
+A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;;
+A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;;
+A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;;
+A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;;
+A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;;
+A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;
+A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;;
+A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
+A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;
+A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;;
+A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;;
+A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;;
+A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;;
+A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;
+A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;;
+A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
+A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;
+A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;;
+A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;;
+A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;;
+A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;
+A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;;
+A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;
+A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;;
+A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
+A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;
+A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;
+A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;;
+A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
+A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;
+A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;;
+A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;;
+A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;;
+A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;;
+A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;;
+A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;;
+A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;;
+A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;;
+A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;;
+A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;;
+A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;;
+A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;;
+A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;;
+A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;;
+A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;;
+A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;;
+A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;;
+A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;;
+A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;;
+A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;;
+A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;;
+A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;;
+A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;;
+A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;;
+A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;;
+A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;;
+A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;;
+A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;;
+A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;;
+A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;;
+A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;;
+A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;;
+A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;;
+A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;;
+A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;;
+A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;;
+A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;;
+A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;;
+A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;;
+A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;;
+A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;;
+A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;;
+A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;;
+A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;;
+A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;;
+A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;;
+A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;;
+A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;;
+A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;;
+A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;;
+A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;;
+A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;;
+A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;;
+A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;;
+A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;;
+A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;;
+A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;;
+A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;;
+A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;;
+A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;;
+A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;;
+A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;;
+A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;;
+A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;;
+A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;;
+A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;;
+A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;;
+A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;;
+A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;;
+A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;;
+A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;;
+A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;;
+A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;;
+A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;;
+A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;;
+A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;;
+A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;;
+A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;;
+A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;;
+A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;;
+A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;;
+A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;;
+A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;;
+A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;;
+A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;;
+A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;;
+A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;;
+A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;;
+A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;;
+A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;;
+A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;;
+A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;;
+A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;;
+A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;;
+A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;;
+A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;;
+A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;;
+A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;;
+A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;;
+A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;;
+A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;;
+A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;;
+A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;;
+A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;;
+A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;;
+A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;;
+A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;;
+A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;;
+A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;;
+A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;;
+A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;;
+A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;;
+A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;;
+A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;;
+A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;;
+A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;;
+A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;;
+A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;;
+A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;;
+A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;;
+A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;;
+A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;;
+A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;;
+A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;;
+A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;;
+A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;;
+A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;;
+A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;;
+A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;;
+A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;;
+A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;;
+A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;;
+A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;;
+A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;;
+A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;;
+A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;;
+A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;;
+A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;;
+A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;;
+A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;;
+A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;;
+A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;;
+A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;;
+A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;;
+A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;;
+A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;;
+A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;;
+A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;;
+A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;;
+A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;;
+A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;;
+A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;;
+A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;;
+A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;;
+A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;;
+A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;;
+A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;;
+A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;;
+A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;;
+A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;;
+A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;;
+A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;;
+A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;;
+A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;;
+A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;;
+A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;;
+A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;;
+A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;;
+A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;;
+A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;;
+A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;;
+A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;;
+A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;;
+A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;;
+A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;;
+A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;
+A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;;
+A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;
+A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;;
+A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;;
+A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;;
+A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;
+A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;;
+A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;
+A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;;
+A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;;
+A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;;
+A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;
+A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;;
+A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;
+A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;;
+A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;
+A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;
+A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;;
+A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;
+A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;;
+A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;;
+A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;;
+A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;;
+A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
+A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;;
+A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;;
+A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;;
+A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;;
+A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;;
+A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
+A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;;
+A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;;
+A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;;
+A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
+A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;;
+A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;;
+A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
+A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;;
+A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;;
+A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;;
+A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
+A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;;
+A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;;
+A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;;
+A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;;
+A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;;
+A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;;
+A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;;
+A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;;
+A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;;
+A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;;
+A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;;
+A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;;
+A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;;
+A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;;
+A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;;
+A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;;
+A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;;
+A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;;
+A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;;
+A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;;
+A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;;
+A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;;
+A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;;
+A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;;
+A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;;
+A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;;
+A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;;
+A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;;
+A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;;
+A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;;
+A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;;
+A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;;
+A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;;
+A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;;
+A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;;
+A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;;
+A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;;
+A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;;
+A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;;
+A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;;
+A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;;
+A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;;
+A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;;
+A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;;
+A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;;
+A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;;
+A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;;
+A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;;
+A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;;
+A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;;
+A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;;
+A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;;
+A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;;
+A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;;
+A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;;
+A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;;
+A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;;
+A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;;
+A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;;
+A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;;
+A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;;
+A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;;
+A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;;
+A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;;
+A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;;
+A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;;
+A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;;
+A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;;
+A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;;
+A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;;
+A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;;
+A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;;
+A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;;
+A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;;
+A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;;
+A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;;
+A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;;
+A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;;
+A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;;
+A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;;
+A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;;
+A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;;
+A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;;
+A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;;
+A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;;
+A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;;
+A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;;
+A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;;
+A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;;
+A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;;
+A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;;
+A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;;
+A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;;
+A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;;
+A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;;
+A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;;
+A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;;
+A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;;
+A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;;
+A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;;
+A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;;
+A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;;
+A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;;
+A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;;
+A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;;
+A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;;
+A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;;
+A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;;
+A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;;
+A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;;
+A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;;
+A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;;
+A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;;
+A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;;
+A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;;
+A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;;
+A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;;
+A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;;
+A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;;
+A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;;
+A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;;
+A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;;
+A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;;
+A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;;
+A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;;
+A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;;
+A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;;
+A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;;
+A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;;
+A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;;
+A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;;
+A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;;
+A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;;
+A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;;
+A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;;
+A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;;
+A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;;
+A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;;
+A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;;
+A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;;
+A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;;
+A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;;
+A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;;
+A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;;
+A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;;
+A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;;
+A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;;
+A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;;
+A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;;
+A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;;
+A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;;
+A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;;
+A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;;
+A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;;
+A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;;
+A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;
+A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;;
+A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;;
+A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;;
+A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;;
+A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;
+A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;;
+A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;
+A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;;
+A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;;
+A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;;
+A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;;
+A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;
+A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;;
+A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;
+A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;;
+A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;;
+A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;
+A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;
+A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;;
+A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;
+A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;;
+A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;;
+A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;;
+A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;;
+A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;;
+A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;;
+A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;;
+A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;;
+A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;;
+A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;;
+A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;;
+A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;;
+A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;;
+A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;;
+A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;;
+A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;;
+A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;;
+A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;;
+A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;;
+A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;;
+A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;;
+A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;;
+A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;;
+A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;;
+A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;;
+A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;;
+A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;;
+A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;;
+A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;;
+A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;;
+A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;;
+A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;;
+A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;;
+A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;;
+A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;;
+A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;;
+A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;;
+A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;;
+A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;;
+A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;;
+A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;;
+A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;;
+A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;;
+A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;;
+A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;;
+A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;;
+A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;;
+A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;;
+A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;;
+A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;;
+A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;;
+A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;;
+A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;;
+A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;;
+A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;;
+A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;;
+A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;;
+A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;;
+A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;;
+A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;;
+A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;;
+A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;;
+A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;;
+A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;;
+A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;;
+A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;;
+A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;;
+A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;;
+A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;;
+A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;;
+A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;;
+A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;;
+A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;;
+A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;;
+A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;;
+A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;;
+A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;;
+A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;;
+A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;;
+A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;;
+A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;;
+A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;;
+A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;;
+A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;;
+A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;;
+A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;;
+A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;;
+A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;;
+A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;;
+A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;;
+A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;;
+A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;;
+A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;;
+A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;;
+A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;;
+A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;;
+A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;;
+A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;;
+A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;;
+A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;;
+A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;;
+A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;;
+A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;;
+A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;;
+A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;;
+A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;;
+A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;;
+A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;;
+A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;;
+A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;;
+A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;;
+A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;;
+A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;;
+A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;;
+A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;;
+A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;;
+A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;;
+A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;;
+A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;;
+A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;;
+A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;;
+A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;;
+A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;;
+A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;;
+A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;;
+A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;;
+A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;;
+A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;;
+A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;;
+A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;;
+A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;;
+A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;;
+A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;;
+A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;;
+A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;;
+A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;;
+A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;;
+A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;;
+A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;;
+A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;;
+A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;;
+A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;;
+A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;;
+A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;;
+A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;;
+A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;;
+A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;;
+A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;;
+A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;;
+A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;;
+A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;;
+A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;;
+A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;;
+A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;;
+A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;;
+A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;;
+A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;;
+A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;;
+A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;;
+A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;;
+A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;;
+A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;;
+A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;;
+A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;;
+A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;;
+A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;;
+A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;;
+A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;;
+A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;;
+A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;;
+A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;;
+A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;;
+A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;;
+A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;;
+A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;;
+A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;;
+A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;;
+A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;;
+A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;;
+A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;;
+A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;;
+A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;;
+A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;;
+A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;;
+A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;;
+A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;;
+A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;;
+A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;;
+A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;;
+A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;;
+A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;;
+A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;;
+A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;;
+A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;;
+A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;;
+A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;;
+A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;;
+A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;;
+A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;;
+A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;;
+A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;;
+A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;;
+A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;;
+A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;;
+A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;;
+A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;;
+A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;;
+A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;;
+A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;;
+A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;;
+A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;;
+A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;;
+A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;;
+A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;;
+A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;;
+A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;;
+A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;;
+A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;;
+A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;;
+A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;;
+A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;;
+A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;;
+A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;;
+A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;;
+A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;;
+A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;;
+A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;
+A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;;
+A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;
+A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;;
+A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;;
+A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;;
+A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;
+A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;;
+A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;
+A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;
+A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;;
+A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;
+A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;;
+A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;
+A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;
+A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;;
+A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;
+A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;;
+A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;;
+A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;;
+A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;;
+A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;;
+A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;;
+A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;;
+A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;;
+A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;;
+A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;;
+A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;;
+A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;;
+A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;;
+A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;;
+A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;;
+A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;;
+A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;;
+A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;;
+A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;;
+A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;;
+A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;;
+A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;;
+A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;;
+A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;;
+A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;;
+A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;;
+A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;;
+A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;;
+A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;;
+A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;;
+A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;;
+A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;;
+A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;;
+A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;;
+A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;;
+A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;;
+A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;;
+A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;;
+A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;;
+A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;;
+A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;;
+A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;;
+A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;;
+A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;;
+A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;;
+A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;;
+A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;;
+A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;;
+A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;;
+A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;;
+A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;;
+A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;;
+A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;;
+A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;;
+A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;;
+A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;;
+A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;;
+A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;;
+A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;;
+A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;;
+A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;;
+A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;;
+A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;;
+A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;;
+A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;;
+A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;;
+A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;;
+A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;;
+A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;;
+A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;;
+A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;;
+A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;;
+A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;;
+A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;;
+A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;;
+A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;;
+A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;;
+A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;;
+A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;;
+A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;;
+A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;;
+A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;;
+A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;;
+A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;;
+A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;;
+A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;;
+A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;;
+A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;;
+A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;;
+A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;;
+A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;;
+A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;;
+A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;;
+A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;;
+A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;;
+A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;;
+A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;;
+A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;;
+A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;;
+A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;;
+A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;;
+A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;;
+A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;;
+A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;;
+A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;;
+A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;;
+A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;;
+A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;;
+A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;;
+A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;;
+A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;;
+A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;;
+A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;;
+A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;;
+A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;;
+A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;;
+A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;;
+A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;;
+A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;;
+A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;;
+A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;;
+A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;;
+A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;;
+A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;;
+A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;;
+A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;;
+A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;;
+A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;;
+A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;;
+A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;;
+A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;;
+A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;;
+A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;;
+A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;;
+A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;;
+A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;;
+A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;;
+A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;;
+A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;;
+A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;;
+A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;;
+A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;;
+A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;;
+A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;;
+A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;;
+A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;;
+A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;;
+A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;;
+A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;;
+A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;;
+A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;;
+A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;;
+A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;;
+A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;;
+A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;;
+A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;;
+A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;;
+A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;;
+A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;;
+A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;;
+A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;;
+A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;;
+A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;;
+A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;;
+A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;;
+A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;;
+A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;;
+A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;;
+A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;;
+A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;;
+A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;;
+A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;;
+A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;;
+A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;;
+A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;;
+A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;;
+A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;;
+A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;;
+A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;;
+A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;;
+A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;;
+A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;;
+A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;;
+A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;;
+A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;;
+A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;;
+A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;;
+A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;;
+A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;;
+A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;;
+A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;;
+A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;;
+A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;;
+A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;;
+A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;
+A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;;
+A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;;
+A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;
+A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;;
+A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;;
+A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;;
+A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;;
+A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;;
+A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;;
+A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;;
+A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;
+A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;;
+A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;;
+A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;
+A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;
+A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;;
+A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;;
+A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;
+A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;;
+A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;;
+A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;;
+A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;;
+A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;;
+A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;;
+A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;;
+A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;;
+A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
+A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;;
+A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;;
+A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;;
+A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;;
+A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;;
+A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;;
+A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;;
+A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;;
+A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;;
+A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
+A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;;
+A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;;
+A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
+A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;;
+A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;;
+A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;;
+A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;;
+A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;;
+A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;;
+A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;;
+A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;;
+A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;;
+A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;
+A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;;
+A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;
+A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;;
+A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;;
+A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;;
+A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;;
+A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;;
+A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;;
+A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;;
+A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;
+A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;;
+A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;
+A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;
+A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;;
+A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;
+A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;;
+A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;;
+A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;;
+A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;;
+A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;;
+A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;;
+A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;;
+A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;;
+A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;;
+A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;;
+A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;;
+A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;;
+A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;;
+A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;;
+A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;;
+A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;;
+A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;;
+A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;;
+A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;;
+A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;;
+A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;;
+A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;;
+A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;;
+A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;;
+A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;;
+A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;;
+A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;;
+A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;;
+A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;;
+A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;;
+A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;;
+A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;;
+A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;;
+A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;;
+A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;;
+A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;;
+A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;;
+A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;;
+A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;;
+A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;
+A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;
+A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;
+A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;
+A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;
+A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;
+A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;
+A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;
+A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;
+A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;
+A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;
+A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;
+A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;
+A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;
+A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;
+A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;
+A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;
+A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;
+A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
+A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
+A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
+A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
+A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;;
+A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;;
+A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
+A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
+A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
+A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;
+A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;
+A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;
+A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;
+A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;
+A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;
+A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;
+A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;
+A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;
+A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
+A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
+A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
+A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
+A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;;
+A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
+A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
+A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
+A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;
+A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;
+A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;
+A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;
+A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;
+A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
+A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
+A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
+A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
+A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;;
+A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
+A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
+A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
+A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;;
+A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
+A500;VAI SYLLABLE EE;Lo;0;L;;;;;N;;;;;
+A501;VAI SYLLABLE EEN;Lo;0;L;;;;;N;;;;;
+A502;VAI SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
+A503;VAI SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
+A504;VAI SYLLABLE WEEN;Lo;0;L;;;;;N;;;;;
+A505;VAI SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
+A506;VAI SYLLABLE BHEE;Lo;0;L;;;;;N;;;;;
+A507;VAI SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
+A508;VAI SYLLABLE MBEE;Lo;0;L;;;;;N;;;;;
+A509;VAI SYLLABLE KPEE;Lo;0;L;;;;;N;;;;;
+A50A;VAI SYLLABLE MGBEE;Lo;0;L;;;;;N;;;;;
+A50B;VAI SYLLABLE GBEE;Lo;0;L;;;;;N;;;;;
+A50C;VAI SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
+A50D;VAI SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
+A50E;VAI SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
+A50F;VAI SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
+A510;VAI SYLLABLE DHEE;Lo;0;L;;;;;N;;;;;
+A511;VAI SYLLABLE DHHEE;Lo;0;L;;;;;N;;;;;
+A512;VAI SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
+A513;VAI SYLLABLE REE;Lo;0;L;;;;;N;;;;;
+A514;VAI SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
+A515;VAI SYLLABLE NDEE;Lo;0;L;;;;;N;;;;;
+A516;VAI SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
+A517;VAI SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
+A518;VAI SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
+A519;VAI SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
+A51A;VAI SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
+A51B;VAI SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
+A51C;VAI SYLLABLE NJEE;Lo;0;L;;;;;N;;;;;
+A51D;VAI SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
+A51E;VAI SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
+A51F;VAI SYLLABLE NGGEE;Lo;0;L;;;;;N;;;;;
+A520;VAI SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
+A521;VAI SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
+A522;VAI SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
+A523;VAI SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
+A524;VAI SYLLABLE I;Lo;0;L;;;;;N;;;;;
+A525;VAI SYLLABLE IN;Lo;0;L;;;;;N;;;;;
+A526;VAI SYLLABLE HI;Lo;0;L;;;;;N;;;;;
+A527;VAI SYLLABLE HIN;Lo;0;L;;;;;N;;;;;
+A528;VAI SYLLABLE WI;Lo;0;L;;;;;N;;;;;
+A529;VAI SYLLABLE WIN;Lo;0;L;;;;;N;;;;;
+A52A;VAI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+A52B;VAI SYLLABLE BHI;Lo;0;L;;;;;N;;;;;
+A52C;VAI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+A52D;VAI SYLLABLE MBI;Lo;0;L;;;;;N;;;;;
+A52E;VAI SYLLABLE KPI;Lo;0;L;;;;;N;;;;;
+A52F;VAI SYLLABLE MGBI;Lo;0;L;;;;;N;;;;;
+A530;VAI SYLLABLE GBI;Lo;0;L;;;;;N;;;;;
+A531;VAI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+A532;VAI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+A533;VAI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+A534;VAI SYLLABLE THI;Lo;0;L;;;;;N;;;;;
+A535;VAI SYLLABLE DHI;Lo;0;L;;;;;N;;;;;
+A536;VAI SYLLABLE DHHI;Lo;0;L;;;;;N;;;;;
+A537;VAI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+A538;VAI SYLLABLE RI;Lo;0;L;;;;;N;;;;;
+A539;VAI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+A53A;VAI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
+A53B;VAI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+A53C;VAI SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
+A53D;VAI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+A53E;VAI SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
+A53F;VAI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+A540;VAI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+A541;VAI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
+A542;VAI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+A543;VAI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+A544;VAI SYLLABLE NGGI;Lo;0;L;;;;;N;;;;;
+A545;VAI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+A546;VAI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+A547;VAI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+A548;VAI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+A549;VAI SYLLABLE A;Lo;0;L;;;;;N;;;;;
+A54A;VAI SYLLABLE AN;Lo;0;L;;;;;N;;;;;
+A54B;VAI SYLLABLE NGAN;Lo;0;L;;;;;N;;;;;
+A54C;VAI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+A54D;VAI SYLLABLE HAN;Lo;0;L;;;;;N;;;;;
+A54E;VAI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+A54F;VAI SYLLABLE WAN;Lo;0;L;;;;;N;;;;;
+A550;VAI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+A551;VAI SYLLABLE BHA;Lo;0;L;;;;;N;;;;;
+A552;VAI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+A553;VAI SYLLABLE MBA;Lo;0;L;;;;;N;;;;;
+A554;VAI SYLLABLE KPA;Lo;0;L;;;;;N;;;;;
+A555;VAI SYLLABLE KPAN;Lo;0;L;;;;;N;;;;;
+A556;VAI SYLLABLE MGBA;Lo;0;L;;;;;N;;;;;
+A557;VAI SYLLABLE GBA;Lo;0;L;;;;;N;;;;;
+A558;VAI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+A559;VAI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+A55A;VAI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+A55B;VAI SYLLABLE THA;Lo;0;L;;;;;N;;;;;
+A55C;VAI SYLLABLE DHA;Lo;0;L;;;;;N;;;;;
+A55D;VAI SYLLABLE DHHA;Lo;0;L;;;;;N;;;;;
+A55E;VAI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+A55F;VAI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+A560;VAI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+A561;VAI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
+A562;VAI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+A563;VAI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+A564;VAI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+A565;VAI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+A566;VAI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+A567;VAI SYLLABLE JA;Lo;0;L;;;;;N;;;;;
+A568;VAI SYLLABLE NJA;Lo;0;L;;;;;N;;;;;
+A569;VAI SYLLABLE YA;Lo;0;L;;;;;N;;;;;
+A56A;VAI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+A56B;VAI SYLLABLE KAN;Lo;0;L;;;;;N;;;;;
+A56C;VAI SYLLABLE NGGA;Lo;0;L;;;;;N;;;;;
+A56D;VAI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+A56E;VAI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+A56F;VAI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+A570;VAI SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
+A571;VAI SYLLABLE OO;Lo;0;L;;;;;N;;;;;
+A572;VAI SYLLABLE OON;Lo;0;L;;;;;N;;;;;
+A573;VAI SYLLABLE HOO;Lo;0;L;;;;;N;;;;;
+A574;VAI SYLLABLE WOO;Lo;0;L;;;;;N;;;;;
+A575;VAI SYLLABLE WOON;Lo;0;L;;;;;N;;;;;
+A576;VAI SYLLABLE POO;Lo;0;L;;;;;N;;;;;
+A577;VAI SYLLABLE BHOO;Lo;0;L;;;;;N;;;;;
+A578;VAI SYLLABLE BOO;Lo;0;L;;;;;N;;;;;
+A579;VAI SYLLABLE MBOO;Lo;0;L;;;;;N;;;;;
+A57A;VAI SYLLABLE KPOO;Lo;0;L;;;;;N;;;;;
+A57B;VAI SYLLABLE MGBOO;Lo;0;L;;;;;N;;;;;
+A57C;VAI SYLLABLE GBOO;Lo;0;L;;;;;N;;;;;
+A57D;VAI SYLLABLE FOO;Lo;0;L;;;;;N;;;;;
+A57E;VAI SYLLABLE VOO;Lo;0;L;;;;;N;;;;;
+A57F;VAI SYLLABLE TOO;Lo;0;L;;;;;N;;;;;
+A580;VAI SYLLABLE THOO;Lo;0;L;;;;;N;;;;;
+A581;VAI SYLLABLE DHOO;Lo;0;L;;;;;N;;;;;
+A582;VAI SYLLABLE DHHOO;Lo;0;L;;;;;N;;;;;
+A583;VAI SYLLABLE LOO;Lo;0;L;;;;;N;;;;;
+A584;VAI SYLLABLE ROO;Lo;0;L;;;;;N;;;;;
+A585;VAI SYLLABLE DOO;Lo;0;L;;;;;N;;;;;
+A586;VAI SYLLABLE NDOO;Lo;0;L;;;;;N;;;;;
+A587;VAI SYLLABLE SOO;Lo;0;L;;;;;N;;;;;
+A588;VAI SYLLABLE SHOO;Lo;0;L;;;;;N;;;;;
+A589;VAI SYLLABLE ZOO;Lo;0;L;;;;;N;;;;;
+A58A;VAI SYLLABLE ZHOO;Lo;0;L;;;;;N;;;;;
+A58B;VAI SYLLABLE COO;Lo;0;L;;;;;N;;;;;
+A58C;VAI SYLLABLE JOO;Lo;0;L;;;;;N;;;;;
+A58D;VAI SYLLABLE NJOO;Lo;0;L;;;;;N;;;;;
+A58E;VAI SYLLABLE YOO;Lo;0;L;;;;;N;;;;;
+A58F;VAI SYLLABLE KOO;Lo;0;L;;;;;N;;;;;
+A590;VAI SYLLABLE NGGOO;Lo;0;L;;;;;N;;;;;
+A591;VAI SYLLABLE GOO;Lo;0;L;;;;;N;;;;;
+A592;VAI SYLLABLE MOO;Lo;0;L;;;;;N;;;;;
+A593;VAI SYLLABLE NOO;Lo;0;L;;;;;N;;;;;
+A594;VAI SYLLABLE NYOO;Lo;0;L;;;;;N;;;;;
+A595;VAI SYLLABLE U;Lo;0;L;;;;;N;;;;;
+A596;VAI SYLLABLE UN;Lo;0;L;;;;;N;;;;;
+A597;VAI SYLLABLE HU;Lo;0;L;;;;;N;;;;;
+A598;VAI SYLLABLE HUN;Lo;0;L;;;;;N;;;;;
+A599;VAI SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+A59A;VAI SYLLABLE WUN;Lo;0;L;;;;;N;;;;;
+A59B;VAI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+A59C;VAI SYLLABLE BHU;Lo;0;L;;;;;N;;;;;
+A59D;VAI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+A59E;VAI SYLLABLE MBU;Lo;0;L;;;;;N;;;;;
+A59F;VAI SYLLABLE KPU;Lo;0;L;;;;;N;;;;;
+A5A0;VAI SYLLABLE MGBU;Lo;0;L;;;;;N;;;;;
+A5A1;VAI SYLLABLE GBU;Lo;0;L;;;;;N;;;;;
+A5A2;VAI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+A5A3;VAI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+A5A4;VAI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+A5A5;VAI SYLLABLE THU;Lo;0;L;;;;;N;;;;;
+A5A6;VAI SYLLABLE DHU;Lo;0;L;;;;;N;;;;;
+A5A7;VAI SYLLABLE DHHU;Lo;0;L;;;;;N;;;;;
+A5A8;VAI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+A5A9;VAI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+A5AA;VAI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+A5AB;VAI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
+A5AC;VAI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+A5AD;VAI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+A5AE;VAI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+A5AF;VAI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+A5B0;VAI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+A5B1;VAI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+A5B2;VAI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
+A5B3;VAI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+A5B4;VAI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+A5B5;VAI SYLLABLE NGGU;Lo;0;L;;;;;N;;;;;
+A5B6;VAI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+A5B7;VAI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+A5B8;VAI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+A5B9;VAI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+A5BA;VAI SYLLABLE O;Lo;0;L;;;;;N;;;;;
+A5BB;VAI SYLLABLE ON;Lo;0;L;;;;;N;;;;;
+A5BC;VAI SYLLABLE NGON;Lo;0;L;;;;;N;;;;;
+A5BD;VAI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+A5BE;VAI SYLLABLE HON;Lo;0;L;;;;;N;;;;;
+A5BF;VAI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+A5C0;VAI SYLLABLE WON;Lo;0;L;;;;;N;;;;;
+A5C1;VAI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+A5C2;VAI SYLLABLE BHO;Lo;0;L;;;;;N;;;;;
+A5C3;VAI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+A5C4;VAI SYLLABLE MBO;Lo;0;L;;;;;N;;;;;
+A5C5;VAI SYLLABLE KPO;Lo;0;L;;;;;N;;;;;
+A5C6;VAI SYLLABLE MGBO;Lo;0;L;;;;;N;;;;;
+A5C7;VAI SYLLABLE GBO;Lo;0;L;;;;;N;;;;;
+A5C8;VAI SYLLABLE GBON;Lo;0;L;;;;;N;;;;;
+A5C9;VAI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+A5CA;VAI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+A5CB;VAI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+A5CC;VAI SYLLABLE THO;Lo;0;L;;;;;N;;;;;
+A5CD;VAI SYLLABLE DHO;Lo;0;L;;;;;N;;;;;
+A5CE;VAI SYLLABLE DHHO;Lo;0;L;;;;;N;;;;;
+A5CF;VAI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+A5D0;VAI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+A5D1;VAI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+A5D2;VAI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
+A5D3;VAI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+A5D4;VAI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+A5D5;VAI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+A5D6;VAI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+A5D7;VAI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+A5D8;VAI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+A5D9;VAI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
+A5DA;VAI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+A5DB;VAI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+A5DC;VAI SYLLABLE NGGO;Lo;0;L;;;;;N;;;;;
+A5DD;VAI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+A5DE;VAI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+A5DF;VAI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+A5E0;VAI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+A5E1;VAI SYLLABLE E;Lo;0;L;;;;;N;;;;;
+A5E2;VAI SYLLABLE EN;Lo;0;L;;;;;N;;;;;
+A5E3;VAI SYLLABLE NGEN;Lo;0;L;;;;;N;;;;;
+A5E4;VAI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+A5E5;VAI SYLLABLE HEN;Lo;0;L;;;;;N;;;;;
+A5E6;VAI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+A5E7;VAI SYLLABLE WEN;Lo;0;L;;;;;N;;;;;
+A5E8;VAI SYLLABLE PE;Lo;0;L;;;;;N;;;;;
+A5E9;VAI SYLLABLE BHE;Lo;0;L;;;;;N;;;;;
+A5EA;VAI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+A5EB;VAI SYLLABLE MBE;Lo;0;L;;;;;N;;;;;
+A5EC;VAI SYLLABLE KPE;Lo;0;L;;;;;N;;;;;
+A5ED;VAI SYLLABLE KPEN;Lo;0;L;;;;;N;;;;;
+A5EE;VAI SYLLABLE MGBE;Lo;0;L;;;;;N;;;;;
+A5EF;VAI SYLLABLE GBE;Lo;0;L;;;;;N;;;;;
+A5F0;VAI SYLLABLE GBEN;Lo;0;L;;;;;N;;;;;
+A5F1;VAI SYLLABLE FE;Lo;0;L;;;;;N;;;;;
+A5F2;VAI SYLLABLE VE;Lo;0;L;;;;;N;;;;;
+A5F3;VAI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+A5F4;VAI SYLLABLE THE;Lo;0;L;;;;;N;;;;;
+A5F5;VAI SYLLABLE DHE;Lo;0;L;;;;;N;;;;;
+A5F6;VAI SYLLABLE DHHE;Lo;0;L;;;;;N;;;;;
+A5F7;VAI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+A5F8;VAI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+A5F9;VAI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+A5FA;VAI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
+A5FB;VAI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+A5FC;VAI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+A5FD;VAI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+A5FE;VAI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+A5FF;VAI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+A600;VAI SYLLABLE JE;Lo;0;L;;;;;N;;;;;
+A601;VAI SYLLABLE NJE;Lo;0;L;;;;;N;;;;;
+A602;VAI SYLLABLE YE;Lo;0;L;;;;;N;;;;;
+A603;VAI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+A604;VAI SYLLABLE NGGE;Lo;0;L;;;;;N;;;;;
+A605;VAI SYLLABLE NGGEN;Lo;0;L;;;;;N;;;;;
+A606;VAI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+A607;VAI SYLLABLE GEN;Lo;0;L;;;;;N;;;;;
+A608;VAI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+A609;VAI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+A60A;VAI SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
+A60B;VAI SYLLABLE NG;Lo;0;L;;;;;N;;;;;
+A60C;VAI SYLLABLE LENGTHENER;Lm;0;L;;;;;N;;;;;
+A60D;VAI COMMA;Po;0;ON;;;;;N;;;;;
+A60E;VAI FULL STOP;Po;0;ON;;;;;N;;;;;
+A60F;VAI QUESTION MARK;Po;0;ON;;;;;N;;;;;
+A610;VAI SYLLABLE NDOLE FA;Lo;0;L;;;;;N;;;;;
+A611;VAI SYLLABLE NDOLE KA;Lo;0;L;;;;;N;;;;;
+A612;VAI SYLLABLE NDOLE SOO;Lo;0;L;;;;;N;;;;;
+A613;VAI SYMBOL FEENG;Lo;0;L;;;;;N;;;;;
+A614;VAI SYMBOL KEENG;Lo;0;L;;;;;N;;;;;
+A615;VAI SYMBOL TING;Lo;0;L;;;;;N;;;;;
+A616;VAI SYMBOL NII;Lo;0;L;;;;;N;;;;;
+A617;VAI SYMBOL BANG;Lo;0;L;;;;;N;;;;;
+A618;VAI SYMBOL FAA;Lo;0;L;;;;;N;;;;;
+A619;VAI SYMBOL TAA;Lo;0;L;;;;;N;;;;;
+A61A;VAI SYMBOL DANG;Lo;0;L;;;;;N;;;;;
+A61B;VAI SYMBOL DOONG;Lo;0;L;;;;;N;;;;;
+A61C;VAI SYMBOL KUNG;Lo;0;L;;;;;N;;;;;
+A61D;VAI SYMBOL TONG;Lo;0;L;;;;;N;;;;;
+A61E;VAI SYMBOL DO-O;Lo;0;L;;;;;N;;;;;
+A61F;VAI SYMBOL JONG;Lo;0;L;;;;;N;;;;;
+A620;VAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+A621;VAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+A622;VAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+A623;VAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+A624;VAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+A625;VAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+A626;VAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+A627;VAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+A628;VAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+A629;VAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+A62A;VAI SYLLABLE NDOLE MA;Lo;0;L;;;;;N;;;;;
+A62B;VAI SYLLABLE NDOLE DO;Lo;0;L;;;;;N;;;;;
+A640;CYRILLIC CAPITAL LETTER ZEMLYA;Lu;0;L;;;;;N;;;;A641;
+A641;CYRILLIC SMALL LETTER ZEMLYA;Ll;0;L;;;;;N;;;A640;;A640
+A642;CYRILLIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;A643;
+A643;CYRILLIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;A642;;A642
+A644;CYRILLIC CAPITAL LETTER REVERSED DZE;Lu;0;L;;;;;N;;;;A645;
+A645;CYRILLIC SMALL LETTER REVERSED DZE;Ll;0;L;;;;;N;;;A644;;A644
+A646;CYRILLIC CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;A647;
+A647;CYRILLIC SMALL LETTER IOTA;Ll;0;L;;;;;N;;;A646;;A646
+A648;CYRILLIC CAPITAL LETTER DJERV;Lu;0;L;;;;;N;;;;A649;
+A649;CYRILLIC SMALL LETTER DJERV;Ll;0;L;;;;;N;;;A648;;A648
+A64A;CYRILLIC CAPITAL LETTER MONOGRAPH UK;Lu;0;L;;;;;N;;;;A64B;
+A64B;CYRILLIC SMALL LETTER MONOGRAPH UK;Ll;0;L;;;;;N;;;A64A;;A64A
+A64C;CYRILLIC CAPITAL LETTER BROAD OMEGA;Lu;0;L;;;;;N;;;;A64D;
+A64D;CYRILLIC SMALL LETTER BROAD OMEGA;Ll;0;L;;;;;N;;;A64C;;A64C
+A64E;CYRILLIC CAPITAL LETTER NEUTRAL YER;Lu;0;L;;;;;N;;;;A64F;
+A64F;CYRILLIC SMALL LETTER NEUTRAL YER;Ll;0;L;;;;;N;;;A64E;;A64E
+A650;CYRILLIC CAPITAL LETTER YERU WITH BACK YER;Lu;0;L;;;;;N;;;;A651;
+A651;CYRILLIC SMALL LETTER YERU WITH BACK YER;Ll;0;L;;;;;N;;;A650;;A650
+A652;CYRILLIC CAPITAL LETTER IOTIFIED YAT;Lu;0;L;;;;;N;;;;A653;
+A653;CYRILLIC SMALL LETTER IOTIFIED YAT;Ll;0;L;;;;;N;;;A652;;A652
+A654;CYRILLIC CAPITAL LETTER REVERSED YU;Lu;0;L;;;;;N;;;;A655;
+A655;CYRILLIC SMALL LETTER REVERSED YU;Ll;0;L;;;;;N;;;A654;;A654
+A656;CYRILLIC CAPITAL LETTER IOTIFIED A;Lu;0;L;;;;;N;;;;A657;
+A657;CYRILLIC SMALL LETTER IOTIFIED A;Ll;0;L;;;;;N;;;A656;;A656
+A658;CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A659;
+A659;CYRILLIC SMALL LETTER CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A658;;A658
+A65A;CYRILLIC CAPITAL LETTER BLENDED YUS;Lu;0;L;;;;;N;;;;A65B;
+A65B;CYRILLIC SMALL LETTER BLENDED YUS;Ll;0;L;;;;;N;;;A65A;;A65A
+A65C;CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A65D;
+A65D;CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A65C;;A65C
+A65E;CYRILLIC CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;A65F;
+A65F;CYRILLIC SMALL LETTER YN;Ll;0;L;;;;;N;;;A65E;;A65E
+A662;CYRILLIC CAPITAL LETTER SOFT DE;Lu;0;L;;;;;N;;;;A663;
+A663;CYRILLIC SMALL LETTER SOFT DE;Ll;0;L;;;;;N;;;A662;;A662
+A664;CYRILLIC CAPITAL LETTER SOFT EL;Lu;0;L;;;;;N;;;;A665;
+A665;CYRILLIC SMALL LETTER SOFT EL;Ll;0;L;;;;;N;;;A664;;A664
+A666;CYRILLIC CAPITAL LETTER SOFT EM;Lu;0;L;;;;;N;;;;A667;
+A667;CYRILLIC SMALL LETTER SOFT EM;Ll;0;L;;;;;N;;;A666;;A666
+A668;CYRILLIC CAPITAL LETTER MONOCULAR O;Lu;0;L;;;;;N;;;;A669;
+A669;CYRILLIC SMALL LETTER MONOCULAR O;Ll;0;L;;;;;N;;;A668;;A668
+A66A;CYRILLIC CAPITAL LETTER BINOCULAR O;Lu;0;L;;;;;N;;;;A66B;
+A66B;CYRILLIC SMALL LETTER BINOCULAR O;Ll;0;L;;;;;N;;;A66A;;A66A
+A66C;CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O;Lu;0;L;;;;;N;;;;A66D;
+A66D;CYRILLIC SMALL LETTER DOUBLE MONOCULAR O;Ll;0;L;;;;;N;;;A66C;;A66C
+A66E;CYRILLIC LETTER MULTIOCULAR O;Lo;0;L;;;;;N;;;;;
+A66F;COMBINING CYRILLIC VZMET;Mn;230;NSM;;;;;N;;;;;
+A670;COMBINING CYRILLIC TEN MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+A671;COMBINING CYRILLIC HUNDRED MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+A672;COMBINING CYRILLIC THOUSAND MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+A673;SLAVONIC ASTERISK;Po;0;ON;;;;;N;;;;;
+A67C;COMBINING CYRILLIC KAVYKA;Mn;230;NSM;;;;;N;;;;;
+A67D;COMBINING CYRILLIC PAYEROK;Mn;230;NSM;;;;;N;;;;;
+A67E;CYRILLIC KAVYKA;Po;0;ON;;;;;N;;;;;
+A67F;CYRILLIC PAYEROK;Lm;0;ON;;;;;N;;;;;
+A680;CYRILLIC CAPITAL LETTER DWE;Lu;0;L;;;;;N;;;;A681;
+A681;CYRILLIC SMALL LETTER DWE;Ll;0;L;;;;;N;;;A680;;A680
+A682;CYRILLIC CAPITAL LETTER DZWE;Lu;0;L;;;;;N;;;;A683;
+A683;CYRILLIC SMALL LETTER DZWE;Ll;0;L;;;;;N;;;A682;;A682
+A684;CYRILLIC CAPITAL LETTER ZHWE;Lu;0;L;;;;;N;;;;A685;
+A685;CYRILLIC SMALL LETTER ZHWE;Ll;0;L;;;;;N;;;A684;;A684
+A686;CYRILLIC CAPITAL LETTER CCHE;Lu;0;L;;;;;N;;;;A687;
+A687;CYRILLIC SMALL LETTER CCHE;Ll;0;L;;;;;N;;;A686;;A686
+A688;CYRILLIC CAPITAL LETTER DZZE;Lu;0;L;;;;;N;;;;A689;
+A689;CYRILLIC SMALL LETTER DZZE;Ll;0;L;;;;;N;;;A688;;A688
+A68A;CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;A68B;
+A68B;CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;A68A;;A68A
+A68C;CYRILLIC CAPITAL LETTER TWE;Lu;0;L;;;;;N;;;;A68D;
+A68D;CYRILLIC SMALL LETTER TWE;Ll;0;L;;;;;N;;;A68C;;A68C
+A68E;CYRILLIC CAPITAL LETTER TSWE;Lu;0;L;;;;;N;;;;A68F;
+A68F;CYRILLIC SMALL LETTER TSWE;Ll;0;L;;;;;N;;;A68E;;A68E
+A690;CYRILLIC CAPITAL LETTER TSSE;Lu;0;L;;;;;N;;;;A691;
+A691;CYRILLIC SMALL LETTER TSSE;Ll;0;L;;;;;N;;;A690;;A690
+A692;CYRILLIC CAPITAL LETTER TCHE;Lu;0;L;;;;;N;;;;A693;
+A693;CYRILLIC SMALL LETTER TCHE;Ll;0;L;;;;;N;;;A692;;A692
+A694;CYRILLIC CAPITAL LETTER HWE;Lu;0;L;;;;;N;;;;A695;
+A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694
+A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697;
+A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696
+A700;MODIFIER LETTER CHINESE TONE YIN PING;Sk;0;ON;;;;;N;;;;;
+A701;MODIFIER LETTER CHINESE TONE YANG PING;Sk;0;ON;;;;;N;;;;;
+A702;MODIFIER LETTER CHINESE TONE YIN SHANG;Sk;0;ON;;;;;N;;;;;
+A703;MODIFIER LETTER CHINESE TONE YANG SHANG;Sk;0;ON;;;;;N;;;;;
+A704;MODIFIER LETTER CHINESE TONE YIN QU;Sk;0;ON;;;;;N;;;;;
+A705;MODIFIER LETTER CHINESE TONE YANG QU;Sk;0;ON;;;;;N;;;;;
+A706;MODIFIER LETTER CHINESE TONE YIN RU;Sk;0;ON;;;;;N;;;;;
+A707;MODIFIER LETTER CHINESE TONE YANG RU;Sk;0;ON;;;;;N;;;;;
+A708;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A709;MODIFIER LETTER HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70A;MODIFIER LETTER MID DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70B;MODIFIER LETTER LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70C;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70D;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70E;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70F;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A710;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A711;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A712;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;;
+A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;;
+A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;;
+A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;;
+A71B;MODIFIER LETTER RAISED UP ARROW;Lm;0;ON;;;;;N;;;;;
+A71C;MODIFIER LETTER RAISED DOWN ARROW;Lm;0;ON;;;;;N;;;;;
+A71D;MODIFIER LETTER RAISED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;;
+A71E;MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;;
+A71F;MODIFIER LETTER LOW INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;;
+A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;;
+A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;;
+A722;LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF;Lu;0;L;;;;;N;;;;A723;
+A723;LATIN SMALL LETTER EGYPTOLOGICAL ALEF;Ll;0;L;;;;;N;;;A722;;A722
+A724;LATIN CAPITAL LETTER EGYPTOLOGICAL AIN;Lu;0;L;;;;;N;;;;A725;
+A725;LATIN SMALL LETTER EGYPTOLOGICAL AIN;Ll;0;L;;;;;N;;;A724;;A724
+A726;LATIN CAPITAL LETTER HENG;Lu;0;L;;;;;N;;;;A727;
+A727;LATIN SMALL LETTER HENG;Ll;0;L;;;;;N;;;A726;;A726
+A728;LATIN CAPITAL LETTER TZ;Lu;0;L;;;;;N;;;;A729;
+A729;LATIN SMALL LETTER TZ;Ll;0;L;;;;;N;;;A728;;A728
+A72A;LATIN CAPITAL LETTER TRESILLO;Lu;0;L;;;;;N;;;;A72B;
+A72B;LATIN SMALL LETTER TRESILLO;Ll;0;L;;;;;N;;;A72A;;A72A
+A72C;LATIN CAPITAL LETTER CUATRILLO;Lu;0;L;;;;;N;;;;A72D;
+A72D;LATIN SMALL LETTER CUATRILLO;Ll;0;L;;;;;N;;;A72C;;A72C
+A72E;LATIN CAPITAL LETTER CUATRILLO WITH COMMA;Lu;0;L;;;;;N;;;;A72F;
+A72F;LATIN SMALL LETTER CUATRILLO WITH COMMA;Ll;0;L;;;;;N;;;A72E;;A72E
+A730;LATIN LETTER SMALL CAPITAL F;Ll;0;L;;;;;N;;;;;
+A731;LATIN LETTER SMALL CAPITAL S;Ll;0;L;;;;;N;;;;;
+A732;LATIN CAPITAL LETTER AA;Lu;0;L;;;;;N;;;;A733;
+A733;LATIN SMALL LETTER AA;Ll;0;L;;;;;N;;;A732;;A732
+A734;LATIN CAPITAL LETTER AO;Lu;0;L;;;;;N;;;;A735;
+A735;LATIN SMALL LETTER AO;Ll;0;L;;;;;N;;;A734;;A734
+A736;LATIN CAPITAL LETTER AU;Lu;0;L;;;;;N;;;;A737;
+A737;LATIN SMALL LETTER AU;Ll;0;L;;;;;N;;;A736;;A736
+A738;LATIN CAPITAL LETTER AV;Lu;0;L;;;;;N;;;;A739;
+A739;LATIN SMALL LETTER AV;Ll;0;L;;;;;N;;;A738;;A738
+A73A;LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR;Lu;0;L;;;;;N;;;;A73B;
+A73B;LATIN SMALL LETTER AV WITH HORIZONTAL BAR;Ll;0;L;;;;;N;;;A73A;;A73A
+A73C;LATIN CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;A73D;
+A73D;LATIN SMALL LETTER AY;Ll;0;L;;;;;N;;;A73C;;A73C
+A73E;LATIN CAPITAL LETTER REVERSED C WITH DOT;Lu;0;L;;;;;N;;;;A73F;
+A73F;LATIN SMALL LETTER REVERSED C WITH DOT;Ll;0;L;;;;;N;;;A73E;;A73E
+A740;LATIN CAPITAL LETTER K WITH STROKE;Lu;0;L;;;;;N;;;;A741;
+A741;LATIN SMALL LETTER K WITH STROKE;Ll;0;L;;;;;N;;;A740;;A740
+A742;LATIN CAPITAL LETTER K WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A743;
+A743;LATIN SMALL LETTER K WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A742;;A742
+A744;LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A745;
+A745;LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE;Ll;0;L;;;;;N;;;A744;;A744
+A746;LATIN CAPITAL LETTER BROKEN L;Lu;0;L;;;;;N;;;;A747;
+A747;LATIN SMALL LETTER BROKEN L;Ll;0;L;;;;;N;;;A746;;A746
+A748;LATIN CAPITAL LETTER L WITH HIGH STROKE;Lu;0;L;;;;;N;;;;A749;
+A749;LATIN SMALL LETTER L WITH HIGH STROKE;Ll;0;L;;;;;N;;;A748;;A748
+A74A;LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY;Lu;0;L;;;;;N;;;;A74B;
+A74B;LATIN SMALL LETTER O WITH LONG STROKE OVERLAY;Ll;0;L;;;;;N;;;A74A;;A74A
+A74C;LATIN CAPITAL LETTER O WITH LOOP;Lu;0;L;;;;;N;;;;A74D;
+A74D;LATIN SMALL LETTER O WITH LOOP;Ll;0;L;;;;;N;;;A74C;;A74C
+A74E;LATIN CAPITAL LETTER OO;Lu;0;L;;;;;N;;;;A74F;
+A74F;LATIN SMALL LETTER OO;Ll;0;L;;;;;N;;;A74E;;A74E
+A750;LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A751;
+A751;LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A750;;A750
+A752;LATIN CAPITAL LETTER P WITH FLOURISH;Lu;0;L;;;;;N;;;;A753;
+A753;LATIN SMALL LETTER P WITH FLOURISH;Ll;0;L;;;;;N;;;A752;;A752
+A754;LATIN CAPITAL LETTER P WITH SQUIRREL TAIL;Lu;0;L;;;;;N;;;;A755;
+A755;LATIN SMALL LETTER P WITH SQUIRREL TAIL;Ll;0;L;;;;;N;;;A754;;A754
+A756;LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A757;
+A757;LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A756;;A756
+A758;LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A759;
+A759;LATIN SMALL LETTER Q WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A758;;A758
+A75A;LATIN CAPITAL LETTER R ROTUNDA;Lu;0;L;;;;;N;;;;A75B;
+A75B;LATIN SMALL LETTER R ROTUNDA;Ll;0;L;;;;;N;;;A75A;;A75A
+A75C;LATIN CAPITAL LETTER RUM ROTUNDA;Lu;0;L;;;;;N;;;;A75D;
+A75D;LATIN SMALL LETTER RUM ROTUNDA;Ll;0;L;;;;;N;;;A75C;;A75C
+A75E;LATIN CAPITAL LETTER V WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A75F;
+A75F;LATIN SMALL LETTER V WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A75E;;A75E
+A760;LATIN CAPITAL LETTER VY;Lu;0;L;;;;;N;;;;A761;
+A761;LATIN SMALL LETTER VY;Ll;0;L;;;;;N;;;A760;;A760
+A762;LATIN CAPITAL LETTER VISIGOTHIC Z;Lu;0;L;;;;;N;;;;A763;
+A763;LATIN SMALL LETTER VISIGOTHIC Z;Ll;0;L;;;;;N;;;A762;;A762
+A764;LATIN CAPITAL LETTER THORN WITH STROKE;Lu;0;L;;;;;N;;;;A765;
+A765;LATIN SMALL LETTER THORN WITH STROKE;Ll;0;L;;;;;N;;;A764;;A764
+A766;LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A767;
+A767;LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A766;;A766
+A768;LATIN CAPITAL LETTER VEND;Lu;0;L;;;;;N;;;;A769;
+A769;LATIN SMALL LETTER VEND;Ll;0;L;;;;;N;;;A768;;A768
+A76A;LATIN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;A76B;
+A76B;LATIN SMALL LETTER ET;Ll;0;L;;;;;N;;;A76A;;A76A
+A76C;LATIN CAPITAL LETTER IS;Lu;0;L;;;;;N;;;;A76D;
+A76D;LATIN SMALL LETTER IS;Ll;0;L;;;;;N;;;A76C;;A76C
+A76E;LATIN CAPITAL LETTER CON;Lu;0;L;;;;;N;;;;A76F;
+A76F;LATIN SMALL LETTER CON;Ll;0;L;;;;;N;;;A76E;;A76E
+A770;MODIFIER LETTER US;Lm;0;L;<super> A76F;;;;N;;;;;
+A771;LATIN SMALL LETTER DUM;Ll;0;L;;;;;N;;;;;
+A772;LATIN SMALL LETTER LUM;Ll;0;L;;;;;N;;;;;
+A773;LATIN SMALL LETTER MUM;Ll;0;L;;;;;N;;;;;
+A774;LATIN SMALL LETTER NUM;Ll;0;L;;;;;N;;;;;
+A775;LATIN SMALL LETTER RUM;Ll;0;L;;;;;N;;;;;
+A776;LATIN LETTER SMALL CAPITAL RUM;Ll;0;L;;;;;N;;;;;
+A777;LATIN SMALL LETTER TUM;Ll;0;L;;;;;N;;;;;
+A778;LATIN SMALL LETTER UM;Ll;0;L;;;;;N;;;;;
+A779;LATIN CAPITAL LETTER INSULAR D;Lu;0;L;;;;;N;;;;A77A;
+A77A;LATIN SMALL LETTER INSULAR D;Ll;0;L;;;;;N;;;A779;;A779
+A77B;LATIN CAPITAL LETTER INSULAR F;Lu;0;L;;;;;N;;;;A77C;
+A77C;LATIN SMALL LETTER INSULAR F;Ll;0;L;;;;;N;;;A77B;;A77B
+A77D;LATIN CAPITAL LETTER INSULAR G;Lu;0;L;;;;;N;;;;1D79;
+A77E;LATIN CAPITAL LETTER TURNED INSULAR G;Lu;0;L;;;;;N;;;;A77F;
+A77F;LATIN SMALL LETTER TURNED INSULAR G;Ll;0;L;;;;;N;;;A77E;;A77E
+A780;LATIN CAPITAL LETTER TURNED L;Lu;0;L;;;;;N;;;;A781;
+A781;LATIN SMALL LETTER TURNED L;Ll;0;L;;;;;N;;;A780;;A780
+A782;LATIN CAPITAL LETTER INSULAR R;Lu;0;L;;;;;N;;;;A783;
+A783;LATIN SMALL LETTER INSULAR R;Ll;0;L;;;;;N;;;A782;;A782
+A784;LATIN CAPITAL LETTER INSULAR S;Lu;0;L;;;;;N;;;;A785;
+A785;LATIN SMALL LETTER INSULAR S;Ll;0;L;;;;;N;;;A784;;A784
+A786;LATIN CAPITAL LETTER INSULAR T;Lu;0;L;;;;;N;;;;A787;
+A787;LATIN SMALL LETTER INSULAR T;Ll;0;L;;;;;N;;;A786;;A786
+A788;MODIFIER LETTER LOW CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;;;;;
+A789;MODIFIER LETTER COLON;Sk;0;L;;;;;N;;;;;
+A78A;MODIFIER LETTER SHORT EQUALS SIGN;Sk;0;L;;;;;N;;;;;
+A78B;LATIN CAPITAL LETTER SALTILLO;Lu;0;L;;;;;N;;;;A78C;
+A78C;LATIN SMALL LETTER SALTILLO;Ll;0;L;;;;;N;;;A78B;;A78B
+A7FB;LATIN EPIGRAPHIC LETTER REVERSED F;Lo;0;L;;;;;N;;;;;
+A7FC;LATIN EPIGRAPHIC LETTER REVERSED P;Lo;0;L;;;;;N;;;;;
+A7FD;LATIN EPIGRAPHIC LETTER INVERTED M;Lo;0;L;;;;;N;;;;;
+A7FE;LATIN EPIGRAPHIC LETTER I LONGA;Lo;0;L;;;;;N;;;;;
+A7FF;LATIN EPIGRAPHIC LETTER ARCHAIC M;Lo;0;L;;;;;N;;;;;
+A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;;
+A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;;
+A802;SYLOTI NAGRI SIGN DVISVARA;Mn;0;NSM;;;;;N;;;;;
+A803;SYLOTI NAGRI LETTER U;Lo;0;L;;;;;N;;;;;
+A804;SYLOTI NAGRI LETTER E;Lo;0;L;;;;;N;;;;;
+A805;SYLOTI NAGRI LETTER O;Lo;0;L;;;;;N;;;;;
+A806;SYLOTI NAGRI SIGN HASANTA;Mn;9;NSM;;;;;N;;;;;
+A807;SYLOTI NAGRI LETTER KO;Lo;0;L;;;;;N;;;;;
+A808;SYLOTI NAGRI LETTER KHO;Lo;0;L;;;;;N;;;;;
+A809;SYLOTI NAGRI LETTER GO;Lo;0;L;;;;;N;;;;;
+A80A;SYLOTI NAGRI LETTER GHO;Lo;0;L;;;;;N;;;;;
+A80B;SYLOTI NAGRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+A80C;SYLOTI NAGRI LETTER CO;Lo;0;L;;;;;N;;;;;
+A80D;SYLOTI NAGRI LETTER CHO;Lo;0;L;;;;;N;;;;;
+A80E;SYLOTI NAGRI LETTER JO;Lo;0;L;;;;;N;;;;;
+A80F;SYLOTI NAGRI LETTER JHO;Lo;0;L;;;;;N;;;;;
+A810;SYLOTI NAGRI LETTER TTO;Lo;0;L;;;;;N;;;;;
+A811;SYLOTI NAGRI LETTER TTHO;Lo;0;L;;;;;N;;;;;
+A812;SYLOTI NAGRI LETTER DDO;Lo;0;L;;;;;N;;;;;
+A813;SYLOTI NAGRI LETTER DDHO;Lo;0;L;;;;;N;;;;;
+A814;SYLOTI NAGRI LETTER TO;Lo;0;L;;;;;N;;;;;
+A815;SYLOTI NAGRI LETTER THO;Lo;0;L;;;;;N;;;;;
+A816;SYLOTI NAGRI LETTER DO;Lo;0;L;;;;;N;;;;;
+A817;SYLOTI NAGRI LETTER DHO;Lo;0;L;;;;;N;;;;;
+A818;SYLOTI NAGRI LETTER NO;Lo;0;L;;;;;N;;;;;
+A819;SYLOTI NAGRI LETTER PO;Lo;0;L;;;;;N;;;;;
+A81A;SYLOTI NAGRI LETTER PHO;Lo;0;L;;;;;N;;;;;
+A81B;SYLOTI NAGRI LETTER BO;Lo;0;L;;;;;N;;;;;
+A81C;SYLOTI NAGRI LETTER BHO;Lo;0;L;;;;;N;;;;;
+A81D;SYLOTI NAGRI LETTER MO;Lo;0;L;;;;;N;;;;;
+A81E;SYLOTI NAGRI LETTER RO;Lo;0;L;;;;;N;;;;;
+A81F;SYLOTI NAGRI LETTER LO;Lo;0;L;;;;;N;;;;;
+A820;SYLOTI NAGRI LETTER RRO;Lo;0;L;;;;;N;;;;;
+A821;SYLOTI NAGRI LETTER SO;Lo;0;L;;;;;N;;;;;
+A822;SYLOTI NAGRI LETTER HO;Lo;0;L;;;;;N;;;;;
+A823;SYLOTI NAGRI VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
+A824;SYLOTI NAGRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+A825;SYLOTI NAGRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+A826;SYLOTI NAGRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+A827;SYLOTI NAGRI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;;
+A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;;
+A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;;
+A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;;
+A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;;
+A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;;
+A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;;
+A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;;
+A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;;
+A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;;
+A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;;
+A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;;
+A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;;
+A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;;
+A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;;
+A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;;
+A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;;
+A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;;
+A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;;
+A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;;
+A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;;
+A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;;
+A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;;
+A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;;
+A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;;
+A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;;
+A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;;
+A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;;
+A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;;
+A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;;
+A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;;
+A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;;
+A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;;
+A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;;
+A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;;
+A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;;
+A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;;
+A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;;
+A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;;
+A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;;
+A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;;
+A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;;
+A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;;
+A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;;
+A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;;
+A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;;
+A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;;
+A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;;
+A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;;
+A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;;
+A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;;
+A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;;
+A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;;
+A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;;
+A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;;
+A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;;
+A880;SAURASHTRA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+A881;SAURASHTRA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+A882;SAURASHTRA LETTER A;Lo;0;L;;;;;N;;;;;
+A883;SAURASHTRA LETTER AA;Lo;0;L;;;;;N;;;;;
+A884;SAURASHTRA LETTER I;Lo;0;L;;;;;N;;;;;
+A885;SAURASHTRA LETTER II;Lo;0;L;;;;;N;;;;;
+A886;SAURASHTRA LETTER U;Lo;0;L;;;;;N;;;;;
+A887;SAURASHTRA LETTER UU;Lo;0;L;;;;;N;;;;;
+A888;SAURASHTRA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+A889;SAURASHTRA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+A88A;SAURASHTRA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+A88B;SAURASHTRA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+A88C;SAURASHTRA LETTER E;Lo;0;L;;;;;N;;;;;
+A88D;SAURASHTRA LETTER EE;Lo;0;L;;;;;N;;;;;
+A88E;SAURASHTRA LETTER AI;Lo;0;L;;;;;N;;;;;
+A88F;SAURASHTRA LETTER O;Lo;0;L;;;;;N;;;;;
+A890;SAURASHTRA LETTER OO;Lo;0;L;;;;;N;;;;;
+A891;SAURASHTRA LETTER AU;Lo;0;L;;;;;N;;;;;
+A892;SAURASHTRA LETTER KA;Lo;0;L;;;;;N;;;;;
+A893;SAURASHTRA LETTER KHA;Lo;0;L;;;;;N;;;;;
+A894;SAURASHTRA LETTER GA;Lo;0;L;;;;;N;;;;;
+A895;SAURASHTRA LETTER GHA;Lo;0;L;;;;;N;;;;;
+A896;SAURASHTRA LETTER NGA;Lo;0;L;;;;;N;;;;;
+A897;SAURASHTRA LETTER CA;Lo;0;L;;;;;N;;;;;
+A898;SAURASHTRA LETTER CHA;Lo;0;L;;;;;N;;;;;
+A899;SAURASHTRA LETTER JA;Lo;0;L;;;;;N;;;;;
+A89A;SAURASHTRA LETTER JHA;Lo;0;L;;;;;N;;;;;
+A89B;SAURASHTRA LETTER NYA;Lo;0;L;;;;;N;;;;;
+A89C;SAURASHTRA LETTER TTA;Lo;0;L;;;;;N;;;;;
+A89D;SAURASHTRA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+A89E;SAURASHTRA LETTER DDA;Lo;0;L;;;;;N;;;;;
+A89F;SAURASHTRA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+A8A0;SAURASHTRA LETTER NNA;Lo;0;L;;;;;N;;;;;
+A8A1;SAURASHTRA LETTER TA;Lo;0;L;;;;;N;;;;;
+A8A2;SAURASHTRA LETTER THA;Lo;0;L;;;;;N;;;;;
+A8A3;SAURASHTRA LETTER DA;Lo;0;L;;;;;N;;;;;
+A8A4;SAURASHTRA LETTER DHA;Lo;0;L;;;;;N;;;;;
+A8A5;SAURASHTRA LETTER NA;Lo;0;L;;;;;N;;;;;
+A8A6;SAURASHTRA LETTER PA;Lo;0;L;;;;;N;;;;;
+A8A7;SAURASHTRA LETTER PHA;Lo;0;L;;;;;N;;;;;
+A8A8;SAURASHTRA LETTER BA;Lo;0;L;;;;;N;;;;;
+A8A9;SAURASHTRA LETTER BHA;Lo;0;L;;;;;N;;;;;
+A8AA;SAURASHTRA LETTER MA;Lo;0;L;;;;;N;;;;;
+A8AB;SAURASHTRA LETTER YA;Lo;0;L;;;;;N;;;;;
+A8AC;SAURASHTRA LETTER RA;Lo;0;L;;;;;N;;;;;
+A8AD;SAURASHTRA LETTER LA;Lo;0;L;;;;;N;;;;;
+A8AE;SAURASHTRA LETTER VA;Lo;0;L;;;;;N;;;;;
+A8AF;SAURASHTRA LETTER SHA;Lo;0;L;;;;;N;;;;;
+A8B0;SAURASHTRA LETTER SSA;Lo;0;L;;;;;N;;;;;
+A8B1;SAURASHTRA LETTER SA;Lo;0;L;;;;;N;;;;;
+A8B2;SAURASHTRA LETTER HA;Lo;0;L;;;;;N;;;;;
+A8B3;SAURASHTRA LETTER LLA;Lo;0;L;;;;;N;;;;;
+A8B4;SAURASHTRA CONSONANT SIGN HAARU;Mc;0;L;;;;;N;;;;;
+A8B5;SAURASHTRA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+A8B6;SAURASHTRA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+A8B7;SAURASHTRA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+A8B8;SAURASHTRA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+A8B9;SAURASHTRA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+A8BA;SAURASHTRA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+A8BB;SAURASHTRA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+A8BC;SAURASHTRA VOWEL SIGN VOCALIC L;Mc;0;L;;;;;N;;;;;
+A8BD;SAURASHTRA VOWEL SIGN VOCALIC LL;Mc;0;L;;;;;N;;;;;
+A8BE;SAURASHTRA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+A8BF;SAURASHTRA VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+A8C0;SAURASHTRA VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+A8C1;SAURASHTRA VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+A8C2;SAURASHTRA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+A8C3;SAURASHTRA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+A8C4;SAURASHTRA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+A8CE;SAURASHTRA DANDA;Po;0;L;;;;;N;;;;;
+A8CF;SAURASHTRA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+A8D0;SAURASHTRA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+A8D1;SAURASHTRA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+A8D2;SAURASHTRA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+A8D3;SAURASHTRA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+A8D4;SAURASHTRA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+A8D5;SAURASHTRA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+A8D6;SAURASHTRA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+A8D7;SAURASHTRA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+A8D8;SAURASHTRA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+A8D9;SAURASHTRA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+A900;KAYAH LI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+A901;KAYAH LI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+A902;KAYAH LI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+A903;KAYAH LI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+A904;KAYAH LI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+A905;KAYAH LI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+A906;KAYAH LI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+A907;KAYAH LI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+A908;KAYAH LI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+A909;KAYAH LI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+A90A;KAYAH LI LETTER KA;Lo;0;L;;;;;N;;;;;
+A90B;KAYAH LI LETTER KHA;Lo;0;L;;;;;N;;;;;
+A90C;KAYAH LI LETTER GA;Lo;0;L;;;;;N;;;;;
+A90D;KAYAH LI LETTER NGA;Lo;0;L;;;;;N;;;;;
+A90E;KAYAH LI LETTER SA;Lo;0;L;;;;;N;;;;;
+A90F;KAYAH LI LETTER SHA;Lo;0;L;;;;;N;;;;;
+A910;KAYAH LI LETTER ZA;Lo;0;L;;;;;N;;;;;
+A911;KAYAH LI LETTER NYA;Lo;0;L;;;;;N;;;;;
+A912;KAYAH LI LETTER TA;Lo;0;L;;;;;N;;;;;
+A913;KAYAH LI LETTER HTA;Lo;0;L;;;;;N;;;;;
+A914;KAYAH LI LETTER NA;Lo;0;L;;;;;N;;;;;
+A915;KAYAH LI LETTER PA;Lo;0;L;;;;;N;;;;;
+A916;KAYAH LI LETTER PHA;Lo;0;L;;;;;N;;;;;
+A917;KAYAH LI LETTER MA;Lo;0;L;;;;;N;;;;;
+A918;KAYAH LI LETTER DA;Lo;0;L;;;;;N;;;;;
+A919;KAYAH LI LETTER BA;Lo;0;L;;;;;N;;;;;
+A91A;KAYAH LI LETTER RA;Lo;0;L;;;;;N;;;;;
+A91B;KAYAH LI LETTER YA;Lo;0;L;;;;;N;;;;;
+A91C;KAYAH LI LETTER LA;Lo;0;L;;;;;N;;;;;
+A91D;KAYAH LI LETTER WA;Lo;0;L;;;;;N;;;;;
+A91E;KAYAH LI LETTER THA;Lo;0;L;;;;;N;;;;;
+A91F;KAYAH LI LETTER HA;Lo;0;L;;;;;N;;;;;
+A920;KAYAH LI LETTER VA;Lo;0;L;;;;;N;;;;;
+A921;KAYAH LI LETTER CA;Lo;0;L;;;;;N;;;;;
+A922;KAYAH LI LETTER A;Lo;0;L;;;;;N;;;;;
+A923;KAYAH LI LETTER OE;Lo;0;L;;;;;N;;;;;
+A924;KAYAH LI LETTER I;Lo;0;L;;;;;N;;;;;
+A925;KAYAH LI LETTER OO;Lo;0;L;;;;;N;;;;;
+A926;KAYAH LI VOWEL UE;Mn;0;NSM;;;;;N;;;;;
+A927;KAYAH LI VOWEL E;Mn;0;NSM;;;;;N;;;;;
+A928;KAYAH LI VOWEL U;Mn;0;NSM;;;;;N;;;;;
+A929;KAYAH LI VOWEL EE;Mn;0;NSM;;;;;N;;;;;
+A92A;KAYAH LI VOWEL O;Mn;0;NSM;;;;;N;;;;;
+A92B;KAYAH LI TONE PLOPHU;Mn;220;NSM;;;;;N;;;;;
+A92C;KAYAH LI TONE CALYA;Mn;220;NSM;;;;;N;;;;;
+A92D;KAYAH LI TONE CALYA PLOPHU;Mn;220;NSM;;;;;N;;;;;
+A92E;KAYAH LI SIGN CWI;Po;0;L;;;;;N;;;;;
+A92F;KAYAH LI SIGN SHYA;Po;0;L;;;;;N;;;;;
+A930;REJANG LETTER KA;Lo;0;L;;;;;N;;;;;
+A931;REJANG LETTER GA;Lo;0;L;;;;;N;;;;;
+A932;REJANG LETTER NGA;Lo;0;L;;;;;N;;;;;
+A933;REJANG LETTER TA;Lo;0;L;;;;;N;;;;;
+A934;REJANG LETTER DA;Lo;0;L;;;;;N;;;;;
+A935;REJANG LETTER NA;Lo;0;L;;;;;N;;;;;
+A936;REJANG LETTER PA;Lo;0;L;;;;;N;;;;;
+A937;REJANG LETTER BA;Lo;0;L;;;;;N;;;;;
+A938;REJANG LETTER MA;Lo;0;L;;;;;N;;;;;
+A939;REJANG LETTER CA;Lo;0;L;;;;;N;;;;;
+A93A;REJANG LETTER JA;Lo;0;L;;;;;N;;;;;
+A93B;REJANG LETTER NYA;Lo;0;L;;;;;N;;;;;
+A93C;REJANG LETTER SA;Lo;0;L;;;;;N;;;;;
+A93D;REJANG LETTER RA;Lo;0;L;;;;;N;;;;;
+A93E;REJANG LETTER LA;Lo;0;L;;;;;N;;;;;
+A93F;REJANG LETTER YA;Lo;0;L;;;;;N;;;;;
+A940;REJANG LETTER WA;Lo;0;L;;;;;N;;;;;
+A941;REJANG LETTER HA;Lo;0;L;;;;;N;;;;;
+A942;REJANG LETTER MBA;Lo;0;L;;;;;N;;;;;
+A943;REJANG LETTER NGGA;Lo;0;L;;;;;N;;;;;
+A944;REJANG LETTER NDA;Lo;0;L;;;;;N;;;;;
+A945;REJANG LETTER NYJA;Lo;0;L;;;;;N;;;;;
+A946;REJANG LETTER A;Lo;0;L;;;;;N;;;;;
+A947;REJANG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+A948;REJANG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+A949;REJANG VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+A94A;REJANG VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+A94B;REJANG VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+A94C;REJANG VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+A94D;REJANG VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;;
+A94E;REJANG VOWEL SIGN EA;Mn;0;NSM;;;;;N;;;;;
+A94F;REJANG CONSONANT SIGN NG;Mn;0;NSM;;;;;N;;;;;
+A950;REJANG CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;;
+A951;REJANG CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;;
+A952;REJANG CONSONANT SIGN H;Mc;0;L;;;;;N;;;;;
+A953;REJANG VIRAMA;Mc;9;L;;;;;N;;;;;
+A95F;REJANG SECTION MARK;Po;0;L;;;;;N;;;;;
+AA00;CHAM LETTER A;Lo;0;L;;;;;N;;;;;
+AA01;CHAM LETTER I;Lo;0;L;;;;;N;;;;;
+AA02;CHAM LETTER U;Lo;0;L;;;;;N;;;;;
+AA03;CHAM LETTER E;Lo;0;L;;;;;N;;;;;
+AA04;CHAM LETTER AI;Lo;0;L;;;;;N;;;;;
+AA05;CHAM LETTER O;Lo;0;L;;;;;N;;;;;
+AA06;CHAM LETTER KA;Lo;0;L;;;;;N;;;;;
+AA07;CHAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+AA08;CHAM LETTER GA;Lo;0;L;;;;;N;;;;;
+AA09;CHAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+AA0A;CHAM LETTER NGUE;Lo;0;L;;;;;N;;;;;
+AA0B;CHAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+AA0C;CHAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+AA0D;CHAM LETTER CHHA;Lo;0;L;;;;;N;;;;;
+AA0E;CHAM LETTER JA;Lo;0;L;;;;;N;;;;;
+AA0F;CHAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+AA10;CHAM LETTER NHUE;Lo;0;L;;;;;N;;;;;
+AA11;CHAM LETTER NHA;Lo;0;L;;;;;N;;;;;
+AA12;CHAM LETTER NHJA;Lo;0;L;;;;;N;;;;;
+AA13;CHAM LETTER TA;Lo;0;L;;;;;N;;;;;
+AA14;CHAM LETTER THA;Lo;0;L;;;;;N;;;;;
+AA15;CHAM LETTER DA;Lo;0;L;;;;;N;;;;;
+AA16;CHAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+AA17;CHAM LETTER NUE;Lo;0;L;;;;;N;;;;;
+AA18;CHAM LETTER NA;Lo;0;L;;;;;N;;;;;
+AA19;CHAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+AA1A;CHAM LETTER PA;Lo;0;L;;;;;N;;;;;
+AA1B;CHAM LETTER PPA;Lo;0;L;;;;;N;;;;;
+AA1C;CHAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+AA1D;CHAM LETTER BA;Lo;0;L;;;;;N;;;;;
+AA1E;CHAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+AA1F;CHAM LETTER MUE;Lo;0;L;;;;;N;;;;;
+AA20;CHAM LETTER MA;Lo;0;L;;;;;N;;;;;
+AA21;CHAM LETTER BBA;Lo;0;L;;;;;N;;;;;
+AA22;CHAM LETTER YA;Lo;0;L;;;;;N;;;;;
+AA23;CHAM LETTER RA;Lo;0;L;;;;;N;;;;;
+AA24;CHAM LETTER LA;Lo;0;L;;;;;N;;;;;
+AA25;CHAM LETTER VA;Lo;0;L;;;;;N;;;;;
+AA26;CHAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+AA27;CHAM LETTER SA;Lo;0;L;;;;;N;;;;;
+AA28;CHAM LETTER HA;Lo;0;L;;;;;N;;;;;
+AA29;CHAM VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+AA2A;CHAM VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+AA2B;CHAM VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+AA2C;CHAM VOWEL SIGN EI;Mn;0;NSM;;;;;N;;;;;
+AA2D;CHAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+AA2E;CHAM VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;;
+AA2F;CHAM VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+AA30;CHAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+AA31;CHAM VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+AA32;CHAM VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;;
+AA33;CHAM CONSONANT SIGN YA;Mc;0;L;;;;;N;;;;;
+AA34;CHAM CONSONANT SIGN RA;Mc;0;L;;;;;N;;;;;
+AA35;CHAM CONSONANT SIGN LA;Mn;0;NSM;;;;;N;;;;;
+AA36;CHAM CONSONANT SIGN WA;Mn;0;NSM;;;;;N;;;;;
+AA40;CHAM LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+AA41;CHAM LETTER FINAL G;Lo;0;L;;;;;N;;;;;
+AA42;CHAM LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
+AA43;CHAM CONSONANT SIGN FINAL NG;Mn;0;NSM;;;;;N;;;;;
+AA44;CHAM LETTER FINAL CH;Lo;0;L;;;;;N;;;;;
+AA45;CHAM LETTER FINAL T;Lo;0;L;;;;;N;;;;;
+AA46;CHAM LETTER FINAL N;Lo;0;L;;;;;N;;;;;
+AA47;CHAM LETTER FINAL P;Lo;0;L;;;;;N;;;;;
+AA48;CHAM LETTER FINAL Y;Lo;0;L;;;;;N;;;;;
+AA49;CHAM LETTER FINAL R;Lo;0;L;;;;;N;;;;;
+AA4A;CHAM LETTER FINAL L;Lo;0;L;;;;;N;;;;;
+AA4B;CHAM LETTER FINAL SS;Lo;0;L;;;;;N;;;;;
+AA4C;CHAM CONSONANT SIGN FINAL M;Mn;0;NSM;;;;;N;;;;;
+AA4D;CHAM CONSONANT SIGN FINAL H;Mc;0;L;;;;;N;;;;;
+AA50;CHAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+AA51;CHAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+AA52;CHAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+AA53;CHAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+AA54;CHAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+AA55;CHAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+AA56;CHAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+AA57;CHAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+AA58;CHAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+AA59;CHAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+AA5C;CHAM PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;;
+AA5D;CHAM PUNCTUATION DANDA;Po;0;L;;;;;N;;;;;
+AA5E;CHAM PUNCTUATION DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+AA5F;CHAM PUNCTUATION TRIPLE DANDA;Po;0;L;;;;;N;;;;;
+AC00;HANGUL SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+AC01;HANGUL SYLLABLE GAG;Lo;0;L;;;;;N;;;;;
+AC02;HANGUL SYLLABLE GAGG;Lo;0;L;;;;;N;;;;;
+AC03;HANGUL SYLLABLE GAGS;Lo;0;L;;;;;N;;;;;
+AC04;HANGUL SYLLABLE GAN;Lo;0;L;;;;;N;;;;;
+AC05;HANGUL SYLLABLE GANI;Lo;0;L;;;;;N;;;;;
+AC06;HANGUL SYLLABLE GANH;Lo;0;L;;;;;N;;;;;
+AC07;HANGUL SYLLABLE GAD;Lo;0;L;;;;;N;;;;;
+AC08;HANGUL SYLLABLE GAL;Lo;0;L;;;;;N;;;;;
+AC09;HANGUL SYLLABLE GALG;Lo;0;L;;;;;N;;;;;
+AC0A;HANGUL SYLLABLE GALM;Lo;0;L;;;;;N;;;;;
+AC0B;HANGUL SYLLABLE GALB;Lo;0;L;;;;;N;;;;;
+AC0C;HANGUL SYLLABLE GALS;Lo;0;L;;;;;N;;;;;
+AC0D;HANGUL SYLLABLE GALT;Lo;0;L;;;;;N;;;;;
+AC0E;HANGUL SYLLABLE GALP;Lo;0;L;;;;;N;;;;;
+AC0F;HANGUL SYLLABLE GALH;Lo;0;L;;;;;N;;;;;
+AC10;HANGUL SYLLABLE GAM;Lo;0;L;;;;;N;;;;;
+AC11;HANGUL SYLLABLE GAB;Lo;0;L;;;;;N;;;;;
+AC12;HANGUL SYLLABLE GABS;Lo;0;L;;;;;N;;;;;
+AC13;HANGUL SYLLABLE GAS;Lo;0;L;;;;;N;;;;;
+AC14;HANGUL SYLLABLE GASS;Lo;0;L;;;;;N;;;;;
+AC15;HANGUL SYLLABLE GANG;Lo;0;L;;;;;N;;;;;
+AC16;HANGUL SYLLABLE GAJ;Lo;0;L;;;;;N;;;;;
+AC17;HANGUL SYLLABLE GAC;Lo;0;L;;;;;N;;;;;
+AC18;HANGUL SYLLABLE GAK;Lo;0;L;;;;;N;;;;;
+AC19;HANGUL SYLLABLE GAT;Lo;0;L;;;;;N;;;;;
+AC1A;HANGUL SYLLABLE GAP;Lo;0;L;;;;;N;;;;;
+AC1B;HANGUL SYLLABLE GAH;Lo;0;L;;;;;N;;;;;
+AC1C;HANGUL SYLLABLE GAE;Lo;0;L;;;;;N;;;;;
+AC1D;HANGUL SYLLABLE GAEG;Lo;0;L;;;;;N;;;;;
+AC1E;HANGUL SYLLABLE GAEGG;Lo;0;L;;;;;N;;;;;
+AC1F;HANGUL SYLLABLE GAEGS;Lo;0;L;;;;;N;;;;;
+AC20;HANGUL SYLLABLE GAEN;Lo;0;L;;;;;N;;;;;
+AC21;HANGUL SYLLABLE GAENI;Lo;0;L;;;;;N;;;;;
+AC22;HANGUL SYLLABLE GAENH;Lo;0;L;;;;;N;;;;;
+AC23;HANGUL SYLLABLE GAED;Lo;0;L;;;;;N;;;;;
+AC24;HANGUL SYLLABLE GAEL;Lo;0;L;;;;;N;;;;;
+AC25;HANGUL SYLLABLE GAELG;Lo;0;L;;;;;N;;;;;
+AC26;HANGUL SYLLABLE GAELM;Lo;0;L;;;;;N;;;;;
+AC27;HANGUL SYLLABLE GAELB;Lo;0;L;;;;;N;;;;;
+AC28;HANGUL SYLLABLE GAELS;Lo;0;L;;;;;N;;;;;
+AC29;HANGUL SYLLABLE GAELT;Lo;0;L;;;;;N;;;;;
+AC2A;HANGUL SYLLABLE GAELP;Lo;0;L;;;;;N;;;;;
+AC2B;HANGUL SYLLABLE GAELH;Lo;0;L;;;;;N;;;;;
+AC2C;HANGUL SYLLABLE GAEM;Lo;0;L;;;;;N;;;;;
+AC2D;HANGUL SYLLABLE GAEB;Lo;0;L;;;;;N;;;;;
+AC2E;HANGUL SYLLABLE GAEBS;Lo;0;L;;;;;N;;;;;
+AC2F;HANGUL SYLLABLE GAES;Lo;0;L;;;;;N;;;;;
+AC30;HANGUL SYLLABLE GAESS;Lo;0;L;;;;;N;;;;;
+AC31;HANGUL SYLLABLE GAENG;Lo;0;L;;;;;N;;;;;
+AC32;HANGUL SYLLABLE GAEJ;Lo;0;L;;;;;N;;;;;
+AC33;HANGUL SYLLABLE GAEC;Lo;0;L;;;;;N;;;;;
+AC34;HANGUL SYLLABLE GAEK;Lo;0;L;;;;;N;;;;;
+AC35;HANGUL SYLLABLE GAET;Lo;0;L;;;;;N;;;;;
+AC36;HANGUL SYLLABLE GAEP;Lo;0;L;;;;;N;;;;;
+AC37;HANGUL SYLLABLE GAEH;Lo;0;L;;;;;N;;;;;
+AC38;HANGUL SYLLABLE GYA;Lo;0;L;;;;;N;;;;;
+AC39;HANGUL SYLLABLE GYAG;Lo;0;L;;;;;N;;;;;
+AC3A;HANGUL SYLLABLE GYAGG;Lo;0;L;;;;;N;;;;;
+AC3B;HANGUL SYLLABLE GYAGS;Lo;0;L;;;;;N;;;;;
+AC3C;HANGUL SYLLABLE GYAN;Lo;0;L;;;;;N;;;;;
+AC3D;HANGUL SYLLABLE GYANI;Lo;0;L;;;;;N;;;;;
+AC3E;HANGUL SYLLABLE GYANH;Lo;0;L;;;;;N;;;;;
+AC3F;HANGUL SYLLABLE GYAD;Lo;0;L;;;;;N;;;;;
+AC40;HANGUL SYLLABLE GYAL;Lo;0;L;;;;;N;;;;;
+AC41;HANGUL SYLLABLE GYALG;Lo;0;L;;;;;N;;;;;
+AC42;HANGUL SYLLABLE GYALM;Lo;0;L;;;;;N;;;;;
+AC43;HANGUL SYLLABLE GYALB;Lo;0;L;;;;;N;;;;;
+AC44;HANGUL SYLLABLE GYALS;Lo;0;L;;;;;N;;;;;
+AC45;HANGUL SYLLABLE GYALT;Lo;0;L;;;;;N;;;;;
+AC46;HANGUL SYLLABLE GYALP;Lo;0;L;;;;;N;;;;;
+AC47;HANGUL SYLLABLE GYALH;Lo;0;L;;;;;N;;;;;
+AC48;HANGUL SYLLABLE GYAM;Lo;0;L;;;;;N;;;;;
+AC49;HANGUL SYLLABLE GYAB;Lo;0;L;;;;;N;;;;;
+AC4A;HANGUL SYLLABLE GYABS;Lo;0;L;;;;;N;;;;;
+AC4B;HANGUL SYLLABLE GYAS;Lo;0;L;;;;;N;;;;;
+AC4C;HANGUL SYLLABLE GYASS;Lo;0;L;;;;;N;;;;;
+AC4D;HANGUL SYLLABLE GYANG;Lo;0;L;;;;;N;;;;;
+AC4E;HANGUL SYLLABLE GYAJ;Lo;0;L;;;;;N;;;;;
+AC4F;HANGUL SYLLABLE GYAC;Lo;0;L;;;;;N;;;;;
+AC50;HANGUL SYLLABLE GYAK;Lo;0;L;;;;;N;;;;;
+AC51;HANGUL SYLLABLE GYAT;Lo;0;L;;;;;N;;;;;
+AC52;HANGUL SYLLABLE GYAP;Lo;0;L;;;;;N;;;;;
+AC53;HANGUL SYLLABLE GYAH;Lo;0;L;;;;;N;;;;;
+AC54;HANGUL SYLLABLE GYAE;Lo;0;L;;;;;N;;;;;
+AC55;HANGUL SYLLABLE GYAEG;Lo;0;L;;;;;N;;;;;
+AC56;HANGUL SYLLABLE GYAEGG;Lo;0;L;;;;;N;;;;;
+AC57;HANGUL SYLLABLE GYAEGS;Lo;0;L;;;;;N;;;;;
+AC58;HANGUL SYLLABLE GYAEN;Lo;0;L;;;;;N;;;;;
+AC59;HANGUL SYLLABLE GYAENI;Lo;0;L;;;;;N;;;;;
+AC5A;HANGUL SYLLABLE GYAENH;Lo;0;L;;;;;N;;;;;
+AC5B;HANGUL SYLLABLE GYAED;Lo;0;L;;;;;N;;;;;
+AC5C;HANGUL SYLLABLE GYAEL;Lo;0;L;;;;;N;;;;;
+AC5D;HANGUL SYLLABLE GYAELG;Lo;0;L;;;;;N;;;;;
+AC5E;HANGUL SYLLABLE GYAELM;Lo;0;L;;;;;N;;;;;
+AC5F;HANGUL SYLLABLE GYAELB;Lo;0;L;;;;;N;;;;;
+AC60;HANGUL SYLLABLE GYAELS;Lo;0;L;;;;;N;;;;;
+AC61;HANGUL SYLLABLE GYAELT;Lo;0;L;;;;;N;;;;;
+AC62;HANGUL SYLLABLE GYAELP;Lo;0;L;;;;;N;;;;;
+AC63;HANGUL SYLLABLE GYAELH;Lo;0;L;;;;;N;;;;;
+AC64;HANGUL SYLLABLE GYAEM;Lo;0;L;;;;;N;;;;;
+AC65;HANGUL SYLLABLE GYAEB;Lo;0;L;;;;;N;;;;;
+AC66;HANGUL SYLLABLE GYAEBS;Lo;0;L;;;;;N;;;;;
+AC67;HANGUL SYLLABLE GYAES;Lo;0;L;;;;;N;;;;;
+AC68;HANGUL SYLLABLE GYAESS;Lo;0;L;;;;;N;;;;;
+AC69;HANGUL SYLLABLE GYAENG;Lo;0;L;;;;;N;;;;;
+AC6A;HANGUL SYLLABLE GYAEJ;Lo;0;L;;;;;N;;;;;
+AC6B;HANGUL SYLLABLE GYAEC;Lo;0;L;;;;;N;;;;;
+AC6C;HANGUL SYLLABLE GYAEK;Lo;0;L;;;;;N;;;;;
+AC6D;HANGUL SYLLABLE GYAET;Lo;0;L;;;;;N;;;;;
+AC6E;HANGUL SYLLABLE GYAEP;Lo;0;L;;;;;N;;;;;
+AC6F;HANGUL SYLLABLE GYAEH;Lo;0;L;;;;;N;;;;;
+AC70;HANGUL SYLLABLE GEO;Lo;0;L;;;;;N;;;;;
+AC71;HANGUL SYLLABLE GEOG;Lo;0;L;;;;;N;;;;;
+AC72;HANGUL SYLLABLE GEOGG;Lo;0;L;;;;;N;;;;;
+AC73;HANGUL SYLLABLE GEOGS;Lo;0;L;;;;;N;;;;;
+AC74;HANGUL SYLLABLE GEON;Lo;0;L;;;;;N;;;;;
+AC75;HANGUL SYLLABLE GEONI;Lo;0;L;;;;;N;;;;;
+AC76;HANGUL SYLLABLE GEONH;Lo;0;L;;;;;N;;;;;
+AC77;HANGUL SYLLABLE GEOD;Lo;0;L;;;;;N;;;;;
+AC78;HANGUL SYLLABLE GEOL;Lo;0;L;;;;;N;;;;;
+AC79;HANGUL SYLLABLE GEOLG;Lo;0;L;;;;;N;;;;;
+AC7A;HANGUL SYLLABLE GEOLM;Lo;0;L;;;;;N;;;;;
+AC7B;HANGUL SYLLABLE GEOLB;Lo;0;L;;;;;N;;;;;
+AC7C;HANGUL SYLLABLE GEOLS;Lo;0;L;;;;;N;;;;;
+AC7D;HANGUL SYLLABLE GEOLT;Lo;0;L;;;;;N;;;;;
+AC7E;HANGUL SYLLABLE GEOLP;Lo;0;L;;;;;N;;;;;
+AC7F;HANGUL SYLLABLE GEOLH;Lo;0;L;;;;;N;;;;;
+AC80;HANGUL SYLLABLE GEOM;Lo;0;L;;;;;N;;;;;
+AC81;HANGUL SYLLABLE GEOB;Lo;0;L;;;;;N;;;;;
+AC82;HANGUL SYLLABLE GEOBS;Lo;0;L;;;;;N;;;;;
+AC83;HANGUL SYLLABLE GEOS;Lo;0;L;;;;;N;;;;;
+AC84;HANGUL SYLLABLE GEOSS;Lo;0;L;;;;;N;;;;;
+AC85;HANGUL SYLLABLE GEONG;Lo;0;L;;;;;N;;;;;
+AC86;HANGUL SYLLABLE GEOJ;Lo;0;L;;;;;N;;;;;
+AC87;HANGUL SYLLABLE GEOC;Lo;0;L;;;;;N;;;;;
+AC88;HANGUL SYLLABLE GEOK;Lo;0;L;;;;;N;;;;;
+AC89;HANGUL SYLLABLE GEOT;Lo;0;L;;;;;N;;;;;
+AC8A;HANGUL SYLLABLE GEOP;Lo;0;L;;;;;N;;;;;
+AC8B;HANGUL SYLLABLE GEOH;Lo;0;L;;;;;N;;;;;
+AC8C;HANGUL SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+AC8D;HANGUL SYLLABLE GEG;Lo;0;L;;;;;N;;;;;
+AC8E;HANGUL SYLLABLE GEGG;Lo;0;L;;;;;N;;;;;
+AC8F;HANGUL SYLLABLE GEGS;Lo;0;L;;;;;N;;;;;
+AC90;HANGUL SYLLABLE GEN;Lo;0;L;;;;;N;;;;;
+AC91;HANGUL SYLLABLE GENI;Lo;0;L;;;;;N;;;;;
+AC92;HANGUL SYLLABLE GENH;Lo;0;L;;;;;N;;;;;
+AC93;HANGUL SYLLABLE GED;Lo;0;L;;;;;N;;;;;
+AC94;HANGUL SYLLABLE GEL;Lo;0;L;;;;;N;;;;;
+AC95;HANGUL SYLLABLE GELG;Lo;0;L;;;;;N;;;;;
+AC96;HANGUL SYLLABLE GELM;Lo;0;L;;;;;N;;;;;
+AC97;HANGUL SYLLABLE GELB;Lo;0;L;;;;;N;;;;;
+AC98;HANGUL SYLLABLE GELS;Lo;0;L;;;;;N;;;;;
+AC99;HANGUL SYLLABLE GELT;Lo;0;L;;;;;N;;;;;
+AC9A;HANGUL SYLLABLE GELP;Lo;0;L;;;;;N;;;;;
+AC9B;HANGUL SYLLABLE GELH;Lo;0;L;;;;;N;;;;;
+AC9C;HANGUL SYLLABLE GEM;Lo;0;L;;;;;N;;;;;
+AC9D;HANGUL SYLLABLE GEB;Lo;0;L;;;;;N;;;;;
+AC9E;HANGUL SYLLABLE GEBS;Lo;0;L;;;;;N;;;;;
+AC9F;HANGUL SYLLABLE GES;Lo;0;L;;;;;N;;;;;
+ACA0;HANGUL SYLLABLE GESS;Lo;0;L;;;;;N;;;;;
+ACA1;HANGUL SYLLABLE GENG;Lo;0;L;;;;;N;;;;;
+ACA2;HANGUL SYLLABLE GEJ;Lo;0;L;;;;;N;;;;;
+ACA3;HANGUL SYLLABLE GEC;Lo;0;L;;;;;N;;;;;
+ACA4;HANGUL SYLLABLE GEK;Lo;0;L;;;;;N;;;;;
+ACA5;HANGUL SYLLABLE GET;Lo;0;L;;;;;N;;;;;
+ACA6;HANGUL SYLLABLE GEP;Lo;0;L;;;;;N;;;;;
+ACA7;HANGUL SYLLABLE GEH;Lo;0;L;;;;;N;;;;;
+ACA8;HANGUL SYLLABLE GYEO;Lo;0;L;;;;;N;;;;;
+ACA9;HANGUL SYLLABLE GYEOG;Lo;0;L;;;;;N;;;;;
+ACAA;HANGUL SYLLABLE GYEOGG;Lo;0;L;;;;;N;;;;;
+ACAB;HANGUL SYLLABLE GYEOGS;Lo;0;L;;;;;N;;;;;
+ACAC;HANGUL SYLLABLE GYEON;Lo;0;L;;;;;N;;;;;
+ACAD;HANGUL SYLLABLE GYEONI;Lo;0;L;;;;;N;;;;;
+ACAE;HANGUL SYLLABLE GYEONH;Lo;0;L;;;;;N;;;;;
+ACAF;HANGUL SYLLABLE GYEOD;Lo;0;L;;;;;N;;;;;
+ACB0;HANGUL SYLLABLE GYEOL;Lo;0;L;;;;;N;;;;;
+ACB1;HANGUL SYLLABLE GYEOLG;Lo;0;L;;;;;N;;;;;
+ACB2;HANGUL SYLLABLE GYEOLM;Lo;0;L;;;;;N;;;;;
+ACB3;HANGUL SYLLABLE GYEOLB;Lo;0;L;;;;;N;;;;;
+ACB4;HANGUL SYLLABLE GYEOLS;Lo;0;L;;;;;N;;;;;
+ACB5;HANGUL SYLLABLE GYEOLT;Lo;0;L;;;;;N;;;;;
+ACB6;HANGUL SYLLABLE GYEOLP;Lo;0;L;;;;;N;;;;;
+ACB7;HANGUL SYLLABLE GYEOLH;Lo;0;L;;;;;N;;;;;
+ACB8;HANGUL SYLLABLE GYEOM;Lo;0;L;;;;;N;;;;;
+ACB9;HANGUL SYLLABLE GYEOB;Lo;0;L;;;;;N;;;;;
+ACBA;HANGUL SYLLABLE GYEOBS;Lo;0;L;;;;;N;;;;;
+ACBB;HANGUL SYLLABLE GYEOS;Lo;0;L;;;;;N;;;;;
+ACBC;HANGUL SYLLABLE GYEOSS;Lo;0;L;;;;;N;;;;;
+ACBD;HANGUL SYLLABLE GYEONG;Lo;0;L;;;;;N;;;;;
+ACBE;HANGUL SYLLABLE GYEOJ;Lo;0;L;;;;;N;;;;;
+ACBF;HANGUL SYLLABLE GYEOC;Lo;0;L;;;;;N;;;;;
+ACC0;HANGUL SYLLABLE GYEOK;Lo;0;L;;;;;N;;;;;
+ACC1;HANGUL SYLLABLE GYEOT;Lo;0;L;;;;;N;;;;;
+ACC2;HANGUL SYLLABLE GYEOP;Lo;0;L;;;;;N;;;;;
+ACC3;HANGUL SYLLABLE GYEOH;Lo;0;L;;;;;N;;;;;
+ACC4;HANGUL SYLLABLE GYE;Lo;0;L;;;;;N;;;;;
+ACC5;HANGUL SYLLABLE GYEG;Lo;0;L;;;;;N;;;;;
+ACC6;HANGUL SYLLABLE GYEGG;Lo;0;L;;;;;N;;;;;
+ACC7;HANGUL SYLLABLE GYEGS;Lo;0;L;;;;;N;;;;;
+ACC8;HANGUL SYLLABLE GYEN;Lo;0;L;;;;;N;;;;;
+ACC9;HANGUL SYLLABLE GYENI;Lo;0;L;;;;;N;;;;;
+ACCA;HANGUL SYLLABLE GYENH;Lo;0;L;;;;;N;;;;;
+ACCB;HANGUL SYLLABLE GYED;Lo;0;L;;;;;N;;;;;
+ACCC;HANGUL SYLLABLE GYEL;Lo;0;L;;;;;N;;;;;
+ACCD;HANGUL SYLLABLE GYELG;Lo;0;L;;;;;N;;;;;
+ACCE;HANGUL SYLLABLE GYELM;Lo;0;L;;;;;N;;;;;
+ACCF;HANGUL SYLLABLE GYELB;Lo;0;L;;;;;N;;;;;
+ACD0;HANGUL SYLLABLE GYELS;Lo;0;L;;;;;N;;;;;
+ACD1;HANGUL SYLLABLE GYELT;Lo;0;L;;;;;N;;;;;
+ACD2;HANGUL SYLLABLE GYELP;Lo;0;L;;;;;N;;;;;
+ACD3;HANGUL SYLLABLE GYELH;Lo;0;L;;;;;N;;;;;
+ACD4;HANGUL SYLLABLE GYEM;Lo;0;L;;;;;N;;;;;
+ACD5;HANGUL SYLLABLE GYEB;Lo;0;L;;;;;N;;;;;
+ACD6;HANGUL SYLLABLE GYEBS;Lo;0;L;;;;;N;;;;;
+ACD7;HANGUL SYLLABLE GYES;Lo;0;L;;;;;N;;;;;
+ACD8;HANGUL SYLLABLE GYESS;Lo;0;L;;;;;N;;;;;
+ACD9;HANGUL SYLLABLE GYENG;Lo;0;L;;;;;N;;;;;
+ACDA;HANGUL SYLLABLE GYEJ;Lo;0;L;;;;;N;;;;;
+ACDB;HANGUL SYLLABLE GYEC;Lo;0;L;;;;;N;;;;;
+ACDC;HANGUL SYLLABLE GYEK;Lo;0;L;;;;;N;;;;;
+ACDD;HANGUL SYLLABLE GYET;Lo;0;L;;;;;N;;;;;
+ACDE;HANGUL SYLLABLE GYEP;Lo;0;L;;;;;N;;;;;
+ACDF;HANGUL SYLLABLE GYEH;Lo;0;L;;;;;N;;;;;
+ACE0;HANGUL SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+ACE1;HANGUL SYLLABLE GOG;Lo;0;L;;;;;N;;;;;
+ACE2;HANGUL SYLLABLE GOGG;Lo;0;L;;;;;N;;;;;
+ACE3;HANGUL SYLLABLE GOGS;Lo;0;L;;;;;N;;;;;
+ACE4;HANGUL SYLLABLE GON;Lo;0;L;;;;;N;;;;;
+ACE5;HANGUL SYLLABLE GONI;Lo;0;L;;;;;N;;;;;
+ACE6;HANGUL SYLLABLE GONH;Lo;0;L;;;;;N;;;;;
+ACE7;HANGUL SYLLABLE GOD;Lo;0;L;;;;;N;;;;;
+ACE8;HANGUL SYLLABLE GOL;Lo;0;L;;;;;N;;;;;
+ACE9;HANGUL SYLLABLE GOLG;Lo;0;L;;;;;N;;;;;
+ACEA;HANGUL SYLLABLE GOLM;Lo;0;L;;;;;N;;;;;
+ACEB;HANGUL SYLLABLE GOLB;Lo;0;L;;;;;N;;;;;
+ACEC;HANGUL SYLLABLE GOLS;Lo;0;L;;;;;N;;;;;
+ACED;HANGUL SYLLABLE GOLT;Lo;0;L;;;;;N;;;;;
+ACEE;HANGUL SYLLABLE GOLP;Lo;0;L;;;;;N;;;;;
+ACEF;HANGUL SYLLABLE GOLH;Lo;0;L;;;;;N;;;;;
+ACF0;HANGUL SYLLABLE GOM;Lo;0;L;;;;;N;;;;;
+ACF1;HANGUL SYLLABLE GOB;Lo;0;L;;;;;N;;;;;
+ACF2;HANGUL SYLLABLE GOBS;Lo;0;L;;;;;N;;;;;
+ACF3;HANGUL SYLLABLE GOS;Lo;0;L;;;;;N;;;;;
+ACF4;HANGUL SYLLABLE GOSS;Lo;0;L;;;;;N;;;;;
+ACF5;HANGUL SYLLABLE GONG;Lo;0;L;;;;;N;;;;;
+ACF6;HANGUL SYLLABLE GOJ;Lo;0;L;;;;;N;;;;;
+ACF7;HANGUL SYLLABLE GOC;Lo;0;L;;;;;N;;;;;
+ACF8;HANGUL SYLLABLE GOK;Lo;0;L;;;;;N;;;;;
+ACF9;HANGUL SYLLABLE GOT;Lo;0;L;;;;;N;;;;;
+ACFA;HANGUL SYLLABLE GOP;Lo;0;L;;;;;N;;;;;
+ACFB;HANGUL SYLLABLE GOH;Lo;0;L;;;;;N;;;;;
+ACFC;HANGUL SYLLABLE GWA;Lo;0;L;;;;;N;;;;;
+ACFD;HANGUL SYLLABLE GWAG;Lo;0;L;;;;;N;;;;;
+ACFE;HANGUL SYLLABLE GWAGG;Lo;0;L;;;;;N;;;;;
+ACFF;HANGUL SYLLABLE GWAGS;Lo;0;L;;;;;N;;;;;
+AD00;HANGUL SYLLABLE GWAN;Lo;0;L;;;;;N;;;;;
+AD01;HANGUL SYLLABLE GWANI;Lo;0;L;;;;;N;;;;;
+AD02;HANGUL SYLLABLE GWANH;Lo;0;L;;;;;N;;;;;
+AD03;HANGUL SYLLABLE GWAD;Lo;0;L;;;;;N;;;;;
+AD04;HANGUL SYLLABLE GWAL;Lo;0;L;;;;;N;;;;;
+AD05;HANGUL SYLLABLE GWALG;Lo;0;L;;;;;N;;;;;
+AD06;HANGUL SYLLABLE GWALM;Lo;0;L;;;;;N;;;;;
+AD07;HANGUL SYLLABLE GWALB;Lo;0;L;;;;;N;;;;;
+AD08;HANGUL SYLLABLE GWALS;Lo;0;L;;;;;N;;;;;
+AD09;HANGUL SYLLABLE GWALT;Lo;0;L;;;;;N;;;;;
+AD0A;HANGUL SYLLABLE GWALP;Lo;0;L;;;;;N;;;;;
+AD0B;HANGUL SYLLABLE GWALH;Lo;0;L;;;;;N;;;;;
+AD0C;HANGUL SYLLABLE GWAM;Lo;0;L;;;;;N;;;;;
+AD0D;HANGUL SYLLABLE GWAB;Lo;0;L;;;;;N;;;;;
+AD0E;HANGUL SYLLABLE GWABS;Lo;0;L;;;;;N;;;;;
+AD0F;HANGUL SYLLABLE GWAS;Lo;0;L;;;;;N;;;;;
+AD10;HANGUL SYLLABLE GWASS;Lo;0;L;;;;;N;;;;;
+AD11;HANGUL SYLLABLE GWANG;Lo;0;L;;;;;N;;;;;
+AD12;HANGUL SYLLABLE GWAJ;Lo;0;L;;;;;N;;;;;
+AD13;HANGUL SYLLABLE GWAC;Lo;0;L;;;;;N;;;;;
+AD14;HANGUL SYLLABLE GWAK;Lo;0;L;;;;;N;;;;;
+AD15;HANGUL SYLLABLE GWAT;Lo;0;L;;;;;N;;;;;
+AD16;HANGUL SYLLABLE GWAP;Lo;0;L;;;;;N;;;;;
+AD17;HANGUL SYLLABLE GWAH;Lo;0;L;;;;;N;;;;;
+AD18;HANGUL SYLLABLE GWAE;Lo;0;L;;;;;N;;;;;
+AD19;HANGUL SYLLABLE GWAEG;Lo;0;L;;;;;N;;;;;
+AD1A;HANGUL SYLLABLE GWAEGG;Lo;0;L;;;;;N;;;;;
+AD1B;HANGUL SYLLABLE GWAEGS;Lo;0;L;;;;;N;;;;;
+AD1C;HANGUL SYLLABLE GWAEN;Lo;0;L;;;;;N;;;;;
+AD1D;HANGUL SYLLABLE GWAENI;Lo;0;L;;;;;N;;;;;
+AD1E;HANGUL SYLLABLE GWAENH;Lo;0;L;;;;;N;;;;;
+AD1F;HANGUL SYLLABLE GWAED;Lo;0;L;;;;;N;;;;;
+AD20;HANGUL SYLLABLE GWAEL;Lo;0;L;;;;;N;;;;;
+AD21;HANGUL SYLLABLE GWAELG;Lo;0;L;;;;;N;;;;;
+AD22;HANGUL SYLLABLE GWAELM;Lo;0;L;;;;;N;;;;;
+AD23;HANGUL SYLLABLE GWAELB;Lo;0;L;;;;;N;;;;;
+AD24;HANGUL SYLLABLE GWAELS;Lo;0;L;;;;;N;;;;;
+AD25;HANGUL SYLLABLE GWAELT;Lo;0;L;;;;;N;;;;;
+AD26;HANGUL SYLLABLE GWAELP;Lo;0;L;;;;;N;;;;;
+AD27;HANGUL SYLLABLE GWAELH;Lo;0;L;;;;;N;;;;;
+AD28;HANGUL SYLLABLE GWAEM;Lo;0;L;;;;;N;;;;;
+AD29;HANGUL SYLLABLE GWAEB;Lo;0;L;;;;;N;;;;;
+AD2A;HANGUL SYLLABLE GWAEBS;Lo;0;L;;;;;N;;;;;
+AD2B;HANGUL SYLLABLE GWAES;Lo;0;L;;;;;N;;;;;
+AD2C;HANGUL SYLLABLE GWAESS;Lo;0;L;;;;;N;;;;;
+AD2D;HANGUL SYLLABLE GWAENG;Lo;0;L;;;;;N;;;;;
+AD2E;HANGUL SYLLABLE GWAEJ;Lo;0;L;;;;;N;;;;;
+AD2F;HANGUL SYLLABLE GWAEC;Lo;0;L;;;;;N;;;;;
+AD30;HANGUL SYLLABLE GWAEK;Lo;0;L;;;;;N;;;;;
+AD31;HANGUL SYLLABLE GWAET;Lo;0;L;;;;;N;;;;;
+AD32;HANGUL SYLLABLE GWAEP;Lo;0;L;;;;;N;;;;;
+AD33;HANGUL SYLLABLE GWAEH;Lo;0;L;;;;;N;;;;;
+AD34;HANGUL SYLLABLE GOE;Lo;0;L;;;;;N;;;;;
+AD35;HANGUL SYLLABLE GOEG;Lo;0;L;;;;;N;;;;;
+AD36;HANGUL SYLLABLE GOEGG;Lo;0;L;;;;;N;;;;;
+AD37;HANGUL SYLLABLE GOEGS;Lo;0;L;;;;;N;;;;;
+AD38;HANGUL SYLLABLE GOEN;Lo;0;L;;;;;N;;;;;
+AD39;HANGUL SYLLABLE GOENI;Lo;0;L;;;;;N;;;;;
+AD3A;HANGUL SYLLABLE GOENH;Lo;0;L;;;;;N;;;;;
+AD3B;HANGUL SYLLABLE GOED;Lo;0;L;;;;;N;;;;;
+AD3C;HANGUL SYLLABLE GOEL;Lo;0;L;;;;;N;;;;;
+AD3D;HANGUL SYLLABLE GOELG;Lo;0;L;;;;;N;;;;;
+AD3E;HANGUL SYLLABLE GOELM;Lo;0;L;;;;;N;;;;;
+AD3F;HANGUL SYLLABLE GOELB;Lo;0;L;;;;;N;;;;;
+AD40;HANGUL SYLLABLE GOELS;Lo;0;L;;;;;N;;;;;
+AD41;HANGUL SYLLABLE GOELT;Lo;0;L;;;;;N;;;;;
+AD42;HANGUL SYLLABLE GOELP;Lo;0;L;;;;;N;;;;;
+AD43;HANGUL SYLLABLE GOELH;Lo;0;L;;;;;N;;;;;
+AD44;HANGUL SYLLABLE GOEM;Lo;0;L;;;;;N;;;;;
+AD45;HANGUL SYLLABLE GOEB;Lo;0;L;;;;;N;;;;;
+AD46;HANGUL SYLLABLE GOEBS;Lo;0;L;;;;;N;;;;;
+AD47;HANGUL SYLLABLE GOES;Lo;0;L;;;;;N;;;;;
+AD48;HANGUL SYLLABLE GOESS;Lo;0;L;;;;;N;;;;;
+AD49;HANGUL SYLLABLE GOENG;Lo;0;L;;;;;N;;;;;
+AD4A;HANGUL SYLLABLE GOEJ;Lo;0;L;;;;;N;;;;;
+AD4B;HANGUL SYLLABLE GOEC;Lo;0;L;;;;;N;;;;;
+AD4C;HANGUL SYLLABLE GOEK;Lo;0;L;;;;;N;;;;;
+AD4D;HANGUL SYLLABLE GOET;Lo;0;L;;;;;N;;;;;
+AD4E;HANGUL SYLLABLE GOEP;Lo;0;L;;;;;N;;;;;
+AD4F;HANGUL SYLLABLE GOEH;Lo;0;L;;;;;N;;;;;
+AD50;HANGUL SYLLABLE GYO;Lo;0;L;;;;;N;;;;;
+AD51;HANGUL SYLLABLE GYOG;Lo;0;L;;;;;N;;;;;
+AD52;HANGUL SYLLABLE GYOGG;Lo;0;L;;;;;N;;;;;
+AD53;HANGUL SYLLABLE GYOGS;Lo;0;L;;;;;N;;;;;
+AD54;HANGUL SYLLABLE GYON;Lo;0;L;;;;;N;;;;;
+AD55;HANGUL SYLLABLE GYONI;Lo;0;L;;;;;N;;;;;
+AD56;HANGUL SYLLABLE GYONH;Lo;0;L;;;;;N;;;;;
+AD57;HANGUL SYLLABLE GYOD;Lo;0;L;;;;;N;;;;;
+AD58;HANGUL SYLLABLE GYOL;Lo;0;L;;;;;N;;;;;
+AD59;HANGUL SYLLABLE GYOLG;Lo;0;L;;;;;N;;;;;
+AD5A;HANGUL SYLLABLE GYOLM;Lo;0;L;;;;;N;;;;;
+AD5B;HANGUL SYLLABLE GYOLB;Lo;0;L;;;;;N;;;;;
+AD5C;HANGUL SYLLABLE GYOLS;Lo;0;L;;;;;N;;;;;
+AD5D;HANGUL SYLLABLE GYOLT;Lo;0;L;;;;;N;;;;;
+AD5E;HANGUL SYLLABLE GYOLP;Lo;0;L;;;;;N;;;;;
+AD5F;HANGUL SYLLABLE GYOLH;Lo;0;L;;;;;N;;;;;
+AD60;HANGUL SYLLABLE GYOM;Lo;0;L;;;;;N;;;;;
+AD61;HANGUL SYLLABLE GYOB;Lo;0;L;;;;;N;;;;;
+AD62;HANGUL SYLLABLE GYOBS;Lo;0;L;;;;;N;;;;;
+AD63;HANGUL SYLLABLE GYOS;Lo;0;L;;;;;N;;;;;
+AD64;HANGUL SYLLABLE GYOSS;Lo;0;L;;;;;N;;;;;
+AD65;HANGUL SYLLABLE GYONG;Lo;0;L;;;;;N;;;;;
+AD66;HANGUL SYLLABLE GYOJ;Lo;0;L;;;;;N;;;;;
+AD67;HANGUL SYLLABLE GYOC;Lo;0;L;;;;;N;;;;;
+AD68;HANGUL SYLLABLE GYOK;Lo;0;L;;;;;N;;;;;
+AD69;HANGUL SYLLABLE GYOT;Lo;0;L;;;;;N;;;;;
+AD6A;HANGUL SYLLABLE GYOP;Lo;0;L;;;;;N;;;;;
+AD6B;HANGUL SYLLABLE GYOH;Lo;0;L;;;;;N;;;;;
+AD6C;HANGUL SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+AD6D;HANGUL SYLLABLE GUG;Lo;0;L;;;;;N;;;;;
+AD6E;HANGUL SYLLABLE GUGG;Lo;0;L;;;;;N;;;;;
+AD6F;HANGUL SYLLABLE GUGS;Lo;0;L;;;;;N;;;;;
+AD70;HANGUL SYLLABLE GUN;Lo;0;L;;;;;N;;;;;
+AD71;HANGUL SYLLABLE GUNI;Lo;0;L;;;;;N;;;;;
+AD72;HANGUL SYLLABLE GUNH;Lo;0;L;;;;;N;;;;;
+AD73;HANGUL SYLLABLE GUD;Lo;0;L;;;;;N;;;;;
+AD74;HANGUL SYLLABLE GUL;Lo;0;L;;;;;N;;;;;
+AD75;HANGUL SYLLABLE GULG;Lo;0;L;;;;;N;;;;;
+AD76;HANGUL SYLLABLE GULM;Lo;0;L;;;;;N;;;;;
+AD77;HANGUL SYLLABLE GULB;Lo;0;L;;;;;N;;;;;
+AD78;HANGUL SYLLABLE GULS;Lo;0;L;;;;;N;;;;;
+AD79;HANGUL SYLLABLE GULT;Lo;0;L;;;;;N;;;;;
+AD7A;HANGUL SYLLABLE GULP;Lo;0;L;;;;;N;;;;;
+AD7B;HANGUL SYLLABLE GULH;Lo;0;L;;;;;N;;;;;
+AD7C;HANGUL SYLLABLE GUM;Lo;0;L;;;;;N;;;;;
+AD7D;HANGUL SYLLABLE GUB;Lo;0;L;;;;;N;;;;;
+AD7E;HANGUL SYLLABLE GUBS;Lo;0;L;;;;;N;;;;;
+AD7F;HANGUL SYLLABLE GUS;Lo;0;L;;;;;N;;;;;
+AD80;HANGUL SYLLABLE GUSS;Lo;0;L;;;;;N;;;;;
+AD81;HANGUL SYLLABLE GUNG;Lo;0;L;;;;;N;;;;;
+AD82;HANGUL SYLLABLE GUJ;Lo;0;L;;;;;N;;;;;
+AD83;HANGUL SYLLABLE GUC;Lo;0;L;;;;;N;;;;;
+AD84;HANGUL SYLLABLE GUK;Lo;0;L;;;;;N;;;;;
+AD85;HANGUL SYLLABLE GUT;Lo;0;L;;;;;N;;;;;
+AD86;HANGUL SYLLABLE GUP;Lo;0;L;;;;;N;;;;;
+AD87;HANGUL SYLLABLE GUH;Lo;0;L;;;;;N;;;;;
+AD88;HANGUL SYLLABLE GWEO;Lo;0;L;;;;;N;;;;;
+AD89;HANGUL SYLLABLE GWEOG;Lo;0;L;;;;;N;;;;;
+AD8A;HANGUL SYLLABLE GWEOGG;Lo;0;L;;;;;N;;;;;
+AD8B;HANGUL SYLLABLE GWEOGS;Lo;0;L;;;;;N;;;;;
+AD8C;HANGUL SYLLABLE GWEON;Lo;0;L;;;;;N;;;;;
+AD8D;HANGUL SYLLABLE GWEONI;Lo;0;L;;;;;N;;;;;
+AD8E;HANGUL SYLLABLE GWEONH;Lo;0;L;;;;;N;;;;;
+AD8F;HANGUL SYLLABLE GWEOD;Lo;0;L;;;;;N;;;;;
+AD90;HANGUL SYLLABLE GWEOL;Lo;0;L;;;;;N;;;;;
+AD91;HANGUL SYLLABLE GWEOLG;Lo;0;L;;;;;N;;;;;
+AD92;HANGUL SYLLABLE GWEOLM;Lo;0;L;;;;;N;;;;;
+AD93;HANGUL SYLLABLE GWEOLB;Lo;0;L;;;;;N;;;;;
+AD94;HANGUL SYLLABLE GWEOLS;Lo;0;L;;;;;N;;;;;
+AD95;HANGUL SYLLABLE GWEOLT;Lo;0;L;;;;;N;;;;;
+AD96;HANGUL SYLLABLE GWEOLP;Lo;0;L;;;;;N;;;;;
+AD97;HANGUL SYLLABLE GWEOLH;Lo;0;L;;;;;N;;;;;
+AD98;HANGUL SYLLABLE GWEOM;Lo;0;L;;;;;N;;;;;
+AD99;HANGUL SYLLABLE GWEOB;Lo;0;L;;;;;N;;;;;
+AD9A;HANGUL SYLLABLE GWEOBS;Lo;0;L;;;;;N;;;;;
+AD9B;HANGUL SYLLABLE GWEOS;Lo;0;L;;;;;N;;;;;
+AD9C;HANGUL SYLLABLE GWEOSS;Lo;0;L;;;;;N;;;;;
+AD9D;HANGUL SYLLABLE GWEONG;Lo;0;L;;;;;N;;;;;
+AD9E;HANGUL SYLLABLE GWEOJ;Lo;0;L;;;;;N;;;;;
+AD9F;HANGUL SYLLABLE GWEOC;Lo;0;L;;;;;N;;;;;
+ADA0;HANGUL SYLLABLE GWEOK;Lo;0;L;;;;;N;;;;;
+ADA1;HANGUL SYLLABLE GWEOT;Lo;0;L;;;;;N;;;;;
+ADA2;HANGUL SYLLABLE GWEOP;Lo;0;L;;;;;N;;;;;
+ADA3;HANGUL SYLLABLE GWEOH;Lo;0;L;;;;;N;;;;;
+ADA4;HANGUL SYLLABLE GWE;Lo;0;L;;;;;N;;;;;
+ADA5;HANGUL SYLLABLE GWEG;Lo;0;L;;;;;N;;;;;
+ADA6;HANGUL SYLLABLE GWEGG;Lo;0;L;;;;;N;;;;;
+ADA7;HANGUL SYLLABLE GWEGS;Lo;0;L;;;;;N;;;;;
+ADA8;HANGUL SYLLABLE GWEN;Lo;0;L;;;;;N;;;;;
+ADA9;HANGUL SYLLABLE GWENI;Lo;0;L;;;;;N;;;;;
+ADAA;HANGUL SYLLABLE GWENH;Lo;0;L;;;;;N;;;;;
+ADAB;HANGUL SYLLABLE GWED;Lo;0;L;;;;;N;;;;;
+ADAC;HANGUL SYLLABLE GWEL;Lo;0;L;;;;;N;;;;;
+ADAD;HANGUL SYLLABLE GWELG;Lo;0;L;;;;;N;;;;;
+ADAE;HANGUL SYLLABLE GWELM;Lo;0;L;;;;;N;;;;;
+ADAF;HANGUL SYLLABLE GWELB;Lo;0;L;;;;;N;;;;;
+ADB0;HANGUL SYLLABLE GWELS;Lo;0;L;;;;;N;;;;;
+ADB1;HANGUL SYLLABLE GWELT;Lo;0;L;;;;;N;;;;;
+ADB2;HANGUL SYLLABLE GWELP;Lo;0;L;;;;;N;;;;;
+ADB3;HANGUL SYLLABLE GWELH;Lo;0;L;;;;;N;;;;;
+ADB4;HANGUL SYLLABLE GWEM;Lo;0;L;;;;;N;;;;;
+ADB5;HANGUL SYLLABLE GWEB;Lo;0;L;;;;;N;;;;;
+ADB6;HANGUL SYLLABLE GWEBS;Lo;0;L;;;;;N;;;;;
+ADB7;HANGUL SYLLABLE GWES;Lo;0;L;;;;;N;;;;;
+ADB8;HANGUL SYLLABLE GWESS;Lo;0;L;;;;;N;;;;;
+ADB9;HANGUL SYLLABLE GWENG;Lo;0;L;;;;;N;;;;;
+ADBA;HANGUL SYLLABLE GWEJ;Lo;0;L;;;;;N;;;;;
+ADBB;HANGUL SYLLABLE GWEC;Lo;0;L;;;;;N;;;;;
+ADBC;HANGUL SYLLABLE GWEK;Lo;0;L;;;;;N;;;;;
+ADBD;HANGUL SYLLABLE GWET;Lo;0;L;;;;;N;;;;;
+ADBE;HANGUL SYLLABLE GWEP;Lo;0;L;;;;;N;;;;;
+ADBF;HANGUL SYLLABLE GWEH;Lo;0;L;;;;;N;;;;;
+ADC0;HANGUL SYLLABLE GWI;Lo;0;L;;;;;N;;;;;
+ADC1;HANGUL SYLLABLE GWIG;Lo;0;L;;;;;N;;;;;
+ADC2;HANGUL SYLLABLE GWIGG;Lo;0;L;;;;;N;;;;;
+ADC3;HANGUL SYLLABLE GWIGS;Lo;0;L;;;;;N;;;;;
+ADC4;HANGUL SYLLABLE GWIN;Lo;0;L;;;;;N;;;;;
+ADC5;HANGUL SYLLABLE GWINI;Lo;0;L;;;;;N;;;;;
+ADC6;HANGUL SYLLABLE GWINH;Lo;0;L;;;;;N;;;;;
+ADC7;HANGUL SYLLABLE GWID;Lo;0;L;;;;;N;;;;;
+ADC8;HANGUL SYLLABLE GWIL;Lo;0;L;;;;;N;;;;;
+ADC9;HANGUL SYLLABLE GWILG;Lo;0;L;;;;;N;;;;;
+ADCA;HANGUL SYLLABLE GWILM;Lo;0;L;;;;;N;;;;;
+ADCB;HANGUL SYLLABLE GWILB;Lo;0;L;;;;;N;;;;;
+ADCC;HANGUL SYLLABLE GWILS;Lo;0;L;;;;;N;;;;;
+ADCD;HANGUL SYLLABLE GWILT;Lo;0;L;;;;;N;;;;;
+ADCE;HANGUL SYLLABLE GWILP;Lo;0;L;;;;;N;;;;;
+ADCF;HANGUL SYLLABLE GWILH;Lo;0;L;;;;;N;;;;;
+ADD0;HANGUL SYLLABLE GWIM;Lo;0;L;;;;;N;;;;;
+ADD1;HANGUL SYLLABLE GWIB;Lo;0;L;;;;;N;;;;;
+ADD2;HANGUL SYLLABLE GWIBS;Lo;0;L;;;;;N;;;;;
+ADD3;HANGUL SYLLABLE GWIS;Lo;0;L;;;;;N;;;;;
+ADD4;HANGUL SYLLABLE GWISS;Lo;0;L;;;;;N;;;;;
+ADD5;HANGUL SYLLABLE GWING;Lo;0;L;;;;;N;;;;;
+ADD6;HANGUL SYLLABLE GWIJ;Lo;0;L;;;;;N;;;;;
+ADD7;HANGUL SYLLABLE GWIC;Lo;0;L;;;;;N;;;;;
+ADD8;HANGUL SYLLABLE GWIK;Lo;0;L;;;;;N;;;;;
+ADD9;HANGUL SYLLABLE GWIT;Lo;0;L;;;;;N;;;;;
+ADDA;HANGUL SYLLABLE GWIP;Lo;0;L;;;;;N;;;;;
+ADDB;HANGUL SYLLABLE GWIH;Lo;0;L;;;;;N;;;;;
+ADDC;HANGUL SYLLABLE GYU;Lo;0;L;;;;;N;;;;;
+ADDD;HANGUL SYLLABLE GYUG;Lo;0;L;;;;;N;;;;;
+ADDE;HANGUL SYLLABLE GYUGG;Lo;0;L;;;;;N;;;;;
+ADDF;HANGUL SYLLABLE GYUGS;Lo;0;L;;;;;N;;;;;
+ADE0;HANGUL SYLLABLE GYUN;Lo;0;L;;;;;N;;;;;
+ADE1;HANGUL SYLLABLE GYUNI;Lo;0;L;;;;;N;;;;;
+ADE2;HANGUL SYLLABLE GYUNH;Lo;0;L;;;;;N;;;;;
+ADE3;HANGUL SYLLABLE GYUD;Lo;0;L;;;;;N;;;;;
+ADE4;HANGUL SYLLABLE GYUL;Lo;0;L;;;;;N;;;;;
+ADE5;HANGUL SYLLABLE GYULG;Lo;0;L;;;;;N;;;;;
+ADE6;HANGUL SYLLABLE GYULM;Lo;0;L;;;;;N;;;;;
+ADE7;HANGUL SYLLABLE GYULB;Lo;0;L;;;;;N;;;;;
+ADE8;HANGUL SYLLABLE GYULS;Lo;0;L;;;;;N;;;;;
+ADE9;HANGUL SYLLABLE GYULT;Lo;0;L;;;;;N;;;;;
+ADEA;HANGUL SYLLABLE GYULP;Lo;0;L;;;;;N;;;;;
+ADEB;HANGUL SYLLABLE GYULH;Lo;0;L;;;;;N;;;;;
+ADEC;HANGUL SYLLABLE GYUM;Lo;0;L;;;;;N;;;;;
+ADED;HANGUL SYLLABLE GYUB;Lo;0;L;;;;;N;;;;;
+ADEE;HANGUL SYLLABLE GYUBS;Lo;0;L;;;;;N;;;;;
+ADEF;HANGUL SYLLABLE GYUS;Lo;0;L;;;;;N;;;;;
+ADF0;HANGUL SYLLABLE GYUSS;Lo;0;L;;;;;N;;;;;
+ADF1;HANGUL SYLLABLE GYUNG;Lo;0;L;;;;;N;;;;;
+ADF2;HANGUL SYLLABLE GYUJ;Lo;0;L;;;;;N;;;;;
+ADF3;HANGUL SYLLABLE GYUC;Lo;0;L;;;;;N;;;;;
+ADF4;HANGUL SYLLABLE GYUK;Lo;0;L;;;;;N;;;;;
+ADF5;HANGUL SYLLABLE GYUT;Lo;0;L;;;;;N;;;;;
+ADF6;HANGUL SYLLABLE GYUP;Lo;0;L;;;;;N;;;;;
+ADF7;HANGUL SYLLABLE GYUH;Lo;0;L;;;;;N;;;;;
+ADF8;HANGUL SYLLABLE GEU;Lo;0;L;;;;;N;;;;;
+ADF9;HANGUL SYLLABLE GEUG;Lo;0;L;;;;;N;;;;;
+ADFA;HANGUL SYLLABLE GEUGG;Lo;0;L;;;;;N;;;;;
+ADFB;HANGUL SYLLABLE GEUGS;Lo;0;L;;;;;N;;;;;
+ADFC;HANGUL SYLLABLE GEUN;Lo;0;L;;;;;N;;;;;
+ADFD;HANGUL SYLLABLE GEUNI;Lo;0;L;;;;;N;;;;;
+ADFE;HANGUL SYLLABLE GEUNH;Lo;0;L;;;;;N;;;;;
+ADFF;HANGUL SYLLABLE GEUD;Lo;0;L;;;;;N;;;;;
+AE00;HANGUL SYLLABLE GEUL;Lo;0;L;;;;;N;;;;;
+AE01;HANGUL SYLLABLE GEULG;Lo;0;L;;;;;N;;;;;
+AE02;HANGUL SYLLABLE GEULM;Lo;0;L;;;;;N;;;;;
+AE03;HANGUL SYLLABLE GEULB;Lo;0;L;;;;;N;;;;;
+AE04;HANGUL SYLLABLE GEULS;Lo;0;L;;;;;N;;;;;
+AE05;HANGUL SYLLABLE GEULT;Lo;0;L;;;;;N;;;;;
+AE06;HANGUL SYLLABLE GEULP;Lo;0;L;;;;;N;;;;;
+AE07;HANGUL SYLLABLE GEULH;Lo;0;L;;;;;N;;;;;
+AE08;HANGUL SYLLABLE GEUM;Lo;0;L;;;;;N;;;;;
+AE09;HANGUL SYLLABLE GEUB;Lo;0;L;;;;;N;;;;;
+AE0A;HANGUL SYLLABLE GEUBS;Lo;0;L;;;;;N;;;;;
+AE0B;HANGUL SYLLABLE GEUS;Lo;0;L;;;;;N;;;;;
+AE0C;HANGUL SYLLABLE GEUSS;Lo;0;L;;;;;N;;;;;
+AE0D;HANGUL SYLLABLE GEUNG;Lo;0;L;;;;;N;;;;;
+AE0E;HANGUL SYLLABLE GEUJ;Lo;0;L;;;;;N;;;;;
+AE0F;HANGUL SYLLABLE GEUC;Lo;0;L;;;;;N;;;;;
+AE10;HANGUL SYLLABLE GEUK;Lo;0;L;;;;;N;;;;;
+AE11;HANGUL SYLLABLE GEUT;Lo;0;L;;;;;N;;;;;
+AE12;HANGUL SYLLABLE GEUP;Lo;0;L;;;;;N;;;;;
+AE13;HANGUL SYLLABLE GEUH;Lo;0;L;;;;;N;;;;;
+AE14;HANGUL SYLLABLE GYI;Lo;0;L;;;;;N;;;;;
+AE15;HANGUL SYLLABLE GYIG;Lo;0;L;;;;;N;;;;;
+AE16;HANGUL SYLLABLE GYIGG;Lo;0;L;;;;;N;;;;;
+AE17;HANGUL SYLLABLE GYIGS;Lo;0;L;;;;;N;;;;;
+AE18;HANGUL SYLLABLE GYIN;Lo;0;L;;;;;N;;;;;
+AE19;HANGUL SYLLABLE GYINI;Lo;0;L;;;;;N;;;;;
+AE1A;HANGUL SYLLABLE GYINH;Lo;0;L;;;;;N;;;;;
+AE1B;HANGUL SYLLABLE GYID;Lo;0;L;;;;;N;;;;;
+AE1C;HANGUL SYLLABLE GYIL;Lo;0;L;;;;;N;;;;;
+AE1D;HANGUL SYLLABLE GYILG;Lo;0;L;;;;;N;;;;;
+AE1E;HANGUL SYLLABLE GYILM;Lo;0;L;;;;;N;;;;;
+AE1F;HANGUL SYLLABLE GYILB;Lo;0;L;;;;;N;;;;;
+AE20;HANGUL SYLLABLE GYILS;Lo;0;L;;;;;N;;;;;
+AE21;HANGUL SYLLABLE GYILT;Lo;0;L;;;;;N;;;;;
+AE22;HANGUL SYLLABLE GYILP;Lo;0;L;;;;;N;;;;;
+AE23;HANGUL SYLLABLE GYILH;Lo;0;L;;;;;N;;;;;
+AE24;HANGUL SYLLABLE GYIM;Lo;0;L;;;;;N;;;;;
+AE25;HANGUL SYLLABLE GYIB;Lo;0;L;;;;;N;;;;;
+AE26;HANGUL SYLLABLE GYIBS;Lo;0;L;;;;;N;;;;;
+AE27;HANGUL SYLLABLE GYIS;Lo;0;L;;;;;N;;;;;
+AE28;HANGUL SYLLABLE GYISS;Lo;0;L;;;;;N;;;;;
+AE29;HANGUL SYLLABLE GYING;Lo;0;L;;;;;N;;;;;
+AE2A;HANGUL SYLLABLE GYIJ;Lo;0;L;;;;;N;;;;;
+AE2B;HANGUL SYLLABLE GYIC;Lo;0;L;;;;;N;;;;;
+AE2C;HANGUL SYLLABLE GYIK;Lo;0;L;;;;;N;;;;;
+AE2D;HANGUL SYLLABLE GYIT;Lo;0;L;;;;;N;;;;;
+AE2E;HANGUL SYLLABLE GYIP;Lo;0;L;;;;;N;;;;;
+AE2F;HANGUL SYLLABLE GYIH;Lo;0;L;;;;;N;;;;;
+AE30;HANGUL SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+AE31;HANGUL SYLLABLE GIG;Lo;0;L;;;;;N;;;;;
+AE32;HANGUL SYLLABLE GIGG;Lo;0;L;;;;;N;;;;;
+AE33;HANGUL SYLLABLE GIGS;Lo;0;L;;;;;N;;;;;
+AE34;HANGUL SYLLABLE GIN;Lo;0;L;;;;;N;;;;;
+AE35;HANGUL SYLLABLE GINI;Lo;0;L;;;;;N;;;;;
+AE36;HANGUL SYLLABLE GINH;Lo;0;L;;;;;N;;;;;
+AE37;HANGUL SYLLABLE GID;Lo;0;L;;;;;N;;;;;
+AE38;HANGUL SYLLABLE GIL;Lo;0;L;;;;;N;;;;;
+AE39;HANGUL SYLLABLE GILG;Lo;0;L;;;;;N;;;;;
+AE3A;HANGUL SYLLABLE GILM;Lo;0;L;;;;;N;;;;;
+AE3B;HANGUL SYLLABLE GILB;Lo;0;L;;;;;N;;;;;
+AE3C;HANGUL SYLLABLE GILS;Lo;0;L;;;;;N;;;;;
+AE3D;HANGUL SYLLABLE GILT;Lo;0;L;;;;;N;;;;;
+AE3E;HANGUL SYLLABLE GILP;Lo;0;L;;;;;N;;;;;
+AE3F;HANGUL SYLLABLE GILH;Lo;0;L;;;;;N;;;;;
+AE40;HANGUL SYLLABLE GIM;Lo;0;L;;;;;N;;;;;
+AE41;HANGUL SYLLABLE GIB;Lo;0;L;;;;;N;;;;;
+AE42;HANGUL SYLLABLE GIBS;Lo;0;L;;;;;N;;;;;
+AE43;HANGUL SYLLABLE GIS;Lo;0;L;;;;;N;;;;;
+AE44;HANGUL SYLLABLE GISS;Lo;0;L;;;;;N;;;;;
+AE45;HANGUL SYLLABLE GING;Lo;0;L;;;;;N;;;;;
+AE46;HANGUL SYLLABLE GIJ;Lo;0;L;;;;;N;;;;;
+AE47;HANGUL SYLLABLE GIC;Lo;0;L;;;;;N;;;;;
+AE48;HANGUL SYLLABLE GIK;Lo;0;L;;;;;N;;;;;
+AE49;HANGUL SYLLABLE GIT;Lo;0;L;;;;;N;;;;;
+AE4A;HANGUL SYLLABLE GIP;Lo;0;L;;;;;N;;;;;
+AE4B;HANGUL SYLLABLE GIH;Lo;0;L;;;;;N;;;;;
+AE4C;HANGUL SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+AE4D;HANGUL SYLLABLE GGAG;Lo;0;L;;;;;N;;;;;
+AE4E;HANGUL SYLLABLE GGAGG;Lo;0;L;;;;;N;;;;;
+AE4F;HANGUL SYLLABLE GGAGS;Lo;0;L;;;;;N;;;;;
+AE50;HANGUL SYLLABLE GGAN;Lo;0;L;;;;;N;;;;;
+AE51;HANGUL SYLLABLE GGANI;Lo;0;L;;;;;N;;;;;
+AE52;HANGUL SYLLABLE GGANH;Lo;0;L;;;;;N;;;;;
+AE53;HANGUL SYLLABLE GGAD;Lo;0;L;;;;;N;;;;;
+AE54;HANGUL SYLLABLE GGAL;Lo;0;L;;;;;N;;;;;
+AE55;HANGUL SYLLABLE GGALG;Lo;0;L;;;;;N;;;;;
+AE56;HANGUL SYLLABLE GGALM;Lo;0;L;;;;;N;;;;;
+AE57;HANGUL SYLLABLE GGALB;Lo;0;L;;;;;N;;;;;
+AE58;HANGUL SYLLABLE GGALS;Lo;0;L;;;;;N;;;;;
+AE59;HANGUL SYLLABLE GGALT;Lo;0;L;;;;;N;;;;;
+AE5A;HANGUL SYLLABLE GGALP;Lo;0;L;;;;;N;;;;;
+AE5B;HANGUL SYLLABLE GGALH;Lo;0;L;;;;;N;;;;;
+AE5C;HANGUL SYLLABLE GGAM;Lo;0;L;;;;;N;;;;;
+AE5D;HANGUL SYLLABLE GGAB;Lo;0;L;;;;;N;;;;;
+AE5E;HANGUL SYLLABLE GGABS;Lo;0;L;;;;;N;;;;;
+AE5F;HANGUL SYLLABLE GGAS;Lo;0;L;;;;;N;;;;;
+AE60;HANGUL SYLLABLE GGASS;Lo;0;L;;;;;N;;;;;
+AE61;HANGUL SYLLABLE GGANG;Lo;0;L;;;;;N;;;;;
+AE62;HANGUL SYLLABLE GGAJ;Lo;0;L;;;;;N;;;;;
+AE63;HANGUL SYLLABLE GGAC;Lo;0;L;;;;;N;;;;;
+AE64;HANGUL SYLLABLE GGAK;Lo;0;L;;;;;N;;;;;
+AE65;HANGUL SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;
+AE66;HANGUL SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;
+AE67;HANGUL SYLLABLE GGAH;Lo;0;L;;;;;N;;;;;
+AE68;HANGUL SYLLABLE GGAE;Lo;0;L;;;;;N;;;;;
+AE69;HANGUL SYLLABLE GGAEG;Lo;0;L;;;;;N;;;;;
+AE6A;HANGUL SYLLABLE GGAEGG;Lo;0;L;;;;;N;;;;;
+AE6B;HANGUL SYLLABLE GGAEGS;Lo;0;L;;;;;N;;;;;
+AE6C;HANGUL SYLLABLE GGAEN;Lo;0;L;;;;;N;;;;;
+AE6D;HANGUL SYLLABLE GGAENI;Lo;0;L;;;;;N;;;;;
+AE6E;HANGUL SYLLABLE GGAENH;Lo;0;L;;;;;N;;;;;
+AE6F;HANGUL SYLLABLE GGAED;Lo;0;L;;;;;N;;;;;
+AE70;HANGUL SYLLABLE GGAEL;Lo;0;L;;;;;N;;;;;
+AE71;HANGUL SYLLABLE GGAELG;Lo;0;L;;;;;N;;;;;
+AE72;HANGUL SYLLABLE GGAELM;Lo;0;L;;;;;N;;;;;
+AE73;HANGUL SYLLABLE GGAELB;Lo;0;L;;;;;N;;;;;
+AE74;HANGUL SYLLABLE GGAELS;Lo;0;L;;;;;N;;;;;
+AE75;HANGUL SYLLABLE GGAELT;Lo;0;L;;;;;N;;;;;
+AE76;HANGUL SYLLABLE GGAELP;Lo;0;L;;;;;N;;;;;
+AE77;HANGUL SYLLABLE GGAELH;Lo;0;L;;;;;N;;;;;
+AE78;HANGUL SYLLABLE GGAEM;Lo;0;L;;;;;N;;;;;
+AE79;HANGUL SYLLABLE GGAEB;Lo;0;L;;;;;N;;;;;
+AE7A;HANGUL SYLLABLE GGAEBS;Lo;0;L;;;;;N;;;;;
+AE7B;HANGUL SYLLABLE GGAES;Lo;0;L;;;;;N;;;;;
+AE7C;HANGUL SYLLABLE GGAESS;Lo;0;L;;;;;N;;;;;
+AE7D;HANGUL SYLLABLE GGAENG;Lo;0;L;;;;;N;;;;;
+AE7E;HANGUL SYLLABLE GGAEJ;Lo;0;L;;;;;N;;;;;
+AE7F;HANGUL SYLLABLE GGAEC;Lo;0;L;;;;;N;;;;;
+AE80;HANGUL SYLLABLE GGAEK;Lo;0;L;;;;;N;;;;;
+AE81;HANGUL SYLLABLE GGAET;Lo;0;L;;;;;N;;;;;
+AE82;HANGUL SYLLABLE GGAEP;Lo;0;L;;;;;N;;;;;
+AE83;HANGUL SYLLABLE GGAEH;Lo;0;L;;;;;N;;;;;
+AE84;HANGUL SYLLABLE GGYA;Lo;0;L;;;;;N;;;;;
+AE85;HANGUL SYLLABLE GGYAG;Lo;0;L;;;;;N;;;;;
+AE86;HANGUL SYLLABLE GGYAGG;Lo;0;L;;;;;N;;;;;
+AE87;HANGUL SYLLABLE GGYAGS;Lo;0;L;;;;;N;;;;;
+AE88;HANGUL SYLLABLE GGYAN;Lo;0;L;;;;;N;;;;;
+AE89;HANGUL SYLLABLE GGYANI;Lo;0;L;;;;;N;;;;;
+AE8A;HANGUL SYLLABLE GGYANH;Lo;0;L;;;;;N;;;;;
+AE8B;HANGUL SYLLABLE GGYAD;Lo;0;L;;;;;N;;;;;
+AE8C;HANGUL SYLLABLE GGYAL;Lo;0;L;;;;;N;;;;;
+AE8D;HANGUL SYLLABLE GGYALG;Lo;0;L;;;;;N;;;;;
+AE8E;HANGUL SYLLABLE GGYALM;Lo;0;L;;;;;N;;;;;
+AE8F;HANGUL SYLLABLE GGYALB;Lo;0;L;;;;;N;;;;;
+AE90;HANGUL SYLLABLE GGYALS;Lo;0;L;;;;;N;;;;;
+AE91;HANGUL SYLLABLE GGYALT;Lo;0;L;;;;;N;;;;;
+AE92;HANGUL SYLLABLE GGYALP;Lo;0;L;;;;;N;;;;;
+AE93;HANGUL SYLLABLE GGYALH;Lo;0;L;;;;;N;;;;;
+AE94;HANGUL SYLLABLE GGYAM;Lo;0;L;;;;;N;;;;;
+AE95;HANGUL SYLLABLE GGYAB;Lo;0;L;;;;;N;;;;;
+AE96;HANGUL SYLLABLE GGYABS;Lo;0;L;;;;;N;;;;;
+AE97;HANGUL SYLLABLE GGYAS;Lo;0;L;;;;;N;;;;;
+AE98;HANGUL SYLLABLE GGYASS;Lo;0;L;;;;;N;;;;;
+AE99;HANGUL SYLLABLE GGYANG;Lo;0;L;;;;;N;;;;;
+AE9A;HANGUL SYLLABLE GGYAJ;Lo;0;L;;;;;N;;;;;
+AE9B;HANGUL SYLLABLE GGYAC;Lo;0;L;;;;;N;;;;;
+AE9C;HANGUL SYLLABLE GGYAK;Lo;0;L;;;;;N;;;;;
+AE9D;HANGUL SYLLABLE GGYAT;Lo;0;L;;;;;N;;;;;
+AE9E;HANGUL SYLLABLE GGYAP;Lo;0;L;;;;;N;;;;;
+AE9F;HANGUL SYLLABLE GGYAH;Lo;0;L;;;;;N;;;;;
+AEA0;HANGUL SYLLABLE GGYAE;Lo;0;L;;;;;N;;;;;
+AEA1;HANGUL SYLLABLE GGYAEG;Lo;0;L;;;;;N;;;;;
+AEA2;HANGUL SYLLABLE GGYAEGG;Lo;0;L;;;;;N;;;;;
+AEA3;HANGUL SYLLABLE GGYAEGS;Lo;0;L;;;;;N;;;;;
+AEA4;HANGUL SYLLABLE GGYAEN;Lo;0;L;;;;;N;;;;;
+AEA5;HANGUL SYLLABLE GGYAENI;Lo;0;L;;;;;N;;;;;
+AEA6;HANGUL SYLLABLE GGYAENH;Lo;0;L;;;;;N;;;;;
+AEA7;HANGUL SYLLABLE GGYAED;Lo;0;L;;;;;N;;;;;
+AEA8;HANGUL SYLLABLE GGYAEL;Lo;0;L;;;;;N;;;;;
+AEA9;HANGUL SYLLABLE GGYAELG;Lo;0;L;;;;;N;;;;;
+AEAA;HANGUL SYLLABLE GGYAELM;Lo;0;L;;;;;N;;;;;
+AEAB;HANGUL SYLLABLE GGYAELB;Lo;0;L;;;;;N;;;;;
+AEAC;HANGUL SYLLABLE GGYAELS;Lo;0;L;;;;;N;;;;;
+AEAD;HANGUL SYLLABLE GGYAELT;Lo;0;L;;;;;N;;;;;
+AEAE;HANGUL SYLLABLE GGYAELP;Lo;0;L;;;;;N;;;;;
+AEAF;HANGUL SYLLABLE GGYAELH;Lo;0;L;;;;;N;;;;;
+AEB0;HANGUL SYLLABLE GGYAEM;Lo;0;L;;;;;N;;;;;
+AEB1;HANGUL SYLLABLE GGYAEB;Lo;0;L;;;;;N;;;;;
+AEB2;HANGUL SYLLABLE GGYAEBS;Lo;0;L;;;;;N;;;;;
+AEB3;HANGUL SYLLABLE GGYAES;Lo;0;L;;;;;N;;;;;
+AEB4;HANGUL SYLLABLE GGYAESS;Lo;0;L;;;;;N;;;;;
+AEB5;HANGUL SYLLABLE GGYAENG;Lo;0;L;;;;;N;;;;;
+AEB6;HANGUL SYLLABLE GGYAEJ;Lo;0;L;;;;;N;;;;;
+AEB7;HANGUL SYLLABLE GGYAEC;Lo;0;L;;;;;N;;;;;
+AEB8;HANGUL SYLLABLE GGYAEK;Lo;0;L;;;;;N;;;;;
+AEB9;HANGUL SYLLABLE GGYAET;Lo;0;L;;;;;N;;;;;
+AEBA;HANGUL SYLLABLE GGYAEP;Lo;0;L;;;;;N;;;;;
+AEBB;HANGUL SYLLABLE GGYAEH;Lo;0;L;;;;;N;;;;;
+AEBC;HANGUL SYLLABLE GGEO;Lo;0;L;;;;;N;;;;;
+AEBD;HANGUL SYLLABLE GGEOG;Lo;0;L;;;;;N;;;;;
+AEBE;HANGUL SYLLABLE GGEOGG;Lo;0;L;;;;;N;;;;;
+AEBF;HANGUL SYLLABLE GGEOGS;Lo;0;L;;;;;N;;;;;
+AEC0;HANGUL SYLLABLE GGEON;Lo;0;L;;;;;N;;;;;
+AEC1;HANGUL SYLLABLE GGEONI;Lo;0;L;;;;;N;;;;;
+AEC2;HANGUL SYLLABLE GGEONH;Lo;0;L;;;;;N;;;;;
+AEC3;HANGUL SYLLABLE GGEOD;Lo;0;L;;;;;N;;;;;
+AEC4;HANGUL SYLLABLE GGEOL;Lo;0;L;;;;;N;;;;;
+AEC5;HANGUL SYLLABLE GGEOLG;Lo;0;L;;;;;N;;;;;
+AEC6;HANGUL SYLLABLE GGEOLM;Lo;0;L;;;;;N;;;;;
+AEC7;HANGUL SYLLABLE GGEOLB;Lo;0;L;;;;;N;;;;;
+AEC8;HANGUL SYLLABLE GGEOLS;Lo;0;L;;;;;N;;;;;
+AEC9;HANGUL SYLLABLE GGEOLT;Lo;0;L;;;;;N;;;;;
+AECA;HANGUL SYLLABLE GGEOLP;Lo;0;L;;;;;N;;;;;
+AECB;HANGUL SYLLABLE GGEOLH;Lo;0;L;;;;;N;;;;;
+AECC;HANGUL SYLLABLE GGEOM;Lo;0;L;;;;;N;;;;;
+AECD;HANGUL SYLLABLE GGEOB;Lo;0;L;;;;;N;;;;;
+AECE;HANGUL SYLLABLE GGEOBS;Lo;0;L;;;;;N;;;;;
+AECF;HANGUL SYLLABLE GGEOS;Lo;0;L;;;;;N;;;;;
+AED0;HANGUL SYLLABLE GGEOSS;Lo;0;L;;;;;N;;;;;
+AED1;HANGUL SYLLABLE GGEONG;Lo;0;L;;;;;N;;;;;
+AED2;HANGUL SYLLABLE GGEOJ;Lo;0;L;;;;;N;;;;;
+AED3;HANGUL SYLLABLE GGEOC;Lo;0;L;;;;;N;;;;;
+AED4;HANGUL SYLLABLE GGEOK;Lo;0;L;;;;;N;;;;;
+AED5;HANGUL SYLLABLE GGEOT;Lo;0;L;;;;;N;;;;;
+AED6;HANGUL SYLLABLE GGEOP;Lo;0;L;;;;;N;;;;;
+AED7;HANGUL SYLLABLE GGEOH;Lo;0;L;;;;;N;;;;;
+AED8;HANGUL SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+AED9;HANGUL SYLLABLE GGEG;Lo;0;L;;;;;N;;;;;
+AEDA;HANGUL SYLLABLE GGEGG;Lo;0;L;;;;;N;;;;;
+AEDB;HANGUL SYLLABLE GGEGS;Lo;0;L;;;;;N;;;;;
+AEDC;HANGUL SYLLABLE GGEN;Lo;0;L;;;;;N;;;;;
+AEDD;HANGUL SYLLABLE GGENI;Lo;0;L;;;;;N;;;;;
+AEDE;HANGUL SYLLABLE GGENH;Lo;0;L;;;;;N;;;;;
+AEDF;HANGUL SYLLABLE GGED;Lo;0;L;;;;;N;;;;;
+AEE0;HANGUL SYLLABLE GGEL;Lo;0;L;;;;;N;;;;;
+AEE1;HANGUL SYLLABLE GGELG;Lo;0;L;;;;;N;;;;;
+AEE2;HANGUL SYLLABLE GGELM;Lo;0;L;;;;;N;;;;;
+AEE3;HANGUL SYLLABLE GGELB;Lo;0;L;;;;;N;;;;;
+AEE4;HANGUL SYLLABLE GGELS;Lo;0;L;;;;;N;;;;;
+AEE5;HANGUL SYLLABLE GGELT;Lo;0;L;;;;;N;;;;;
+AEE6;HANGUL SYLLABLE GGELP;Lo;0;L;;;;;N;;;;;
+AEE7;HANGUL SYLLABLE GGELH;Lo;0;L;;;;;N;;;;;
+AEE8;HANGUL SYLLABLE GGEM;Lo;0;L;;;;;N;;;;;
+AEE9;HANGUL SYLLABLE GGEB;Lo;0;L;;;;;N;;;;;
+AEEA;HANGUL SYLLABLE GGEBS;Lo;0;L;;;;;N;;;;;
+AEEB;HANGUL SYLLABLE GGES;Lo;0;L;;;;;N;;;;;
+AEEC;HANGUL SYLLABLE GGESS;Lo;0;L;;;;;N;;;;;
+AEED;HANGUL SYLLABLE GGENG;Lo;0;L;;;;;N;;;;;
+AEEE;HANGUL SYLLABLE GGEJ;Lo;0;L;;;;;N;;;;;
+AEEF;HANGUL SYLLABLE GGEC;Lo;0;L;;;;;N;;;;;
+AEF0;HANGUL SYLLABLE GGEK;Lo;0;L;;;;;N;;;;;
+AEF1;HANGUL SYLLABLE GGET;Lo;0;L;;;;;N;;;;;
+AEF2;HANGUL SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;
+AEF3;HANGUL SYLLABLE GGEH;Lo;0;L;;;;;N;;;;;
+AEF4;HANGUL SYLLABLE GGYEO;Lo;0;L;;;;;N;;;;;
+AEF5;HANGUL SYLLABLE GGYEOG;Lo;0;L;;;;;N;;;;;
+AEF6;HANGUL SYLLABLE GGYEOGG;Lo;0;L;;;;;N;;;;;
+AEF7;HANGUL SYLLABLE GGYEOGS;Lo;0;L;;;;;N;;;;;
+AEF8;HANGUL SYLLABLE GGYEON;Lo;0;L;;;;;N;;;;;
+AEF9;HANGUL SYLLABLE GGYEONI;Lo;0;L;;;;;N;;;;;
+AEFA;HANGUL SYLLABLE GGYEONH;Lo;0;L;;;;;N;;;;;
+AEFB;HANGUL SYLLABLE GGYEOD;Lo;0;L;;;;;N;;;;;
+AEFC;HANGUL SYLLABLE GGYEOL;Lo;0;L;;;;;N;;;;;
+AEFD;HANGUL SYLLABLE GGYEOLG;Lo;0;L;;;;;N;;;;;
+AEFE;HANGUL SYLLABLE GGYEOLM;Lo;0;L;;;;;N;;;;;
+AEFF;HANGUL SYLLABLE GGYEOLB;Lo;0;L;;;;;N;;;;;
+AF00;HANGUL SYLLABLE GGYEOLS;Lo;0;L;;;;;N;;;;;
+AF01;HANGUL SYLLABLE GGYEOLT;Lo;0;L;;;;;N;;;;;
+AF02;HANGUL SYLLABLE GGYEOLP;Lo;0;L;;;;;N;;;;;
+AF03;HANGUL SYLLABLE GGYEOLH;Lo;0;L;;;;;N;;;;;
+AF04;HANGUL SYLLABLE GGYEOM;Lo;0;L;;;;;N;;;;;
+AF05;HANGUL SYLLABLE GGYEOB;Lo;0;L;;;;;N;;;;;
+AF06;HANGUL SYLLABLE GGYEOBS;Lo;0;L;;;;;N;;;;;
+AF07;HANGUL SYLLABLE GGYEOS;Lo;0;L;;;;;N;;;;;
+AF08;HANGUL SYLLABLE GGYEOSS;Lo;0;L;;;;;N;;;;;
+AF09;HANGUL SYLLABLE GGYEONG;Lo;0;L;;;;;N;;;;;
+AF0A;HANGUL SYLLABLE GGYEOJ;Lo;0;L;;;;;N;;;;;
+AF0B;HANGUL SYLLABLE GGYEOC;Lo;0;L;;;;;N;;;;;
+AF0C;HANGUL SYLLABLE GGYEOK;Lo;0;L;;;;;N;;;;;
+AF0D;HANGUL SYLLABLE GGYEOT;Lo;0;L;;;;;N;;;;;
+AF0E;HANGUL SYLLABLE GGYEOP;Lo;0;L;;;;;N;;;;;
+AF0F;HANGUL SYLLABLE GGYEOH;Lo;0;L;;;;;N;;;;;
+AF10;HANGUL SYLLABLE GGYE;Lo;0;L;;;;;N;;;;;
+AF11;HANGUL SYLLABLE GGYEG;Lo;0;L;;;;;N;;;;;
+AF12;HANGUL SYLLABLE GGYEGG;Lo;0;L;;;;;N;;;;;
+AF13;HANGUL SYLLABLE GGYEGS;Lo;0;L;;;;;N;;;;;
+AF14;HANGUL SYLLABLE GGYEN;Lo;0;L;;;;;N;;;;;
+AF15;HANGUL SYLLABLE GGYENI;Lo;0;L;;;;;N;;;;;
+AF16;HANGUL SYLLABLE GGYENH;Lo;0;L;;;;;N;;;;;
+AF17;HANGUL SYLLABLE GGYED;Lo;0;L;;;;;N;;;;;
+AF18;HANGUL SYLLABLE GGYEL;Lo;0;L;;;;;N;;;;;
+AF19;HANGUL SYLLABLE GGYELG;Lo;0;L;;;;;N;;;;;
+AF1A;HANGUL SYLLABLE GGYELM;Lo;0;L;;;;;N;;;;;
+AF1B;HANGUL SYLLABLE GGYELB;Lo;0;L;;;;;N;;;;;
+AF1C;HANGUL SYLLABLE GGYELS;Lo;0;L;;;;;N;;;;;
+AF1D;HANGUL SYLLABLE GGYELT;Lo;0;L;;;;;N;;;;;
+AF1E;HANGUL SYLLABLE GGYELP;Lo;0;L;;;;;N;;;;;
+AF1F;HANGUL SYLLABLE GGYELH;Lo;0;L;;;;;N;;;;;
+AF20;HANGUL SYLLABLE GGYEM;Lo;0;L;;;;;N;;;;;
+AF21;HANGUL SYLLABLE GGYEB;Lo;0;L;;;;;N;;;;;
+AF22;HANGUL SYLLABLE GGYEBS;Lo;0;L;;;;;N;;;;;
+AF23;HANGUL SYLLABLE GGYES;Lo;0;L;;;;;N;;;;;
+AF24;HANGUL SYLLABLE GGYESS;Lo;0;L;;;;;N;;;;;
+AF25;HANGUL SYLLABLE GGYENG;Lo;0;L;;;;;N;;;;;
+AF26;HANGUL SYLLABLE GGYEJ;Lo;0;L;;;;;N;;;;;
+AF27;HANGUL SYLLABLE GGYEC;Lo;0;L;;;;;N;;;;;
+AF28;HANGUL SYLLABLE GGYEK;Lo;0;L;;;;;N;;;;;
+AF29;HANGUL SYLLABLE GGYET;Lo;0;L;;;;;N;;;;;
+AF2A;HANGUL SYLLABLE GGYEP;Lo;0;L;;;;;N;;;;;
+AF2B;HANGUL SYLLABLE GGYEH;Lo;0;L;;;;;N;;;;;
+AF2C;HANGUL SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+AF2D;HANGUL SYLLABLE GGOG;Lo;0;L;;;;;N;;;;;
+AF2E;HANGUL SYLLABLE GGOGG;Lo;0;L;;;;;N;;;;;
+AF2F;HANGUL SYLLABLE GGOGS;Lo;0;L;;;;;N;;;;;
+AF30;HANGUL SYLLABLE GGON;Lo;0;L;;;;;N;;;;;
+AF31;HANGUL SYLLABLE GGONI;Lo;0;L;;;;;N;;;;;
+AF32;HANGUL SYLLABLE GGONH;Lo;0;L;;;;;N;;;;;
+AF33;HANGUL SYLLABLE GGOD;Lo;0;L;;;;;N;;;;;
+AF34;HANGUL SYLLABLE GGOL;Lo;0;L;;;;;N;;;;;
+AF35;HANGUL SYLLABLE GGOLG;Lo;0;L;;;;;N;;;;;
+AF36;HANGUL SYLLABLE GGOLM;Lo;0;L;;;;;N;;;;;
+AF37;HANGUL SYLLABLE GGOLB;Lo;0;L;;;;;N;;;;;
+AF38;HANGUL SYLLABLE GGOLS;Lo;0;L;;;;;N;;;;;
+AF39;HANGUL SYLLABLE GGOLT;Lo;0;L;;;;;N;;;;;
+AF3A;HANGUL SYLLABLE GGOLP;Lo;0;L;;;;;N;;;;;
+AF3B;HANGUL SYLLABLE GGOLH;Lo;0;L;;;;;N;;;;;
+AF3C;HANGUL SYLLABLE GGOM;Lo;0;L;;;;;N;;;;;
+AF3D;HANGUL SYLLABLE GGOB;Lo;0;L;;;;;N;;;;;
+AF3E;HANGUL SYLLABLE GGOBS;Lo;0;L;;;;;N;;;;;
+AF3F;HANGUL SYLLABLE GGOS;Lo;0;L;;;;;N;;;;;
+AF40;HANGUL SYLLABLE GGOSS;Lo;0;L;;;;;N;;;;;
+AF41;HANGUL SYLLABLE GGONG;Lo;0;L;;;;;N;;;;;
+AF42;HANGUL SYLLABLE GGOJ;Lo;0;L;;;;;N;;;;;
+AF43;HANGUL SYLLABLE GGOC;Lo;0;L;;;;;N;;;;;
+AF44;HANGUL SYLLABLE GGOK;Lo;0;L;;;;;N;;;;;
+AF45;HANGUL SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;
+AF46;HANGUL SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;
+AF47;HANGUL SYLLABLE GGOH;Lo;0;L;;;;;N;;;;;
+AF48;HANGUL SYLLABLE GGWA;Lo;0;L;;;;;N;;;;;
+AF49;HANGUL SYLLABLE GGWAG;Lo;0;L;;;;;N;;;;;
+AF4A;HANGUL SYLLABLE GGWAGG;Lo;0;L;;;;;N;;;;;
+AF4B;HANGUL SYLLABLE GGWAGS;Lo;0;L;;;;;N;;;;;
+AF4C;HANGUL SYLLABLE GGWAN;Lo;0;L;;;;;N;;;;;
+AF4D;HANGUL SYLLABLE GGWANI;Lo;0;L;;;;;N;;;;;
+AF4E;HANGUL SYLLABLE GGWANH;Lo;0;L;;;;;N;;;;;
+AF4F;HANGUL SYLLABLE GGWAD;Lo;0;L;;;;;N;;;;;
+AF50;HANGUL SYLLABLE GGWAL;Lo;0;L;;;;;N;;;;;
+AF51;HANGUL SYLLABLE GGWALG;Lo;0;L;;;;;N;;;;;
+AF52;HANGUL SYLLABLE GGWALM;Lo;0;L;;;;;N;;;;;
+AF53;HANGUL SYLLABLE GGWALB;Lo;0;L;;;;;N;;;;;
+AF54;HANGUL SYLLABLE GGWALS;Lo;0;L;;;;;N;;;;;
+AF55;HANGUL SYLLABLE GGWALT;Lo;0;L;;;;;N;;;;;
+AF56;HANGUL SYLLABLE GGWALP;Lo;0;L;;;;;N;;;;;
+AF57;HANGUL SYLLABLE GGWALH;Lo;0;L;;;;;N;;;;;
+AF58;HANGUL SYLLABLE GGWAM;Lo;0;L;;;;;N;;;;;
+AF59;HANGUL SYLLABLE GGWAB;Lo;0;L;;;;;N;;;;;
+AF5A;HANGUL SYLLABLE GGWABS;Lo;0;L;;;;;N;;;;;
+AF5B;HANGUL SYLLABLE GGWAS;Lo;0;L;;;;;N;;;;;
+AF5C;HANGUL SYLLABLE GGWASS;Lo;0;L;;;;;N;;;;;
+AF5D;HANGUL SYLLABLE GGWANG;Lo;0;L;;;;;N;;;;;
+AF5E;HANGUL SYLLABLE GGWAJ;Lo;0;L;;;;;N;;;;;
+AF5F;HANGUL SYLLABLE GGWAC;Lo;0;L;;;;;N;;;;;
+AF60;HANGUL SYLLABLE GGWAK;Lo;0;L;;;;;N;;;;;
+AF61;HANGUL SYLLABLE GGWAT;Lo;0;L;;;;;N;;;;;
+AF62;HANGUL SYLLABLE GGWAP;Lo;0;L;;;;;N;;;;;
+AF63;HANGUL SYLLABLE GGWAH;Lo;0;L;;;;;N;;;;;
+AF64;HANGUL SYLLABLE GGWAE;Lo;0;L;;;;;N;;;;;
+AF65;HANGUL SYLLABLE GGWAEG;Lo;0;L;;;;;N;;;;;
+AF66;HANGUL SYLLABLE GGWAEGG;Lo;0;L;;;;;N;;;;;
+AF67;HANGUL SYLLABLE GGWAEGS;Lo;0;L;;;;;N;;;;;
+AF68;HANGUL SYLLABLE GGWAEN;Lo;0;L;;;;;N;;;;;
+AF69;HANGUL SYLLABLE GGWAENI;Lo;0;L;;;;;N;;;;;
+AF6A;HANGUL SYLLABLE GGWAENH;Lo;0;L;;;;;N;;;;;
+AF6B;HANGUL SYLLABLE GGWAED;Lo;0;L;;;;;N;;;;;
+AF6C;HANGUL SYLLABLE GGWAEL;Lo;0;L;;;;;N;;;;;
+AF6D;HANGUL SYLLABLE GGWAELG;Lo;0;L;;;;;N;;;;;
+AF6E;HANGUL SYLLABLE GGWAELM;Lo;0;L;;;;;N;;;;;
+AF6F;HANGUL SYLLABLE GGWAELB;Lo;0;L;;;;;N;;;;;
+AF70;HANGUL SYLLABLE GGWAELS;Lo;0;L;;;;;N;;;;;
+AF71;HANGUL SYLLABLE GGWAELT;Lo;0;L;;;;;N;;;;;
+AF72;HANGUL SYLLABLE GGWAELP;Lo;0;L;;;;;N;;;;;
+AF73;HANGUL SYLLABLE GGWAELH;Lo;0;L;;;;;N;;;;;
+AF74;HANGUL SYLLABLE GGWAEM;Lo;0;L;;;;;N;;;;;
+AF75;HANGUL SYLLABLE GGWAEB;Lo;0;L;;;;;N;;;;;
+AF76;HANGUL SYLLABLE GGWAEBS;Lo;0;L;;;;;N;;;;;
+AF77;HANGUL SYLLABLE GGWAES;Lo;0;L;;;;;N;;;;;
+AF78;HANGUL SYLLABLE GGWAESS;Lo;0;L;;;;;N;;;;;
+AF79;HANGUL SYLLABLE GGWAENG;Lo;0;L;;;;;N;;;;;
+AF7A;HANGUL SYLLABLE GGWAEJ;Lo;0;L;;;;;N;;;;;
+AF7B;HANGUL SYLLABLE GGWAEC;Lo;0;L;;;;;N;;;;;
+AF7C;HANGUL SYLLABLE GGWAEK;Lo;0;L;;;;;N;;;;;
+AF7D;HANGUL SYLLABLE GGWAET;Lo;0;L;;;;;N;;;;;
+AF7E;HANGUL SYLLABLE GGWAEP;Lo;0;L;;;;;N;;;;;
+AF7F;HANGUL SYLLABLE GGWAEH;Lo;0;L;;;;;N;;;;;
+AF80;HANGUL SYLLABLE GGOE;Lo;0;L;;;;;N;;;;;
+AF81;HANGUL SYLLABLE GGOEG;Lo;0;L;;;;;N;;;;;
+AF82;HANGUL SYLLABLE GGOEGG;Lo;0;L;;;;;N;;;;;
+AF83;HANGUL SYLLABLE GGOEGS;Lo;0;L;;;;;N;;;;;
+AF84;HANGUL SYLLABLE GGOEN;Lo;0;L;;;;;N;;;;;
+AF85;HANGUL SYLLABLE GGOENI;Lo;0;L;;;;;N;;;;;
+AF86;HANGUL SYLLABLE GGOENH;Lo;0;L;;;;;N;;;;;
+AF87;HANGUL SYLLABLE GGOED;Lo;0;L;;;;;N;;;;;
+AF88;HANGUL SYLLABLE GGOEL;Lo;0;L;;;;;N;;;;;
+AF89;HANGUL SYLLABLE GGOELG;Lo;0;L;;;;;N;;;;;
+AF8A;HANGUL SYLLABLE GGOELM;Lo;0;L;;;;;N;;;;;
+AF8B;HANGUL SYLLABLE GGOELB;Lo;0;L;;;;;N;;;;;
+AF8C;HANGUL SYLLABLE GGOELS;Lo;0;L;;;;;N;;;;;
+AF8D;HANGUL SYLLABLE GGOELT;Lo;0;L;;;;;N;;;;;
+AF8E;HANGUL SYLLABLE GGOELP;Lo;0;L;;;;;N;;;;;
+AF8F;HANGUL SYLLABLE GGOELH;Lo;0;L;;;;;N;;;;;
+AF90;HANGUL SYLLABLE GGOEM;Lo;0;L;;;;;N;;;;;
+AF91;HANGUL SYLLABLE GGOEB;Lo;0;L;;;;;N;;;;;
+AF92;HANGUL SYLLABLE GGOEBS;Lo;0;L;;;;;N;;;;;
+AF93;HANGUL SYLLABLE GGOES;Lo;0;L;;;;;N;;;;;
+AF94;HANGUL SYLLABLE GGOESS;Lo;0;L;;;;;N;;;;;
+AF95;HANGUL SYLLABLE GGOENG;Lo;0;L;;;;;N;;;;;
+AF96;HANGUL SYLLABLE GGOEJ;Lo;0;L;;;;;N;;;;;
+AF97;HANGUL SYLLABLE GGOEC;Lo;0;L;;;;;N;;;;;
+AF98;HANGUL SYLLABLE GGOEK;Lo;0;L;;;;;N;;;;;
+AF99;HANGUL SYLLABLE GGOET;Lo;0;L;;;;;N;;;;;
+AF9A;HANGUL SYLLABLE GGOEP;Lo;0;L;;;;;N;;;;;
+AF9B;HANGUL SYLLABLE GGOEH;Lo;0;L;;;;;N;;;;;
+AF9C;HANGUL SYLLABLE GGYO;Lo;0;L;;;;;N;;;;;
+AF9D;HANGUL SYLLABLE GGYOG;Lo;0;L;;;;;N;;;;;
+AF9E;HANGUL SYLLABLE GGYOGG;Lo;0;L;;;;;N;;;;;
+AF9F;HANGUL SYLLABLE GGYOGS;Lo;0;L;;;;;N;;;;;
+AFA0;HANGUL SYLLABLE GGYON;Lo;0;L;;;;;N;;;;;
+AFA1;HANGUL SYLLABLE GGYONI;Lo;0;L;;;;;N;;;;;
+AFA2;HANGUL SYLLABLE GGYONH;Lo;0;L;;;;;N;;;;;
+AFA3;HANGUL SYLLABLE GGYOD;Lo;0;L;;;;;N;;;;;
+AFA4;HANGUL SYLLABLE GGYOL;Lo;0;L;;;;;N;;;;;
+AFA5;HANGUL SYLLABLE GGYOLG;Lo;0;L;;;;;N;;;;;
+AFA6;HANGUL SYLLABLE GGYOLM;Lo;0;L;;;;;N;;;;;
+AFA7;HANGUL SYLLABLE GGYOLB;Lo;0;L;;;;;N;;;;;
+AFA8;HANGUL SYLLABLE GGYOLS;Lo;0;L;;;;;N;;;;;
+AFA9;HANGUL SYLLABLE GGYOLT;Lo;0;L;;;;;N;;;;;
+AFAA;HANGUL SYLLABLE GGYOLP;Lo;0;L;;;;;N;;;;;
+AFAB;HANGUL SYLLABLE GGYOLH;Lo;0;L;;;;;N;;;;;
+AFAC;HANGUL SYLLABLE GGYOM;Lo;0;L;;;;;N;;;;;
+AFAD;HANGUL SYLLABLE GGYOB;Lo;0;L;;;;;N;;;;;
+AFAE;HANGUL SYLLABLE GGYOBS;Lo;0;L;;;;;N;;;;;
+AFAF;HANGUL SYLLABLE GGYOS;Lo;0;L;;;;;N;;;;;
+AFB0;HANGUL SYLLABLE GGYOSS;Lo;0;L;;;;;N;;;;;
+AFB1;HANGUL SYLLABLE GGYONG;Lo;0;L;;;;;N;;;;;
+AFB2;HANGUL SYLLABLE GGYOJ;Lo;0;L;;;;;N;;;;;
+AFB3;HANGUL SYLLABLE GGYOC;Lo;0;L;;;;;N;;;;;
+AFB4;HANGUL SYLLABLE GGYOK;Lo;0;L;;;;;N;;;;;
+AFB5;HANGUL SYLLABLE GGYOT;Lo;0;L;;;;;N;;;;;
+AFB6;HANGUL SYLLABLE GGYOP;Lo;0;L;;;;;N;;;;;
+AFB7;HANGUL SYLLABLE GGYOH;Lo;0;L;;;;;N;;;;;
+AFB8;HANGUL SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+AFB9;HANGUL SYLLABLE GGUG;Lo;0;L;;;;;N;;;;;
+AFBA;HANGUL SYLLABLE GGUGG;Lo;0;L;;;;;N;;;;;
+AFBB;HANGUL SYLLABLE GGUGS;Lo;0;L;;;;;N;;;;;
+AFBC;HANGUL SYLLABLE GGUN;Lo;0;L;;;;;N;;;;;
+AFBD;HANGUL SYLLABLE GGUNI;Lo;0;L;;;;;N;;;;;
+AFBE;HANGUL SYLLABLE GGUNH;Lo;0;L;;;;;N;;;;;
+AFBF;HANGUL SYLLABLE GGUD;Lo;0;L;;;;;N;;;;;
+AFC0;HANGUL SYLLABLE GGUL;Lo;0;L;;;;;N;;;;;
+AFC1;HANGUL SYLLABLE GGULG;Lo;0;L;;;;;N;;;;;
+AFC2;HANGUL SYLLABLE GGULM;Lo;0;L;;;;;N;;;;;
+AFC3;HANGUL SYLLABLE GGULB;Lo;0;L;;;;;N;;;;;
+AFC4;HANGUL SYLLABLE GGULS;Lo;0;L;;;;;N;;;;;
+AFC5;HANGUL SYLLABLE GGULT;Lo;0;L;;;;;N;;;;;
+AFC6;HANGUL SYLLABLE GGULP;Lo;0;L;;;;;N;;;;;
+AFC7;HANGUL SYLLABLE GGULH;Lo;0;L;;;;;N;;;;;
+AFC8;HANGUL SYLLABLE GGUM;Lo;0;L;;;;;N;;;;;
+AFC9;HANGUL SYLLABLE GGUB;Lo;0;L;;;;;N;;;;;
+AFCA;HANGUL SYLLABLE GGUBS;Lo;0;L;;;;;N;;;;;
+AFCB;HANGUL SYLLABLE GGUS;Lo;0;L;;;;;N;;;;;
+AFCC;HANGUL SYLLABLE GGUSS;Lo;0;L;;;;;N;;;;;
+AFCD;HANGUL SYLLABLE GGUNG;Lo;0;L;;;;;N;;;;;
+AFCE;HANGUL SYLLABLE GGUJ;Lo;0;L;;;;;N;;;;;
+AFCF;HANGUL SYLLABLE GGUC;Lo;0;L;;;;;N;;;;;
+AFD0;HANGUL SYLLABLE GGUK;Lo;0;L;;;;;N;;;;;
+AFD1;HANGUL SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;
+AFD2;HANGUL SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;
+AFD3;HANGUL SYLLABLE GGUH;Lo;0;L;;;;;N;;;;;
+AFD4;HANGUL SYLLABLE GGWEO;Lo;0;L;;;;;N;;;;;
+AFD5;HANGUL SYLLABLE GGWEOG;Lo;0;L;;;;;N;;;;;
+AFD6;HANGUL SYLLABLE GGWEOGG;Lo;0;L;;;;;N;;;;;
+AFD7;HANGUL SYLLABLE GGWEOGS;Lo;0;L;;;;;N;;;;;
+AFD8;HANGUL SYLLABLE GGWEON;Lo;0;L;;;;;N;;;;;
+AFD9;HANGUL SYLLABLE GGWEONI;Lo;0;L;;;;;N;;;;;
+AFDA;HANGUL SYLLABLE GGWEONH;Lo;0;L;;;;;N;;;;;
+AFDB;HANGUL SYLLABLE GGWEOD;Lo;0;L;;;;;N;;;;;
+AFDC;HANGUL SYLLABLE GGWEOL;Lo;0;L;;;;;N;;;;;
+AFDD;HANGUL SYLLABLE GGWEOLG;Lo;0;L;;;;;N;;;;;
+AFDE;HANGUL SYLLABLE GGWEOLM;Lo;0;L;;;;;N;;;;;
+AFDF;HANGUL SYLLABLE GGWEOLB;Lo;0;L;;;;;N;;;;;
+AFE0;HANGUL SYLLABLE GGWEOLS;Lo;0;L;;;;;N;;;;;
+AFE1;HANGUL SYLLABLE GGWEOLT;Lo;0;L;;;;;N;;;;;
+AFE2;HANGUL SYLLABLE GGWEOLP;Lo;0;L;;;;;N;;;;;
+AFE3;HANGUL SYLLABLE GGWEOLH;Lo;0;L;;;;;N;;;;;
+AFE4;HANGUL SYLLABLE GGWEOM;Lo;0;L;;;;;N;;;;;
+AFE5;HANGUL SYLLABLE GGWEOB;Lo;0;L;;;;;N;;;;;
+AFE6;HANGUL SYLLABLE GGWEOBS;Lo;0;L;;;;;N;;;;;
+AFE7;HANGUL SYLLABLE GGWEOS;Lo;0;L;;;;;N;;;;;
+AFE8;HANGUL SYLLABLE GGWEOSS;Lo;0;L;;;;;N;;;;;
+AFE9;HANGUL SYLLABLE GGWEONG;Lo;0;L;;;;;N;;;;;
+AFEA;HANGUL SYLLABLE GGWEOJ;Lo;0;L;;;;;N;;;;;
+AFEB;HANGUL SYLLABLE GGWEOC;Lo;0;L;;;;;N;;;;;
+AFEC;HANGUL SYLLABLE GGWEOK;Lo;0;L;;;;;N;;;;;
+AFED;HANGUL SYLLABLE GGWEOT;Lo;0;L;;;;;N;;;;;
+AFEE;HANGUL SYLLABLE GGWEOP;Lo;0;L;;;;;N;;;;;
+AFEF;HANGUL SYLLABLE GGWEOH;Lo;0;L;;;;;N;;;;;
+AFF0;HANGUL SYLLABLE GGWE;Lo;0;L;;;;;N;;;;;
+AFF1;HANGUL SYLLABLE GGWEG;Lo;0;L;;;;;N;;;;;
+AFF2;HANGUL SYLLABLE GGWEGG;Lo;0;L;;;;;N;;;;;
+AFF3;HANGUL SYLLABLE GGWEGS;Lo;0;L;;;;;N;;;;;
+AFF4;HANGUL SYLLABLE GGWEN;Lo;0;L;;;;;N;;;;;
+AFF5;HANGUL SYLLABLE GGWENI;Lo;0;L;;;;;N;;;;;
+AFF6;HANGUL SYLLABLE GGWENH;Lo;0;L;;;;;N;;;;;
+AFF7;HANGUL SYLLABLE GGWED;Lo;0;L;;;;;N;;;;;
+AFF8;HANGUL SYLLABLE GGWEL;Lo;0;L;;;;;N;;;;;
+AFF9;HANGUL SYLLABLE GGWELG;Lo;0;L;;;;;N;;;;;
+AFFA;HANGUL SYLLABLE GGWELM;Lo;0;L;;;;;N;;;;;
+AFFB;HANGUL SYLLABLE GGWELB;Lo;0;L;;;;;N;;;;;
+AFFC;HANGUL SYLLABLE GGWELS;Lo;0;L;;;;;N;;;;;
+AFFD;HANGUL SYLLABLE GGWELT;Lo;0;L;;;;;N;;;;;
+AFFE;HANGUL SYLLABLE GGWELP;Lo;0;L;;;;;N;;;;;
+AFFF;HANGUL SYLLABLE GGWELH;Lo;0;L;;;;;N;;;;;
+B000;HANGUL SYLLABLE GGWEM;Lo;0;L;;;;;N;;;;;
+B001;HANGUL SYLLABLE GGWEB;Lo;0;L;;;;;N;;;;;
+B002;HANGUL SYLLABLE GGWEBS;Lo;0;L;;;;;N;;;;;
+B003;HANGUL SYLLABLE GGWES;Lo;0;L;;;;;N;;;;;
+B004;HANGUL SYLLABLE GGWESS;Lo;0;L;;;;;N;;;;;
+B005;HANGUL SYLLABLE GGWENG;Lo;0;L;;;;;N;;;;;
+B006;HANGUL SYLLABLE GGWEJ;Lo;0;L;;;;;N;;;;;
+B007;HANGUL SYLLABLE GGWEC;Lo;0;L;;;;;N;;;;;
+B008;HANGUL SYLLABLE GGWEK;Lo;0;L;;;;;N;;;;;
+B009;HANGUL SYLLABLE GGWET;Lo;0;L;;;;;N;;;;;
+B00A;HANGUL SYLLABLE GGWEP;Lo;0;L;;;;;N;;;;;
+B00B;HANGUL SYLLABLE GGWEH;Lo;0;L;;;;;N;;;;;
+B00C;HANGUL SYLLABLE GGWI;Lo;0;L;;;;;N;;;;;
+B00D;HANGUL SYLLABLE GGWIG;Lo;0;L;;;;;N;;;;;
+B00E;HANGUL SYLLABLE GGWIGG;Lo;0;L;;;;;N;;;;;
+B00F;HANGUL SYLLABLE GGWIGS;Lo;0;L;;;;;N;;;;;
+B010;HANGUL SYLLABLE GGWIN;Lo;0;L;;;;;N;;;;;
+B011;HANGUL SYLLABLE GGWINI;Lo;0;L;;;;;N;;;;;
+B012;HANGUL SYLLABLE GGWINH;Lo;0;L;;;;;N;;;;;
+B013;HANGUL SYLLABLE GGWID;Lo;0;L;;;;;N;;;;;
+B014;HANGUL SYLLABLE GGWIL;Lo;0;L;;;;;N;;;;;
+B015;HANGUL SYLLABLE GGWILG;Lo;0;L;;;;;N;;;;;
+B016;HANGUL SYLLABLE GGWILM;Lo;0;L;;;;;N;;;;;
+B017;HANGUL SYLLABLE GGWILB;Lo;0;L;;;;;N;;;;;
+B018;HANGUL SYLLABLE GGWILS;Lo;0;L;;;;;N;;;;;
+B019;HANGUL SYLLABLE GGWILT;Lo;0;L;;;;;N;;;;;
+B01A;HANGUL SYLLABLE GGWILP;Lo;0;L;;;;;N;;;;;
+B01B;HANGUL SYLLABLE GGWILH;Lo;0;L;;;;;N;;;;;
+B01C;HANGUL SYLLABLE GGWIM;Lo;0;L;;;;;N;;;;;
+B01D;HANGUL SYLLABLE GGWIB;Lo;0;L;;;;;N;;;;;
+B01E;HANGUL SYLLABLE GGWIBS;Lo;0;L;;;;;N;;;;;
+B01F;HANGUL SYLLABLE GGWIS;Lo;0;L;;;;;N;;;;;
+B020;HANGUL SYLLABLE GGWISS;Lo;0;L;;;;;N;;;;;
+B021;HANGUL SYLLABLE GGWING;Lo;0;L;;;;;N;;;;;
+B022;HANGUL SYLLABLE GGWIJ;Lo;0;L;;;;;N;;;;;
+B023;HANGUL SYLLABLE GGWIC;Lo;0;L;;;;;N;;;;;
+B024;HANGUL SYLLABLE GGWIK;Lo;0;L;;;;;N;;;;;
+B025;HANGUL SYLLABLE GGWIT;Lo;0;L;;;;;N;;;;;
+B026;HANGUL SYLLABLE GGWIP;Lo;0;L;;;;;N;;;;;
+B027;HANGUL SYLLABLE GGWIH;Lo;0;L;;;;;N;;;;;
+B028;HANGUL SYLLABLE GGYU;Lo;0;L;;;;;N;;;;;
+B029;HANGUL SYLLABLE GGYUG;Lo;0;L;;;;;N;;;;;
+B02A;HANGUL SYLLABLE GGYUGG;Lo;0;L;;;;;N;;;;;
+B02B;HANGUL SYLLABLE GGYUGS;Lo;0;L;;;;;N;;;;;
+B02C;HANGUL SYLLABLE GGYUN;Lo;0;L;;;;;N;;;;;
+B02D;HANGUL SYLLABLE GGYUNI;Lo;0;L;;;;;N;;;;;
+B02E;HANGUL SYLLABLE GGYUNH;Lo;0;L;;;;;N;;;;;
+B02F;HANGUL SYLLABLE GGYUD;Lo;0;L;;;;;N;;;;;
+B030;HANGUL SYLLABLE GGYUL;Lo;0;L;;;;;N;;;;;
+B031;HANGUL SYLLABLE GGYULG;Lo;0;L;;;;;N;;;;;
+B032;HANGUL SYLLABLE GGYULM;Lo;0;L;;;;;N;;;;;
+B033;HANGUL SYLLABLE GGYULB;Lo;0;L;;;;;N;;;;;
+B034;HANGUL SYLLABLE GGYULS;Lo;0;L;;;;;N;;;;;
+B035;HANGUL SYLLABLE GGYULT;Lo;0;L;;;;;N;;;;;
+B036;HANGUL SYLLABLE GGYULP;Lo;0;L;;;;;N;;;;;
+B037;HANGUL SYLLABLE GGYULH;Lo;0;L;;;;;N;;;;;
+B038;HANGUL SYLLABLE GGYUM;Lo;0;L;;;;;N;;;;;
+B039;HANGUL SYLLABLE GGYUB;Lo;0;L;;;;;N;;;;;
+B03A;HANGUL SYLLABLE GGYUBS;Lo;0;L;;;;;N;;;;;
+B03B;HANGUL SYLLABLE GGYUS;Lo;0;L;;;;;N;;;;;
+B03C;HANGUL SYLLABLE GGYUSS;Lo;0;L;;;;;N;;;;;
+B03D;HANGUL SYLLABLE GGYUNG;Lo;0;L;;;;;N;;;;;
+B03E;HANGUL SYLLABLE GGYUJ;Lo;0;L;;;;;N;;;;;
+B03F;HANGUL SYLLABLE GGYUC;Lo;0;L;;;;;N;;;;;
+B040;HANGUL SYLLABLE GGYUK;Lo;0;L;;;;;N;;;;;
+B041;HANGUL SYLLABLE GGYUT;Lo;0;L;;;;;N;;;;;
+B042;HANGUL SYLLABLE GGYUP;Lo;0;L;;;;;N;;;;;
+B043;HANGUL SYLLABLE GGYUH;Lo;0;L;;;;;N;;;;;
+B044;HANGUL SYLLABLE GGEU;Lo;0;L;;;;;N;;;;;
+B045;HANGUL SYLLABLE GGEUG;Lo;0;L;;;;;N;;;;;
+B046;HANGUL SYLLABLE GGEUGG;Lo;0;L;;;;;N;;;;;
+B047;HANGUL SYLLABLE GGEUGS;Lo;0;L;;;;;N;;;;;
+B048;HANGUL SYLLABLE GGEUN;Lo;0;L;;;;;N;;;;;
+B049;HANGUL SYLLABLE GGEUNI;Lo;0;L;;;;;N;;;;;
+B04A;HANGUL SYLLABLE GGEUNH;Lo;0;L;;;;;N;;;;;
+B04B;HANGUL SYLLABLE GGEUD;Lo;0;L;;;;;N;;;;;
+B04C;HANGUL SYLLABLE GGEUL;Lo;0;L;;;;;N;;;;;
+B04D;HANGUL SYLLABLE GGEULG;Lo;0;L;;;;;N;;;;;
+B04E;HANGUL SYLLABLE GGEULM;Lo;0;L;;;;;N;;;;;
+B04F;HANGUL SYLLABLE GGEULB;Lo;0;L;;;;;N;;;;;
+B050;HANGUL SYLLABLE GGEULS;Lo;0;L;;;;;N;;;;;
+B051;HANGUL SYLLABLE GGEULT;Lo;0;L;;;;;N;;;;;
+B052;HANGUL SYLLABLE GGEULP;Lo;0;L;;;;;N;;;;;
+B053;HANGUL SYLLABLE GGEULH;Lo;0;L;;;;;N;;;;;
+B054;HANGUL SYLLABLE GGEUM;Lo;0;L;;;;;N;;;;;
+B055;HANGUL SYLLABLE GGEUB;Lo;0;L;;;;;N;;;;;
+B056;HANGUL SYLLABLE GGEUBS;Lo;0;L;;;;;N;;;;;
+B057;HANGUL SYLLABLE GGEUS;Lo;0;L;;;;;N;;;;;
+B058;HANGUL SYLLABLE GGEUSS;Lo;0;L;;;;;N;;;;;
+B059;HANGUL SYLLABLE GGEUNG;Lo;0;L;;;;;N;;;;;
+B05A;HANGUL SYLLABLE GGEUJ;Lo;0;L;;;;;N;;;;;
+B05B;HANGUL SYLLABLE GGEUC;Lo;0;L;;;;;N;;;;;
+B05C;HANGUL SYLLABLE GGEUK;Lo;0;L;;;;;N;;;;;
+B05D;HANGUL SYLLABLE GGEUT;Lo;0;L;;;;;N;;;;;
+B05E;HANGUL SYLLABLE GGEUP;Lo;0;L;;;;;N;;;;;
+B05F;HANGUL SYLLABLE GGEUH;Lo;0;L;;;;;N;;;;;
+B060;HANGUL SYLLABLE GGYI;Lo;0;L;;;;;N;;;;;
+B061;HANGUL SYLLABLE GGYIG;Lo;0;L;;;;;N;;;;;
+B062;HANGUL SYLLABLE GGYIGG;Lo;0;L;;;;;N;;;;;
+B063;HANGUL SYLLABLE GGYIGS;Lo;0;L;;;;;N;;;;;
+B064;HANGUL SYLLABLE GGYIN;Lo;0;L;;;;;N;;;;;
+B065;HANGUL SYLLABLE GGYINI;Lo;0;L;;;;;N;;;;;
+B066;HANGUL SYLLABLE GGYINH;Lo;0;L;;;;;N;;;;;
+B067;HANGUL SYLLABLE GGYID;Lo;0;L;;;;;N;;;;;
+B068;HANGUL SYLLABLE GGYIL;Lo;0;L;;;;;N;;;;;
+B069;HANGUL SYLLABLE GGYILG;Lo;0;L;;;;;N;;;;;
+B06A;HANGUL SYLLABLE GGYILM;Lo;0;L;;;;;N;;;;;
+B06B;HANGUL SYLLABLE GGYILB;Lo;0;L;;;;;N;;;;;
+B06C;HANGUL SYLLABLE GGYILS;Lo;0;L;;;;;N;;;;;
+B06D;HANGUL SYLLABLE GGYILT;Lo;0;L;;;;;N;;;;;
+B06E;HANGUL SYLLABLE GGYILP;Lo;0;L;;;;;N;;;;;
+B06F;HANGUL SYLLABLE GGYILH;Lo;0;L;;;;;N;;;;;
+B070;HANGUL SYLLABLE GGYIM;Lo;0;L;;;;;N;;;;;
+B071;HANGUL SYLLABLE GGYIB;Lo;0;L;;;;;N;;;;;
+B072;HANGUL SYLLABLE GGYIBS;Lo;0;L;;;;;N;;;;;
+B073;HANGUL SYLLABLE GGYIS;Lo;0;L;;;;;N;;;;;
+B074;HANGUL SYLLABLE GGYISS;Lo;0;L;;;;;N;;;;;
+B075;HANGUL SYLLABLE GGYING;Lo;0;L;;;;;N;;;;;
+B076;HANGUL SYLLABLE GGYIJ;Lo;0;L;;;;;N;;;;;
+B077;HANGUL SYLLABLE GGYIC;Lo;0;L;;;;;N;;;;;
+B078;HANGUL SYLLABLE GGYIK;Lo;0;L;;;;;N;;;;;
+B079;HANGUL SYLLABLE GGYIT;Lo;0;L;;;;;N;;;;;
+B07A;HANGUL SYLLABLE GGYIP;Lo;0;L;;;;;N;;;;;
+B07B;HANGUL SYLLABLE GGYIH;Lo;0;L;;;;;N;;;;;
+B07C;HANGUL SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+B07D;HANGUL SYLLABLE GGIG;Lo;0;L;;;;;N;;;;;
+B07E;HANGUL SYLLABLE GGIGG;Lo;0;L;;;;;N;;;;;
+B07F;HANGUL SYLLABLE GGIGS;Lo;0;L;;;;;N;;;;;
+B080;HANGUL SYLLABLE GGIN;Lo;0;L;;;;;N;;;;;
+B081;HANGUL SYLLABLE GGINI;Lo;0;L;;;;;N;;;;;
+B082;HANGUL SYLLABLE GGINH;Lo;0;L;;;;;N;;;;;
+B083;HANGUL SYLLABLE GGID;Lo;0;L;;;;;N;;;;;
+B084;HANGUL SYLLABLE GGIL;Lo;0;L;;;;;N;;;;;
+B085;HANGUL SYLLABLE GGILG;Lo;0;L;;;;;N;;;;;
+B086;HANGUL SYLLABLE GGILM;Lo;0;L;;;;;N;;;;;
+B087;HANGUL SYLLABLE GGILB;Lo;0;L;;;;;N;;;;;
+B088;HANGUL SYLLABLE GGILS;Lo;0;L;;;;;N;;;;;
+B089;HANGUL SYLLABLE GGILT;Lo;0;L;;;;;N;;;;;
+B08A;HANGUL SYLLABLE GGILP;Lo;0;L;;;;;N;;;;;
+B08B;HANGUL SYLLABLE GGILH;Lo;0;L;;;;;N;;;;;
+B08C;HANGUL SYLLABLE GGIM;Lo;0;L;;;;;N;;;;;
+B08D;HANGUL SYLLABLE GGIB;Lo;0;L;;;;;N;;;;;
+B08E;HANGUL SYLLABLE GGIBS;Lo;0;L;;;;;N;;;;;
+B08F;HANGUL SYLLABLE GGIS;Lo;0;L;;;;;N;;;;;
+B090;HANGUL SYLLABLE GGISS;Lo;0;L;;;;;N;;;;;
+B091;HANGUL SYLLABLE GGING;Lo;0;L;;;;;N;;;;;
+B092;HANGUL SYLLABLE GGIJ;Lo;0;L;;;;;N;;;;;
+B093;HANGUL SYLLABLE GGIC;Lo;0;L;;;;;N;;;;;
+B094;HANGUL SYLLABLE GGIK;Lo;0;L;;;;;N;;;;;
+B095;HANGUL SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;
+B096;HANGUL SYLLABLE GGIP;Lo;0;L;;;;;N;;;;;
+B097;HANGUL SYLLABLE GGIH;Lo;0;L;;;;;N;;;;;
+B098;HANGUL SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+B099;HANGUL SYLLABLE NAG;Lo;0;L;;;;;N;;;;;
+B09A;HANGUL SYLLABLE NAGG;Lo;0;L;;;;;N;;;;;
+B09B;HANGUL SYLLABLE NAGS;Lo;0;L;;;;;N;;;;;
+B09C;HANGUL SYLLABLE NAN;Lo;0;L;;;;;N;;;;;
+B09D;HANGUL SYLLABLE NANI;Lo;0;L;;;;;N;;;;;
+B09E;HANGUL SYLLABLE NANH;Lo;0;L;;;;;N;;;;;
+B09F;HANGUL SYLLABLE NAD;Lo;0;L;;;;;N;;;;;
+B0A0;HANGUL SYLLABLE NAL;Lo;0;L;;;;;N;;;;;
+B0A1;HANGUL SYLLABLE NALG;Lo;0;L;;;;;N;;;;;
+B0A2;HANGUL SYLLABLE NALM;Lo;0;L;;;;;N;;;;;
+B0A3;HANGUL SYLLABLE NALB;Lo;0;L;;;;;N;;;;;
+B0A4;HANGUL SYLLABLE NALS;Lo;0;L;;;;;N;;;;;
+B0A5;HANGUL SYLLABLE NALT;Lo;0;L;;;;;N;;;;;
+B0A6;HANGUL SYLLABLE NALP;Lo;0;L;;;;;N;;;;;
+B0A7;HANGUL SYLLABLE NALH;Lo;0;L;;;;;N;;;;;
+B0A8;HANGUL SYLLABLE NAM;Lo;0;L;;;;;N;;;;;
+B0A9;HANGUL SYLLABLE NAB;Lo;0;L;;;;;N;;;;;
+B0AA;HANGUL SYLLABLE NABS;Lo;0;L;;;;;N;;;;;
+B0AB;HANGUL SYLLABLE NAS;Lo;0;L;;;;;N;;;;;
+B0AC;HANGUL SYLLABLE NASS;Lo;0;L;;;;;N;;;;;
+B0AD;HANGUL SYLLABLE NANG;Lo;0;L;;;;;N;;;;;
+B0AE;HANGUL SYLLABLE NAJ;Lo;0;L;;;;;N;;;;;
+B0AF;HANGUL SYLLABLE NAC;Lo;0;L;;;;;N;;;;;
+B0B0;HANGUL SYLLABLE NAK;Lo;0;L;;;;;N;;;;;
+B0B1;HANGUL SYLLABLE NAT;Lo;0;L;;;;;N;;;;;
+B0B2;HANGUL SYLLABLE NAP;Lo;0;L;;;;;N;;;;;
+B0B3;HANGUL SYLLABLE NAH;Lo;0;L;;;;;N;;;;;
+B0B4;HANGUL SYLLABLE NAE;Lo;0;L;;;;;N;;;;;
+B0B5;HANGUL SYLLABLE NAEG;Lo;0;L;;;;;N;;;;;
+B0B6;HANGUL SYLLABLE NAEGG;Lo;0;L;;;;;N;;;;;
+B0B7;HANGUL SYLLABLE NAEGS;Lo;0;L;;;;;N;;;;;
+B0B8;HANGUL SYLLABLE NAEN;Lo;0;L;;;;;N;;;;;
+B0B9;HANGUL SYLLABLE NAENI;Lo;0;L;;;;;N;;;;;
+B0BA;HANGUL SYLLABLE NAENH;Lo;0;L;;;;;N;;;;;
+B0BB;HANGUL SYLLABLE NAED;Lo;0;L;;;;;N;;;;;
+B0BC;HANGUL SYLLABLE NAEL;Lo;0;L;;;;;N;;;;;
+B0BD;HANGUL SYLLABLE NAELG;Lo;0;L;;;;;N;;;;;
+B0BE;HANGUL SYLLABLE NAELM;Lo;0;L;;;;;N;;;;;
+B0BF;HANGUL SYLLABLE NAELB;Lo;0;L;;;;;N;;;;;
+B0C0;HANGUL SYLLABLE NAELS;Lo;0;L;;;;;N;;;;;
+B0C1;HANGUL SYLLABLE NAELT;Lo;0;L;;;;;N;;;;;
+B0C2;HANGUL SYLLABLE NAELP;Lo;0;L;;;;;N;;;;;
+B0C3;HANGUL SYLLABLE NAELH;Lo;0;L;;;;;N;;;;;
+B0C4;HANGUL SYLLABLE NAEM;Lo;0;L;;;;;N;;;;;
+B0C5;HANGUL SYLLABLE NAEB;Lo;0;L;;;;;N;;;;;
+B0C6;HANGUL SYLLABLE NAEBS;Lo;0;L;;;;;N;;;;;
+B0C7;HANGUL SYLLABLE NAES;Lo;0;L;;;;;N;;;;;
+B0C8;HANGUL SYLLABLE NAESS;Lo;0;L;;;;;N;;;;;
+B0C9;HANGUL SYLLABLE NAENG;Lo;0;L;;;;;N;;;;;
+B0CA;HANGUL SYLLABLE NAEJ;Lo;0;L;;;;;N;;;;;
+B0CB;HANGUL SYLLABLE NAEC;Lo;0;L;;;;;N;;;;;
+B0CC;HANGUL SYLLABLE NAEK;Lo;0;L;;;;;N;;;;;
+B0CD;HANGUL SYLLABLE NAET;Lo;0;L;;;;;N;;;;;
+B0CE;HANGUL SYLLABLE NAEP;Lo;0;L;;;;;N;;;;;
+B0CF;HANGUL SYLLABLE NAEH;Lo;0;L;;;;;N;;;;;
+B0D0;HANGUL SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
+B0D1;HANGUL SYLLABLE NYAG;Lo;0;L;;;;;N;;;;;
+B0D2;HANGUL SYLLABLE NYAGG;Lo;0;L;;;;;N;;;;;
+B0D3;HANGUL SYLLABLE NYAGS;Lo;0;L;;;;;N;;;;;
+B0D4;HANGUL SYLLABLE NYAN;Lo;0;L;;;;;N;;;;;
+B0D5;HANGUL SYLLABLE NYANI;Lo;0;L;;;;;N;;;;;
+B0D6;HANGUL SYLLABLE NYANH;Lo;0;L;;;;;N;;;;;
+B0D7;HANGUL SYLLABLE NYAD;Lo;0;L;;;;;N;;;;;
+B0D8;HANGUL SYLLABLE NYAL;Lo;0;L;;;;;N;;;;;
+B0D9;HANGUL SYLLABLE NYALG;Lo;0;L;;;;;N;;;;;
+B0DA;HANGUL SYLLABLE NYALM;Lo;0;L;;;;;N;;;;;
+B0DB;HANGUL SYLLABLE NYALB;Lo;0;L;;;;;N;;;;;
+B0DC;HANGUL SYLLABLE NYALS;Lo;0;L;;;;;N;;;;;
+B0DD;HANGUL SYLLABLE NYALT;Lo;0;L;;;;;N;;;;;
+B0DE;HANGUL SYLLABLE NYALP;Lo;0;L;;;;;N;;;;;
+B0DF;HANGUL SYLLABLE NYALH;Lo;0;L;;;;;N;;;;;
+B0E0;HANGUL SYLLABLE NYAM;Lo;0;L;;;;;N;;;;;
+B0E1;HANGUL SYLLABLE NYAB;Lo;0;L;;;;;N;;;;;
+B0E2;HANGUL SYLLABLE NYABS;Lo;0;L;;;;;N;;;;;
+B0E3;HANGUL SYLLABLE NYAS;Lo;0;L;;;;;N;;;;;
+B0E4;HANGUL SYLLABLE NYASS;Lo;0;L;;;;;N;;;;;
+B0E5;HANGUL SYLLABLE NYANG;Lo;0;L;;;;;N;;;;;
+B0E6;HANGUL SYLLABLE NYAJ;Lo;0;L;;;;;N;;;;;
+B0E7;HANGUL SYLLABLE NYAC;Lo;0;L;;;;;N;;;;;
+B0E8;HANGUL SYLLABLE NYAK;Lo;0;L;;;;;N;;;;;
+B0E9;HANGUL SYLLABLE NYAT;Lo;0;L;;;;;N;;;;;
+B0EA;HANGUL SYLLABLE NYAP;Lo;0;L;;;;;N;;;;;
+B0EB;HANGUL SYLLABLE NYAH;Lo;0;L;;;;;N;;;;;
+B0EC;HANGUL SYLLABLE NYAE;Lo;0;L;;;;;N;;;;;
+B0ED;HANGUL SYLLABLE NYAEG;Lo;0;L;;;;;N;;;;;
+B0EE;HANGUL SYLLABLE NYAEGG;Lo;0;L;;;;;N;;;;;
+B0EF;HANGUL SYLLABLE NYAEGS;Lo;0;L;;;;;N;;;;;
+B0F0;HANGUL SYLLABLE NYAEN;Lo;0;L;;;;;N;;;;;
+B0F1;HANGUL SYLLABLE NYAENI;Lo;0;L;;;;;N;;;;;
+B0F2;HANGUL SYLLABLE NYAENH;Lo;0;L;;;;;N;;;;;
+B0F3;HANGUL SYLLABLE NYAED;Lo;0;L;;;;;N;;;;;
+B0F4;HANGUL SYLLABLE NYAEL;Lo;0;L;;;;;N;;;;;
+B0F5;HANGUL SYLLABLE NYAELG;Lo;0;L;;;;;N;;;;;
+B0F6;HANGUL SYLLABLE NYAELM;Lo;0;L;;;;;N;;;;;
+B0F7;HANGUL SYLLABLE NYAELB;Lo;0;L;;;;;N;;;;;
+B0F8;HANGUL SYLLABLE NYAELS;Lo;0;L;;;;;N;;;;;
+B0F9;HANGUL SYLLABLE NYAELT;Lo;0;L;;;;;N;;;;;
+B0FA;HANGUL SYLLABLE NYAELP;Lo;0;L;;;;;N;;;;;
+B0FB;HANGUL SYLLABLE NYAELH;Lo;0;L;;;;;N;;;;;
+B0FC;HANGUL SYLLABLE NYAEM;Lo;0;L;;;;;N;;;;;
+B0FD;HANGUL SYLLABLE NYAEB;Lo;0;L;;;;;N;;;;;
+B0FE;HANGUL SYLLABLE NYAEBS;Lo;0;L;;;;;N;;;;;
+B0FF;HANGUL SYLLABLE NYAES;Lo;0;L;;;;;N;;;;;
+B100;HANGUL SYLLABLE NYAESS;Lo;0;L;;;;;N;;;;;
+B101;HANGUL SYLLABLE NYAENG;Lo;0;L;;;;;N;;;;;
+B102;HANGUL SYLLABLE NYAEJ;Lo;0;L;;;;;N;;;;;
+B103;HANGUL SYLLABLE NYAEC;Lo;0;L;;;;;N;;;;;
+B104;HANGUL SYLLABLE NYAEK;Lo;0;L;;;;;N;;;;;
+B105;HANGUL SYLLABLE NYAET;Lo;0;L;;;;;N;;;;;
+B106;HANGUL SYLLABLE NYAEP;Lo;0;L;;;;;N;;;;;
+B107;HANGUL SYLLABLE NYAEH;Lo;0;L;;;;;N;;;;;
+B108;HANGUL SYLLABLE NEO;Lo;0;L;;;;;N;;;;;
+B109;HANGUL SYLLABLE NEOG;Lo;0;L;;;;;N;;;;;
+B10A;HANGUL SYLLABLE NEOGG;Lo;0;L;;;;;N;;;;;
+B10B;HANGUL SYLLABLE NEOGS;Lo;0;L;;;;;N;;;;;
+B10C;HANGUL SYLLABLE NEON;Lo;0;L;;;;;N;;;;;
+B10D;HANGUL SYLLABLE NEONI;Lo;0;L;;;;;N;;;;;
+B10E;HANGUL SYLLABLE NEONH;Lo;0;L;;;;;N;;;;;
+B10F;HANGUL SYLLABLE NEOD;Lo;0;L;;;;;N;;;;;
+B110;HANGUL SYLLABLE NEOL;Lo;0;L;;;;;N;;;;;
+B111;HANGUL SYLLABLE NEOLG;Lo;0;L;;;;;N;;;;;
+B112;HANGUL SYLLABLE NEOLM;Lo;0;L;;;;;N;;;;;
+B113;HANGUL SYLLABLE NEOLB;Lo;0;L;;;;;N;;;;;
+B114;HANGUL SYLLABLE NEOLS;Lo;0;L;;;;;N;;;;;
+B115;HANGUL SYLLABLE NEOLT;Lo;0;L;;;;;N;;;;;
+B116;HANGUL SYLLABLE NEOLP;Lo;0;L;;;;;N;;;;;
+B117;HANGUL SYLLABLE NEOLH;Lo;0;L;;;;;N;;;;;
+B118;HANGUL SYLLABLE NEOM;Lo;0;L;;;;;N;;;;;
+B119;HANGUL SYLLABLE NEOB;Lo;0;L;;;;;N;;;;;
+B11A;HANGUL SYLLABLE NEOBS;Lo;0;L;;;;;N;;;;;
+B11B;HANGUL SYLLABLE NEOS;Lo;0;L;;;;;N;;;;;
+B11C;HANGUL SYLLABLE NEOSS;Lo;0;L;;;;;N;;;;;
+B11D;HANGUL SYLLABLE NEONG;Lo;0;L;;;;;N;;;;;
+B11E;HANGUL SYLLABLE NEOJ;Lo;0;L;;;;;N;;;;;
+B11F;HANGUL SYLLABLE NEOC;Lo;0;L;;;;;N;;;;;
+B120;HANGUL SYLLABLE NEOK;Lo;0;L;;;;;N;;;;;
+B121;HANGUL SYLLABLE NEOT;Lo;0;L;;;;;N;;;;;
+B122;HANGUL SYLLABLE NEOP;Lo;0;L;;;;;N;;;;;
+B123;HANGUL SYLLABLE NEOH;Lo;0;L;;;;;N;;;;;
+B124;HANGUL SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+B125;HANGUL SYLLABLE NEG;Lo;0;L;;;;;N;;;;;
+B126;HANGUL SYLLABLE NEGG;Lo;0;L;;;;;N;;;;;
+B127;HANGUL SYLLABLE NEGS;Lo;0;L;;;;;N;;;;;
+B128;HANGUL SYLLABLE NEN;Lo;0;L;;;;;N;;;;;
+B129;HANGUL SYLLABLE NENI;Lo;0;L;;;;;N;;;;;
+B12A;HANGUL SYLLABLE NENH;Lo;0;L;;;;;N;;;;;
+B12B;HANGUL SYLLABLE NED;Lo;0;L;;;;;N;;;;;
+B12C;HANGUL SYLLABLE NEL;Lo;0;L;;;;;N;;;;;
+B12D;HANGUL SYLLABLE NELG;Lo;0;L;;;;;N;;;;;
+B12E;HANGUL SYLLABLE NELM;Lo;0;L;;;;;N;;;;;
+B12F;HANGUL SYLLABLE NELB;Lo;0;L;;;;;N;;;;;
+B130;HANGUL SYLLABLE NELS;Lo;0;L;;;;;N;;;;;
+B131;HANGUL SYLLABLE NELT;Lo;0;L;;;;;N;;;;;
+B132;HANGUL SYLLABLE NELP;Lo;0;L;;;;;N;;;;;
+B133;HANGUL SYLLABLE NELH;Lo;0;L;;;;;N;;;;;
+B134;HANGUL SYLLABLE NEM;Lo;0;L;;;;;N;;;;;
+B135;HANGUL SYLLABLE NEB;Lo;0;L;;;;;N;;;;;
+B136;HANGUL SYLLABLE NEBS;Lo;0;L;;;;;N;;;;;
+B137;HANGUL SYLLABLE NES;Lo;0;L;;;;;N;;;;;
+B138;HANGUL SYLLABLE NESS;Lo;0;L;;;;;N;;;;;
+B139;HANGUL SYLLABLE NENG;Lo;0;L;;;;;N;;;;;
+B13A;HANGUL SYLLABLE NEJ;Lo;0;L;;;;;N;;;;;
+B13B;HANGUL SYLLABLE NEC;Lo;0;L;;;;;N;;;;;
+B13C;HANGUL SYLLABLE NEK;Lo;0;L;;;;;N;;;;;
+B13D;HANGUL SYLLABLE NET;Lo;0;L;;;;;N;;;;;
+B13E;HANGUL SYLLABLE NEP;Lo;0;L;;;;;N;;;;;
+B13F;HANGUL SYLLABLE NEH;Lo;0;L;;;;;N;;;;;
+B140;HANGUL SYLLABLE NYEO;Lo;0;L;;;;;N;;;;;
+B141;HANGUL SYLLABLE NYEOG;Lo;0;L;;;;;N;;;;;
+B142;HANGUL SYLLABLE NYEOGG;Lo;0;L;;;;;N;;;;;
+B143;HANGUL SYLLABLE NYEOGS;Lo;0;L;;;;;N;;;;;
+B144;HANGUL SYLLABLE NYEON;Lo;0;L;;;;;N;;;;;
+B145;HANGUL SYLLABLE NYEONI;Lo;0;L;;;;;N;;;;;
+B146;HANGUL SYLLABLE NYEONH;Lo;0;L;;;;;N;;;;;
+B147;HANGUL SYLLABLE NYEOD;Lo;0;L;;;;;N;;;;;
+B148;HANGUL SYLLABLE NYEOL;Lo;0;L;;;;;N;;;;;
+B149;HANGUL SYLLABLE NYEOLG;Lo;0;L;;;;;N;;;;;
+B14A;HANGUL SYLLABLE NYEOLM;Lo;0;L;;;;;N;;;;;
+B14B;HANGUL SYLLABLE NYEOLB;Lo;0;L;;;;;N;;;;;
+B14C;HANGUL SYLLABLE NYEOLS;Lo;0;L;;;;;N;;;;;
+B14D;HANGUL SYLLABLE NYEOLT;Lo;0;L;;;;;N;;;;;
+B14E;HANGUL SYLLABLE NYEOLP;Lo;0;L;;;;;N;;;;;
+B14F;HANGUL SYLLABLE NYEOLH;Lo;0;L;;;;;N;;;;;
+B150;HANGUL SYLLABLE NYEOM;Lo;0;L;;;;;N;;;;;
+B151;HANGUL SYLLABLE NYEOB;Lo;0;L;;;;;N;;;;;
+B152;HANGUL SYLLABLE NYEOBS;Lo;0;L;;;;;N;;;;;
+B153;HANGUL SYLLABLE NYEOS;Lo;0;L;;;;;N;;;;;
+B154;HANGUL SYLLABLE NYEOSS;Lo;0;L;;;;;N;;;;;
+B155;HANGUL SYLLABLE NYEONG;Lo;0;L;;;;;N;;;;;
+B156;HANGUL SYLLABLE NYEOJ;Lo;0;L;;;;;N;;;;;
+B157;HANGUL SYLLABLE NYEOC;Lo;0;L;;;;;N;;;;;
+B158;HANGUL SYLLABLE NYEOK;Lo;0;L;;;;;N;;;;;
+B159;HANGUL SYLLABLE NYEOT;Lo;0;L;;;;;N;;;;;
+B15A;HANGUL SYLLABLE NYEOP;Lo;0;L;;;;;N;;;;;
+B15B;HANGUL SYLLABLE NYEOH;Lo;0;L;;;;;N;;;;;
+B15C;HANGUL SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
+B15D;HANGUL SYLLABLE NYEG;Lo;0;L;;;;;N;;;;;
+B15E;HANGUL SYLLABLE NYEGG;Lo;0;L;;;;;N;;;;;
+B15F;HANGUL SYLLABLE NYEGS;Lo;0;L;;;;;N;;;;;
+B160;HANGUL SYLLABLE NYEN;Lo;0;L;;;;;N;;;;;
+B161;HANGUL SYLLABLE NYENI;Lo;0;L;;;;;N;;;;;
+B162;HANGUL SYLLABLE NYENH;Lo;0;L;;;;;N;;;;;
+B163;HANGUL SYLLABLE NYED;Lo;0;L;;;;;N;;;;;
+B164;HANGUL SYLLABLE NYEL;Lo;0;L;;;;;N;;;;;
+B165;HANGUL SYLLABLE NYELG;Lo;0;L;;;;;N;;;;;
+B166;HANGUL SYLLABLE NYELM;Lo;0;L;;;;;N;;;;;
+B167;HANGUL SYLLABLE NYELB;Lo;0;L;;;;;N;;;;;
+B168;HANGUL SYLLABLE NYELS;Lo;0;L;;;;;N;;;;;
+B169;HANGUL SYLLABLE NYELT;Lo;0;L;;;;;N;;;;;
+B16A;HANGUL SYLLABLE NYELP;Lo;0;L;;;;;N;;;;;
+B16B;HANGUL SYLLABLE NYELH;Lo;0;L;;;;;N;;;;;
+B16C;HANGUL SYLLABLE NYEM;Lo;0;L;;;;;N;;;;;
+B16D;HANGUL SYLLABLE NYEB;Lo;0;L;;;;;N;;;;;
+B16E;HANGUL SYLLABLE NYEBS;Lo;0;L;;;;;N;;;;;
+B16F;HANGUL SYLLABLE NYES;Lo;0;L;;;;;N;;;;;
+B170;HANGUL SYLLABLE NYESS;Lo;0;L;;;;;N;;;;;
+B171;HANGUL SYLLABLE NYENG;Lo;0;L;;;;;N;;;;;
+B172;HANGUL SYLLABLE NYEJ;Lo;0;L;;;;;N;;;;;
+B173;HANGUL SYLLABLE NYEC;Lo;0;L;;;;;N;;;;;
+B174;HANGUL SYLLABLE NYEK;Lo;0;L;;;;;N;;;;;
+B175;HANGUL SYLLABLE NYET;Lo;0;L;;;;;N;;;;;
+B176;HANGUL SYLLABLE NYEP;Lo;0;L;;;;;N;;;;;
+B177;HANGUL SYLLABLE NYEH;Lo;0;L;;;;;N;;;;;
+B178;HANGUL SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+B179;HANGUL SYLLABLE NOG;Lo;0;L;;;;;N;;;;;
+B17A;HANGUL SYLLABLE NOGG;Lo;0;L;;;;;N;;;;;
+B17B;HANGUL SYLLABLE NOGS;Lo;0;L;;;;;N;;;;;
+B17C;HANGUL SYLLABLE NON;Lo;0;L;;;;;N;;;;;
+B17D;HANGUL SYLLABLE NONI;Lo;0;L;;;;;N;;;;;
+B17E;HANGUL SYLLABLE NONH;Lo;0;L;;;;;N;;;;;
+B17F;HANGUL SYLLABLE NOD;Lo;0;L;;;;;N;;;;;
+B180;HANGUL SYLLABLE NOL;Lo;0;L;;;;;N;;;;;
+B181;HANGUL SYLLABLE NOLG;Lo;0;L;;;;;N;;;;;
+B182;HANGUL SYLLABLE NOLM;Lo;0;L;;;;;N;;;;;
+B183;HANGUL SYLLABLE NOLB;Lo;0;L;;;;;N;;;;;
+B184;HANGUL SYLLABLE NOLS;Lo;0;L;;;;;N;;;;;
+B185;HANGUL SYLLABLE NOLT;Lo;0;L;;;;;N;;;;;
+B186;HANGUL SYLLABLE NOLP;Lo;0;L;;;;;N;;;;;
+B187;HANGUL SYLLABLE NOLH;Lo;0;L;;;;;N;;;;;
+B188;HANGUL SYLLABLE NOM;Lo;0;L;;;;;N;;;;;
+B189;HANGUL SYLLABLE NOB;Lo;0;L;;;;;N;;;;;
+B18A;HANGUL SYLLABLE NOBS;Lo;0;L;;;;;N;;;;;
+B18B;HANGUL SYLLABLE NOS;Lo;0;L;;;;;N;;;;;
+B18C;HANGUL SYLLABLE NOSS;Lo;0;L;;;;;N;;;;;
+B18D;HANGUL SYLLABLE NONG;Lo;0;L;;;;;N;;;;;
+B18E;HANGUL SYLLABLE NOJ;Lo;0;L;;;;;N;;;;;
+B18F;HANGUL SYLLABLE NOC;Lo;0;L;;;;;N;;;;;
+B190;HANGUL SYLLABLE NOK;Lo;0;L;;;;;N;;;;;
+B191;HANGUL SYLLABLE NOT;Lo;0;L;;;;;N;;;;;
+B192;HANGUL SYLLABLE NOP;Lo;0;L;;;;;N;;;;;
+B193;HANGUL SYLLABLE NOH;Lo;0;L;;;;;N;;;;;
+B194;HANGUL SYLLABLE NWA;Lo;0;L;;;;;N;;;;;
+B195;HANGUL SYLLABLE NWAG;Lo;0;L;;;;;N;;;;;
+B196;HANGUL SYLLABLE NWAGG;Lo;0;L;;;;;N;;;;;
+B197;HANGUL SYLLABLE NWAGS;Lo;0;L;;;;;N;;;;;
+B198;HANGUL SYLLABLE NWAN;Lo;0;L;;;;;N;;;;;
+B199;HANGUL SYLLABLE NWANI;Lo;0;L;;;;;N;;;;;
+B19A;HANGUL SYLLABLE NWANH;Lo;0;L;;;;;N;;;;;
+B19B;HANGUL SYLLABLE NWAD;Lo;0;L;;;;;N;;;;;
+B19C;HANGUL SYLLABLE NWAL;Lo;0;L;;;;;N;;;;;
+B19D;HANGUL SYLLABLE NWALG;Lo;0;L;;;;;N;;;;;
+B19E;HANGUL SYLLABLE NWALM;Lo;0;L;;;;;N;;;;;
+B19F;HANGUL SYLLABLE NWALB;Lo;0;L;;;;;N;;;;;
+B1A0;HANGUL SYLLABLE NWALS;Lo;0;L;;;;;N;;;;;
+B1A1;HANGUL SYLLABLE NWALT;Lo;0;L;;;;;N;;;;;
+B1A2;HANGUL SYLLABLE NWALP;Lo;0;L;;;;;N;;;;;
+B1A3;HANGUL SYLLABLE NWALH;Lo;0;L;;;;;N;;;;;
+B1A4;HANGUL SYLLABLE NWAM;Lo;0;L;;;;;N;;;;;
+B1A5;HANGUL SYLLABLE NWAB;Lo;0;L;;;;;N;;;;;
+B1A6;HANGUL SYLLABLE NWABS;Lo;0;L;;;;;N;;;;;
+B1A7;HANGUL SYLLABLE NWAS;Lo;0;L;;;;;N;;;;;
+B1A8;HANGUL SYLLABLE NWASS;Lo;0;L;;;;;N;;;;;
+B1A9;HANGUL SYLLABLE NWANG;Lo;0;L;;;;;N;;;;;
+B1AA;HANGUL SYLLABLE NWAJ;Lo;0;L;;;;;N;;;;;
+B1AB;HANGUL SYLLABLE NWAC;Lo;0;L;;;;;N;;;;;
+B1AC;HANGUL SYLLABLE NWAK;Lo;0;L;;;;;N;;;;;
+B1AD;HANGUL SYLLABLE NWAT;Lo;0;L;;;;;N;;;;;
+B1AE;HANGUL SYLLABLE NWAP;Lo;0;L;;;;;N;;;;;
+B1AF;HANGUL SYLLABLE NWAH;Lo;0;L;;;;;N;;;;;
+B1B0;HANGUL SYLLABLE NWAE;Lo;0;L;;;;;N;;;;;
+B1B1;HANGUL SYLLABLE NWAEG;Lo;0;L;;;;;N;;;;;
+B1B2;HANGUL SYLLABLE NWAEGG;Lo;0;L;;;;;N;;;;;
+B1B3;HANGUL SYLLABLE NWAEGS;Lo;0;L;;;;;N;;;;;
+B1B4;HANGUL SYLLABLE NWAEN;Lo;0;L;;;;;N;;;;;
+B1B5;HANGUL SYLLABLE NWAENI;Lo;0;L;;;;;N;;;;;
+B1B6;HANGUL SYLLABLE NWAENH;Lo;0;L;;;;;N;;;;;
+B1B7;HANGUL SYLLABLE NWAED;Lo;0;L;;;;;N;;;;;
+B1B8;HANGUL SYLLABLE NWAEL;Lo;0;L;;;;;N;;;;;
+B1B9;HANGUL SYLLABLE NWAELG;Lo;0;L;;;;;N;;;;;
+B1BA;HANGUL SYLLABLE NWAELM;Lo;0;L;;;;;N;;;;;
+B1BB;HANGUL SYLLABLE NWAELB;Lo;0;L;;;;;N;;;;;
+B1BC;HANGUL SYLLABLE NWAELS;Lo;0;L;;;;;N;;;;;
+B1BD;HANGUL SYLLABLE NWAELT;Lo;0;L;;;;;N;;;;;
+B1BE;HANGUL SYLLABLE NWAELP;Lo;0;L;;;;;N;;;;;
+B1BF;HANGUL SYLLABLE NWAELH;Lo;0;L;;;;;N;;;;;
+B1C0;HANGUL SYLLABLE NWAEM;Lo;0;L;;;;;N;;;;;
+B1C1;HANGUL SYLLABLE NWAEB;Lo;0;L;;;;;N;;;;;
+B1C2;HANGUL SYLLABLE NWAEBS;Lo;0;L;;;;;N;;;;;
+B1C3;HANGUL SYLLABLE NWAES;Lo;0;L;;;;;N;;;;;
+B1C4;HANGUL SYLLABLE NWAESS;Lo;0;L;;;;;N;;;;;
+B1C5;HANGUL SYLLABLE NWAENG;Lo;0;L;;;;;N;;;;;
+B1C6;HANGUL SYLLABLE NWAEJ;Lo;0;L;;;;;N;;;;;
+B1C7;HANGUL SYLLABLE NWAEC;Lo;0;L;;;;;N;;;;;
+B1C8;HANGUL SYLLABLE NWAEK;Lo;0;L;;;;;N;;;;;
+B1C9;HANGUL SYLLABLE NWAET;Lo;0;L;;;;;N;;;;;
+B1CA;HANGUL SYLLABLE NWAEP;Lo;0;L;;;;;N;;;;;
+B1CB;HANGUL SYLLABLE NWAEH;Lo;0;L;;;;;N;;;;;
+B1CC;HANGUL SYLLABLE NOE;Lo;0;L;;;;;N;;;;;
+B1CD;HANGUL SYLLABLE NOEG;Lo;0;L;;;;;N;;;;;
+B1CE;HANGUL SYLLABLE NOEGG;Lo;0;L;;;;;N;;;;;
+B1CF;HANGUL SYLLABLE NOEGS;Lo;0;L;;;;;N;;;;;
+B1D0;HANGUL SYLLABLE NOEN;Lo;0;L;;;;;N;;;;;
+B1D1;HANGUL SYLLABLE NOENI;Lo;0;L;;;;;N;;;;;
+B1D2;HANGUL SYLLABLE NOENH;Lo;0;L;;;;;N;;;;;
+B1D3;HANGUL SYLLABLE NOED;Lo;0;L;;;;;N;;;;;
+B1D4;HANGUL SYLLABLE NOEL;Lo;0;L;;;;;N;;;;;
+B1D5;HANGUL SYLLABLE NOELG;Lo;0;L;;;;;N;;;;;
+B1D6;HANGUL SYLLABLE NOELM;Lo;0;L;;;;;N;;;;;
+B1D7;HANGUL SYLLABLE NOELB;Lo;0;L;;;;;N;;;;;
+B1D8;HANGUL SYLLABLE NOELS;Lo;0;L;;;;;N;;;;;
+B1D9;HANGUL SYLLABLE NOELT;Lo;0;L;;;;;N;;;;;
+B1DA;HANGUL SYLLABLE NOELP;Lo;0;L;;;;;N;;;;;
+B1DB;HANGUL SYLLABLE NOELH;Lo;0;L;;;;;N;;;;;
+B1DC;HANGUL SYLLABLE NOEM;Lo;0;L;;;;;N;;;;;
+B1DD;HANGUL SYLLABLE NOEB;Lo;0;L;;;;;N;;;;;
+B1DE;HANGUL SYLLABLE NOEBS;Lo;0;L;;;;;N;;;;;
+B1DF;HANGUL SYLLABLE NOES;Lo;0;L;;;;;N;;;;;
+B1E0;HANGUL SYLLABLE NOESS;Lo;0;L;;;;;N;;;;;
+B1E1;HANGUL SYLLABLE NOENG;Lo;0;L;;;;;N;;;;;
+B1E2;HANGUL SYLLABLE NOEJ;Lo;0;L;;;;;N;;;;;
+B1E3;HANGUL SYLLABLE NOEC;Lo;0;L;;;;;N;;;;;
+B1E4;HANGUL SYLLABLE NOEK;Lo;0;L;;;;;N;;;;;
+B1E5;HANGUL SYLLABLE NOET;Lo;0;L;;;;;N;;;;;
+B1E6;HANGUL SYLLABLE NOEP;Lo;0;L;;;;;N;;;;;
+B1E7;HANGUL SYLLABLE NOEH;Lo;0;L;;;;;N;;;;;
+B1E8;HANGUL SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+B1E9;HANGUL SYLLABLE NYOG;Lo;0;L;;;;;N;;;;;
+B1EA;HANGUL SYLLABLE NYOGG;Lo;0;L;;;;;N;;;;;
+B1EB;HANGUL SYLLABLE NYOGS;Lo;0;L;;;;;N;;;;;
+B1EC;HANGUL SYLLABLE NYON;Lo;0;L;;;;;N;;;;;
+B1ED;HANGUL SYLLABLE NYONI;Lo;0;L;;;;;N;;;;;
+B1EE;HANGUL SYLLABLE NYONH;Lo;0;L;;;;;N;;;;;
+B1EF;HANGUL SYLLABLE NYOD;Lo;0;L;;;;;N;;;;;
+B1F0;HANGUL SYLLABLE NYOL;Lo;0;L;;;;;N;;;;;
+B1F1;HANGUL SYLLABLE NYOLG;Lo;0;L;;;;;N;;;;;
+B1F2;HANGUL SYLLABLE NYOLM;Lo;0;L;;;;;N;;;;;
+B1F3;HANGUL SYLLABLE NYOLB;Lo;0;L;;;;;N;;;;;
+B1F4;HANGUL SYLLABLE NYOLS;Lo;0;L;;;;;N;;;;;
+B1F5;HANGUL SYLLABLE NYOLT;Lo;0;L;;;;;N;;;;;
+B1F6;HANGUL SYLLABLE NYOLP;Lo;0;L;;;;;N;;;;;
+B1F7;HANGUL SYLLABLE NYOLH;Lo;0;L;;;;;N;;;;;
+B1F8;HANGUL SYLLABLE NYOM;Lo;0;L;;;;;N;;;;;
+B1F9;HANGUL SYLLABLE NYOB;Lo;0;L;;;;;N;;;;;
+B1FA;HANGUL SYLLABLE NYOBS;Lo;0;L;;;;;N;;;;;
+B1FB;HANGUL SYLLABLE NYOS;Lo;0;L;;;;;N;;;;;
+B1FC;HANGUL SYLLABLE NYOSS;Lo;0;L;;;;;N;;;;;
+B1FD;HANGUL SYLLABLE NYONG;Lo;0;L;;;;;N;;;;;
+B1FE;HANGUL SYLLABLE NYOJ;Lo;0;L;;;;;N;;;;;
+B1FF;HANGUL SYLLABLE NYOC;Lo;0;L;;;;;N;;;;;
+B200;HANGUL SYLLABLE NYOK;Lo;0;L;;;;;N;;;;;
+B201;HANGUL SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;
+B202;HANGUL SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;
+B203;HANGUL SYLLABLE NYOH;Lo;0;L;;;;;N;;;;;
+B204;HANGUL SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+B205;HANGUL SYLLABLE NUG;Lo;0;L;;;;;N;;;;;
+B206;HANGUL SYLLABLE NUGG;Lo;0;L;;;;;N;;;;;
+B207;HANGUL SYLLABLE NUGS;Lo;0;L;;;;;N;;;;;
+B208;HANGUL SYLLABLE NUN;Lo;0;L;;;;;N;;;;;
+B209;HANGUL SYLLABLE NUNI;Lo;0;L;;;;;N;;;;;
+B20A;HANGUL SYLLABLE NUNH;Lo;0;L;;;;;N;;;;;
+B20B;HANGUL SYLLABLE NUD;Lo;0;L;;;;;N;;;;;
+B20C;HANGUL SYLLABLE NUL;Lo;0;L;;;;;N;;;;;
+B20D;HANGUL SYLLABLE NULG;Lo;0;L;;;;;N;;;;;
+B20E;HANGUL SYLLABLE NULM;Lo;0;L;;;;;N;;;;;
+B20F;HANGUL SYLLABLE NULB;Lo;0;L;;;;;N;;;;;
+B210;HANGUL SYLLABLE NULS;Lo;0;L;;;;;N;;;;;
+B211;HANGUL SYLLABLE NULT;Lo;0;L;;;;;N;;;;;
+B212;HANGUL SYLLABLE NULP;Lo;0;L;;;;;N;;;;;
+B213;HANGUL SYLLABLE NULH;Lo;0;L;;;;;N;;;;;
+B214;HANGUL SYLLABLE NUM;Lo;0;L;;;;;N;;;;;
+B215;HANGUL SYLLABLE NUB;Lo;0;L;;;;;N;;;;;
+B216;HANGUL SYLLABLE NUBS;Lo;0;L;;;;;N;;;;;
+B217;HANGUL SYLLABLE NUS;Lo;0;L;;;;;N;;;;;
+B218;HANGUL SYLLABLE NUSS;Lo;0;L;;;;;N;;;;;
+B219;HANGUL SYLLABLE NUNG;Lo;0;L;;;;;N;;;;;
+B21A;HANGUL SYLLABLE NUJ;Lo;0;L;;;;;N;;;;;
+B21B;HANGUL SYLLABLE NUC;Lo;0;L;;;;;N;;;;;
+B21C;HANGUL SYLLABLE NUK;Lo;0;L;;;;;N;;;;;
+B21D;HANGUL SYLLABLE NUT;Lo;0;L;;;;;N;;;;;
+B21E;HANGUL SYLLABLE NUP;Lo;0;L;;;;;N;;;;;
+B21F;HANGUL SYLLABLE NUH;Lo;0;L;;;;;N;;;;;
+B220;HANGUL SYLLABLE NWEO;Lo;0;L;;;;;N;;;;;
+B221;HANGUL SYLLABLE NWEOG;Lo;0;L;;;;;N;;;;;
+B222;HANGUL SYLLABLE NWEOGG;Lo;0;L;;;;;N;;;;;
+B223;HANGUL SYLLABLE NWEOGS;Lo;0;L;;;;;N;;;;;
+B224;HANGUL SYLLABLE NWEON;Lo;0;L;;;;;N;;;;;
+B225;HANGUL SYLLABLE NWEONI;Lo;0;L;;;;;N;;;;;
+B226;HANGUL SYLLABLE NWEONH;Lo;0;L;;;;;N;;;;;
+B227;HANGUL SYLLABLE NWEOD;Lo;0;L;;;;;N;;;;;
+B228;HANGUL SYLLABLE NWEOL;Lo;0;L;;;;;N;;;;;
+B229;HANGUL SYLLABLE NWEOLG;Lo;0;L;;;;;N;;;;;
+B22A;HANGUL SYLLABLE NWEOLM;Lo;0;L;;;;;N;;;;;
+B22B;HANGUL SYLLABLE NWEOLB;Lo;0;L;;;;;N;;;;;
+B22C;HANGUL SYLLABLE NWEOLS;Lo;0;L;;;;;N;;;;;
+B22D;HANGUL SYLLABLE NWEOLT;Lo;0;L;;;;;N;;;;;
+B22E;HANGUL SYLLABLE NWEOLP;Lo;0;L;;;;;N;;;;;
+B22F;HANGUL SYLLABLE NWEOLH;Lo;0;L;;;;;N;;;;;
+B230;HANGUL SYLLABLE NWEOM;Lo;0;L;;;;;N;;;;;
+B231;HANGUL SYLLABLE NWEOB;Lo;0;L;;;;;N;;;;;
+B232;HANGUL SYLLABLE NWEOBS;Lo;0;L;;;;;N;;;;;
+B233;HANGUL SYLLABLE NWEOS;Lo;0;L;;;;;N;;;;;
+B234;HANGUL SYLLABLE NWEOSS;Lo;0;L;;;;;N;;;;;
+B235;HANGUL SYLLABLE NWEONG;Lo;0;L;;;;;N;;;;;
+B236;HANGUL SYLLABLE NWEOJ;Lo;0;L;;;;;N;;;;;
+B237;HANGUL SYLLABLE NWEOC;Lo;0;L;;;;;N;;;;;
+B238;HANGUL SYLLABLE NWEOK;Lo;0;L;;;;;N;;;;;
+B239;HANGUL SYLLABLE NWEOT;Lo;0;L;;;;;N;;;;;
+B23A;HANGUL SYLLABLE NWEOP;Lo;0;L;;;;;N;;;;;
+B23B;HANGUL SYLLABLE NWEOH;Lo;0;L;;;;;N;;;;;
+B23C;HANGUL SYLLABLE NWE;Lo;0;L;;;;;N;;;;;
+B23D;HANGUL SYLLABLE NWEG;Lo;0;L;;;;;N;;;;;
+B23E;HANGUL SYLLABLE NWEGG;Lo;0;L;;;;;N;;;;;
+B23F;HANGUL SYLLABLE NWEGS;Lo;0;L;;;;;N;;;;;
+B240;HANGUL SYLLABLE NWEN;Lo;0;L;;;;;N;;;;;
+B241;HANGUL SYLLABLE NWENI;Lo;0;L;;;;;N;;;;;
+B242;HANGUL SYLLABLE NWENH;Lo;0;L;;;;;N;;;;;
+B243;HANGUL SYLLABLE NWED;Lo;0;L;;;;;N;;;;;
+B244;HANGUL SYLLABLE NWEL;Lo;0;L;;;;;N;;;;;
+B245;HANGUL SYLLABLE NWELG;Lo;0;L;;;;;N;;;;;
+B246;HANGUL SYLLABLE NWELM;Lo;0;L;;;;;N;;;;;
+B247;HANGUL SYLLABLE NWELB;Lo;0;L;;;;;N;;;;;
+B248;HANGUL SYLLABLE NWELS;Lo;0;L;;;;;N;;;;;
+B249;HANGUL SYLLABLE NWELT;Lo;0;L;;;;;N;;;;;
+B24A;HANGUL SYLLABLE NWELP;Lo;0;L;;;;;N;;;;;
+B24B;HANGUL SYLLABLE NWELH;Lo;0;L;;;;;N;;;;;
+B24C;HANGUL SYLLABLE NWEM;Lo;0;L;;;;;N;;;;;
+B24D;HANGUL SYLLABLE NWEB;Lo;0;L;;;;;N;;;;;
+B24E;HANGUL SYLLABLE NWEBS;Lo;0;L;;;;;N;;;;;
+B24F;HANGUL SYLLABLE NWES;Lo;0;L;;;;;N;;;;;
+B250;HANGUL SYLLABLE NWESS;Lo;0;L;;;;;N;;;;;
+B251;HANGUL SYLLABLE NWENG;Lo;0;L;;;;;N;;;;;
+B252;HANGUL SYLLABLE NWEJ;Lo;0;L;;;;;N;;;;;
+B253;HANGUL SYLLABLE NWEC;Lo;0;L;;;;;N;;;;;
+B254;HANGUL SYLLABLE NWEK;Lo;0;L;;;;;N;;;;;
+B255;HANGUL SYLLABLE NWET;Lo;0;L;;;;;N;;;;;
+B256;HANGUL SYLLABLE NWEP;Lo;0;L;;;;;N;;;;;
+B257;HANGUL SYLLABLE NWEH;Lo;0;L;;;;;N;;;;;
+B258;HANGUL SYLLABLE NWI;Lo;0;L;;;;;N;;;;;
+B259;HANGUL SYLLABLE NWIG;Lo;0;L;;;;;N;;;;;
+B25A;HANGUL SYLLABLE NWIGG;Lo;0;L;;;;;N;;;;;
+B25B;HANGUL SYLLABLE NWIGS;Lo;0;L;;;;;N;;;;;
+B25C;HANGUL SYLLABLE NWIN;Lo;0;L;;;;;N;;;;;
+B25D;HANGUL SYLLABLE NWINI;Lo;0;L;;;;;N;;;;;
+B25E;HANGUL SYLLABLE NWINH;Lo;0;L;;;;;N;;;;;
+B25F;HANGUL SYLLABLE NWID;Lo;0;L;;;;;N;;;;;
+B260;HANGUL SYLLABLE NWIL;Lo;0;L;;;;;N;;;;;
+B261;HANGUL SYLLABLE NWILG;Lo;0;L;;;;;N;;;;;
+B262;HANGUL SYLLABLE NWILM;Lo;0;L;;;;;N;;;;;
+B263;HANGUL SYLLABLE NWILB;Lo;0;L;;;;;N;;;;;
+B264;HANGUL SYLLABLE NWILS;Lo;0;L;;;;;N;;;;;
+B265;HANGUL SYLLABLE NWILT;Lo;0;L;;;;;N;;;;;
+B266;HANGUL SYLLABLE NWILP;Lo;0;L;;;;;N;;;;;
+B267;HANGUL SYLLABLE NWILH;Lo;0;L;;;;;N;;;;;
+B268;HANGUL SYLLABLE NWIM;Lo;0;L;;;;;N;;;;;
+B269;HANGUL SYLLABLE NWIB;Lo;0;L;;;;;N;;;;;
+B26A;HANGUL SYLLABLE NWIBS;Lo;0;L;;;;;N;;;;;
+B26B;HANGUL SYLLABLE NWIS;Lo;0;L;;;;;N;;;;;
+B26C;HANGUL SYLLABLE NWISS;Lo;0;L;;;;;N;;;;;
+B26D;HANGUL SYLLABLE NWING;Lo;0;L;;;;;N;;;;;
+B26E;HANGUL SYLLABLE NWIJ;Lo;0;L;;;;;N;;;;;
+B26F;HANGUL SYLLABLE NWIC;Lo;0;L;;;;;N;;;;;
+B270;HANGUL SYLLABLE NWIK;Lo;0;L;;;;;N;;;;;
+B271;HANGUL SYLLABLE NWIT;Lo;0;L;;;;;N;;;;;
+B272;HANGUL SYLLABLE NWIP;Lo;0;L;;;;;N;;;;;
+B273;HANGUL SYLLABLE NWIH;Lo;0;L;;;;;N;;;;;
+B274;HANGUL SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+B275;HANGUL SYLLABLE NYUG;Lo;0;L;;;;;N;;;;;
+B276;HANGUL SYLLABLE NYUGG;Lo;0;L;;;;;N;;;;;
+B277;HANGUL SYLLABLE NYUGS;Lo;0;L;;;;;N;;;;;
+B278;HANGUL SYLLABLE NYUN;Lo;0;L;;;;;N;;;;;
+B279;HANGUL SYLLABLE NYUNI;Lo;0;L;;;;;N;;;;;
+B27A;HANGUL SYLLABLE NYUNH;Lo;0;L;;;;;N;;;;;
+B27B;HANGUL SYLLABLE NYUD;Lo;0;L;;;;;N;;;;;
+B27C;HANGUL SYLLABLE NYUL;Lo;0;L;;;;;N;;;;;
+B27D;HANGUL SYLLABLE NYULG;Lo;0;L;;;;;N;;;;;
+B27E;HANGUL SYLLABLE NYULM;Lo;0;L;;;;;N;;;;;
+B27F;HANGUL SYLLABLE NYULB;Lo;0;L;;;;;N;;;;;
+B280;HANGUL SYLLABLE NYULS;Lo;0;L;;;;;N;;;;;
+B281;HANGUL SYLLABLE NYULT;Lo;0;L;;;;;N;;;;;
+B282;HANGUL SYLLABLE NYULP;Lo;0;L;;;;;N;;;;;
+B283;HANGUL SYLLABLE NYULH;Lo;0;L;;;;;N;;;;;
+B284;HANGUL SYLLABLE NYUM;Lo;0;L;;;;;N;;;;;
+B285;HANGUL SYLLABLE NYUB;Lo;0;L;;;;;N;;;;;
+B286;HANGUL SYLLABLE NYUBS;Lo;0;L;;;;;N;;;;;
+B287;HANGUL SYLLABLE NYUS;Lo;0;L;;;;;N;;;;;
+B288;HANGUL SYLLABLE NYUSS;Lo;0;L;;;;;N;;;;;
+B289;HANGUL SYLLABLE NYUNG;Lo;0;L;;;;;N;;;;;
+B28A;HANGUL SYLLABLE NYUJ;Lo;0;L;;;;;N;;;;;
+B28B;HANGUL SYLLABLE NYUC;Lo;0;L;;;;;N;;;;;
+B28C;HANGUL SYLLABLE NYUK;Lo;0;L;;;;;N;;;;;
+B28D;HANGUL SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;
+B28E;HANGUL SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;
+B28F;HANGUL SYLLABLE NYUH;Lo;0;L;;;;;N;;;;;
+B290;HANGUL SYLLABLE NEU;Lo;0;L;;;;;N;;;;;
+B291;HANGUL SYLLABLE NEUG;Lo;0;L;;;;;N;;;;;
+B292;HANGUL SYLLABLE NEUGG;Lo;0;L;;;;;N;;;;;
+B293;HANGUL SYLLABLE NEUGS;Lo;0;L;;;;;N;;;;;
+B294;HANGUL SYLLABLE NEUN;Lo;0;L;;;;;N;;;;;
+B295;HANGUL SYLLABLE NEUNI;Lo;0;L;;;;;N;;;;;
+B296;HANGUL SYLLABLE NEUNH;Lo;0;L;;;;;N;;;;;
+B297;HANGUL SYLLABLE NEUD;Lo;0;L;;;;;N;;;;;
+B298;HANGUL SYLLABLE NEUL;Lo;0;L;;;;;N;;;;;
+B299;HANGUL SYLLABLE NEULG;Lo;0;L;;;;;N;;;;;
+B29A;HANGUL SYLLABLE NEULM;Lo;0;L;;;;;N;;;;;
+B29B;HANGUL SYLLABLE NEULB;Lo;0;L;;;;;N;;;;;
+B29C;HANGUL SYLLABLE NEULS;Lo;0;L;;;;;N;;;;;
+B29D;HANGUL SYLLABLE NEULT;Lo;0;L;;;;;N;;;;;
+B29E;HANGUL SYLLABLE NEULP;Lo;0;L;;;;;N;;;;;
+B29F;HANGUL SYLLABLE NEULH;Lo;0;L;;;;;N;;;;;
+B2A0;HANGUL SYLLABLE NEUM;Lo;0;L;;;;;N;;;;;
+B2A1;HANGUL SYLLABLE NEUB;Lo;0;L;;;;;N;;;;;
+B2A2;HANGUL SYLLABLE NEUBS;Lo;0;L;;;;;N;;;;;
+B2A3;HANGUL SYLLABLE NEUS;Lo;0;L;;;;;N;;;;;
+B2A4;HANGUL SYLLABLE NEUSS;Lo;0;L;;;;;N;;;;;
+B2A5;HANGUL SYLLABLE NEUNG;Lo;0;L;;;;;N;;;;;
+B2A6;HANGUL SYLLABLE NEUJ;Lo;0;L;;;;;N;;;;;
+B2A7;HANGUL SYLLABLE NEUC;Lo;0;L;;;;;N;;;;;
+B2A8;HANGUL SYLLABLE NEUK;Lo;0;L;;;;;N;;;;;
+B2A9;HANGUL SYLLABLE NEUT;Lo;0;L;;;;;N;;;;;
+B2AA;HANGUL SYLLABLE NEUP;Lo;0;L;;;;;N;;;;;
+B2AB;HANGUL SYLLABLE NEUH;Lo;0;L;;;;;N;;;;;
+B2AC;HANGUL SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+B2AD;HANGUL SYLLABLE NYIG;Lo;0;L;;;;;N;;;;;
+B2AE;HANGUL SYLLABLE NYIGG;Lo;0;L;;;;;N;;;;;
+B2AF;HANGUL SYLLABLE NYIGS;Lo;0;L;;;;;N;;;;;
+B2B0;HANGUL SYLLABLE NYIN;Lo;0;L;;;;;N;;;;;
+B2B1;HANGUL SYLLABLE NYINI;Lo;0;L;;;;;N;;;;;
+B2B2;HANGUL SYLLABLE NYINH;Lo;0;L;;;;;N;;;;;
+B2B3;HANGUL SYLLABLE NYID;Lo;0;L;;;;;N;;;;;
+B2B4;HANGUL SYLLABLE NYIL;Lo;0;L;;;;;N;;;;;
+B2B5;HANGUL SYLLABLE NYILG;Lo;0;L;;;;;N;;;;;
+B2B6;HANGUL SYLLABLE NYILM;Lo;0;L;;;;;N;;;;;
+B2B7;HANGUL SYLLABLE NYILB;Lo;0;L;;;;;N;;;;;
+B2B8;HANGUL SYLLABLE NYILS;Lo;0;L;;;;;N;;;;;
+B2B9;HANGUL SYLLABLE NYILT;Lo;0;L;;;;;N;;;;;
+B2BA;HANGUL SYLLABLE NYILP;Lo;0;L;;;;;N;;;;;
+B2BB;HANGUL SYLLABLE NYILH;Lo;0;L;;;;;N;;;;;
+B2BC;HANGUL SYLLABLE NYIM;Lo;0;L;;;;;N;;;;;
+B2BD;HANGUL SYLLABLE NYIB;Lo;0;L;;;;;N;;;;;
+B2BE;HANGUL SYLLABLE NYIBS;Lo;0;L;;;;;N;;;;;
+B2BF;HANGUL SYLLABLE NYIS;Lo;0;L;;;;;N;;;;;
+B2C0;HANGUL SYLLABLE NYISS;Lo;0;L;;;;;N;;;;;
+B2C1;HANGUL SYLLABLE NYING;Lo;0;L;;;;;N;;;;;
+B2C2;HANGUL SYLLABLE NYIJ;Lo;0;L;;;;;N;;;;;
+B2C3;HANGUL SYLLABLE NYIC;Lo;0;L;;;;;N;;;;;
+B2C4;HANGUL SYLLABLE NYIK;Lo;0;L;;;;;N;;;;;
+B2C5;HANGUL SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;
+B2C6;HANGUL SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;
+B2C7;HANGUL SYLLABLE NYIH;Lo;0;L;;;;;N;;;;;
+B2C8;HANGUL SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+B2C9;HANGUL SYLLABLE NIG;Lo;0;L;;;;;N;;;;;
+B2CA;HANGUL SYLLABLE NIGG;Lo;0;L;;;;;N;;;;;
+B2CB;HANGUL SYLLABLE NIGS;Lo;0;L;;;;;N;;;;;
+B2CC;HANGUL SYLLABLE NIN;Lo;0;L;;;;;N;;;;;
+B2CD;HANGUL SYLLABLE NINI;Lo;0;L;;;;;N;;;;;
+B2CE;HANGUL SYLLABLE NINH;Lo;0;L;;;;;N;;;;;
+B2CF;HANGUL SYLLABLE NID;Lo;0;L;;;;;N;;;;;
+B2D0;HANGUL SYLLABLE NIL;Lo;0;L;;;;;N;;;;;
+B2D1;HANGUL SYLLABLE NILG;Lo;0;L;;;;;N;;;;;
+B2D2;HANGUL SYLLABLE NILM;Lo;0;L;;;;;N;;;;;
+B2D3;HANGUL SYLLABLE NILB;Lo;0;L;;;;;N;;;;;
+B2D4;HANGUL SYLLABLE NILS;Lo;0;L;;;;;N;;;;;
+B2D5;HANGUL SYLLABLE NILT;Lo;0;L;;;;;N;;;;;
+B2D6;HANGUL SYLLABLE NILP;Lo;0;L;;;;;N;;;;;
+B2D7;HANGUL SYLLABLE NILH;Lo;0;L;;;;;N;;;;;
+B2D8;HANGUL SYLLABLE NIM;Lo;0;L;;;;;N;;;;;
+B2D9;HANGUL SYLLABLE NIB;Lo;0;L;;;;;N;;;;;
+B2DA;HANGUL SYLLABLE NIBS;Lo;0;L;;;;;N;;;;;
+B2DB;HANGUL SYLLABLE NIS;Lo;0;L;;;;;N;;;;;
+B2DC;HANGUL SYLLABLE NISS;Lo;0;L;;;;;N;;;;;
+B2DD;HANGUL SYLLABLE NING;Lo;0;L;;;;;N;;;;;
+B2DE;HANGUL SYLLABLE NIJ;Lo;0;L;;;;;N;;;;;
+B2DF;HANGUL SYLLABLE NIC;Lo;0;L;;;;;N;;;;;
+B2E0;HANGUL SYLLABLE NIK;Lo;0;L;;;;;N;;;;;
+B2E1;HANGUL SYLLABLE NIT;Lo;0;L;;;;;N;;;;;
+B2E2;HANGUL SYLLABLE NIP;Lo;0;L;;;;;N;;;;;
+B2E3;HANGUL SYLLABLE NIH;Lo;0;L;;;;;N;;;;;
+B2E4;HANGUL SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+B2E5;HANGUL SYLLABLE DAG;Lo;0;L;;;;;N;;;;;
+B2E6;HANGUL SYLLABLE DAGG;Lo;0;L;;;;;N;;;;;
+B2E7;HANGUL SYLLABLE DAGS;Lo;0;L;;;;;N;;;;;
+B2E8;HANGUL SYLLABLE DAN;Lo;0;L;;;;;N;;;;;
+B2E9;HANGUL SYLLABLE DANI;Lo;0;L;;;;;N;;;;;
+B2EA;HANGUL SYLLABLE DANH;Lo;0;L;;;;;N;;;;;
+B2EB;HANGUL SYLLABLE DAD;Lo;0;L;;;;;N;;;;;
+B2EC;HANGUL SYLLABLE DAL;Lo;0;L;;;;;N;;;;;
+B2ED;HANGUL SYLLABLE DALG;Lo;0;L;;;;;N;;;;;
+B2EE;HANGUL SYLLABLE DALM;Lo;0;L;;;;;N;;;;;
+B2EF;HANGUL SYLLABLE DALB;Lo;0;L;;;;;N;;;;;
+B2F0;HANGUL SYLLABLE DALS;Lo;0;L;;;;;N;;;;;
+B2F1;HANGUL SYLLABLE DALT;Lo;0;L;;;;;N;;;;;
+B2F2;HANGUL SYLLABLE DALP;Lo;0;L;;;;;N;;;;;
+B2F3;HANGUL SYLLABLE DALH;Lo;0;L;;;;;N;;;;;
+B2F4;HANGUL SYLLABLE DAM;Lo;0;L;;;;;N;;;;;
+B2F5;HANGUL SYLLABLE DAB;Lo;0;L;;;;;N;;;;;
+B2F6;HANGUL SYLLABLE DABS;Lo;0;L;;;;;N;;;;;
+B2F7;HANGUL SYLLABLE DAS;Lo;0;L;;;;;N;;;;;
+B2F8;HANGUL SYLLABLE DASS;Lo;0;L;;;;;N;;;;;
+B2F9;HANGUL SYLLABLE DANG;Lo;0;L;;;;;N;;;;;
+B2FA;HANGUL SYLLABLE DAJ;Lo;0;L;;;;;N;;;;;
+B2FB;HANGUL SYLLABLE DAC;Lo;0;L;;;;;N;;;;;
+B2FC;HANGUL SYLLABLE DAK;Lo;0;L;;;;;N;;;;;
+B2FD;HANGUL SYLLABLE DAT;Lo;0;L;;;;;N;;;;;
+B2FE;HANGUL SYLLABLE DAP;Lo;0;L;;;;;N;;;;;
+B2FF;HANGUL SYLLABLE DAH;Lo;0;L;;;;;N;;;;;
+B300;HANGUL SYLLABLE DAE;Lo;0;L;;;;;N;;;;;
+B301;HANGUL SYLLABLE DAEG;Lo;0;L;;;;;N;;;;;
+B302;HANGUL SYLLABLE DAEGG;Lo;0;L;;;;;N;;;;;
+B303;HANGUL SYLLABLE DAEGS;Lo;0;L;;;;;N;;;;;
+B304;HANGUL SYLLABLE DAEN;Lo;0;L;;;;;N;;;;;
+B305;HANGUL SYLLABLE DAENI;Lo;0;L;;;;;N;;;;;
+B306;HANGUL SYLLABLE DAENH;Lo;0;L;;;;;N;;;;;
+B307;HANGUL SYLLABLE DAED;Lo;0;L;;;;;N;;;;;
+B308;HANGUL SYLLABLE DAEL;Lo;0;L;;;;;N;;;;;
+B309;HANGUL SYLLABLE DAELG;Lo;0;L;;;;;N;;;;;
+B30A;HANGUL SYLLABLE DAELM;Lo;0;L;;;;;N;;;;;
+B30B;HANGUL SYLLABLE DAELB;Lo;0;L;;;;;N;;;;;
+B30C;HANGUL SYLLABLE DAELS;Lo;0;L;;;;;N;;;;;
+B30D;HANGUL SYLLABLE DAELT;Lo;0;L;;;;;N;;;;;
+B30E;HANGUL SYLLABLE DAELP;Lo;0;L;;;;;N;;;;;
+B30F;HANGUL SYLLABLE DAELH;Lo;0;L;;;;;N;;;;;
+B310;HANGUL SYLLABLE DAEM;Lo;0;L;;;;;N;;;;;
+B311;HANGUL SYLLABLE DAEB;Lo;0;L;;;;;N;;;;;
+B312;HANGUL SYLLABLE DAEBS;Lo;0;L;;;;;N;;;;;
+B313;HANGUL SYLLABLE DAES;Lo;0;L;;;;;N;;;;;
+B314;HANGUL SYLLABLE DAESS;Lo;0;L;;;;;N;;;;;
+B315;HANGUL SYLLABLE DAENG;Lo;0;L;;;;;N;;;;;
+B316;HANGUL SYLLABLE DAEJ;Lo;0;L;;;;;N;;;;;
+B317;HANGUL SYLLABLE DAEC;Lo;0;L;;;;;N;;;;;
+B318;HANGUL SYLLABLE DAEK;Lo;0;L;;;;;N;;;;;
+B319;HANGUL SYLLABLE DAET;Lo;0;L;;;;;N;;;;;
+B31A;HANGUL SYLLABLE DAEP;Lo;0;L;;;;;N;;;;;
+B31B;HANGUL SYLLABLE DAEH;Lo;0;L;;;;;N;;;;;
+B31C;HANGUL SYLLABLE DYA;Lo;0;L;;;;;N;;;;;
+B31D;HANGUL SYLLABLE DYAG;Lo;0;L;;;;;N;;;;;
+B31E;HANGUL SYLLABLE DYAGG;Lo;0;L;;;;;N;;;;;
+B31F;HANGUL SYLLABLE DYAGS;Lo;0;L;;;;;N;;;;;
+B320;HANGUL SYLLABLE DYAN;Lo;0;L;;;;;N;;;;;
+B321;HANGUL SYLLABLE DYANI;Lo;0;L;;;;;N;;;;;
+B322;HANGUL SYLLABLE DYANH;Lo;0;L;;;;;N;;;;;
+B323;HANGUL SYLLABLE DYAD;Lo;0;L;;;;;N;;;;;
+B324;HANGUL SYLLABLE DYAL;Lo;0;L;;;;;N;;;;;
+B325;HANGUL SYLLABLE DYALG;Lo;0;L;;;;;N;;;;;
+B326;HANGUL SYLLABLE DYALM;Lo;0;L;;;;;N;;;;;
+B327;HANGUL SYLLABLE DYALB;Lo;0;L;;;;;N;;;;;
+B328;HANGUL SYLLABLE DYALS;Lo;0;L;;;;;N;;;;;
+B329;HANGUL SYLLABLE DYALT;Lo;0;L;;;;;N;;;;;
+B32A;HANGUL SYLLABLE DYALP;Lo;0;L;;;;;N;;;;;
+B32B;HANGUL SYLLABLE DYALH;Lo;0;L;;;;;N;;;;;
+B32C;HANGUL SYLLABLE DYAM;Lo;0;L;;;;;N;;;;;
+B32D;HANGUL SYLLABLE DYAB;Lo;0;L;;;;;N;;;;;
+B32E;HANGUL SYLLABLE DYABS;Lo;0;L;;;;;N;;;;;
+B32F;HANGUL SYLLABLE DYAS;Lo;0;L;;;;;N;;;;;
+B330;HANGUL SYLLABLE DYASS;Lo;0;L;;;;;N;;;;;
+B331;HANGUL SYLLABLE DYANG;Lo;0;L;;;;;N;;;;;
+B332;HANGUL SYLLABLE DYAJ;Lo;0;L;;;;;N;;;;;
+B333;HANGUL SYLLABLE DYAC;Lo;0;L;;;;;N;;;;;
+B334;HANGUL SYLLABLE DYAK;Lo;0;L;;;;;N;;;;;
+B335;HANGUL SYLLABLE DYAT;Lo;0;L;;;;;N;;;;;
+B336;HANGUL SYLLABLE DYAP;Lo;0;L;;;;;N;;;;;
+B337;HANGUL SYLLABLE DYAH;Lo;0;L;;;;;N;;;;;
+B338;HANGUL SYLLABLE DYAE;Lo;0;L;;;;;N;;;;;
+B339;HANGUL SYLLABLE DYAEG;Lo;0;L;;;;;N;;;;;
+B33A;HANGUL SYLLABLE DYAEGG;Lo;0;L;;;;;N;;;;;
+B33B;HANGUL SYLLABLE DYAEGS;Lo;0;L;;;;;N;;;;;
+B33C;HANGUL SYLLABLE DYAEN;Lo;0;L;;;;;N;;;;;
+B33D;HANGUL SYLLABLE DYAENI;Lo;0;L;;;;;N;;;;;
+B33E;HANGUL SYLLABLE DYAENH;Lo;0;L;;;;;N;;;;;
+B33F;HANGUL SYLLABLE DYAED;Lo;0;L;;;;;N;;;;;
+B340;HANGUL SYLLABLE DYAEL;Lo;0;L;;;;;N;;;;;
+B341;HANGUL SYLLABLE DYAELG;Lo;0;L;;;;;N;;;;;
+B342;HANGUL SYLLABLE DYAELM;Lo;0;L;;;;;N;;;;;
+B343;HANGUL SYLLABLE DYAELB;Lo;0;L;;;;;N;;;;;
+B344;HANGUL SYLLABLE DYAELS;Lo;0;L;;;;;N;;;;;
+B345;HANGUL SYLLABLE DYAELT;Lo;0;L;;;;;N;;;;;
+B346;HANGUL SYLLABLE DYAELP;Lo;0;L;;;;;N;;;;;
+B347;HANGUL SYLLABLE DYAELH;Lo;0;L;;;;;N;;;;;
+B348;HANGUL SYLLABLE DYAEM;Lo;0;L;;;;;N;;;;;
+B349;HANGUL SYLLABLE DYAEB;Lo;0;L;;;;;N;;;;;
+B34A;HANGUL SYLLABLE DYAEBS;Lo;0;L;;;;;N;;;;;
+B34B;HANGUL SYLLABLE DYAES;Lo;0;L;;;;;N;;;;;
+B34C;HANGUL SYLLABLE DYAESS;Lo;0;L;;;;;N;;;;;
+B34D;HANGUL SYLLABLE DYAENG;Lo;0;L;;;;;N;;;;;
+B34E;HANGUL SYLLABLE DYAEJ;Lo;0;L;;;;;N;;;;;
+B34F;HANGUL SYLLABLE DYAEC;Lo;0;L;;;;;N;;;;;
+B350;HANGUL SYLLABLE DYAEK;Lo;0;L;;;;;N;;;;;
+B351;HANGUL SYLLABLE DYAET;Lo;0;L;;;;;N;;;;;
+B352;HANGUL SYLLABLE DYAEP;Lo;0;L;;;;;N;;;;;
+B353;HANGUL SYLLABLE DYAEH;Lo;0;L;;;;;N;;;;;
+B354;HANGUL SYLLABLE DEO;Lo;0;L;;;;;N;;;;;
+B355;HANGUL SYLLABLE DEOG;Lo;0;L;;;;;N;;;;;
+B356;HANGUL SYLLABLE DEOGG;Lo;0;L;;;;;N;;;;;
+B357;HANGUL SYLLABLE DEOGS;Lo;0;L;;;;;N;;;;;
+B358;HANGUL SYLLABLE DEON;Lo;0;L;;;;;N;;;;;
+B359;HANGUL SYLLABLE DEONI;Lo;0;L;;;;;N;;;;;
+B35A;HANGUL SYLLABLE DEONH;Lo;0;L;;;;;N;;;;;
+B35B;HANGUL SYLLABLE DEOD;Lo;0;L;;;;;N;;;;;
+B35C;HANGUL SYLLABLE DEOL;Lo;0;L;;;;;N;;;;;
+B35D;HANGUL SYLLABLE DEOLG;Lo;0;L;;;;;N;;;;;
+B35E;HANGUL SYLLABLE DEOLM;Lo;0;L;;;;;N;;;;;
+B35F;HANGUL SYLLABLE DEOLB;Lo;0;L;;;;;N;;;;;
+B360;HANGUL SYLLABLE DEOLS;Lo;0;L;;;;;N;;;;;
+B361;HANGUL SYLLABLE DEOLT;Lo;0;L;;;;;N;;;;;
+B362;HANGUL SYLLABLE DEOLP;Lo;0;L;;;;;N;;;;;
+B363;HANGUL SYLLABLE DEOLH;Lo;0;L;;;;;N;;;;;
+B364;HANGUL SYLLABLE DEOM;Lo;0;L;;;;;N;;;;;
+B365;HANGUL SYLLABLE DEOB;Lo;0;L;;;;;N;;;;;
+B366;HANGUL SYLLABLE DEOBS;Lo;0;L;;;;;N;;;;;
+B367;HANGUL SYLLABLE DEOS;Lo;0;L;;;;;N;;;;;
+B368;HANGUL SYLLABLE DEOSS;Lo;0;L;;;;;N;;;;;
+B369;HANGUL SYLLABLE DEONG;Lo;0;L;;;;;N;;;;;
+B36A;HANGUL SYLLABLE DEOJ;Lo;0;L;;;;;N;;;;;
+B36B;HANGUL SYLLABLE DEOC;Lo;0;L;;;;;N;;;;;
+B36C;HANGUL SYLLABLE DEOK;Lo;0;L;;;;;N;;;;;
+B36D;HANGUL SYLLABLE DEOT;Lo;0;L;;;;;N;;;;;
+B36E;HANGUL SYLLABLE DEOP;Lo;0;L;;;;;N;;;;;
+B36F;HANGUL SYLLABLE DEOH;Lo;0;L;;;;;N;;;;;
+B370;HANGUL SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+B371;HANGUL SYLLABLE DEG;Lo;0;L;;;;;N;;;;;
+B372;HANGUL SYLLABLE DEGG;Lo;0;L;;;;;N;;;;;
+B373;HANGUL SYLLABLE DEGS;Lo;0;L;;;;;N;;;;;
+B374;HANGUL SYLLABLE DEN;Lo;0;L;;;;;N;;;;;
+B375;HANGUL SYLLABLE DENI;Lo;0;L;;;;;N;;;;;
+B376;HANGUL SYLLABLE DENH;Lo;0;L;;;;;N;;;;;
+B377;HANGUL SYLLABLE DED;Lo;0;L;;;;;N;;;;;
+B378;HANGUL SYLLABLE DEL;Lo;0;L;;;;;N;;;;;
+B379;HANGUL SYLLABLE DELG;Lo;0;L;;;;;N;;;;;
+B37A;HANGUL SYLLABLE DELM;Lo;0;L;;;;;N;;;;;
+B37B;HANGUL SYLLABLE DELB;Lo;0;L;;;;;N;;;;;
+B37C;HANGUL SYLLABLE DELS;Lo;0;L;;;;;N;;;;;
+B37D;HANGUL SYLLABLE DELT;Lo;0;L;;;;;N;;;;;
+B37E;HANGUL SYLLABLE DELP;Lo;0;L;;;;;N;;;;;
+B37F;HANGUL SYLLABLE DELH;Lo;0;L;;;;;N;;;;;
+B380;HANGUL SYLLABLE DEM;Lo;0;L;;;;;N;;;;;
+B381;HANGUL SYLLABLE DEB;Lo;0;L;;;;;N;;;;;
+B382;HANGUL SYLLABLE DEBS;Lo;0;L;;;;;N;;;;;
+B383;HANGUL SYLLABLE DES;Lo;0;L;;;;;N;;;;;
+B384;HANGUL SYLLABLE DESS;Lo;0;L;;;;;N;;;;;
+B385;HANGUL SYLLABLE DENG;Lo;0;L;;;;;N;;;;;
+B386;HANGUL SYLLABLE DEJ;Lo;0;L;;;;;N;;;;;
+B387;HANGUL SYLLABLE DEC;Lo;0;L;;;;;N;;;;;
+B388;HANGUL SYLLABLE DEK;Lo;0;L;;;;;N;;;;;
+B389;HANGUL SYLLABLE DET;Lo;0;L;;;;;N;;;;;
+B38A;HANGUL SYLLABLE DEP;Lo;0;L;;;;;N;;;;;
+B38B;HANGUL SYLLABLE DEH;Lo;0;L;;;;;N;;;;;
+B38C;HANGUL SYLLABLE DYEO;Lo;0;L;;;;;N;;;;;
+B38D;HANGUL SYLLABLE DYEOG;Lo;0;L;;;;;N;;;;;
+B38E;HANGUL SYLLABLE DYEOGG;Lo;0;L;;;;;N;;;;;
+B38F;HANGUL SYLLABLE DYEOGS;Lo;0;L;;;;;N;;;;;
+B390;HANGUL SYLLABLE DYEON;Lo;0;L;;;;;N;;;;;
+B391;HANGUL SYLLABLE DYEONI;Lo;0;L;;;;;N;;;;;
+B392;HANGUL SYLLABLE DYEONH;Lo;0;L;;;;;N;;;;;
+B393;HANGUL SYLLABLE DYEOD;Lo;0;L;;;;;N;;;;;
+B394;HANGUL SYLLABLE DYEOL;Lo;0;L;;;;;N;;;;;
+B395;HANGUL SYLLABLE DYEOLG;Lo;0;L;;;;;N;;;;;
+B396;HANGUL SYLLABLE DYEOLM;Lo;0;L;;;;;N;;;;;
+B397;HANGUL SYLLABLE DYEOLB;Lo;0;L;;;;;N;;;;;
+B398;HANGUL SYLLABLE DYEOLS;Lo;0;L;;;;;N;;;;;
+B399;HANGUL SYLLABLE DYEOLT;Lo;0;L;;;;;N;;;;;
+B39A;HANGUL SYLLABLE DYEOLP;Lo;0;L;;;;;N;;;;;
+B39B;HANGUL SYLLABLE DYEOLH;Lo;0;L;;;;;N;;;;;
+B39C;HANGUL SYLLABLE DYEOM;Lo;0;L;;;;;N;;;;;
+B39D;HANGUL SYLLABLE DYEOB;Lo;0;L;;;;;N;;;;;
+B39E;HANGUL SYLLABLE DYEOBS;Lo;0;L;;;;;N;;;;;
+B39F;HANGUL SYLLABLE DYEOS;Lo;0;L;;;;;N;;;;;
+B3A0;HANGUL SYLLABLE DYEOSS;Lo;0;L;;;;;N;;;;;
+B3A1;HANGUL SYLLABLE DYEONG;Lo;0;L;;;;;N;;;;;
+B3A2;HANGUL SYLLABLE DYEOJ;Lo;0;L;;;;;N;;;;;
+B3A3;HANGUL SYLLABLE DYEOC;Lo;0;L;;;;;N;;;;;
+B3A4;HANGUL SYLLABLE DYEOK;Lo;0;L;;;;;N;;;;;
+B3A5;HANGUL SYLLABLE DYEOT;Lo;0;L;;;;;N;;;;;
+B3A6;HANGUL SYLLABLE DYEOP;Lo;0;L;;;;;N;;;;;
+B3A7;HANGUL SYLLABLE DYEOH;Lo;0;L;;;;;N;;;;;
+B3A8;HANGUL SYLLABLE DYE;Lo;0;L;;;;;N;;;;;
+B3A9;HANGUL SYLLABLE DYEG;Lo;0;L;;;;;N;;;;;
+B3AA;HANGUL SYLLABLE DYEGG;Lo;0;L;;;;;N;;;;;
+B3AB;HANGUL SYLLABLE DYEGS;Lo;0;L;;;;;N;;;;;
+B3AC;HANGUL SYLLABLE DYEN;Lo;0;L;;;;;N;;;;;
+B3AD;HANGUL SYLLABLE DYENI;Lo;0;L;;;;;N;;;;;
+B3AE;HANGUL SYLLABLE DYENH;Lo;0;L;;;;;N;;;;;
+B3AF;HANGUL SYLLABLE DYED;Lo;0;L;;;;;N;;;;;
+B3B0;HANGUL SYLLABLE DYEL;Lo;0;L;;;;;N;;;;;
+B3B1;HANGUL SYLLABLE DYELG;Lo;0;L;;;;;N;;;;;
+B3B2;HANGUL SYLLABLE DYELM;Lo;0;L;;;;;N;;;;;
+B3B3;HANGUL SYLLABLE DYELB;Lo;0;L;;;;;N;;;;;
+B3B4;HANGUL SYLLABLE DYELS;Lo;0;L;;;;;N;;;;;
+B3B5;HANGUL SYLLABLE DYELT;Lo;0;L;;;;;N;;;;;
+B3B6;HANGUL SYLLABLE DYELP;Lo;0;L;;;;;N;;;;;
+B3B7;HANGUL SYLLABLE DYELH;Lo;0;L;;;;;N;;;;;
+B3B8;HANGUL SYLLABLE DYEM;Lo;0;L;;;;;N;;;;;
+B3B9;HANGUL SYLLABLE DYEB;Lo;0;L;;;;;N;;;;;
+B3BA;HANGUL SYLLABLE DYEBS;Lo;0;L;;;;;N;;;;;
+B3BB;HANGUL SYLLABLE DYES;Lo;0;L;;;;;N;;;;;
+B3BC;HANGUL SYLLABLE DYESS;Lo;0;L;;;;;N;;;;;
+B3BD;HANGUL SYLLABLE DYENG;Lo;0;L;;;;;N;;;;;
+B3BE;HANGUL SYLLABLE DYEJ;Lo;0;L;;;;;N;;;;;
+B3BF;HANGUL SYLLABLE DYEC;Lo;0;L;;;;;N;;;;;
+B3C0;HANGUL SYLLABLE DYEK;Lo;0;L;;;;;N;;;;;
+B3C1;HANGUL SYLLABLE DYET;Lo;0;L;;;;;N;;;;;
+B3C2;HANGUL SYLLABLE DYEP;Lo;0;L;;;;;N;;;;;
+B3C3;HANGUL SYLLABLE DYEH;Lo;0;L;;;;;N;;;;;
+B3C4;HANGUL SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+B3C5;HANGUL SYLLABLE DOG;Lo;0;L;;;;;N;;;;;
+B3C6;HANGUL SYLLABLE DOGG;Lo;0;L;;;;;N;;;;;
+B3C7;HANGUL SYLLABLE DOGS;Lo;0;L;;;;;N;;;;;
+B3C8;HANGUL SYLLABLE DON;Lo;0;L;;;;;N;;;;;
+B3C9;HANGUL SYLLABLE DONI;Lo;0;L;;;;;N;;;;;
+B3CA;HANGUL SYLLABLE DONH;Lo;0;L;;;;;N;;;;;
+B3CB;HANGUL SYLLABLE DOD;Lo;0;L;;;;;N;;;;;
+B3CC;HANGUL SYLLABLE DOL;Lo;0;L;;;;;N;;;;;
+B3CD;HANGUL SYLLABLE DOLG;Lo;0;L;;;;;N;;;;;
+B3CE;HANGUL SYLLABLE DOLM;Lo;0;L;;;;;N;;;;;
+B3CF;HANGUL SYLLABLE DOLB;Lo;0;L;;;;;N;;;;;
+B3D0;HANGUL SYLLABLE DOLS;Lo;0;L;;;;;N;;;;;
+B3D1;HANGUL SYLLABLE DOLT;Lo;0;L;;;;;N;;;;;
+B3D2;HANGUL SYLLABLE DOLP;Lo;0;L;;;;;N;;;;;
+B3D3;HANGUL SYLLABLE DOLH;Lo;0;L;;;;;N;;;;;
+B3D4;HANGUL SYLLABLE DOM;Lo;0;L;;;;;N;;;;;
+B3D5;HANGUL SYLLABLE DOB;Lo;0;L;;;;;N;;;;;
+B3D6;HANGUL SYLLABLE DOBS;Lo;0;L;;;;;N;;;;;
+B3D7;HANGUL SYLLABLE DOS;Lo;0;L;;;;;N;;;;;
+B3D8;HANGUL SYLLABLE DOSS;Lo;0;L;;;;;N;;;;;
+B3D9;HANGUL SYLLABLE DONG;Lo;0;L;;;;;N;;;;;
+B3DA;HANGUL SYLLABLE DOJ;Lo;0;L;;;;;N;;;;;
+B3DB;HANGUL SYLLABLE DOC;Lo;0;L;;;;;N;;;;;
+B3DC;HANGUL SYLLABLE DOK;Lo;0;L;;;;;N;;;;;
+B3DD;HANGUL SYLLABLE DOT;Lo;0;L;;;;;N;;;;;
+B3DE;HANGUL SYLLABLE DOP;Lo;0;L;;;;;N;;;;;
+B3DF;HANGUL SYLLABLE DOH;Lo;0;L;;;;;N;;;;;
+B3E0;HANGUL SYLLABLE DWA;Lo;0;L;;;;;N;;;;;
+B3E1;HANGUL SYLLABLE DWAG;Lo;0;L;;;;;N;;;;;
+B3E2;HANGUL SYLLABLE DWAGG;Lo;0;L;;;;;N;;;;;
+B3E3;HANGUL SYLLABLE DWAGS;Lo;0;L;;;;;N;;;;;
+B3E4;HANGUL SYLLABLE DWAN;Lo;0;L;;;;;N;;;;;
+B3E5;HANGUL SYLLABLE DWANI;Lo;0;L;;;;;N;;;;;
+B3E6;HANGUL SYLLABLE DWANH;Lo;0;L;;;;;N;;;;;
+B3E7;HANGUL SYLLABLE DWAD;Lo;0;L;;;;;N;;;;;
+B3E8;HANGUL SYLLABLE DWAL;Lo;0;L;;;;;N;;;;;
+B3E9;HANGUL SYLLABLE DWALG;Lo;0;L;;;;;N;;;;;
+B3EA;HANGUL SYLLABLE DWALM;Lo;0;L;;;;;N;;;;;
+B3EB;HANGUL SYLLABLE DWALB;Lo;0;L;;;;;N;;;;;
+B3EC;HANGUL SYLLABLE DWALS;Lo;0;L;;;;;N;;;;;
+B3ED;HANGUL SYLLABLE DWALT;Lo;0;L;;;;;N;;;;;
+B3EE;HANGUL SYLLABLE DWALP;Lo;0;L;;;;;N;;;;;
+B3EF;HANGUL SYLLABLE DWALH;Lo;0;L;;;;;N;;;;;
+B3F0;HANGUL SYLLABLE DWAM;Lo;0;L;;;;;N;;;;;
+B3F1;HANGUL SYLLABLE DWAB;Lo;0;L;;;;;N;;;;;
+B3F2;HANGUL SYLLABLE DWABS;Lo;0;L;;;;;N;;;;;
+B3F3;HANGUL SYLLABLE DWAS;Lo;0;L;;;;;N;;;;;
+B3F4;HANGUL SYLLABLE DWASS;Lo;0;L;;;;;N;;;;;
+B3F5;HANGUL SYLLABLE DWANG;Lo;0;L;;;;;N;;;;;
+B3F6;HANGUL SYLLABLE DWAJ;Lo;0;L;;;;;N;;;;;
+B3F7;HANGUL SYLLABLE DWAC;Lo;0;L;;;;;N;;;;;
+B3F8;HANGUL SYLLABLE DWAK;Lo;0;L;;;;;N;;;;;
+B3F9;HANGUL SYLLABLE DWAT;Lo;0;L;;;;;N;;;;;
+B3FA;HANGUL SYLLABLE DWAP;Lo;0;L;;;;;N;;;;;
+B3FB;HANGUL SYLLABLE DWAH;Lo;0;L;;;;;N;;;;;
+B3FC;HANGUL SYLLABLE DWAE;Lo;0;L;;;;;N;;;;;
+B3FD;HANGUL SYLLABLE DWAEG;Lo;0;L;;;;;N;;;;;
+B3FE;HANGUL SYLLABLE DWAEGG;Lo;0;L;;;;;N;;;;;
+B3FF;HANGUL SYLLABLE DWAEGS;Lo;0;L;;;;;N;;;;;
+B400;HANGUL SYLLABLE DWAEN;Lo;0;L;;;;;N;;;;;
+B401;HANGUL SYLLABLE DWAENI;Lo;0;L;;;;;N;;;;;
+B402;HANGUL SYLLABLE DWAENH;Lo;0;L;;;;;N;;;;;
+B403;HANGUL SYLLABLE DWAED;Lo;0;L;;;;;N;;;;;
+B404;HANGUL SYLLABLE DWAEL;Lo;0;L;;;;;N;;;;;
+B405;HANGUL SYLLABLE DWAELG;Lo;0;L;;;;;N;;;;;
+B406;HANGUL SYLLABLE DWAELM;Lo;0;L;;;;;N;;;;;
+B407;HANGUL SYLLABLE DWAELB;Lo;0;L;;;;;N;;;;;
+B408;HANGUL SYLLABLE DWAELS;Lo;0;L;;;;;N;;;;;
+B409;HANGUL SYLLABLE DWAELT;Lo;0;L;;;;;N;;;;;
+B40A;HANGUL SYLLABLE DWAELP;Lo;0;L;;;;;N;;;;;
+B40B;HANGUL SYLLABLE DWAELH;Lo;0;L;;;;;N;;;;;
+B40C;HANGUL SYLLABLE DWAEM;Lo;0;L;;;;;N;;;;;
+B40D;HANGUL SYLLABLE DWAEB;Lo;0;L;;;;;N;;;;;
+B40E;HANGUL SYLLABLE DWAEBS;Lo;0;L;;;;;N;;;;;
+B40F;HANGUL SYLLABLE DWAES;Lo;0;L;;;;;N;;;;;
+B410;HANGUL SYLLABLE DWAESS;Lo;0;L;;;;;N;;;;;
+B411;HANGUL SYLLABLE DWAENG;Lo;0;L;;;;;N;;;;;
+B412;HANGUL SYLLABLE DWAEJ;Lo;0;L;;;;;N;;;;;
+B413;HANGUL SYLLABLE DWAEC;Lo;0;L;;;;;N;;;;;
+B414;HANGUL SYLLABLE DWAEK;Lo;0;L;;;;;N;;;;;
+B415;HANGUL SYLLABLE DWAET;Lo;0;L;;;;;N;;;;;
+B416;HANGUL SYLLABLE DWAEP;Lo;0;L;;;;;N;;;;;
+B417;HANGUL SYLLABLE DWAEH;Lo;0;L;;;;;N;;;;;
+B418;HANGUL SYLLABLE DOE;Lo;0;L;;;;;N;;;;;
+B419;HANGUL SYLLABLE DOEG;Lo;0;L;;;;;N;;;;;
+B41A;HANGUL SYLLABLE DOEGG;Lo;0;L;;;;;N;;;;;
+B41B;HANGUL SYLLABLE DOEGS;Lo;0;L;;;;;N;;;;;
+B41C;HANGUL SYLLABLE DOEN;Lo;0;L;;;;;N;;;;;
+B41D;HANGUL SYLLABLE DOENI;Lo;0;L;;;;;N;;;;;
+B41E;HANGUL SYLLABLE DOENH;Lo;0;L;;;;;N;;;;;
+B41F;HANGUL SYLLABLE DOED;Lo;0;L;;;;;N;;;;;
+B420;HANGUL SYLLABLE DOEL;Lo;0;L;;;;;N;;;;;
+B421;HANGUL SYLLABLE DOELG;Lo;0;L;;;;;N;;;;;
+B422;HANGUL SYLLABLE DOELM;Lo;0;L;;;;;N;;;;;
+B423;HANGUL SYLLABLE DOELB;Lo;0;L;;;;;N;;;;;
+B424;HANGUL SYLLABLE DOELS;Lo;0;L;;;;;N;;;;;
+B425;HANGUL SYLLABLE DOELT;Lo;0;L;;;;;N;;;;;
+B426;HANGUL SYLLABLE DOELP;Lo;0;L;;;;;N;;;;;
+B427;HANGUL SYLLABLE DOELH;Lo;0;L;;;;;N;;;;;
+B428;HANGUL SYLLABLE DOEM;Lo;0;L;;;;;N;;;;;
+B429;HANGUL SYLLABLE DOEB;Lo;0;L;;;;;N;;;;;
+B42A;HANGUL SYLLABLE DOEBS;Lo;0;L;;;;;N;;;;;
+B42B;HANGUL SYLLABLE DOES;Lo;0;L;;;;;N;;;;;
+B42C;HANGUL SYLLABLE DOESS;Lo;0;L;;;;;N;;;;;
+B42D;HANGUL SYLLABLE DOENG;Lo;0;L;;;;;N;;;;;
+B42E;HANGUL SYLLABLE DOEJ;Lo;0;L;;;;;N;;;;;
+B42F;HANGUL SYLLABLE DOEC;Lo;0;L;;;;;N;;;;;
+B430;HANGUL SYLLABLE DOEK;Lo;0;L;;;;;N;;;;;
+B431;HANGUL SYLLABLE DOET;Lo;0;L;;;;;N;;;;;
+B432;HANGUL SYLLABLE DOEP;Lo;0;L;;;;;N;;;;;
+B433;HANGUL SYLLABLE DOEH;Lo;0;L;;;;;N;;;;;
+B434;HANGUL SYLLABLE DYO;Lo;0;L;;;;;N;;;;;
+B435;HANGUL SYLLABLE DYOG;Lo;0;L;;;;;N;;;;;
+B436;HANGUL SYLLABLE DYOGG;Lo;0;L;;;;;N;;;;;
+B437;HANGUL SYLLABLE DYOGS;Lo;0;L;;;;;N;;;;;
+B438;HANGUL SYLLABLE DYON;Lo;0;L;;;;;N;;;;;
+B439;HANGUL SYLLABLE DYONI;Lo;0;L;;;;;N;;;;;
+B43A;HANGUL SYLLABLE DYONH;Lo;0;L;;;;;N;;;;;
+B43B;HANGUL SYLLABLE DYOD;Lo;0;L;;;;;N;;;;;
+B43C;HANGUL SYLLABLE DYOL;Lo;0;L;;;;;N;;;;;
+B43D;HANGUL SYLLABLE DYOLG;Lo;0;L;;;;;N;;;;;
+B43E;HANGUL SYLLABLE DYOLM;Lo;0;L;;;;;N;;;;;
+B43F;HANGUL SYLLABLE DYOLB;Lo;0;L;;;;;N;;;;;
+B440;HANGUL SYLLABLE DYOLS;Lo;0;L;;;;;N;;;;;
+B441;HANGUL SYLLABLE DYOLT;Lo;0;L;;;;;N;;;;;
+B442;HANGUL SYLLABLE DYOLP;Lo;0;L;;;;;N;;;;;
+B443;HANGUL SYLLABLE DYOLH;Lo;0;L;;;;;N;;;;;
+B444;HANGUL SYLLABLE DYOM;Lo;0;L;;;;;N;;;;;
+B445;HANGUL SYLLABLE DYOB;Lo;0;L;;;;;N;;;;;
+B446;HANGUL SYLLABLE DYOBS;Lo;0;L;;;;;N;;;;;
+B447;HANGUL SYLLABLE DYOS;Lo;0;L;;;;;N;;;;;
+B448;HANGUL SYLLABLE DYOSS;Lo;0;L;;;;;N;;;;;
+B449;HANGUL SYLLABLE DYONG;Lo;0;L;;;;;N;;;;;
+B44A;HANGUL SYLLABLE DYOJ;Lo;0;L;;;;;N;;;;;
+B44B;HANGUL SYLLABLE DYOC;Lo;0;L;;;;;N;;;;;
+B44C;HANGUL SYLLABLE DYOK;Lo;0;L;;;;;N;;;;;
+B44D;HANGUL SYLLABLE DYOT;Lo;0;L;;;;;N;;;;;
+B44E;HANGUL SYLLABLE DYOP;Lo;0;L;;;;;N;;;;;
+B44F;HANGUL SYLLABLE DYOH;Lo;0;L;;;;;N;;;;;
+B450;HANGUL SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+B451;HANGUL SYLLABLE DUG;Lo;0;L;;;;;N;;;;;
+B452;HANGUL SYLLABLE DUGG;Lo;0;L;;;;;N;;;;;
+B453;HANGUL SYLLABLE DUGS;Lo;0;L;;;;;N;;;;;
+B454;HANGUL SYLLABLE DUN;Lo;0;L;;;;;N;;;;;
+B455;HANGUL SYLLABLE DUNI;Lo;0;L;;;;;N;;;;;
+B456;HANGUL SYLLABLE DUNH;Lo;0;L;;;;;N;;;;;
+B457;HANGUL SYLLABLE DUD;Lo;0;L;;;;;N;;;;;
+B458;HANGUL SYLLABLE DUL;Lo;0;L;;;;;N;;;;;
+B459;HANGUL SYLLABLE DULG;Lo;0;L;;;;;N;;;;;
+B45A;HANGUL SYLLABLE DULM;Lo;0;L;;;;;N;;;;;
+B45B;HANGUL SYLLABLE DULB;Lo;0;L;;;;;N;;;;;
+B45C;HANGUL SYLLABLE DULS;Lo;0;L;;;;;N;;;;;
+B45D;HANGUL SYLLABLE DULT;Lo;0;L;;;;;N;;;;;
+B45E;HANGUL SYLLABLE DULP;Lo;0;L;;;;;N;;;;;
+B45F;HANGUL SYLLABLE DULH;Lo;0;L;;;;;N;;;;;
+B460;HANGUL SYLLABLE DUM;Lo;0;L;;;;;N;;;;;
+B461;HANGUL SYLLABLE DUB;Lo;0;L;;;;;N;;;;;
+B462;HANGUL SYLLABLE DUBS;Lo;0;L;;;;;N;;;;;
+B463;HANGUL SYLLABLE DUS;Lo;0;L;;;;;N;;;;;
+B464;HANGUL SYLLABLE DUSS;Lo;0;L;;;;;N;;;;;
+B465;HANGUL SYLLABLE DUNG;Lo;0;L;;;;;N;;;;;
+B466;HANGUL SYLLABLE DUJ;Lo;0;L;;;;;N;;;;;
+B467;HANGUL SYLLABLE DUC;Lo;0;L;;;;;N;;;;;
+B468;HANGUL SYLLABLE DUK;Lo;0;L;;;;;N;;;;;
+B469;HANGUL SYLLABLE DUT;Lo;0;L;;;;;N;;;;;
+B46A;HANGUL SYLLABLE DUP;Lo;0;L;;;;;N;;;;;
+B46B;HANGUL SYLLABLE DUH;Lo;0;L;;;;;N;;;;;
+B46C;HANGUL SYLLABLE DWEO;Lo;0;L;;;;;N;;;;;
+B46D;HANGUL SYLLABLE DWEOG;Lo;0;L;;;;;N;;;;;
+B46E;HANGUL SYLLABLE DWEOGG;Lo;0;L;;;;;N;;;;;
+B46F;HANGUL SYLLABLE DWEOGS;Lo;0;L;;;;;N;;;;;
+B470;HANGUL SYLLABLE DWEON;Lo;0;L;;;;;N;;;;;
+B471;HANGUL SYLLABLE DWEONI;Lo;0;L;;;;;N;;;;;
+B472;HANGUL SYLLABLE DWEONH;Lo;0;L;;;;;N;;;;;
+B473;HANGUL SYLLABLE DWEOD;Lo;0;L;;;;;N;;;;;
+B474;HANGUL SYLLABLE DWEOL;Lo;0;L;;;;;N;;;;;
+B475;HANGUL SYLLABLE DWEOLG;Lo;0;L;;;;;N;;;;;
+B476;HANGUL SYLLABLE DWEOLM;Lo;0;L;;;;;N;;;;;
+B477;HANGUL SYLLABLE DWEOLB;Lo;0;L;;;;;N;;;;;
+B478;HANGUL SYLLABLE DWEOLS;Lo;0;L;;;;;N;;;;;
+B479;HANGUL SYLLABLE DWEOLT;Lo;0;L;;;;;N;;;;;
+B47A;HANGUL SYLLABLE DWEOLP;Lo;0;L;;;;;N;;;;;
+B47B;HANGUL SYLLABLE DWEOLH;Lo;0;L;;;;;N;;;;;
+B47C;HANGUL SYLLABLE DWEOM;Lo;0;L;;;;;N;;;;;
+B47D;HANGUL SYLLABLE DWEOB;Lo;0;L;;;;;N;;;;;
+B47E;HANGUL SYLLABLE DWEOBS;Lo;0;L;;;;;N;;;;;
+B47F;HANGUL SYLLABLE DWEOS;Lo;0;L;;;;;N;;;;;
+B480;HANGUL SYLLABLE DWEOSS;Lo;0;L;;;;;N;;;;;
+B481;HANGUL SYLLABLE DWEONG;Lo;0;L;;;;;N;;;;;
+B482;HANGUL SYLLABLE DWEOJ;Lo;0;L;;;;;N;;;;;
+B483;HANGUL SYLLABLE DWEOC;Lo;0;L;;;;;N;;;;;
+B484;HANGUL SYLLABLE DWEOK;Lo;0;L;;;;;N;;;;;
+B485;HANGUL SYLLABLE DWEOT;Lo;0;L;;;;;N;;;;;
+B486;HANGUL SYLLABLE DWEOP;Lo;0;L;;;;;N;;;;;
+B487;HANGUL SYLLABLE DWEOH;Lo;0;L;;;;;N;;;;;
+B488;HANGUL SYLLABLE DWE;Lo;0;L;;;;;N;;;;;
+B489;HANGUL SYLLABLE DWEG;Lo;0;L;;;;;N;;;;;
+B48A;HANGUL SYLLABLE DWEGG;Lo;0;L;;;;;N;;;;;
+B48B;HANGUL SYLLABLE DWEGS;Lo;0;L;;;;;N;;;;;
+B48C;HANGUL SYLLABLE DWEN;Lo;0;L;;;;;N;;;;;
+B48D;HANGUL SYLLABLE DWENI;Lo;0;L;;;;;N;;;;;
+B48E;HANGUL SYLLABLE DWENH;Lo;0;L;;;;;N;;;;;
+B48F;HANGUL SYLLABLE DWED;Lo;0;L;;;;;N;;;;;
+B490;HANGUL SYLLABLE DWEL;Lo;0;L;;;;;N;;;;;
+B491;HANGUL SYLLABLE DWELG;Lo;0;L;;;;;N;;;;;
+B492;HANGUL SYLLABLE DWELM;Lo;0;L;;;;;N;;;;;
+B493;HANGUL SYLLABLE DWELB;Lo;0;L;;;;;N;;;;;
+B494;HANGUL SYLLABLE DWELS;Lo;0;L;;;;;N;;;;;
+B495;HANGUL SYLLABLE DWELT;Lo;0;L;;;;;N;;;;;
+B496;HANGUL SYLLABLE DWELP;Lo;0;L;;;;;N;;;;;
+B497;HANGUL SYLLABLE DWELH;Lo;0;L;;;;;N;;;;;
+B498;HANGUL SYLLABLE DWEM;Lo;0;L;;;;;N;;;;;
+B499;HANGUL SYLLABLE DWEB;Lo;0;L;;;;;N;;;;;
+B49A;HANGUL SYLLABLE DWEBS;Lo;0;L;;;;;N;;;;;
+B49B;HANGUL SYLLABLE DWES;Lo;0;L;;;;;N;;;;;
+B49C;HANGUL SYLLABLE DWESS;Lo;0;L;;;;;N;;;;;
+B49D;HANGUL SYLLABLE DWENG;Lo;0;L;;;;;N;;;;;
+B49E;HANGUL SYLLABLE DWEJ;Lo;0;L;;;;;N;;;;;
+B49F;HANGUL SYLLABLE DWEC;Lo;0;L;;;;;N;;;;;
+B4A0;HANGUL SYLLABLE DWEK;Lo;0;L;;;;;N;;;;;
+B4A1;HANGUL SYLLABLE DWET;Lo;0;L;;;;;N;;;;;
+B4A2;HANGUL SYLLABLE DWEP;Lo;0;L;;;;;N;;;;;
+B4A3;HANGUL SYLLABLE DWEH;Lo;0;L;;;;;N;;;;;
+B4A4;HANGUL SYLLABLE DWI;Lo;0;L;;;;;N;;;;;
+B4A5;HANGUL SYLLABLE DWIG;Lo;0;L;;;;;N;;;;;
+B4A6;HANGUL SYLLABLE DWIGG;Lo;0;L;;;;;N;;;;;
+B4A7;HANGUL SYLLABLE DWIGS;Lo;0;L;;;;;N;;;;;
+B4A8;HANGUL SYLLABLE DWIN;Lo;0;L;;;;;N;;;;;
+B4A9;HANGUL SYLLABLE DWINI;Lo;0;L;;;;;N;;;;;
+B4AA;HANGUL SYLLABLE DWINH;Lo;0;L;;;;;N;;;;;
+B4AB;HANGUL SYLLABLE DWID;Lo;0;L;;;;;N;;;;;
+B4AC;HANGUL SYLLABLE DWIL;Lo;0;L;;;;;N;;;;;
+B4AD;HANGUL SYLLABLE DWILG;Lo;0;L;;;;;N;;;;;
+B4AE;HANGUL SYLLABLE DWILM;Lo;0;L;;;;;N;;;;;
+B4AF;HANGUL SYLLABLE DWILB;Lo;0;L;;;;;N;;;;;
+B4B0;HANGUL SYLLABLE DWILS;Lo;0;L;;;;;N;;;;;
+B4B1;HANGUL SYLLABLE DWILT;Lo;0;L;;;;;N;;;;;
+B4B2;HANGUL SYLLABLE DWILP;Lo;0;L;;;;;N;;;;;
+B4B3;HANGUL SYLLABLE DWILH;Lo;0;L;;;;;N;;;;;
+B4B4;HANGUL SYLLABLE DWIM;Lo;0;L;;;;;N;;;;;
+B4B5;HANGUL SYLLABLE DWIB;Lo;0;L;;;;;N;;;;;
+B4B6;HANGUL SYLLABLE DWIBS;Lo;0;L;;;;;N;;;;;
+B4B7;HANGUL SYLLABLE DWIS;Lo;0;L;;;;;N;;;;;
+B4B8;HANGUL SYLLABLE DWISS;Lo;0;L;;;;;N;;;;;
+B4B9;HANGUL SYLLABLE DWING;Lo;0;L;;;;;N;;;;;
+B4BA;HANGUL SYLLABLE DWIJ;Lo;0;L;;;;;N;;;;;
+B4BB;HANGUL SYLLABLE DWIC;Lo;0;L;;;;;N;;;;;
+B4BC;HANGUL SYLLABLE DWIK;Lo;0;L;;;;;N;;;;;
+B4BD;HANGUL SYLLABLE DWIT;Lo;0;L;;;;;N;;;;;
+B4BE;HANGUL SYLLABLE DWIP;Lo;0;L;;;;;N;;;;;
+B4BF;HANGUL SYLLABLE DWIH;Lo;0;L;;;;;N;;;;;
+B4C0;HANGUL SYLLABLE DYU;Lo;0;L;;;;;N;;;;;
+B4C1;HANGUL SYLLABLE DYUG;Lo;0;L;;;;;N;;;;;
+B4C2;HANGUL SYLLABLE DYUGG;Lo;0;L;;;;;N;;;;;
+B4C3;HANGUL SYLLABLE DYUGS;Lo;0;L;;;;;N;;;;;
+B4C4;HANGUL SYLLABLE DYUN;Lo;0;L;;;;;N;;;;;
+B4C5;HANGUL SYLLABLE DYUNI;Lo;0;L;;;;;N;;;;;
+B4C6;HANGUL SYLLABLE DYUNH;Lo;0;L;;;;;N;;;;;
+B4C7;HANGUL SYLLABLE DYUD;Lo;0;L;;;;;N;;;;;
+B4C8;HANGUL SYLLABLE DYUL;Lo;0;L;;;;;N;;;;;
+B4C9;HANGUL SYLLABLE DYULG;Lo;0;L;;;;;N;;;;;
+B4CA;HANGUL SYLLABLE DYULM;Lo;0;L;;;;;N;;;;;
+B4CB;HANGUL SYLLABLE DYULB;Lo;0;L;;;;;N;;;;;
+B4CC;HANGUL SYLLABLE DYULS;Lo;0;L;;;;;N;;;;;
+B4CD;HANGUL SYLLABLE DYULT;Lo;0;L;;;;;N;;;;;
+B4CE;HANGUL SYLLABLE DYULP;Lo;0;L;;;;;N;;;;;
+B4CF;HANGUL SYLLABLE DYULH;Lo;0;L;;;;;N;;;;;
+B4D0;HANGUL SYLLABLE DYUM;Lo;0;L;;;;;N;;;;;
+B4D1;HANGUL SYLLABLE DYUB;Lo;0;L;;;;;N;;;;;
+B4D2;HANGUL SYLLABLE DYUBS;Lo;0;L;;;;;N;;;;;
+B4D3;HANGUL SYLLABLE DYUS;Lo;0;L;;;;;N;;;;;
+B4D4;HANGUL SYLLABLE DYUSS;Lo;0;L;;;;;N;;;;;
+B4D5;HANGUL SYLLABLE DYUNG;Lo;0;L;;;;;N;;;;;
+B4D6;HANGUL SYLLABLE DYUJ;Lo;0;L;;;;;N;;;;;
+B4D7;HANGUL SYLLABLE DYUC;Lo;0;L;;;;;N;;;;;
+B4D8;HANGUL SYLLABLE DYUK;Lo;0;L;;;;;N;;;;;
+B4D9;HANGUL SYLLABLE DYUT;Lo;0;L;;;;;N;;;;;
+B4DA;HANGUL SYLLABLE DYUP;Lo;0;L;;;;;N;;;;;
+B4DB;HANGUL SYLLABLE DYUH;Lo;0;L;;;;;N;;;;;
+B4DC;HANGUL SYLLABLE DEU;Lo;0;L;;;;;N;;;;;
+B4DD;HANGUL SYLLABLE DEUG;Lo;0;L;;;;;N;;;;;
+B4DE;HANGUL SYLLABLE DEUGG;Lo;0;L;;;;;N;;;;;
+B4DF;HANGUL SYLLABLE DEUGS;Lo;0;L;;;;;N;;;;;
+B4E0;HANGUL SYLLABLE DEUN;Lo;0;L;;;;;N;;;;;
+B4E1;HANGUL SYLLABLE DEUNI;Lo;0;L;;;;;N;;;;;
+B4E2;HANGUL SYLLABLE DEUNH;Lo;0;L;;;;;N;;;;;
+B4E3;HANGUL SYLLABLE DEUD;Lo;0;L;;;;;N;;;;;
+B4E4;HANGUL SYLLABLE DEUL;Lo;0;L;;;;;N;;;;;
+B4E5;HANGUL SYLLABLE DEULG;Lo;0;L;;;;;N;;;;;
+B4E6;HANGUL SYLLABLE DEULM;Lo;0;L;;;;;N;;;;;
+B4E7;HANGUL SYLLABLE DEULB;Lo;0;L;;;;;N;;;;;
+B4E8;HANGUL SYLLABLE DEULS;Lo;0;L;;;;;N;;;;;
+B4E9;HANGUL SYLLABLE DEULT;Lo;0;L;;;;;N;;;;;
+B4EA;HANGUL SYLLABLE DEULP;Lo;0;L;;;;;N;;;;;
+B4EB;HANGUL SYLLABLE DEULH;Lo;0;L;;;;;N;;;;;
+B4EC;HANGUL SYLLABLE DEUM;Lo;0;L;;;;;N;;;;;
+B4ED;HANGUL SYLLABLE DEUB;Lo;0;L;;;;;N;;;;;
+B4EE;HANGUL SYLLABLE DEUBS;Lo;0;L;;;;;N;;;;;
+B4EF;HANGUL SYLLABLE DEUS;Lo;0;L;;;;;N;;;;;
+B4F0;HANGUL SYLLABLE DEUSS;Lo;0;L;;;;;N;;;;;
+B4F1;HANGUL SYLLABLE DEUNG;Lo;0;L;;;;;N;;;;;
+B4F2;HANGUL SYLLABLE DEUJ;Lo;0;L;;;;;N;;;;;
+B4F3;HANGUL SYLLABLE DEUC;Lo;0;L;;;;;N;;;;;
+B4F4;HANGUL SYLLABLE DEUK;Lo;0;L;;;;;N;;;;;
+B4F5;HANGUL SYLLABLE DEUT;Lo;0;L;;;;;N;;;;;
+B4F6;HANGUL SYLLABLE DEUP;Lo;0;L;;;;;N;;;;;
+B4F7;HANGUL SYLLABLE DEUH;Lo;0;L;;;;;N;;;;;
+B4F8;HANGUL SYLLABLE DYI;Lo;0;L;;;;;N;;;;;
+B4F9;HANGUL SYLLABLE DYIG;Lo;0;L;;;;;N;;;;;
+B4FA;HANGUL SYLLABLE DYIGG;Lo;0;L;;;;;N;;;;;
+B4FB;HANGUL SYLLABLE DYIGS;Lo;0;L;;;;;N;;;;;
+B4FC;HANGUL SYLLABLE DYIN;Lo;0;L;;;;;N;;;;;
+B4FD;HANGUL SYLLABLE DYINI;Lo;0;L;;;;;N;;;;;
+B4FE;HANGUL SYLLABLE DYINH;Lo;0;L;;;;;N;;;;;
+B4FF;HANGUL SYLLABLE DYID;Lo;0;L;;;;;N;;;;;
+B500;HANGUL SYLLABLE DYIL;Lo;0;L;;;;;N;;;;;
+B501;HANGUL SYLLABLE DYILG;Lo;0;L;;;;;N;;;;;
+B502;HANGUL SYLLABLE DYILM;Lo;0;L;;;;;N;;;;;
+B503;HANGUL SYLLABLE DYILB;Lo;0;L;;;;;N;;;;;
+B504;HANGUL SYLLABLE DYILS;Lo;0;L;;;;;N;;;;;
+B505;HANGUL SYLLABLE DYILT;Lo;0;L;;;;;N;;;;;
+B506;HANGUL SYLLABLE DYILP;Lo;0;L;;;;;N;;;;;
+B507;HANGUL SYLLABLE DYILH;Lo;0;L;;;;;N;;;;;
+B508;HANGUL SYLLABLE DYIM;Lo;0;L;;;;;N;;;;;
+B509;HANGUL SYLLABLE DYIB;Lo;0;L;;;;;N;;;;;
+B50A;HANGUL SYLLABLE DYIBS;Lo;0;L;;;;;N;;;;;
+B50B;HANGUL SYLLABLE DYIS;Lo;0;L;;;;;N;;;;;
+B50C;HANGUL SYLLABLE DYISS;Lo;0;L;;;;;N;;;;;
+B50D;HANGUL SYLLABLE DYING;Lo;0;L;;;;;N;;;;;
+B50E;HANGUL SYLLABLE DYIJ;Lo;0;L;;;;;N;;;;;
+B50F;HANGUL SYLLABLE DYIC;Lo;0;L;;;;;N;;;;;
+B510;HANGUL SYLLABLE DYIK;Lo;0;L;;;;;N;;;;;
+B511;HANGUL SYLLABLE DYIT;Lo;0;L;;;;;N;;;;;
+B512;HANGUL SYLLABLE DYIP;Lo;0;L;;;;;N;;;;;
+B513;HANGUL SYLLABLE DYIH;Lo;0;L;;;;;N;;;;;
+B514;HANGUL SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+B515;HANGUL SYLLABLE DIG;Lo;0;L;;;;;N;;;;;
+B516;HANGUL SYLLABLE DIGG;Lo;0;L;;;;;N;;;;;
+B517;HANGUL SYLLABLE DIGS;Lo;0;L;;;;;N;;;;;
+B518;HANGUL SYLLABLE DIN;Lo;0;L;;;;;N;;;;;
+B519;HANGUL SYLLABLE DINI;Lo;0;L;;;;;N;;;;;
+B51A;HANGUL SYLLABLE DINH;Lo;0;L;;;;;N;;;;;
+B51B;HANGUL SYLLABLE DID;Lo;0;L;;;;;N;;;;;
+B51C;HANGUL SYLLABLE DIL;Lo;0;L;;;;;N;;;;;
+B51D;HANGUL SYLLABLE DILG;Lo;0;L;;;;;N;;;;;
+B51E;HANGUL SYLLABLE DILM;Lo;0;L;;;;;N;;;;;
+B51F;HANGUL SYLLABLE DILB;Lo;0;L;;;;;N;;;;;
+B520;HANGUL SYLLABLE DILS;Lo;0;L;;;;;N;;;;;
+B521;HANGUL SYLLABLE DILT;Lo;0;L;;;;;N;;;;;
+B522;HANGUL SYLLABLE DILP;Lo;0;L;;;;;N;;;;;
+B523;HANGUL SYLLABLE DILH;Lo;0;L;;;;;N;;;;;
+B524;HANGUL SYLLABLE DIM;Lo;0;L;;;;;N;;;;;
+B525;HANGUL SYLLABLE DIB;Lo;0;L;;;;;N;;;;;
+B526;HANGUL SYLLABLE DIBS;Lo;0;L;;;;;N;;;;;
+B527;HANGUL SYLLABLE DIS;Lo;0;L;;;;;N;;;;;
+B528;HANGUL SYLLABLE DISS;Lo;0;L;;;;;N;;;;;
+B529;HANGUL SYLLABLE DING;Lo;0;L;;;;;N;;;;;
+B52A;HANGUL SYLLABLE DIJ;Lo;0;L;;;;;N;;;;;
+B52B;HANGUL SYLLABLE DIC;Lo;0;L;;;;;N;;;;;
+B52C;HANGUL SYLLABLE DIK;Lo;0;L;;;;;N;;;;;
+B52D;HANGUL SYLLABLE DIT;Lo;0;L;;;;;N;;;;;
+B52E;HANGUL SYLLABLE DIP;Lo;0;L;;;;;N;;;;;
+B52F;HANGUL SYLLABLE DIH;Lo;0;L;;;;;N;;;;;
+B530;HANGUL SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+B531;HANGUL SYLLABLE DDAG;Lo;0;L;;;;;N;;;;;
+B532;HANGUL SYLLABLE DDAGG;Lo;0;L;;;;;N;;;;;
+B533;HANGUL SYLLABLE DDAGS;Lo;0;L;;;;;N;;;;;
+B534;HANGUL SYLLABLE DDAN;Lo;0;L;;;;;N;;;;;
+B535;HANGUL SYLLABLE DDANI;Lo;0;L;;;;;N;;;;;
+B536;HANGUL SYLLABLE DDANH;Lo;0;L;;;;;N;;;;;
+B537;HANGUL SYLLABLE DDAD;Lo;0;L;;;;;N;;;;;
+B538;HANGUL SYLLABLE DDAL;Lo;0;L;;;;;N;;;;;
+B539;HANGUL SYLLABLE DDALG;Lo;0;L;;;;;N;;;;;
+B53A;HANGUL SYLLABLE DDALM;Lo;0;L;;;;;N;;;;;
+B53B;HANGUL SYLLABLE DDALB;Lo;0;L;;;;;N;;;;;
+B53C;HANGUL SYLLABLE DDALS;Lo;0;L;;;;;N;;;;;
+B53D;HANGUL SYLLABLE DDALT;Lo;0;L;;;;;N;;;;;
+B53E;HANGUL SYLLABLE DDALP;Lo;0;L;;;;;N;;;;;
+B53F;HANGUL SYLLABLE DDALH;Lo;0;L;;;;;N;;;;;
+B540;HANGUL SYLLABLE DDAM;Lo;0;L;;;;;N;;;;;
+B541;HANGUL SYLLABLE DDAB;Lo;0;L;;;;;N;;;;;
+B542;HANGUL SYLLABLE DDABS;Lo;0;L;;;;;N;;;;;
+B543;HANGUL SYLLABLE DDAS;Lo;0;L;;;;;N;;;;;
+B544;HANGUL SYLLABLE DDASS;Lo;0;L;;;;;N;;;;;
+B545;HANGUL SYLLABLE DDANG;Lo;0;L;;;;;N;;;;;
+B546;HANGUL SYLLABLE DDAJ;Lo;0;L;;;;;N;;;;;
+B547;HANGUL SYLLABLE DDAC;Lo;0;L;;;;;N;;;;;
+B548;HANGUL SYLLABLE DDAK;Lo;0;L;;;;;N;;;;;
+B549;HANGUL SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;
+B54A;HANGUL SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;
+B54B;HANGUL SYLLABLE DDAH;Lo;0;L;;;;;N;;;;;
+B54C;HANGUL SYLLABLE DDAE;Lo;0;L;;;;;N;;;;;
+B54D;HANGUL SYLLABLE DDAEG;Lo;0;L;;;;;N;;;;;
+B54E;HANGUL SYLLABLE DDAEGG;Lo;0;L;;;;;N;;;;;
+B54F;HANGUL SYLLABLE DDAEGS;Lo;0;L;;;;;N;;;;;
+B550;HANGUL SYLLABLE DDAEN;Lo;0;L;;;;;N;;;;;
+B551;HANGUL SYLLABLE DDAENI;Lo;0;L;;;;;N;;;;;
+B552;HANGUL SYLLABLE DDAENH;Lo;0;L;;;;;N;;;;;
+B553;HANGUL SYLLABLE DDAED;Lo;0;L;;;;;N;;;;;
+B554;HANGUL SYLLABLE DDAEL;Lo;0;L;;;;;N;;;;;
+B555;HANGUL SYLLABLE DDAELG;Lo;0;L;;;;;N;;;;;
+B556;HANGUL SYLLABLE DDAELM;Lo;0;L;;;;;N;;;;;
+B557;HANGUL SYLLABLE DDAELB;Lo;0;L;;;;;N;;;;;
+B558;HANGUL SYLLABLE DDAELS;Lo;0;L;;;;;N;;;;;
+B559;HANGUL SYLLABLE DDAELT;Lo;0;L;;;;;N;;;;;
+B55A;HANGUL SYLLABLE DDAELP;Lo;0;L;;;;;N;;;;;
+B55B;HANGUL SYLLABLE DDAELH;Lo;0;L;;;;;N;;;;;
+B55C;HANGUL SYLLABLE DDAEM;Lo;0;L;;;;;N;;;;;
+B55D;HANGUL SYLLABLE DDAEB;Lo;0;L;;;;;N;;;;;
+B55E;HANGUL SYLLABLE DDAEBS;Lo;0;L;;;;;N;;;;;
+B55F;HANGUL SYLLABLE DDAES;Lo;0;L;;;;;N;;;;;
+B560;HANGUL SYLLABLE DDAESS;Lo;0;L;;;;;N;;;;;
+B561;HANGUL SYLLABLE DDAENG;Lo;0;L;;;;;N;;;;;
+B562;HANGUL SYLLABLE DDAEJ;Lo;0;L;;;;;N;;;;;
+B563;HANGUL SYLLABLE DDAEC;Lo;0;L;;;;;N;;;;;
+B564;HANGUL SYLLABLE DDAEK;Lo;0;L;;;;;N;;;;;
+B565;HANGUL SYLLABLE DDAET;Lo;0;L;;;;;N;;;;;
+B566;HANGUL SYLLABLE DDAEP;Lo;0;L;;;;;N;;;;;
+B567;HANGUL SYLLABLE DDAEH;Lo;0;L;;;;;N;;;;;
+B568;HANGUL SYLLABLE DDYA;Lo;0;L;;;;;N;;;;;
+B569;HANGUL SYLLABLE DDYAG;Lo;0;L;;;;;N;;;;;
+B56A;HANGUL SYLLABLE DDYAGG;Lo;0;L;;;;;N;;;;;
+B56B;HANGUL SYLLABLE DDYAGS;Lo;0;L;;;;;N;;;;;
+B56C;HANGUL SYLLABLE DDYAN;Lo;0;L;;;;;N;;;;;
+B56D;HANGUL SYLLABLE DDYANI;Lo;0;L;;;;;N;;;;;
+B56E;HANGUL SYLLABLE DDYANH;Lo;0;L;;;;;N;;;;;
+B56F;HANGUL SYLLABLE DDYAD;Lo;0;L;;;;;N;;;;;
+B570;HANGUL SYLLABLE DDYAL;Lo;0;L;;;;;N;;;;;
+B571;HANGUL SYLLABLE DDYALG;Lo;0;L;;;;;N;;;;;
+B572;HANGUL SYLLABLE DDYALM;Lo;0;L;;;;;N;;;;;
+B573;HANGUL SYLLABLE DDYALB;Lo;0;L;;;;;N;;;;;
+B574;HANGUL SYLLABLE DDYALS;Lo;0;L;;;;;N;;;;;
+B575;HANGUL SYLLABLE DDYALT;Lo;0;L;;;;;N;;;;;
+B576;HANGUL SYLLABLE DDYALP;Lo;0;L;;;;;N;;;;;
+B577;HANGUL SYLLABLE DDYALH;Lo;0;L;;;;;N;;;;;
+B578;HANGUL SYLLABLE DDYAM;Lo;0;L;;;;;N;;;;;
+B579;HANGUL SYLLABLE DDYAB;Lo;0;L;;;;;N;;;;;
+B57A;HANGUL SYLLABLE DDYABS;Lo;0;L;;;;;N;;;;;
+B57B;HANGUL SYLLABLE DDYAS;Lo;0;L;;;;;N;;;;;
+B57C;HANGUL SYLLABLE DDYASS;Lo;0;L;;;;;N;;;;;
+B57D;HANGUL SYLLABLE DDYANG;Lo;0;L;;;;;N;;;;;
+B57E;HANGUL SYLLABLE DDYAJ;Lo;0;L;;;;;N;;;;;
+B57F;HANGUL SYLLABLE DDYAC;Lo;0;L;;;;;N;;;;;
+B580;HANGUL SYLLABLE DDYAK;Lo;0;L;;;;;N;;;;;
+B581;HANGUL SYLLABLE DDYAT;Lo;0;L;;;;;N;;;;;
+B582;HANGUL SYLLABLE DDYAP;Lo;0;L;;;;;N;;;;;
+B583;HANGUL SYLLABLE DDYAH;Lo;0;L;;;;;N;;;;;
+B584;HANGUL SYLLABLE DDYAE;Lo;0;L;;;;;N;;;;;
+B585;HANGUL SYLLABLE DDYAEG;Lo;0;L;;;;;N;;;;;
+B586;HANGUL SYLLABLE DDYAEGG;Lo;0;L;;;;;N;;;;;
+B587;HANGUL SYLLABLE DDYAEGS;Lo;0;L;;;;;N;;;;;
+B588;HANGUL SYLLABLE DDYAEN;Lo;0;L;;;;;N;;;;;
+B589;HANGUL SYLLABLE DDYAENI;Lo;0;L;;;;;N;;;;;
+B58A;HANGUL SYLLABLE DDYAENH;Lo;0;L;;;;;N;;;;;
+B58B;HANGUL SYLLABLE DDYAED;Lo;0;L;;;;;N;;;;;
+B58C;HANGUL SYLLABLE DDYAEL;Lo;0;L;;;;;N;;;;;
+B58D;HANGUL SYLLABLE DDYAELG;Lo;0;L;;;;;N;;;;;
+B58E;HANGUL SYLLABLE DDYAELM;Lo;0;L;;;;;N;;;;;
+B58F;HANGUL SYLLABLE DDYAELB;Lo;0;L;;;;;N;;;;;
+B590;HANGUL SYLLABLE DDYAELS;Lo;0;L;;;;;N;;;;;
+B591;HANGUL SYLLABLE DDYAELT;Lo;0;L;;;;;N;;;;;
+B592;HANGUL SYLLABLE DDYAELP;Lo;0;L;;;;;N;;;;;
+B593;HANGUL SYLLABLE DDYAELH;Lo;0;L;;;;;N;;;;;
+B594;HANGUL SYLLABLE DDYAEM;Lo;0;L;;;;;N;;;;;
+B595;HANGUL SYLLABLE DDYAEB;Lo;0;L;;;;;N;;;;;
+B596;HANGUL SYLLABLE DDYAEBS;Lo;0;L;;;;;N;;;;;
+B597;HANGUL SYLLABLE DDYAES;Lo;0;L;;;;;N;;;;;
+B598;HANGUL SYLLABLE DDYAESS;Lo;0;L;;;;;N;;;;;
+B599;HANGUL SYLLABLE DDYAENG;Lo;0;L;;;;;N;;;;;
+B59A;HANGUL SYLLABLE DDYAEJ;Lo;0;L;;;;;N;;;;;
+B59B;HANGUL SYLLABLE DDYAEC;Lo;0;L;;;;;N;;;;;
+B59C;HANGUL SYLLABLE DDYAEK;Lo;0;L;;;;;N;;;;;
+B59D;HANGUL SYLLABLE DDYAET;Lo;0;L;;;;;N;;;;;
+B59E;HANGUL SYLLABLE DDYAEP;Lo;0;L;;;;;N;;;;;
+B59F;HANGUL SYLLABLE DDYAEH;Lo;0;L;;;;;N;;;;;
+B5A0;HANGUL SYLLABLE DDEO;Lo;0;L;;;;;N;;;;;
+B5A1;HANGUL SYLLABLE DDEOG;Lo;0;L;;;;;N;;;;;
+B5A2;HANGUL SYLLABLE DDEOGG;Lo;0;L;;;;;N;;;;;
+B5A3;HANGUL SYLLABLE DDEOGS;Lo;0;L;;;;;N;;;;;
+B5A4;HANGUL SYLLABLE DDEON;Lo;0;L;;;;;N;;;;;
+B5A5;HANGUL SYLLABLE DDEONI;Lo;0;L;;;;;N;;;;;
+B5A6;HANGUL SYLLABLE DDEONH;Lo;0;L;;;;;N;;;;;
+B5A7;HANGUL SYLLABLE DDEOD;Lo;0;L;;;;;N;;;;;
+B5A8;HANGUL SYLLABLE DDEOL;Lo;0;L;;;;;N;;;;;
+B5A9;HANGUL SYLLABLE DDEOLG;Lo;0;L;;;;;N;;;;;
+B5AA;HANGUL SYLLABLE DDEOLM;Lo;0;L;;;;;N;;;;;
+B5AB;HANGUL SYLLABLE DDEOLB;Lo;0;L;;;;;N;;;;;
+B5AC;HANGUL SYLLABLE DDEOLS;Lo;0;L;;;;;N;;;;;
+B5AD;HANGUL SYLLABLE DDEOLT;Lo;0;L;;;;;N;;;;;
+B5AE;HANGUL SYLLABLE DDEOLP;Lo;0;L;;;;;N;;;;;
+B5AF;HANGUL SYLLABLE DDEOLH;Lo;0;L;;;;;N;;;;;
+B5B0;HANGUL SYLLABLE DDEOM;Lo;0;L;;;;;N;;;;;
+B5B1;HANGUL SYLLABLE DDEOB;Lo;0;L;;;;;N;;;;;
+B5B2;HANGUL SYLLABLE DDEOBS;Lo;0;L;;;;;N;;;;;
+B5B3;HANGUL SYLLABLE DDEOS;Lo;0;L;;;;;N;;;;;
+B5B4;HANGUL SYLLABLE DDEOSS;Lo;0;L;;;;;N;;;;;
+B5B5;HANGUL SYLLABLE DDEONG;Lo;0;L;;;;;N;;;;;
+B5B6;HANGUL SYLLABLE DDEOJ;Lo;0;L;;;;;N;;;;;
+B5B7;HANGUL SYLLABLE DDEOC;Lo;0;L;;;;;N;;;;;
+B5B8;HANGUL SYLLABLE DDEOK;Lo;0;L;;;;;N;;;;;
+B5B9;HANGUL SYLLABLE DDEOT;Lo;0;L;;;;;N;;;;;
+B5BA;HANGUL SYLLABLE DDEOP;Lo;0;L;;;;;N;;;;;
+B5BB;HANGUL SYLLABLE DDEOH;Lo;0;L;;;;;N;;;;;
+B5BC;HANGUL SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+B5BD;HANGUL SYLLABLE DDEG;Lo;0;L;;;;;N;;;;;
+B5BE;HANGUL SYLLABLE DDEGG;Lo;0;L;;;;;N;;;;;
+B5BF;HANGUL SYLLABLE DDEGS;Lo;0;L;;;;;N;;;;;
+B5C0;HANGUL SYLLABLE DDEN;Lo;0;L;;;;;N;;;;;
+B5C1;HANGUL SYLLABLE DDENI;Lo;0;L;;;;;N;;;;;
+B5C2;HANGUL SYLLABLE DDENH;Lo;0;L;;;;;N;;;;;
+B5C3;HANGUL SYLLABLE DDED;Lo;0;L;;;;;N;;;;;
+B5C4;HANGUL SYLLABLE DDEL;Lo;0;L;;;;;N;;;;;
+B5C5;HANGUL SYLLABLE DDELG;Lo;0;L;;;;;N;;;;;
+B5C6;HANGUL SYLLABLE DDELM;Lo;0;L;;;;;N;;;;;
+B5C7;HANGUL SYLLABLE DDELB;Lo;0;L;;;;;N;;;;;
+B5C8;HANGUL SYLLABLE DDELS;Lo;0;L;;;;;N;;;;;
+B5C9;HANGUL SYLLABLE DDELT;Lo;0;L;;;;;N;;;;;
+B5CA;HANGUL SYLLABLE DDELP;Lo;0;L;;;;;N;;;;;
+B5CB;HANGUL SYLLABLE DDELH;Lo;0;L;;;;;N;;;;;
+B5CC;HANGUL SYLLABLE DDEM;Lo;0;L;;;;;N;;;;;
+B5CD;HANGUL SYLLABLE DDEB;Lo;0;L;;;;;N;;;;;
+B5CE;HANGUL SYLLABLE DDEBS;Lo;0;L;;;;;N;;;;;
+B5CF;HANGUL SYLLABLE DDES;Lo;0;L;;;;;N;;;;;
+B5D0;HANGUL SYLLABLE DDESS;Lo;0;L;;;;;N;;;;;
+B5D1;HANGUL SYLLABLE DDENG;Lo;0;L;;;;;N;;;;;
+B5D2;HANGUL SYLLABLE DDEJ;Lo;0;L;;;;;N;;;;;
+B5D3;HANGUL SYLLABLE DDEC;Lo;0;L;;;;;N;;;;;
+B5D4;HANGUL SYLLABLE DDEK;Lo;0;L;;;;;N;;;;;
+B5D5;HANGUL SYLLABLE DDET;Lo;0;L;;;;;N;;;;;
+B5D6;HANGUL SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;
+B5D7;HANGUL SYLLABLE DDEH;Lo;0;L;;;;;N;;;;;
+B5D8;HANGUL SYLLABLE DDYEO;Lo;0;L;;;;;N;;;;;
+B5D9;HANGUL SYLLABLE DDYEOG;Lo;0;L;;;;;N;;;;;
+B5DA;HANGUL SYLLABLE DDYEOGG;Lo;0;L;;;;;N;;;;;
+B5DB;HANGUL SYLLABLE DDYEOGS;Lo;0;L;;;;;N;;;;;
+B5DC;HANGUL SYLLABLE DDYEON;Lo;0;L;;;;;N;;;;;
+B5DD;HANGUL SYLLABLE DDYEONI;Lo;0;L;;;;;N;;;;;
+B5DE;HANGUL SYLLABLE DDYEONH;Lo;0;L;;;;;N;;;;;
+B5DF;HANGUL SYLLABLE DDYEOD;Lo;0;L;;;;;N;;;;;
+B5E0;HANGUL SYLLABLE DDYEOL;Lo;0;L;;;;;N;;;;;
+B5E1;HANGUL SYLLABLE DDYEOLG;Lo;0;L;;;;;N;;;;;
+B5E2;HANGUL SYLLABLE DDYEOLM;Lo;0;L;;;;;N;;;;;
+B5E3;HANGUL SYLLABLE DDYEOLB;Lo;0;L;;;;;N;;;;;
+B5E4;HANGUL SYLLABLE DDYEOLS;Lo;0;L;;;;;N;;;;;
+B5E5;HANGUL SYLLABLE DDYEOLT;Lo;0;L;;;;;N;;;;;
+B5E6;HANGUL SYLLABLE DDYEOLP;Lo;0;L;;;;;N;;;;;
+B5E7;HANGUL SYLLABLE DDYEOLH;Lo;0;L;;;;;N;;;;;
+B5E8;HANGUL SYLLABLE DDYEOM;Lo;0;L;;;;;N;;;;;
+B5E9;HANGUL SYLLABLE DDYEOB;Lo;0;L;;;;;N;;;;;
+B5EA;HANGUL SYLLABLE DDYEOBS;Lo;0;L;;;;;N;;;;;
+B5EB;HANGUL SYLLABLE DDYEOS;Lo;0;L;;;;;N;;;;;
+B5EC;HANGUL SYLLABLE DDYEOSS;Lo;0;L;;;;;N;;;;;
+B5ED;HANGUL SYLLABLE DDYEONG;Lo;0;L;;;;;N;;;;;
+B5EE;HANGUL SYLLABLE DDYEOJ;Lo;0;L;;;;;N;;;;;
+B5EF;HANGUL SYLLABLE DDYEOC;Lo;0;L;;;;;N;;;;;
+B5F0;HANGUL SYLLABLE DDYEOK;Lo;0;L;;;;;N;;;;;
+B5F1;HANGUL SYLLABLE DDYEOT;Lo;0;L;;;;;N;;;;;
+B5F2;HANGUL SYLLABLE DDYEOP;Lo;0;L;;;;;N;;;;;
+B5F3;HANGUL SYLLABLE DDYEOH;Lo;0;L;;;;;N;;;;;
+B5F4;HANGUL SYLLABLE DDYE;Lo;0;L;;;;;N;;;;;
+B5F5;HANGUL SYLLABLE DDYEG;Lo;0;L;;;;;N;;;;;
+B5F6;HANGUL SYLLABLE DDYEGG;Lo;0;L;;;;;N;;;;;
+B5F7;HANGUL SYLLABLE DDYEGS;Lo;0;L;;;;;N;;;;;
+B5F8;HANGUL SYLLABLE DDYEN;Lo;0;L;;;;;N;;;;;
+B5F9;HANGUL SYLLABLE DDYENI;Lo;0;L;;;;;N;;;;;
+B5FA;HANGUL SYLLABLE DDYENH;Lo;0;L;;;;;N;;;;;
+B5FB;HANGUL SYLLABLE DDYED;Lo;0;L;;;;;N;;;;;
+B5FC;HANGUL SYLLABLE DDYEL;Lo;0;L;;;;;N;;;;;
+B5FD;HANGUL SYLLABLE DDYELG;Lo;0;L;;;;;N;;;;;
+B5FE;HANGUL SYLLABLE DDYELM;Lo;0;L;;;;;N;;;;;
+B5FF;HANGUL SYLLABLE DDYELB;Lo;0;L;;;;;N;;;;;
+B600;HANGUL SYLLABLE DDYELS;Lo;0;L;;;;;N;;;;;
+B601;HANGUL SYLLABLE DDYELT;Lo;0;L;;;;;N;;;;;
+B602;HANGUL SYLLABLE DDYELP;Lo;0;L;;;;;N;;;;;
+B603;HANGUL SYLLABLE DDYELH;Lo;0;L;;;;;N;;;;;
+B604;HANGUL SYLLABLE DDYEM;Lo;0;L;;;;;N;;;;;
+B605;HANGUL SYLLABLE DDYEB;Lo;0;L;;;;;N;;;;;
+B606;HANGUL SYLLABLE DDYEBS;Lo;0;L;;;;;N;;;;;
+B607;HANGUL SYLLABLE DDYES;Lo;0;L;;;;;N;;;;;
+B608;HANGUL SYLLABLE DDYESS;Lo;0;L;;;;;N;;;;;
+B609;HANGUL SYLLABLE DDYENG;Lo;0;L;;;;;N;;;;;
+B60A;HANGUL SYLLABLE DDYEJ;Lo;0;L;;;;;N;;;;;
+B60B;HANGUL SYLLABLE DDYEC;Lo;0;L;;;;;N;;;;;
+B60C;HANGUL SYLLABLE DDYEK;Lo;0;L;;;;;N;;;;;
+B60D;HANGUL SYLLABLE DDYET;Lo;0;L;;;;;N;;;;;
+B60E;HANGUL SYLLABLE DDYEP;Lo;0;L;;;;;N;;;;;
+B60F;HANGUL SYLLABLE DDYEH;Lo;0;L;;;;;N;;;;;
+B610;HANGUL SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+B611;HANGUL SYLLABLE DDOG;Lo;0;L;;;;;N;;;;;
+B612;HANGUL SYLLABLE DDOGG;Lo;0;L;;;;;N;;;;;
+B613;HANGUL SYLLABLE DDOGS;Lo;0;L;;;;;N;;;;;
+B614;HANGUL SYLLABLE DDON;Lo;0;L;;;;;N;;;;;
+B615;HANGUL SYLLABLE DDONI;Lo;0;L;;;;;N;;;;;
+B616;HANGUL SYLLABLE DDONH;Lo;0;L;;;;;N;;;;;
+B617;HANGUL SYLLABLE DDOD;Lo;0;L;;;;;N;;;;;
+B618;HANGUL SYLLABLE DDOL;Lo;0;L;;;;;N;;;;;
+B619;HANGUL SYLLABLE DDOLG;Lo;0;L;;;;;N;;;;;
+B61A;HANGUL SYLLABLE DDOLM;Lo;0;L;;;;;N;;;;;
+B61B;HANGUL SYLLABLE DDOLB;Lo;0;L;;;;;N;;;;;
+B61C;HANGUL SYLLABLE DDOLS;Lo;0;L;;;;;N;;;;;
+B61D;HANGUL SYLLABLE DDOLT;Lo;0;L;;;;;N;;;;;
+B61E;HANGUL SYLLABLE DDOLP;Lo;0;L;;;;;N;;;;;
+B61F;HANGUL SYLLABLE DDOLH;Lo;0;L;;;;;N;;;;;
+B620;HANGUL SYLLABLE DDOM;Lo;0;L;;;;;N;;;;;
+B621;HANGUL SYLLABLE DDOB;Lo;0;L;;;;;N;;;;;
+B622;HANGUL SYLLABLE DDOBS;Lo;0;L;;;;;N;;;;;
+B623;HANGUL SYLLABLE DDOS;Lo;0;L;;;;;N;;;;;
+B624;HANGUL SYLLABLE DDOSS;Lo;0;L;;;;;N;;;;;
+B625;HANGUL SYLLABLE DDONG;Lo;0;L;;;;;N;;;;;
+B626;HANGUL SYLLABLE DDOJ;Lo;0;L;;;;;N;;;;;
+B627;HANGUL SYLLABLE DDOC;Lo;0;L;;;;;N;;;;;
+B628;HANGUL SYLLABLE DDOK;Lo;0;L;;;;;N;;;;;
+B629;HANGUL SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;
+B62A;HANGUL SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;
+B62B;HANGUL SYLLABLE DDOH;Lo;0;L;;;;;N;;;;;
+B62C;HANGUL SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;
+B62D;HANGUL SYLLABLE DDWAG;Lo;0;L;;;;;N;;;;;
+B62E;HANGUL SYLLABLE DDWAGG;Lo;0;L;;;;;N;;;;;
+B62F;HANGUL SYLLABLE DDWAGS;Lo;0;L;;;;;N;;;;;
+B630;HANGUL SYLLABLE DDWAN;Lo;0;L;;;;;N;;;;;
+B631;HANGUL SYLLABLE DDWANI;Lo;0;L;;;;;N;;;;;
+B632;HANGUL SYLLABLE DDWANH;Lo;0;L;;;;;N;;;;;
+B633;HANGUL SYLLABLE DDWAD;Lo;0;L;;;;;N;;;;;
+B634;HANGUL SYLLABLE DDWAL;Lo;0;L;;;;;N;;;;;
+B635;HANGUL SYLLABLE DDWALG;Lo;0;L;;;;;N;;;;;
+B636;HANGUL SYLLABLE DDWALM;Lo;0;L;;;;;N;;;;;
+B637;HANGUL SYLLABLE DDWALB;Lo;0;L;;;;;N;;;;;
+B638;HANGUL SYLLABLE DDWALS;Lo;0;L;;;;;N;;;;;
+B639;HANGUL SYLLABLE DDWALT;Lo;0;L;;;;;N;;;;;
+B63A;HANGUL SYLLABLE DDWALP;Lo;0;L;;;;;N;;;;;
+B63B;HANGUL SYLLABLE DDWALH;Lo;0;L;;;;;N;;;;;
+B63C;HANGUL SYLLABLE DDWAM;Lo;0;L;;;;;N;;;;;
+B63D;HANGUL SYLLABLE DDWAB;Lo;0;L;;;;;N;;;;;
+B63E;HANGUL SYLLABLE DDWABS;Lo;0;L;;;;;N;;;;;
+B63F;HANGUL SYLLABLE DDWAS;Lo;0;L;;;;;N;;;;;
+B640;HANGUL SYLLABLE DDWASS;Lo;0;L;;;;;N;;;;;
+B641;HANGUL SYLLABLE DDWANG;Lo;0;L;;;;;N;;;;;
+B642;HANGUL SYLLABLE DDWAJ;Lo;0;L;;;;;N;;;;;
+B643;HANGUL SYLLABLE DDWAC;Lo;0;L;;;;;N;;;;;
+B644;HANGUL SYLLABLE DDWAK;Lo;0;L;;;;;N;;;;;
+B645;HANGUL SYLLABLE DDWAT;Lo;0;L;;;;;N;;;;;
+B646;HANGUL SYLLABLE DDWAP;Lo;0;L;;;;;N;;;;;
+B647;HANGUL SYLLABLE DDWAH;Lo;0;L;;;;;N;;;;;
+B648;HANGUL SYLLABLE DDWAE;Lo;0;L;;;;;N;;;;;
+B649;HANGUL SYLLABLE DDWAEG;Lo;0;L;;;;;N;;;;;
+B64A;HANGUL SYLLABLE DDWAEGG;Lo;0;L;;;;;N;;;;;
+B64B;HANGUL SYLLABLE DDWAEGS;Lo;0;L;;;;;N;;;;;
+B64C;HANGUL SYLLABLE DDWAEN;Lo;0;L;;;;;N;;;;;
+B64D;HANGUL SYLLABLE DDWAENI;Lo;0;L;;;;;N;;;;;
+B64E;HANGUL SYLLABLE DDWAENH;Lo;0;L;;;;;N;;;;;
+B64F;HANGUL SYLLABLE DDWAED;Lo;0;L;;;;;N;;;;;
+B650;HANGUL SYLLABLE DDWAEL;Lo;0;L;;;;;N;;;;;
+B651;HANGUL SYLLABLE DDWAELG;Lo;0;L;;;;;N;;;;;
+B652;HANGUL SYLLABLE DDWAELM;Lo;0;L;;;;;N;;;;;
+B653;HANGUL SYLLABLE DDWAELB;Lo;0;L;;;;;N;;;;;
+B654;HANGUL SYLLABLE DDWAELS;Lo;0;L;;;;;N;;;;;
+B655;HANGUL SYLLABLE DDWAELT;Lo;0;L;;;;;N;;;;;
+B656;HANGUL SYLLABLE DDWAELP;Lo;0;L;;;;;N;;;;;
+B657;HANGUL SYLLABLE DDWAELH;Lo;0;L;;;;;N;;;;;
+B658;HANGUL SYLLABLE DDWAEM;Lo;0;L;;;;;N;;;;;
+B659;HANGUL SYLLABLE DDWAEB;Lo;0;L;;;;;N;;;;;
+B65A;HANGUL SYLLABLE DDWAEBS;Lo;0;L;;;;;N;;;;;
+B65B;HANGUL SYLLABLE DDWAES;Lo;0;L;;;;;N;;;;;
+B65C;HANGUL SYLLABLE DDWAESS;Lo;0;L;;;;;N;;;;;
+B65D;HANGUL SYLLABLE DDWAENG;Lo;0;L;;;;;N;;;;;
+B65E;HANGUL SYLLABLE DDWAEJ;Lo;0;L;;;;;N;;;;;
+B65F;HANGUL SYLLABLE DDWAEC;Lo;0;L;;;;;N;;;;;
+B660;HANGUL SYLLABLE DDWAEK;Lo;0;L;;;;;N;;;;;
+B661;HANGUL SYLLABLE DDWAET;Lo;0;L;;;;;N;;;;;
+B662;HANGUL SYLLABLE DDWAEP;Lo;0;L;;;;;N;;;;;
+B663;HANGUL SYLLABLE DDWAEH;Lo;0;L;;;;;N;;;;;
+B664;HANGUL SYLLABLE DDOE;Lo;0;L;;;;;N;;;;;
+B665;HANGUL SYLLABLE DDOEG;Lo;0;L;;;;;N;;;;;
+B666;HANGUL SYLLABLE DDOEGG;Lo;0;L;;;;;N;;;;;
+B667;HANGUL SYLLABLE DDOEGS;Lo;0;L;;;;;N;;;;;
+B668;HANGUL SYLLABLE DDOEN;Lo;0;L;;;;;N;;;;;
+B669;HANGUL SYLLABLE DDOENI;Lo;0;L;;;;;N;;;;;
+B66A;HANGUL SYLLABLE DDOENH;Lo;0;L;;;;;N;;;;;
+B66B;HANGUL SYLLABLE DDOED;Lo;0;L;;;;;N;;;;;
+B66C;HANGUL SYLLABLE DDOEL;Lo;0;L;;;;;N;;;;;
+B66D;HANGUL SYLLABLE DDOELG;Lo;0;L;;;;;N;;;;;
+B66E;HANGUL SYLLABLE DDOELM;Lo;0;L;;;;;N;;;;;
+B66F;HANGUL SYLLABLE DDOELB;Lo;0;L;;;;;N;;;;;
+B670;HANGUL SYLLABLE DDOELS;Lo;0;L;;;;;N;;;;;
+B671;HANGUL SYLLABLE DDOELT;Lo;0;L;;;;;N;;;;;
+B672;HANGUL SYLLABLE DDOELP;Lo;0;L;;;;;N;;;;;
+B673;HANGUL SYLLABLE DDOELH;Lo;0;L;;;;;N;;;;;
+B674;HANGUL SYLLABLE DDOEM;Lo;0;L;;;;;N;;;;;
+B675;HANGUL SYLLABLE DDOEB;Lo;0;L;;;;;N;;;;;
+B676;HANGUL SYLLABLE DDOEBS;Lo;0;L;;;;;N;;;;;
+B677;HANGUL SYLLABLE DDOES;Lo;0;L;;;;;N;;;;;
+B678;HANGUL SYLLABLE DDOESS;Lo;0;L;;;;;N;;;;;
+B679;HANGUL SYLLABLE DDOENG;Lo;0;L;;;;;N;;;;;
+B67A;HANGUL SYLLABLE DDOEJ;Lo;0;L;;;;;N;;;;;
+B67B;HANGUL SYLLABLE DDOEC;Lo;0;L;;;;;N;;;;;
+B67C;HANGUL SYLLABLE DDOEK;Lo;0;L;;;;;N;;;;;
+B67D;HANGUL SYLLABLE DDOET;Lo;0;L;;;;;N;;;;;
+B67E;HANGUL SYLLABLE DDOEP;Lo;0;L;;;;;N;;;;;
+B67F;HANGUL SYLLABLE DDOEH;Lo;0;L;;;;;N;;;;;
+B680;HANGUL SYLLABLE DDYO;Lo;0;L;;;;;N;;;;;
+B681;HANGUL SYLLABLE DDYOG;Lo;0;L;;;;;N;;;;;
+B682;HANGUL SYLLABLE DDYOGG;Lo;0;L;;;;;N;;;;;
+B683;HANGUL SYLLABLE DDYOGS;Lo;0;L;;;;;N;;;;;
+B684;HANGUL SYLLABLE DDYON;Lo;0;L;;;;;N;;;;;
+B685;HANGUL SYLLABLE DDYONI;Lo;0;L;;;;;N;;;;;
+B686;HANGUL SYLLABLE DDYONH;Lo;0;L;;;;;N;;;;;
+B687;HANGUL SYLLABLE DDYOD;Lo;0;L;;;;;N;;;;;
+B688;HANGUL SYLLABLE DDYOL;Lo;0;L;;;;;N;;;;;
+B689;HANGUL SYLLABLE DDYOLG;Lo;0;L;;;;;N;;;;;
+B68A;HANGUL SYLLABLE DDYOLM;Lo;0;L;;;;;N;;;;;
+B68B;HANGUL SYLLABLE DDYOLB;Lo;0;L;;;;;N;;;;;
+B68C;HANGUL SYLLABLE DDYOLS;Lo;0;L;;;;;N;;;;;
+B68D;HANGUL SYLLABLE DDYOLT;Lo;0;L;;;;;N;;;;;
+B68E;HANGUL SYLLABLE DDYOLP;Lo;0;L;;;;;N;;;;;
+B68F;HANGUL SYLLABLE DDYOLH;Lo;0;L;;;;;N;;;;;
+B690;HANGUL SYLLABLE DDYOM;Lo;0;L;;;;;N;;;;;
+B691;HANGUL SYLLABLE DDYOB;Lo;0;L;;;;;N;;;;;
+B692;HANGUL SYLLABLE DDYOBS;Lo;0;L;;;;;N;;;;;
+B693;HANGUL SYLLABLE DDYOS;Lo;0;L;;;;;N;;;;;
+B694;HANGUL SYLLABLE DDYOSS;Lo;0;L;;;;;N;;;;;
+B695;HANGUL SYLLABLE DDYONG;Lo;0;L;;;;;N;;;;;
+B696;HANGUL SYLLABLE DDYOJ;Lo;0;L;;;;;N;;;;;
+B697;HANGUL SYLLABLE DDYOC;Lo;0;L;;;;;N;;;;;
+B698;HANGUL SYLLABLE DDYOK;Lo;0;L;;;;;N;;;;;
+B699;HANGUL SYLLABLE DDYOT;Lo;0;L;;;;;N;;;;;
+B69A;HANGUL SYLLABLE DDYOP;Lo;0;L;;;;;N;;;;;
+B69B;HANGUL SYLLABLE DDYOH;Lo;0;L;;;;;N;;;;;
+B69C;HANGUL SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+B69D;HANGUL SYLLABLE DDUG;Lo;0;L;;;;;N;;;;;
+B69E;HANGUL SYLLABLE DDUGG;Lo;0;L;;;;;N;;;;;
+B69F;HANGUL SYLLABLE DDUGS;Lo;0;L;;;;;N;;;;;
+B6A0;HANGUL SYLLABLE DDUN;Lo;0;L;;;;;N;;;;;
+B6A1;HANGUL SYLLABLE DDUNI;Lo;0;L;;;;;N;;;;;
+B6A2;HANGUL SYLLABLE DDUNH;Lo;0;L;;;;;N;;;;;
+B6A3;HANGUL SYLLABLE DDUD;Lo;0;L;;;;;N;;;;;
+B6A4;HANGUL SYLLABLE DDUL;Lo;0;L;;;;;N;;;;;
+B6A5;HANGUL SYLLABLE DDULG;Lo;0;L;;;;;N;;;;;
+B6A6;HANGUL SYLLABLE DDULM;Lo;0;L;;;;;N;;;;;
+B6A7;HANGUL SYLLABLE DDULB;Lo;0;L;;;;;N;;;;;
+B6A8;HANGUL SYLLABLE DDULS;Lo;0;L;;;;;N;;;;;
+B6A9;HANGUL SYLLABLE DDULT;Lo;0;L;;;;;N;;;;;
+B6AA;HANGUL SYLLABLE DDULP;Lo;0;L;;;;;N;;;;;
+B6AB;HANGUL SYLLABLE DDULH;Lo;0;L;;;;;N;;;;;
+B6AC;HANGUL SYLLABLE DDUM;Lo;0;L;;;;;N;;;;;
+B6AD;HANGUL SYLLABLE DDUB;Lo;0;L;;;;;N;;;;;
+B6AE;HANGUL SYLLABLE DDUBS;Lo;0;L;;;;;N;;;;;
+B6AF;HANGUL SYLLABLE DDUS;Lo;0;L;;;;;N;;;;;
+B6B0;HANGUL SYLLABLE DDUSS;Lo;0;L;;;;;N;;;;;
+B6B1;HANGUL SYLLABLE DDUNG;Lo;0;L;;;;;N;;;;;
+B6B2;HANGUL SYLLABLE DDUJ;Lo;0;L;;;;;N;;;;;
+B6B3;HANGUL SYLLABLE DDUC;Lo;0;L;;;;;N;;;;;
+B6B4;HANGUL SYLLABLE DDUK;Lo;0;L;;;;;N;;;;;
+B6B5;HANGUL SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;
+B6B6;HANGUL SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;
+B6B7;HANGUL SYLLABLE DDUH;Lo;0;L;;;;;N;;;;;
+B6B8;HANGUL SYLLABLE DDWEO;Lo;0;L;;;;;N;;;;;
+B6B9;HANGUL SYLLABLE DDWEOG;Lo;0;L;;;;;N;;;;;
+B6BA;HANGUL SYLLABLE DDWEOGG;Lo;0;L;;;;;N;;;;;
+B6BB;HANGUL SYLLABLE DDWEOGS;Lo;0;L;;;;;N;;;;;
+B6BC;HANGUL SYLLABLE DDWEON;Lo;0;L;;;;;N;;;;;
+B6BD;HANGUL SYLLABLE DDWEONI;Lo;0;L;;;;;N;;;;;
+B6BE;HANGUL SYLLABLE DDWEONH;Lo;0;L;;;;;N;;;;;
+B6BF;HANGUL SYLLABLE DDWEOD;Lo;0;L;;;;;N;;;;;
+B6C0;HANGUL SYLLABLE DDWEOL;Lo;0;L;;;;;N;;;;;
+B6C1;HANGUL SYLLABLE DDWEOLG;Lo;0;L;;;;;N;;;;;
+B6C2;HANGUL SYLLABLE DDWEOLM;Lo;0;L;;;;;N;;;;;
+B6C3;HANGUL SYLLABLE DDWEOLB;Lo;0;L;;;;;N;;;;;
+B6C4;HANGUL SYLLABLE DDWEOLS;Lo;0;L;;;;;N;;;;;
+B6C5;HANGUL SYLLABLE DDWEOLT;Lo;0;L;;;;;N;;;;;
+B6C6;HANGUL SYLLABLE DDWEOLP;Lo;0;L;;;;;N;;;;;
+B6C7;HANGUL SYLLABLE DDWEOLH;Lo;0;L;;;;;N;;;;;
+B6C8;HANGUL SYLLABLE DDWEOM;Lo;0;L;;;;;N;;;;;
+B6C9;HANGUL SYLLABLE DDWEOB;Lo;0;L;;;;;N;;;;;
+B6CA;HANGUL SYLLABLE DDWEOBS;Lo;0;L;;;;;N;;;;;
+B6CB;HANGUL SYLLABLE DDWEOS;Lo;0;L;;;;;N;;;;;
+B6CC;HANGUL SYLLABLE DDWEOSS;Lo;0;L;;;;;N;;;;;
+B6CD;HANGUL SYLLABLE DDWEONG;Lo;0;L;;;;;N;;;;;
+B6CE;HANGUL SYLLABLE DDWEOJ;Lo;0;L;;;;;N;;;;;
+B6CF;HANGUL SYLLABLE DDWEOC;Lo;0;L;;;;;N;;;;;
+B6D0;HANGUL SYLLABLE DDWEOK;Lo;0;L;;;;;N;;;;;
+B6D1;HANGUL SYLLABLE DDWEOT;Lo;0;L;;;;;N;;;;;
+B6D2;HANGUL SYLLABLE DDWEOP;Lo;0;L;;;;;N;;;;;
+B6D3;HANGUL SYLLABLE DDWEOH;Lo;0;L;;;;;N;;;;;
+B6D4;HANGUL SYLLABLE DDWE;Lo;0;L;;;;;N;;;;;
+B6D5;HANGUL SYLLABLE DDWEG;Lo;0;L;;;;;N;;;;;
+B6D6;HANGUL SYLLABLE DDWEGG;Lo;0;L;;;;;N;;;;;
+B6D7;HANGUL SYLLABLE DDWEGS;Lo;0;L;;;;;N;;;;;
+B6D8;HANGUL SYLLABLE DDWEN;Lo;0;L;;;;;N;;;;;
+B6D9;HANGUL SYLLABLE DDWENI;Lo;0;L;;;;;N;;;;;
+B6DA;HANGUL SYLLABLE DDWENH;Lo;0;L;;;;;N;;;;;
+B6DB;HANGUL SYLLABLE DDWED;Lo;0;L;;;;;N;;;;;
+B6DC;HANGUL SYLLABLE DDWEL;Lo;0;L;;;;;N;;;;;
+B6DD;HANGUL SYLLABLE DDWELG;Lo;0;L;;;;;N;;;;;
+B6DE;HANGUL SYLLABLE DDWELM;Lo;0;L;;;;;N;;;;;
+B6DF;HANGUL SYLLABLE DDWELB;Lo;0;L;;;;;N;;;;;
+B6E0;HANGUL SYLLABLE DDWELS;Lo;0;L;;;;;N;;;;;
+B6E1;HANGUL SYLLABLE DDWELT;Lo;0;L;;;;;N;;;;;
+B6E2;HANGUL SYLLABLE DDWELP;Lo;0;L;;;;;N;;;;;
+B6E3;HANGUL SYLLABLE DDWELH;Lo;0;L;;;;;N;;;;;
+B6E4;HANGUL SYLLABLE DDWEM;Lo;0;L;;;;;N;;;;;
+B6E5;HANGUL SYLLABLE DDWEB;Lo;0;L;;;;;N;;;;;
+B6E6;HANGUL SYLLABLE DDWEBS;Lo;0;L;;;;;N;;;;;
+B6E7;HANGUL SYLLABLE DDWES;Lo;0;L;;;;;N;;;;;
+B6E8;HANGUL SYLLABLE DDWESS;Lo;0;L;;;;;N;;;;;
+B6E9;HANGUL SYLLABLE DDWENG;Lo;0;L;;;;;N;;;;;
+B6EA;HANGUL SYLLABLE DDWEJ;Lo;0;L;;;;;N;;;;;
+B6EB;HANGUL SYLLABLE DDWEC;Lo;0;L;;;;;N;;;;;
+B6EC;HANGUL SYLLABLE DDWEK;Lo;0;L;;;;;N;;;;;
+B6ED;HANGUL SYLLABLE DDWET;Lo;0;L;;;;;N;;;;;
+B6EE;HANGUL SYLLABLE DDWEP;Lo;0;L;;;;;N;;;;;
+B6EF;HANGUL SYLLABLE DDWEH;Lo;0;L;;;;;N;;;;;
+B6F0;HANGUL SYLLABLE DDWI;Lo;0;L;;;;;N;;;;;
+B6F1;HANGUL SYLLABLE DDWIG;Lo;0;L;;;;;N;;;;;
+B6F2;HANGUL SYLLABLE DDWIGG;Lo;0;L;;;;;N;;;;;
+B6F3;HANGUL SYLLABLE DDWIGS;Lo;0;L;;;;;N;;;;;
+B6F4;HANGUL SYLLABLE DDWIN;Lo;0;L;;;;;N;;;;;
+B6F5;HANGUL SYLLABLE DDWINI;Lo;0;L;;;;;N;;;;;
+B6F6;HANGUL SYLLABLE DDWINH;Lo;0;L;;;;;N;;;;;
+B6F7;HANGUL SYLLABLE DDWID;Lo;0;L;;;;;N;;;;;
+B6F8;HANGUL SYLLABLE DDWIL;Lo;0;L;;;;;N;;;;;
+B6F9;HANGUL SYLLABLE DDWILG;Lo;0;L;;;;;N;;;;;
+B6FA;HANGUL SYLLABLE DDWILM;Lo;0;L;;;;;N;;;;;
+B6FB;HANGUL SYLLABLE DDWILB;Lo;0;L;;;;;N;;;;;
+B6FC;HANGUL SYLLABLE DDWILS;Lo;0;L;;;;;N;;;;;
+B6FD;HANGUL SYLLABLE DDWILT;Lo;0;L;;;;;N;;;;;
+B6FE;HANGUL SYLLABLE DDWILP;Lo;0;L;;;;;N;;;;;
+B6FF;HANGUL SYLLABLE DDWILH;Lo;0;L;;;;;N;;;;;
+B700;HANGUL SYLLABLE DDWIM;Lo;0;L;;;;;N;;;;;
+B701;HANGUL SYLLABLE DDWIB;Lo;0;L;;;;;N;;;;;
+B702;HANGUL SYLLABLE DDWIBS;Lo;0;L;;;;;N;;;;;
+B703;HANGUL SYLLABLE DDWIS;Lo;0;L;;;;;N;;;;;
+B704;HANGUL SYLLABLE DDWISS;Lo;0;L;;;;;N;;;;;
+B705;HANGUL SYLLABLE DDWING;Lo;0;L;;;;;N;;;;;
+B706;HANGUL SYLLABLE DDWIJ;Lo;0;L;;;;;N;;;;;
+B707;HANGUL SYLLABLE DDWIC;Lo;0;L;;;;;N;;;;;
+B708;HANGUL SYLLABLE DDWIK;Lo;0;L;;;;;N;;;;;
+B709;HANGUL SYLLABLE DDWIT;Lo;0;L;;;;;N;;;;;
+B70A;HANGUL SYLLABLE DDWIP;Lo;0;L;;;;;N;;;;;
+B70B;HANGUL SYLLABLE DDWIH;Lo;0;L;;;;;N;;;;;
+B70C;HANGUL SYLLABLE DDYU;Lo;0;L;;;;;N;;;;;
+B70D;HANGUL SYLLABLE DDYUG;Lo;0;L;;;;;N;;;;;
+B70E;HANGUL SYLLABLE DDYUGG;Lo;0;L;;;;;N;;;;;
+B70F;HANGUL SYLLABLE DDYUGS;Lo;0;L;;;;;N;;;;;
+B710;HANGUL SYLLABLE DDYUN;Lo;0;L;;;;;N;;;;;
+B711;HANGUL SYLLABLE DDYUNI;Lo;0;L;;;;;N;;;;;
+B712;HANGUL SYLLABLE DDYUNH;Lo;0;L;;;;;N;;;;;
+B713;HANGUL SYLLABLE DDYUD;Lo;0;L;;;;;N;;;;;
+B714;HANGUL SYLLABLE DDYUL;Lo;0;L;;;;;N;;;;;
+B715;HANGUL SYLLABLE DDYULG;Lo;0;L;;;;;N;;;;;
+B716;HANGUL SYLLABLE DDYULM;Lo;0;L;;;;;N;;;;;
+B717;HANGUL SYLLABLE DDYULB;Lo;0;L;;;;;N;;;;;
+B718;HANGUL SYLLABLE DDYULS;Lo;0;L;;;;;N;;;;;
+B719;HANGUL SYLLABLE DDYULT;Lo;0;L;;;;;N;;;;;
+B71A;HANGUL SYLLABLE DDYULP;Lo;0;L;;;;;N;;;;;
+B71B;HANGUL SYLLABLE DDYULH;Lo;0;L;;;;;N;;;;;
+B71C;HANGUL SYLLABLE DDYUM;Lo;0;L;;;;;N;;;;;
+B71D;HANGUL SYLLABLE DDYUB;Lo;0;L;;;;;N;;;;;
+B71E;HANGUL SYLLABLE DDYUBS;Lo;0;L;;;;;N;;;;;
+B71F;HANGUL SYLLABLE DDYUS;Lo;0;L;;;;;N;;;;;
+B720;HANGUL SYLLABLE DDYUSS;Lo;0;L;;;;;N;;;;;
+B721;HANGUL SYLLABLE DDYUNG;Lo;0;L;;;;;N;;;;;
+B722;HANGUL SYLLABLE DDYUJ;Lo;0;L;;;;;N;;;;;
+B723;HANGUL SYLLABLE DDYUC;Lo;0;L;;;;;N;;;;;
+B724;HANGUL SYLLABLE DDYUK;Lo;0;L;;;;;N;;;;;
+B725;HANGUL SYLLABLE DDYUT;Lo;0;L;;;;;N;;;;;
+B726;HANGUL SYLLABLE DDYUP;Lo;0;L;;;;;N;;;;;
+B727;HANGUL SYLLABLE DDYUH;Lo;0;L;;;;;N;;;;;
+B728;HANGUL SYLLABLE DDEU;Lo;0;L;;;;;N;;;;;
+B729;HANGUL SYLLABLE DDEUG;Lo;0;L;;;;;N;;;;;
+B72A;HANGUL SYLLABLE DDEUGG;Lo;0;L;;;;;N;;;;;
+B72B;HANGUL SYLLABLE DDEUGS;Lo;0;L;;;;;N;;;;;
+B72C;HANGUL SYLLABLE DDEUN;Lo;0;L;;;;;N;;;;;
+B72D;HANGUL SYLLABLE DDEUNI;Lo;0;L;;;;;N;;;;;
+B72E;HANGUL SYLLABLE DDEUNH;Lo;0;L;;;;;N;;;;;
+B72F;HANGUL SYLLABLE DDEUD;Lo;0;L;;;;;N;;;;;
+B730;HANGUL SYLLABLE DDEUL;Lo;0;L;;;;;N;;;;;
+B731;HANGUL SYLLABLE DDEULG;Lo;0;L;;;;;N;;;;;
+B732;HANGUL SYLLABLE DDEULM;Lo;0;L;;;;;N;;;;;
+B733;HANGUL SYLLABLE DDEULB;Lo;0;L;;;;;N;;;;;
+B734;HANGUL SYLLABLE DDEULS;Lo;0;L;;;;;N;;;;;
+B735;HANGUL SYLLABLE DDEULT;Lo;0;L;;;;;N;;;;;
+B736;HANGUL SYLLABLE DDEULP;Lo;0;L;;;;;N;;;;;
+B737;HANGUL SYLLABLE DDEULH;Lo;0;L;;;;;N;;;;;
+B738;HANGUL SYLLABLE DDEUM;Lo;0;L;;;;;N;;;;;
+B739;HANGUL SYLLABLE DDEUB;Lo;0;L;;;;;N;;;;;
+B73A;HANGUL SYLLABLE DDEUBS;Lo;0;L;;;;;N;;;;;
+B73B;HANGUL SYLLABLE DDEUS;Lo;0;L;;;;;N;;;;;
+B73C;HANGUL SYLLABLE DDEUSS;Lo;0;L;;;;;N;;;;;
+B73D;HANGUL SYLLABLE DDEUNG;Lo;0;L;;;;;N;;;;;
+B73E;HANGUL SYLLABLE DDEUJ;Lo;0;L;;;;;N;;;;;
+B73F;HANGUL SYLLABLE DDEUC;Lo;0;L;;;;;N;;;;;
+B740;HANGUL SYLLABLE DDEUK;Lo;0;L;;;;;N;;;;;
+B741;HANGUL SYLLABLE DDEUT;Lo;0;L;;;;;N;;;;;
+B742;HANGUL SYLLABLE DDEUP;Lo;0;L;;;;;N;;;;;
+B743;HANGUL SYLLABLE DDEUH;Lo;0;L;;;;;N;;;;;
+B744;HANGUL SYLLABLE DDYI;Lo;0;L;;;;;N;;;;;
+B745;HANGUL SYLLABLE DDYIG;Lo;0;L;;;;;N;;;;;
+B746;HANGUL SYLLABLE DDYIGG;Lo;0;L;;;;;N;;;;;
+B747;HANGUL SYLLABLE DDYIGS;Lo;0;L;;;;;N;;;;;
+B748;HANGUL SYLLABLE DDYIN;Lo;0;L;;;;;N;;;;;
+B749;HANGUL SYLLABLE DDYINI;Lo;0;L;;;;;N;;;;;
+B74A;HANGUL SYLLABLE DDYINH;Lo;0;L;;;;;N;;;;;
+B74B;HANGUL SYLLABLE DDYID;Lo;0;L;;;;;N;;;;;
+B74C;HANGUL SYLLABLE DDYIL;Lo;0;L;;;;;N;;;;;
+B74D;HANGUL SYLLABLE DDYILG;Lo;0;L;;;;;N;;;;;
+B74E;HANGUL SYLLABLE DDYILM;Lo;0;L;;;;;N;;;;;
+B74F;HANGUL SYLLABLE DDYILB;Lo;0;L;;;;;N;;;;;
+B750;HANGUL SYLLABLE DDYILS;Lo;0;L;;;;;N;;;;;
+B751;HANGUL SYLLABLE DDYILT;Lo;0;L;;;;;N;;;;;
+B752;HANGUL SYLLABLE DDYILP;Lo;0;L;;;;;N;;;;;
+B753;HANGUL SYLLABLE DDYILH;Lo;0;L;;;;;N;;;;;
+B754;HANGUL SYLLABLE DDYIM;Lo;0;L;;;;;N;;;;;
+B755;HANGUL SYLLABLE DDYIB;Lo;0;L;;;;;N;;;;;
+B756;HANGUL SYLLABLE DDYIBS;Lo;0;L;;;;;N;;;;;
+B757;HANGUL SYLLABLE DDYIS;Lo;0;L;;;;;N;;;;;
+B758;HANGUL SYLLABLE DDYISS;Lo;0;L;;;;;N;;;;;
+B759;HANGUL SYLLABLE DDYING;Lo;0;L;;;;;N;;;;;
+B75A;HANGUL SYLLABLE DDYIJ;Lo;0;L;;;;;N;;;;;
+B75B;HANGUL SYLLABLE DDYIC;Lo;0;L;;;;;N;;;;;
+B75C;HANGUL SYLLABLE DDYIK;Lo;0;L;;;;;N;;;;;
+B75D;HANGUL SYLLABLE DDYIT;Lo;0;L;;;;;N;;;;;
+B75E;HANGUL SYLLABLE DDYIP;Lo;0;L;;;;;N;;;;;
+B75F;HANGUL SYLLABLE DDYIH;Lo;0;L;;;;;N;;;;;
+B760;HANGUL SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+B761;HANGUL SYLLABLE DDIG;Lo;0;L;;;;;N;;;;;
+B762;HANGUL SYLLABLE DDIGG;Lo;0;L;;;;;N;;;;;
+B763;HANGUL SYLLABLE DDIGS;Lo;0;L;;;;;N;;;;;
+B764;HANGUL SYLLABLE DDIN;Lo;0;L;;;;;N;;;;;
+B765;HANGUL SYLLABLE DDINI;Lo;0;L;;;;;N;;;;;
+B766;HANGUL SYLLABLE DDINH;Lo;0;L;;;;;N;;;;;
+B767;HANGUL SYLLABLE DDID;Lo;0;L;;;;;N;;;;;
+B768;HANGUL SYLLABLE DDIL;Lo;0;L;;;;;N;;;;;
+B769;HANGUL SYLLABLE DDILG;Lo;0;L;;;;;N;;;;;
+B76A;HANGUL SYLLABLE DDILM;Lo;0;L;;;;;N;;;;;
+B76B;HANGUL SYLLABLE DDILB;Lo;0;L;;;;;N;;;;;
+B76C;HANGUL SYLLABLE DDILS;Lo;0;L;;;;;N;;;;;
+B76D;HANGUL SYLLABLE DDILT;Lo;0;L;;;;;N;;;;;
+B76E;HANGUL SYLLABLE DDILP;Lo;0;L;;;;;N;;;;;
+B76F;HANGUL SYLLABLE DDILH;Lo;0;L;;;;;N;;;;;
+B770;HANGUL SYLLABLE DDIM;Lo;0;L;;;;;N;;;;;
+B771;HANGUL SYLLABLE DDIB;Lo;0;L;;;;;N;;;;;
+B772;HANGUL SYLLABLE DDIBS;Lo;0;L;;;;;N;;;;;
+B773;HANGUL SYLLABLE DDIS;Lo;0;L;;;;;N;;;;;
+B774;HANGUL SYLLABLE DDISS;Lo;0;L;;;;;N;;;;;
+B775;HANGUL SYLLABLE DDING;Lo;0;L;;;;;N;;;;;
+B776;HANGUL SYLLABLE DDIJ;Lo;0;L;;;;;N;;;;;
+B777;HANGUL SYLLABLE DDIC;Lo;0;L;;;;;N;;;;;
+B778;HANGUL SYLLABLE DDIK;Lo;0;L;;;;;N;;;;;
+B779;HANGUL SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;
+B77A;HANGUL SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;
+B77B;HANGUL SYLLABLE DDIH;Lo;0;L;;;;;N;;;;;
+B77C;HANGUL SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+B77D;HANGUL SYLLABLE RAG;Lo;0;L;;;;;N;;;;;
+B77E;HANGUL SYLLABLE RAGG;Lo;0;L;;;;;N;;;;;
+B77F;HANGUL SYLLABLE RAGS;Lo;0;L;;;;;N;;;;;
+B780;HANGUL SYLLABLE RAN;Lo;0;L;;;;;N;;;;;
+B781;HANGUL SYLLABLE RANI;Lo;0;L;;;;;N;;;;;
+B782;HANGUL SYLLABLE RANH;Lo;0;L;;;;;N;;;;;
+B783;HANGUL SYLLABLE RAD;Lo;0;L;;;;;N;;;;;
+B784;HANGUL SYLLABLE RAL;Lo;0;L;;;;;N;;;;;
+B785;HANGUL SYLLABLE RALG;Lo;0;L;;;;;N;;;;;
+B786;HANGUL SYLLABLE RALM;Lo;0;L;;;;;N;;;;;
+B787;HANGUL SYLLABLE RALB;Lo;0;L;;;;;N;;;;;
+B788;HANGUL SYLLABLE RALS;Lo;0;L;;;;;N;;;;;
+B789;HANGUL SYLLABLE RALT;Lo;0;L;;;;;N;;;;;
+B78A;HANGUL SYLLABLE RALP;Lo;0;L;;;;;N;;;;;
+B78B;HANGUL SYLLABLE RALH;Lo;0;L;;;;;N;;;;;
+B78C;HANGUL SYLLABLE RAM;Lo;0;L;;;;;N;;;;;
+B78D;HANGUL SYLLABLE RAB;Lo;0;L;;;;;N;;;;;
+B78E;HANGUL SYLLABLE RABS;Lo;0;L;;;;;N;;;;;
+B78F;HANGUL SYLLABLE RAS;Lo;0;L;;;;;N;;;;;
+B790;HANGUL SYLLABLE RASS;Lo;0;L;;;;;N;;;;;
+B791;HANGUL SYLLABLE RANG;Lo;0;L;;;;;N;;;;;
+B792;HANGUL SYLLABLE RAJ;Lo;0;L;;;;;N;;;;;
+B793;HANGUL SYLLABLE RAC;Lo;0;L;;;;;N;;;;;
+B794;HANGUL SYLLABLE RAK;Lo;0;L;;;;;N;;;;;
+B795;HANGUL SYLLABLE RAT;Lo;0;L;;;;;N;;;;;
+B796;HANGUL SYLLABLE RAP;Lo;0;L;;;;;N;;;;;
+B797;HANGUL SYLLABLE RAH;Lo;0;L;;;;;N;;;;;
+B798;HANGUL SYLLABLE RAE;Lo;0;L;;;;;N;;;;;
+B799;HANGUL SYLLABLE RAEG;Lo;0;L;;;;;N;;;;;
+B79A;HANGUL SYLLABLE RAEGG;Lo;0;L;;;;;N;;;;;
+B79B;HANGUL SYLLABLE RAEGS;Lo;0;L;;;;;N;;;;;
+B79C;HANGUL SYLLABLE RAEN;Lo;0;L;;;;;N;;;;;
+B79D;HANGUL SYLLABLE RAENI;Lo;0;L;;;;;N;;;;;
+B79E;HANGUL SYLLABLE RAENH;Lo;0;L;;;;;N;;;;;
+B79F;HANGUL SYLLABLE RAED;Lo;0;L;;;;;N;;;;;
+B7A0;HANGUL SYLLABLE RAEL;Lo;0;L;;;;;N;;;;;
+B7A1;HANGUL SYLLABLE RAELG;Lo;0;L;;;;;N;;;;;
+B7A2;HANGUL SYLLABLE RAELM;Lo;0;L;;;;;N;;;;;
+B7A3;HANGUL SYLLABLE RAELB;Lo;0;L;;;;;N;;;;;
+B7A4;HANGUL SYLLABLE RAELS;Lo;0;L;;;;;N;;;;;
+B7A5;HANGUL SYLLABLE RAELT;Lo;0;L;;;;;N;;;;;
+B7A6;HANGUL SYLLABLE RAELP;Lo;0;L;;;;;N;;;;;
+B7A7;HANGUL SYLLABLE RAELH;Lo;0;L;;;;;N;;;;;
+B7A8;HANGUL SYLLABLE RAEM;Lo;0;L;;;;;N;;;;;
+B7A9;HANGUL SYLLABLE RAEB;Lo;0;L;;;;;N;;;;;
+B7AA;HANGUL SYLLABLE RAEBS;Lo;0;L;;;;;N;;;;;
+B7AB;HANGUL SYLLABLE RAES;Lo;0;L;;;;;N;;;;;
+B7AC;HANGUL SYLLABLE RAESS;Lo;0;L;;;;;N;;;;;
+B7AD;HANGUL SYLLABLE RAENG;Lo;0;L;;;;;N;;;;;
+B7AE;HANGUL SYLLABLE RAEJ;Lo;0;L;;;;;N;;;;;
+B7AF;HANGUL SYLLABLE RAEC;Lo;0;L;;;;;N;;;;;
+B7B0;HANGUL SYLLABLE RAEK;Lo;0;L;;;;;N;;;;;
+B7B1;HANGUL SYLLABLE RAET;Lo;0;L;;;;;N;;;;;
+B7B2;HANGUL SYLLABLE RAEP;Lo;0;L;;;;;N;;;;;
+B7B3;HANGUL SYLLABLE RAEH;Lo;0;L;;;;;N;;;;;
+B7B4;HANGUL SYLLABLE RYA;Lo;0;L;;;;;N;;;;;
+B7B5;HANGUL SYLLABLE RYAG;Lo;0;L;;;;;N;;;;;
+B7B6;HANGUL SYLLABLE RYAGG;Lo;0;L;;;;;N;;;;;
+B7B7;HANGUL SYLLABLE RYAGS;Lo;0;L;;;;;N;;;;;
+B7B8;HANGUL SYLLABLE RYAN;Lo;0;L;;;;;N;;;;;
+B7B9;HANGUL SYLLABLE RYANI;Lo;0;L;;;;;N;;;;;
+B7BA;HANGUL SYLLABLE RYANH;Lo;0;L;;;;;N;;;;;
+B7BB;HANGUL SYLLABLE RYAD;Lo;0;L;;;;;N;;;;;
+B7BC;HANGUL SYLLABLE RYAL;Lo;0;L;;;;;N;;;;;
+B7BD;HANGUL SYLLABLE RYALG;Lo;0;L;;;;;N;;;;;
+B7BE;HANGUL SYLLABLE RYALM;Lo;0;L;;;;;N;;;;;
+B7BF;HANGUL SYLLABLE RYALB;Lo;0;L;;;;;N;;;;;
+B7C0;HANGUL SYLLABLE RYALS;Lo;0;L;;;;;N;;;;;
+B7C1;HANGUL SYLLABLE RYALT;Lo;0;L;;;;;N;;;;;
+B7C2;HANGUL SYLLABLE RYALP;Lo;0;L;;;;;N;;;;;
+B7C3;HANGUL SYLLABLE RYALH;Lo;0;L;;;;;N;;;;;
+B7C4;HANGUL SYLLABLE RYAM;Lo;0;L;;;;;N;;;;;
+B7C5;HANGUL SYLLABLE RYAB;Lo;0;L;;;;;N;;;;;
+B7C6;HANGUL SYLLABLE RYABS;Lo;0;L;;;;;N;;;;;
+B7C7;HANGUL SYLLABLE RYAS;Lo;0;L;;;;;N;;;;;
+B7C8;HANGUL SYLLABLE RYASS;Lo;0;L;;;;;N;;;;;
+B7C9;HANGUL SYLLABLE RYANG;Lo;0;L;;;;;N;;;;;
+B7CA;HANGUL SYLLABLE RYAJ;Lo;0;L;;;;;N;;;;;
+B7CB;HANGUL SYLLABLE RYAC;Lo;0;L;;;;;N;;;;;
+B7CC;HANGUL SYLLABLE RYAK;Lo;0;L;;;;;N;;;;;
+B7CD;HANGUL SYLLABLE RYAT;Lo;0;L;;;;;N;;;;;
+B7CE;HANGUL SYLLABLE RYAP;Lo;0;L;;;;;N;;;;;
+B7CF;HANGUL SYLLABLE RYAH;Lo;0;L;;;;;N;;;;;
+B7D0;HANGUL SYLLABLE RYAE;Lo;0;L;;;;;N;;;;;
+B7D1;HANGUL SYLLABLE RYAEG;Lo;0;L;;;;;N;;;;;
+B7D2;HANGUL SYLLABLE RYAEGG;Lo;0;L;;;;;N;;;;;
+B7D3;HANGUL SYLLABLE RYAEGS;Lo;0;L;;;;;N;;;;;
+B7D4;HANGUL SYLLABLE RYAEN;Lo;0;L;;;;;N;;;;;
+B7D5;HANGUL SYLLABLE RYAENI;Lo;0;L;;;;;N;;;;;
+B7D6;HANGUL SYLLABLE RYAENH;Lo;0;L;;;;;N;;;;;
+B7D7;HANGUL SYLLABLE RYAED;Lo;0;L;;;;;N;;;;;
+B7D8;HANGUL SYLLABLE RYAEL;Lo;0;L;;;;;N;;;;;
+B7D9;HANGUL SYLLABLE RYAELG;Lo;0;L;;;;;N;;;;;
+B7DA;HANGUL SYLLABLE RYAELM;Lo;0;L;;;;;N;;;;;
+B7DB;HANGUL SYLLABLE RYAELB;Lo;0;L;;;;;N;;;;;
+B7DC;HANGUL SYLLABLE RYAELS;Lo;0;L;;;;;N;;;;;
+B7DD;HANGUL SYLLABLE RYAELT;Lo;0;L;;;;;N;;;;;
+B7DE;HANGUL SYLLABLE RYAELP;Lo;0;L;;;;;N;;;;;
+B7DF;HANGUL SYLLABLE RYAELH;Lo;0;L;;;;;N;;;;;
+B7E0;HANGUL SYLLABLE RYAEM;Lo;0;L;;;;;N;;;;;
+B7E1;HANGUL SYLLABLE RYAEB;Lo;0;L;;;;;N;;;;;
+B7E2;HANGUL SYLLABLE RYAEBS;Lo;0;L;;;;;N;;;;;
+B7E3;HANGUL SYLLABLE RYAES;Lo;0;L;;;;;N;;;;;
+B7E4;HANGUL SYLLABLE RYAESS;Lo;0;L;;;;;N;;;;;
+B7E5;HANGUL SYLLABLE RYAENG;Lo;0;L;;;;;N;;;;;
+B7E6;HANGUL SYLLABLE RYAEJ;Lo;0;L;;;;;N;;;;;
+B7E7;HANGUL SYLLABLE RYAEC;Lo;0;L;;;;;N;;;;;
+B7E8;HANGUL SYLLABLE RYAEK;Lo;0;L;;;;;N;;;;;
+B7E9;HANGUL SYLLABLE RYAET;Lo;0;L;;;;;N;;;;;
+B7EA;HANGUL SYLLABLE RYAEP;Lo;0;L;;;;;N;;;;;
+B7EB;HANGUL SYLLABLE RYAEH;Lo;0;L;;;;;N;;;;;
+B7EC;HANGUL SYLLABLE REO;Lo;0;L;;;;;N;;;;;
+B7ED;HANGUL SYLLABLE REOG;Lo;0;L;;;;;N;;;;;
+B7EE;HANGUL SYLLABLE REOGG;Lo;0;L;;;;;N;;;;;
+B7EF;HANGUL SYLLABLE REOGS;Lo;0;L;;;;;N;;;;;
+B7F0;HANGUL SYLLABLE REON;Lo;0;L;;;;;N;;;;;
+B7F1;HANGUL SYLLABLE REONI;Lo;0;L;;;;;N;;;;;
+B7F2;HANGUL SYLLABLE REONH;Lo;0;L;;;;;N;;;;;
+B7F3;HANGUL SYLLABLE REOD;Lo;0;L;;;;;N;;;;;
+B7F4;HANGUL SYLLABLE REOL;Lo;0;L;;;;;N;;;;;
+B7F5;HANGUL SYLLABLE REOLG;Lo;0;L;;;;;N;;;;;
+B7F6;HANGUL SYLLABLE REOLM;Lo;0;L;;;;;N;;;;;
+B7F7;HANGUL SYLLABLE REOLB;Lo;0;L;;;;;N;;;;;
+B7F8;HANGUL SYLLABLE REOLS;Lo;0;L;;;;;N;;;;;
+B7F9;HANGUL SYLLABLE REOLT;Lo;0;L;;;;;N;;;;;
+B7FA;HANGUL SYLLABLE REOLP;Lo;0;L;;;;;N;;;;;
+B7FB;HANGUL SYLLABLE REOLH;Lo;0;L;;;;;N;;;;;
+B7FC;HANGUL SYLLABLE REOM;Lo;0;L;;;;;N;;;;;
+B7FD;HANGUL SYLLABLE REOB;Lo;0;L;;;;;N;;;;;
+B7FE;HANGUL SYLLABLE REOBS;Lo;0;L;;;;;N;;;;;
+B7FF;HANGUL SYLLABLE REOS;Lo;0;L;;;;;N;;;;;
+B800;HANGUL SYLLABLE REOSS;Lo;0;L;;;;;N;;;;;
+B801;HANGUL SYLLABLE REONG;Lo;0;L;;;;;N;;;;;
+B802;HANGUL SYLLABLE REOJ;Lo;0;L;;;;;N;;;;;
+B803;HANGUL SYLLABLE REOC;Lo;0;L;;;;;N;;;;;
+B804;HANGUL SYLLABLE REOK;Lo;0;L;;;;;N;;;;;
+B805;HANGUL SYLLABLE REOT;Lo;0;L;;;;;N;;;;;
+B806;HANGUL SYLLABLE REOP;Lo;0;L;;;;;N;;;;;
+B807;HANGUL SYLLABLE REOH;Lo;0;L;;;;;N;;;;;
+B808;HANGUL SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+B809;HANGUL SYLLABLE REG;Lo;0;L;;;;;N;;;;;
+B80A;HANGUL SYLLABLE REGG;Lo;0;L;;;;;N;;;;;
+B80B;HANGUL SYLLABLE REGS;Lo;0;L;;;;;N;;;;;
+B80C;HANGUL SYLLABLE REN;Lo;0;L;;;;;N;;;;;
+B80D;HANGUL SYLLABLE RENI;Lo;0;L;;;;;N;;;;;
+B80E;HANGUL SYLLABLE RENH;Lo;0;L;;;;;N;;;;;
+B80F;HANGUL SYLLABLE RED;Lo;0;L;;;;;N;;;;;
+B810;HANGUL SYLLABLE REL;Lo;0;L;;;;;N;;;;;
+B811;HANGUL SYLLABLE RELG;Lo;0;L;;;;;N;;;;;
+B812;HANGUL SYLLABLE RELM;Lo;0;L;;;;;N;;;;;
+B813;HANGUL SYLLABLE RELB;Lo;0;L;;;;;N;;;;;
+B814;HANGUL SYLLABLE RELS;Lo;0;L;;;;;N;;;;;
+B815;HANGUL SYLLABLE RELT;Lo;0;L;;;;;N;;;;;
+B816;HANGUL SYLLABLE RELP;Lo;0;L;;;;;N;;;;;
+B817;HANGUL SYLLABLE RELH;Lo;0;L;;;;;N;;;;;
+B818;HANGUL SYLLABLE REM;Lo;0;L;;;;;N;;;;;
+B819;HANGUL SYLLABLE REB;Lo;0;L;;;;;N;;;;;
+B81A;HANGUL SYLLABLE REBS;Lo;0;L;;;;;N;;;;;
+B81B;HANGUL SYLLABLE RES;Lo;0;L;;;;;N;;;;;
+B81C;HANGUL SYLLABLE RESS;Lo;0;L;;;;;N;;;;;
+B81D;HANGUL SYLLABLE RENG;Lo;0;L;;;;;N;;;;;
+B81E;HANGUL SYLLABLE REJ;Lo;0;L;;;;;N;;;;;
+B81F;HANGUL SYLLABLE REC;Lo;0;L;;;;;N;;;;;
+B820;HANGUL SYLLABLE REK;Lo;0;L;;;;;N;;;;;
+B821;HANGUL SYLLABLE RET;Lo;0;L;;;;;N;;;;;
+B822;HANGUL SYLLABLE REP;Lo;0;L;;;;;N;;;;;
+B823;HANGUL SYLLABLE REH;Lo;0;L;;;;;N;;;;;
+B824;HANGUL SYLLABLE RYEO;Lo;0;L;;;;;N;;;;;
+B825;HANGUL SYLLABLE RYEOG;Lo;0;L;;;;;N;;;;;
+B826;HANGUL SYLLABLE RYEOGG;Lo;0;L;;;;;N;;;;;
+B827;HANGUL SYLLABLE RYEOGS;Lo;0;L;;;;;N;;;;;
+B828;HANGUL SYLLABLE RYEON;Lo;0;L;;;;;N;;;;;
+B829;HANGUL SYLLABLE RYEONI;Lo;0;L;;;;;N;;;;;
+B82A;HANGUL SYLLABLE RYEONH;Lo;0;L;;;;;N;;;;;
+B82B;HANGUL SYLLABLE RYEOD;Lo;0;L;;;;;N;;;;;
+B82C;HANGUL SYLLABLE RYEOL;Lo;0;L;;;;;N;;;;;
+B82D;HANGUL SYLLABLE RYEOLG;Lo;0;L;;;;;N;;;;;
+B82E;HANGUL SYLLABLE RYEOLM;Lo;0;L;;;;;N;;;;;
+B82F;HANGUL SYLLABLE RYEOLB;Lo;0;L;;;;;N;;;;;
+B830;HANGUL SYLLABLE RYEOLS;Lo;0;L;;;;;N;;;;;
+B831;HANGUL SYLLABLE RYEOLT;Lo;0;L;;;;;N;;;;;
+B832;HANGUL SYLLABLE RYEOLP;Lo;0;L;;;;;N;;;;;
+B833;HANGUL SYLLABLE RYEOLH;Lo;0;L;;;;;N;;;;;
+B834;HANGUL SYLLABLE RYEOM;Lo;0;L;;;;;N;;;;;
+B835;HANGUL SYLLABLE RYEOB;Lo;0;L;;;;;N;;;;;
+B836;HANGUL SYLLABLE RYEOBS;Lo;0;L;;;;;N;;;;;
+B837;HANGUL SYLLABLE RYEOS;Lo;0;L;;;;;N;;;;;
+B838;HANGUL SYLLABLE RYEOSS;Lo;0;L;;;;;N;;;;;
+B839;HANGUL SYLLABLE RYEONG;Lo;0;L;;;;;N;;;;;
+B83A;HANGUL SYLLABLE RYEOJ;Lo;0;L;;;;;N;;;;;
+B83B;HANGUL SYLLABLE RYEOC;Lo;0;L;;;;;N;;;;;
+B83C;HANGUL SYLLABLE RYEOK;Lo;0;L;;;;;N;;;;;
+B83D;HANGUL SYLLABLE RYEOT;Lo;0;L;;;;;N;;;;;
+B83E;HANGUL SYLLABLE RYEOP;Lo;0;L;;;;;N;;;;;
+B83F;HANGUL SYLLABLE RYEOH;Lo;0;L;;;;;N;;;;;
+B840;HANGUL SYLLABLE RYE;Lo;0;L;;;;;N;;;;;
+B841;HANGUL SYLLABLE RYEG;Lo;0;L;;;;;N;;;;;
+B842;HANGUL SYLLABLE RYEGG;Lo;0;L;;;;;N;;;;;
+B843;HANGUL SYLLABLE RYEGS;Lo;0;L;;;;;N;;;;;
+B844;HANGUL SYLLABLE RYEN;Lo;0;L;;;;;N;;;;;
+B845;HANGUL SYLLABLE RYENI;Lo;0;L;;;;;N;;;;;
+B846;HANGUL SYLLABLE RYENH;Lo;0;L;;;;;N;;;;;
+B847;HANGUL SYLLABLE RYED;Lo;0;L;;;;;N;;;;;
+B848;HANGUL SYLLABLE RYEL;Lo;0;L;;;;;N;;;;;
+B849;HANGUL SYLLABLE RYELG;Lo;0;L;;;;;N;;;;;
+B84A;HANGUL SYLLABLE RYELM;Lo;0;L;;;;;N;;;;;
+B84B;HANGUL SYLLABLE RYELB;Lo;0;L;;;;;N;;;;;
+B84C;HANGUL SYLLABLE RYELS;Lo;0;L;;;;;N;;;;;
+B84D;HANGUL SYLLABLE RYELT;Lo;0;L;;;;;N;;;;;
+B84E;HANGUL SYLLABLE RYELP;Lo;0;L;;;;;N;;;;;
+B84F;HANGUL SYLLABLE RYELH;Lo;0;L;;;;;N;;;;;
+B850;HANGUL SYLLABLE RYEM;Lo;0;L;;;;;N;;;;;
+B851;HANGUL SYLLABLE RYEB;Lo;0;L;;;;;N;;;;;
+B852;HANGUL SYLLABLE RYEBS;Lo;0;L;;;;;N;;;;;
+B853;HANGUL SYLLABLE RYES;Lo;0;L;;;;;N;;;;;
+B854;HANGUL SYLLABLE RYESS;Lo;0;L;;;;;N;;;;;
+B855;HANGUL SYLLABLE RYENG;Lo;0;L;;;;;N;;;;;
+B856;HANGUL SYLLABLE RYEJ;Lo;0;L;;;;;N;;;;;
+B857;HANGUL SYLLABLE RYEC;Lo;0;L;;;;;N;;;;;
+B858;HANGUL SYLLABLE RYEK;Lo;0;L;;;;;N;;;;;
+B859;HANGUL SYLLABLE RYET;Lo;0;L;;;;;N;;;;;
+B85A;HANGUL SYLLABLE RYEP;Lo;0;L;;;;;N;;;;;
+B85B;HANGUL SYLLABLE RYEH;Lo;0;L;;;;;N;;;;;
+B85C;HANGUL SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+B85D;HANGUL SYLLABLE ROG;Lo;0;L;;;;;N;;;;;
+B85E;HANGUL SYLLABLE ROGG;Lo;0;L;;;;;N;;;;;
+B85F;HANGUL SYLLABLE ROGS;Lo;0;L;;;;;N;;;;;
+B860;HANGUL SYLLABLE RON;Lo;0;L;;;;;N;;;;;
+B861;HANGUL SYLLABLE RONI;Lo;0;L;;;;;N;;;;;
+B862;HANGUL SYLLABLE RONH;Lo;0;L;;;;;N;;;;;
+B863;HANGUL SYLLABLE ROD;Lo;0;L;;;;;N;;;;;
+B864;HANGUL SYLLABLE ROL;Lo;0;L;;;;;N;;;;;
+B865;HANGUL SYLLABLE ROLG;Lo;0;L;;;;;N;;;;;
+B866;HANGUL SYLLABLE ROLM;Lo;0;L;;;;;N;;;;;
+B867;HANGUL SYLLABLE ROLB;Lo;0;L;;;;;N;;;;;
+B868;HANGUL SYLLABLE ROLS;Lo;0;L;;;;;N;;;;;
+B869;HANGUL SYLLABLE ROLT;Lo;0;L;;;;;N;;;;;
+B86A;HANGUL SYLLABLE ROLP;Lo;0;L;;;;;N;;;;;
+B86B;HANGUL SYLLABLE ROLH;Lo;0;L;;;;;N;;;;;
+B86C;HANGUL SYLLABLE ROM;Lo;0;L;;;;;N;;;;;
+B86D;HANGUL SYLLABLE ROB;Lo;0;L;;;;;N;;;;;
+B86E;HANGUL SYLLABLE ROBS;Lo;0;L;;;;;N;;;;;
+B86F;HANGUL SYLLABLE ROS;Lo;0;L;;;;;N;;;;;
+B870;HANGUL SYLLABLE ROSS;Lo;0;L;;;;;N;;;;;
+B871;HANGUL SYLLABLE RONG;Lo;0;L;;;;;N;;;;;
+B872;HANGUL SYLLABLE ROJ;Lo;0;L;;;;;N;;;;;
+B873;HANGUL SYLLABLE ROC;Lo;0;L;;;;;N;;;;;
+B874;HANGUL SYLLABLE ROK;Lo;0;L;;;;;N;;;;;
+B875;HANGUL SYLLABLE ROT;Lo;0;L;;;;;N;;;;;
+B876;HANGUL SYLLABLE ROP;Lo;0;L;;;;;N;;;;;
+B877;HANGUL SYLLABLE ROH;Lo;0;L;;;;;N;;;;;
+B878;HANGUL SYLLABLE RWA;Lo;0;L;;;;;N;;;;;
+B879;HANGUL SYLLABLE RWAG;Lo;0;L;;;;;N;;;;;
+B87A;HANGUL SYLLABLE RWAGG;Lo;0;L;;;;;N;;;;;
+B87B;HANGUL SYLLABLE RWAGS;Lo;0;L;;;;;N;;;;;
+B87C;HANGUL SYLLABLE RWAN;Lo;0;L;;;;;N;;;;;
+B87D;HANGUL SYLLABLE RWANI;Lo;0;L;;;;;N;;;;;
+B87E;HANGUL SYLLABLE RWANH;Lo;0;L;;;;;N;;;;;
+B87F;HANGUL SYLLABLE RWAD;Lo;0;L;;;;;N;;;;;
+B880;HANGUL SYLLABLE RWAL;Lo;0;L;;;;;N;;;;;
+B881;HANGUL SYLLABLE RWALG;Lo;0;L;;;;;N;;;;;
+B882;HANGUL SYLLABLE RWALM;Lo;0;L;;;;;N;;;;;
+B883;HANGUL SYLLABLE RWALB;Lo;0;L;;;;;N;;;;;
+B884;HANGUL SYLLABLE RWALS;Lo;0;L;;;;;N;;;;;
+B885;HANGUL SYLLABLE RWALT;Lo;0;L;;;;;N;;;;;
+B886;HANGUL SYLLABLE RWALP;Lo;0;L;;;;;N;;;;;
+B887;HANGUL SYLLABLE RWALH;Lo;0;L;;;;;N;;;;;
+B888;HANGUL SYLLABLE RWAM;Lo;0;L;;;;;N;;;;;
+B889;HANGUL SYLLABLE RWAB;Lo;0;L;;;;;N;;;;;
+B88A;HANGUL SYLLABLE RWABS;Lo;0;L;;;;;N;;;;;
+B88B;HANGUL SYLLABLE RWAS;Lo;0;L;;;;;N;;;;;
+B88C;HANGUL SYLLABLE RWASS;Lo;0;L;;;;;N;;;;;
+B88D;HANGUL SYLLABLE RWANG;Lo;0;L;;;;;N;;;;;
+B88E;HANGUL SYLLABLE RWAJ;Lo;0;L;;;;;N;;;;;
+B88F;HANGUL SYLLABLE RWAC;Lo;0;L;;;;;N;;;;;
+B890;HANGUL SYLLABLE RWAK;Lo;0;L;;;;;N;;;;;
+B891;HANGUL SYLLABLE RWAT;Lo;0;L;;;;;N;;;;;
+B892;HANGUL SYLLABLE RWAP;Lo;0;L;;;;;N;;;;;
+B893;HANGUL SYLLABLE RWAH;Lo;0;L;;;;;N;;;;;
+B894;HANGUL SYLLABLE RWAE;Lo;0;L;;;;;N;;;;;
+B895;HANGUL SYLLABLE RWAEG;Lo;0;L;;;;;N;;;;;
+B896;HANGUL SYLLABLE RWAEGG;Lo;0;L;;;;;N;;;;;
+B897;HANGUL SYLLABLE RWAEGS;Lo;0;L;;;;;N;;;;;
+B898;HANGUL SYLLABLE RWAEN;Lo;0;L;;;;;N;;;;;
+B899;HANGUL SYLLABLE RWAENI;Lo;0;L;;;;;N;;;;;
+B89A;HANGUL SYLLABLE RWAENH;Lo;0;L;;;;;N;;;;;
+B89B;HANGUL SYLLABLE RWAED;Lo;0;L;;;;;N;;;;;
+B89C;HANGUL SYLLABLE RWAEL;Lo;0;L;;;;;N;;;;;
+B89D;HANGUL SYLLABLE RWAELG;Lo;0;L;;;;;N;;;;;
+B89E;HANGUL SYLLABLE RWAELM;Lo;0;L;;;;;N;;;;;
+B89F;HANGUL SYLLABLE RWAELB;Lo;0;L;;;;;N;;;;;
+B8A0;HANGUL SYLLABLE RWAELS;Lo;0;L;;;;;N;;;;;
+B8A1;HANGUL SYLLABLE RWAELT;Lo;0;L;;;;;N;;;;;
+B8A2;HANGUL SYLLABLE RWAELP;Lo;0;L;;;;;N;;;;;
+B8A3;HANGUL SYLLABLE RWAELH;Lo;0;L;;;;;N;;;;;
+B8A4;HANGUL SYLLABLE RWAEM;Lo;0;L;;;;;N;;;;;
+B8A5;HANGUL SYLLABLE RWAEB;Lo;0;L;;;;;N;;;;;
+B8A6;HANGUL SYLLABLE RWAEBS;Lo;0;L;;;;;N;;;;;
+B8A7;HANGUL SYLLABLE RWAES;Lo;0;L;;;;;N;;;;;
+B8A8;HANGUL SYLLABLE RWAESS;Lo;0;L;;;;;N;;;;;
+B8A9;HANGUL SYLLABLE RWAENG;Lo;0;L;;;;;N;;;;;
+B8AA;HANGUL SYLLABLE RWAEJ;Lo;0;L;;;;;N;;;;;
+B8AB;HANGUL SYLLABLE RWAEC;Lo;0;L;;;;;N;;;;;
+B8AC;HANGUL SYLLABLE RWAEK;Lo;0;L;;;;;N;;;;;
+B8AD;HANGUL SYLLABLE RWAET;Lo;0;L;;;;;N;;;;;
+B8AE;HANGUL SYLLABLE RWAEP;Lo;0;L;;;;;N;;;;;
+B8AF;HANGUL SYLLABLE RWAEH;Lo;0;L;;;;;N;;;;;
+B8B0;HANGUL SYLLABLE ROE;Lo;0;L;;;;;N;;;;;
+B8B1;HANGUL SYLLABLE ROEG;Lo;0;L;;;;;N;;;;;
+B8B2;HANGUL SYLLABLE ROEGG;Lo;0;L;;;;;N;;;;;
+B8B3;HANGUL SYLLABLE ROEGS;Lo;0;L;;;;;N;;;;;
+B8B4;HANGUL SYLLABLE ROEN;Lo;0;L;;;;;N;;;;;
+B8B5;HANGUL SYLLABLE ROENI;Lo;0;L;;;;;N;;;;;
+B8B6;HANGUL SYLLABLE ROENH;Lo;0;L;;;;;N;;;;;
+B8B7;HANGUL SYLLABLE ROED;Lo;0;L;;;;;N;;;;;
+B8B8;HANGUL SYLLABLE ROEL;Lo;0;L;;;;;N;;;;;
+B8B9;HANGUL SYLLABLE ROELG;Lo;0;L;;;;;N;;;;;
+B8BA;HANGUL SYLLABLE ROELM;Lo;0;L;;;;;N;;;;;
+B8BB;HANGUL SYLLABLE ROELB;Lo;0;L;;;;;N;;;;;
+B8BC;HANGUL SYLLABLE ROELS;Lo;0;L;;;;;N;;;;;
+B8BD;HANGUL SYLLABLE ROELT;Lo;0;L;;;;;N;;;;;
+B8BE;HANGUL SYLLABLE ROELP;Lo;0;L;;;;;N;;;;;
+B8BF;HANGUL SYLLABLE ROELH;Lo;0;L;;;;;N;;;;;
+B8C0;HANGUL SYLLABLE ROEM;Lo;0;L;;;;;N;;;;;
+B8C1;HANGUL SYLLABLE ROEB;Lo;0;L;;;;;N;;;;;
+B8C2;HANGUL SYLLABLE ROEBS;Lo;0;L;;;;;N;;;;;
+B8C3;HANGUL SYLLABLE ROES;Lo;0;L;;;;;N;;;;;
+B8C4;HANGUL SYLLABLE ROESS;Lo;0;L;;;;;N;;;;;
+B8C5;HANGUL SYLLABLE ROENG;Lo;0;L;;;;;N;;;;;
+B8C6;HANGUL SYLLABLE ROEJ;Lo;0;L;;;;;N;;;;;
+B8C7;HANGUL SYLLABLE ROEC;Lo;0;L;;;;;N;;;;;
+B8C8;HANGUL SYLLABLE ROEK;Lo;0;L;;;;;N;;;;;
+B8C9;HANGUL SYLLABLE ROET;Lo;0;L;;;;;N;;;;;
+B8CA;HANGUL SYLLABLE ROEP;Lo;0;L;;;;;N;;;;;
+B8CB;HANGUL SYLLABLE ROEH;Lo;0;L;;;;;N;;;;;
+B8CC;HANGUL SYLLABLE RYO;Lo;0;L;;;;;N;;;;;
+B8CD;HANGUL SYLLABLE RYOG;Lo;0;L;;;;;N;;;;;
+B8CE;HANGUL SYLLABLE RYOGG;Lo;0;L;;;;;N;;;;;
+B8CF;HANGUL SYLLABLE RYOGS;Lo;0;L;;;;;N;;;;;
+B8D0;HANGUL SYLLABLE RYON;Lo;0;L;;;;;N;;;;;
+B8D1;HANGUL SYLLABLE RYONI;Lo;0;L;;;;;N;;;;;
+B8D2;HANGUL SYLLABLE RYONH;Lo;0;L;;;;;N;;;;;
+B8D3;HANGUL SYLLABLE RYOD;Lo;0;L;;;;;N;;;;;
+B8D4;HANGUL SYLLABLE RYOL;Lo;0;L;;;;;N;;;;;
+B8D5;HANGUL SYLLABLE RYOLG;Lo;0;L;;;;;N;;;;;
+B8D6;HANGUL SYLLABLE RYOLM;Lo;0;L;;;;;N;;;;;
+B8D7;HANGUL SYLLABLE RYOLB;Lo;0;L;;;;;N;;;;;
+B8D8;HANGUL SYLLABLE RYOLS;Lo;0;L;;;;;N;;;;;
+B8D9;HANGUL SYLLABLE RYOLT;Lo;0;L;;;;;N;;;;;
+B8DA;HANGUL SYLLABLE RYOLP;Lo;0;L;;;;;N;;;;;
+B8DB;HANGUL SYLLABLE RYOLH;Lo;0;L;;;;;N;;;;;
+B8DC;HANGUL SYLLABLE RYOM;Lo;0;L;;;;;N;;;;;
+B8DD;HANGUL SYLLABLE RYOB;Lo;0;L;;;;;N;;;;;
+B8DE;HANGUL SYLLABLE RYOBS;Lo;0;L;;;;;N;;;;;
+B8DF;HANGUL SYLLABLE RYOS;Lo;0;L;;;;;N;;;;;
+B8E0;HANGUL SYLLABLE RYOSS;Lo;0;L;;;;;N;;;;;
+B8E1;HANGUL SYLLABLE RYONG;Lo;0;L;;;;;N;;;;;
+B8E2;HANGUL SYLLABLE RYOJ;Lo;0;L;;;;;N;;;;;
+B8E3;HANGUL SYLLABLE RYOC;Lo;0;L;;;;;N;;;;;
+B8E4;HANGUL SYLLABLE RYOK;Lo;0;L;;;;;N;;;;;
+B8E5;HANGUL SYLLABLE RYOT;Lo;0;L;;;;;N;;;;;
+B8E6;HANGUL SYLLABLE RYOP;Lo;0;L;;;;;N;;;;;
+B8E7;HANGUL SYLLABLE RYOH;Lo;0;L;;;;;N;;;;;
+B8E8;HANGUL SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+B8E9;HANGUL SYLLABLE RUG;Lo;0;L;;;;;N;;;;;
+B8EA;HANGUL SYLLABLE RUGG;Lo;0;L;;;;;N;;;;;
+B8EB;HANGUL SYLLABLE RUGS;Lo;0;L;;;;;N;;;;;
+B8EC;HANGUL SYLLABLE RUN;Lo;0;L;;;;;N;;;;;
+B8ED;HANGUL SYLLABLE RUNI;Lo;0;L;;;;;N;;;;;
+B8EE;HANGUL SYLLABLE RUNH;Lo;0;L;;;;;N;;;;;
+B8EF;HANGUL SYLLABLE RUD;Lo;0;L;;;;;N;;;;;
+B8F0;HANGUL SYLLABLE RUL;Lo;0;L;;;;;N;;;;;
+B8F1;HANGUL SYLLABLE RULG;Lo;0;L;;;;;N;;;;;
+B8F2;HANGUL SYLLABLE RULM;Lo;0;L;;;;;N;;;;;
+B8F3;HANGUL SYLLABLE RULB;Lo;0;L;;;;;N;;;;;
+B8F4;HANGUL SYLLABLE RULS;Lo;0;L;;;;;N;;;;;
+B8F5;HANGUL SYLLABLE RULT;Lo;0;L;;;;;N;;;;;
+B8F6;HANGUL SYLLABLE RULP;Lo;0;L;;;;;N;;;;;
+B8F7;HANGUL SYLLABLE RULH;Lo;0;L;;;;;N;;;;;
+B8F8;HANGUL SYLLABLE RUM;Lo;0;L;;;;;N;;;;;
+B8F9;HANGUL SYLLABLE RUB;Lo;0;L;;;;;N;;;;;
+B8FA;HANGUL SYLLABLE RUBS;Lo;0;L;;;;;N;;;;;
+B8FB;HANGUL SYLLABLE RUS;Lo;0;L;;;;;N;;;;;
+B8FC;HANGUL SYLLABLE RUSS;Lo;0;L;;;;;N;;;;;
+B8FD;HANGUL SYLLABLE RUNG;Lo;0;L;;;;;N;;;;;
+B8FE;HANGUL SYLLABLE RUJ;Lo;0;L;;;;;N;;;;;
+B8FF;HANGUL SYLLABLE RUC;Lo;0;L;;;;;N;;;;;
+B900;HANGUL SYLLABLE RUK;Lo;0;L;;;;;N;;;;;
+B901;HANGUL SYLLABLE RUT;Lo;0;L;;;;;N;;;;;
+B902;HANGUL SYLLABLE RUP;Lo;0;L;;;;;N;;;;;
+B903;HANGUL SYLLABLE RUH;Lo;0;L;;;;;N;;;;;
+B904;HANGUL SYLLABLE RWEO;Lo;0;L;;;;;N;;;;;
+B905;HANGUL SYLLABLE RWEOG;Lo;0;L;;;;;N;;;;;
+B906;HANGUL SYLLABLE RWEOGG;Lo;0;L;;;;;N;;;;;
+B907;HANGUL SYLLABLE RWEOGS;Lo;0;L;;;;;N;;;;;
+B908;HANGUL SYLLABLE RWEON;Lo;0;L;;;;;N;;;;;
+B909;HANGUL SYLLABLE RWEONI;Lo;0;L;;;;;N;;;;;
+B90A;HANGUL SYLLABLE RWEONH;Lo;0;L;;;;;N;;;;;
+B90B;HANGUL SYLLABLE RWEOD;Lo;0;L;;;;;N;;;;;
+B90C;HANGUL SYLLABLE RWEOL;Lo;0;L;;;;;N;;;;;
+B90D;HANGUL SYLLABLE RWEOLG;Lo;0;L;;;;;N;;;;;
+B90E;HANGUL SYLLABLE RWEOLM;Lo;0;L;;;;;N;;;;;
+B90F;HANGUL SYLLABLE RWEOLB;Lo;0;L;;;;;N;;;;;
+B910;HANGUL SYLLABLE RWEOLS;Lo;0;L;;;;;N;;;;;
+B911;HANGUL SYLLABLE RWEOLT;Lo;0;L;;;;;N;;;;;
+B912;HANGUL SYLLABLE RWEOLP;Lo;0;L;;;;;N;;;;;
+B913;HANGUL SYLLABLE RWEOLH;Lo;0;L;;;;;N;;;;;
+B914;HANGUL SYLLABLE RWEOM;Lo;0;L;;;;;N;;;;;
+B915;HANGUL SYLLABLE RWEOB;Lo;0;L;;;;;N;;;;;
+B916;HANGUL SYLLABLE RWEOBS;Lo;0;L;;;;;N;;;;;
+B917;HANGUL SYLLABLE RWEOS;Lo;0;L;;;;;N;;;;;
+B918;HANGUL SYLLABLE RWEOSS;Lo;0;L;;;;;N;;;;;
+B919;HANGUL SYLLABLE RWEONG;Lo;0;L;;;;;N;;;;;
+B91A;HANGUL SYLLABLE RWEOJ;Lo;0;L;;;;;N;;;;;
+B91B;HANGUL SYLLABLE RWEOC;Lo;0;L;;;;;N;;;;;
+B91C;HANGUL SYLLABLE RWEOK;Lo;0;L;;;;;N;;;;;
+B91D;HANGUL SYLLABLE RWEOT;Lo;0;L;;;;;N;;;;;
+B91E;HANGUL SYLLABLE RWEOP;Lo;0;L;;;;;N;;;;;
+B91F;HANGUL SYLLABLE RWEOH;Lo;0;L;;;;;N;;;;;
+B920;HANGUL SYLLABLE RWE;Lo;0;L;;;;;N;;;;;
+B921;HANGUL SYLLABLE RWEG;Lo;0;L;;;;;N;;;;;
+B922;HANGUL SYLLABLE RWEGG;Lo;0;L;;;;;N;;;;;
+B923;HANGUL SYLLABLE RWEGS;Lo;0;L;;;;;N;;;;;
+B924;HANGUL SYLLABLE RWEN;Lo;0;L;;;;;N;;;;;
+B925;HANGUL SYLLABLE RWENI;Lo;0;L;;;;;N;;;;;
+B926;HANGUL SYLLABLE RWENH;Lo;0;L;;;;;N;;;;;
+B927;HANGUL SYLLABLE RWED;Lo;0;L;;;;;N;;;;;
+B928;HANGUL SYLLABLE RWEL;Lo;0;L;;;;;N;;;;;
+B929;HANGUL SYLLABLE RWELG;Lo;0;L;;;;;N;;;;;
+B92A;HANGUL SYLLABLE RWELM;Lo;0;L;;;;;N;;;;;
+B92B;HANGUL SYLLABLE RWELB;Lo;0;L;;;;;N;;;;;
+B92C;HANGUL SYLLABLE RWELS;Lo;0;L;;;;;N;;;;;
+B92D;HANGUL SYLLABLE RWELT;Lo;0;L;;;;;N;;;;;
+B92E;HANGUL SYLLABLE RWELP;Lo;0;L;;;;;N;;;;;
+B92F;HANGUL SYLLABLE RWELH;Lo;0;L;;;;;N;;;;;
+B930;HANGUL SYLLABLE RWEM;Lo;0;L;;;;;N;;;;;
+B931;HANGUL SYLLABLE RWEB;Lo;0;L;;;;;N;;;;;
+B932;HANGUL SYLLABLE RWEBS;Lo;0;L;;;;;N;;;;;
+B933;HANGUL SYLLABLE RWES;Lo;0;L;;;;;N;;;;;
+B934;HANGUL SYLLABLE RWESS;Lo;0;L;;;;;N;;;;;
+B935;HANGUL SYLLABLE RWENG;Lo;0;L;;;;;N;;;;;
+B936;HANGUL SYLLABLE RWEJ;Lo;0;L;;;;;N;;;;;
+B937;HANGUL SYLLABLE RWEC;Lo;0;L;;;;;N;;;;;
+B938;HANGUL SYLLABLE RWEK;Lo;0;L;;;;;N;;;;;
+B939;HANGUL SYLLABLE RWET;Lo;0;L;;;;;N;;;;;
+B93A;HANGUL SYLLABLE RWEP;Lo;0;L;;;;;N;;;;;
+B93B;HANGUL SYLLABLE RWEH;Lo;0;L;;;;;N;;;;;
+B93C;HANGUL SYLLABLE RWI;Lo;0;L;;;;;N;;;;;
+B93D;HANGUL SYLLABLE RWIG;Lo;0;L;;;;;N;;;;;
+B93E;HANGUL SYLLABLE RWIGG;Lo;0;L;;;;;N;;;;;
+B93F;HANGUL SYLLABLE RWIGS;Lo;0;L;;;;;N;;;;;
+B940;HANGUL SYLLABLE RWIN;Lo;0;L;;;;;N;;;;;
+B941;HANGUL SYLLABLE RWINI;Lo;0;L;;;;;N;;;;;
+B942;HANGUL SYLLABLE RWINH;Lo;0;L;;;;;N;;;;;
+B943;HANGUL SYLLABLE RWID;Lo;0;L;;;;;N;;;;;
+B944;HANGUL SYLLABLE RWIL;Lo;0;L;;;;;N;;;;;
+B945;HANGUL SYLLABLE RWILG;Lo;0;L;;;;;N;;;;;
+B946;HANGUL SYLLABLE RWILM;Lo;0;L;;;;;N;;;;;
+B947;HANGUL SYLLABLE RWILB;Lo;0;L;;;;;N;;;;;
+B948;HANGUL SYLLABLE RWILS;Lo;0;L;;;;;N;;;;;
+B949;HANGUL SYLLABLE RWILT;Lo;0;L;;;;;N;;;;;
+B94A;HANGUL SYLLABLE RWILP;Lo;0;L;;;;;N;;;;;
+B94B;HANGUL SYLLABLE RWILH;Lo;0;L;;;;;N;;;;;
+B94C;HANGUL SYLLABLE RWIM;Lo;0;L;;;;;N;;;;;
+B94D;HANGUL SYLLABLE RWIB;Lo;0;L;;;;;N;;;;;
+B94E;HANGUL SYLLABLE RWIBS;Lo;0;L;;;;;N;;;;;
+B94F;HANGUL SYLLABLE RWIS;Lo;0;L;;;;;N;;;;;
+B950;HANGUL SYLLABLE RWISS;Lo;0;L;;;;;N;;;;;
+B951;HANGUL SYLLABLE RWING;Lo;0;L;;;;;N;;;;;
+B952;HANGUL SYLLABLE RWIJ;Lo;0;L;;;;;N;;;;;
+B953;HANGUL SYLLABLE RWIC;Lo;0;L;;;;;N;;;;;
+B954;HANGUL SYLLABLE RWIK;Lo;0;L;;;;;N;;;;;
+B955;HANGUL SYLLABLE RWIT;Lo;0;L;;;;;N;;;;;
+B956;HANGUL SYLLABLE RWIP;Lo;0;L;;;;;N;;;;;
+B957;HANGUL SYLLABLE RWIH;Lo;0;L;;;;;N;;;;;
+B958;HANGUL SYLLABLE RYU;Lo;0;L;;;;;N;;;;;
+B959;HANGUL SYLLABLE RYUG;Lo;0;L;;;;;N;;;;;
+B95A;HANGUL SYLLABLE RYUGG;Lo;0;L;;;;;N;;;;;
+B95B;HANGUL SYLLABLE RYUGS;Lo;0;L;;;;;N;;;;;
+B95C;HANGUL SYLLABLE RYUN;Lo;0;L;;;;;N;;;;;
+B95D;HANGUL SYLLABLE RYUNI;Lo;0;L;;;;;N;;;;;
+B95E;HANGUL SYLLABLE RYUNH;Lo;0;L;;;;;N;;;;;
+B95F;HANGUL SYLLABLE RYUD;Lo;0;L;;;;;N;;;;;
+B960;HANGUL SYLLABLE RYUL;Lo;0;L;;;;;N;;;;;
+B961;HANGUL SYLLABLE RYULG;Lo;0;L;;;;;N;;;;;
+B962;HANGUL SYLLABLE RYULM;Lo;0;L;;;;;N;;;;;
+B963;HANGUL SYLLABLE RYULB;Lo;0;L;;;;;N;;;;;
+B964;HANGUL SYLLABLE RYULS;Lo;0;L;;;;;N;;;;;
+B965;HANGUL SYLLABLE RYULT;Lo;0;L;;;;;N;;;;;
+B966;HANGUL SYLLABLE RYULP;Lo;0;L;;;;;N;;;;;
+B967;HANGUL SYLLABLE RYULH;Lo;0;L;;;;;N;;;;;
+B968;HANGUL SYLLABLE RYUM;Lo;0;L;;;;;N;;;;;
+B969;HANGUL SYLLABLE RYUB;Lo;0;L;;;;;N;;;;;
+B96A;HANGUL SYLLABLE RYUBS;Lo;0;L;;;;;N;;;;;
+B96B;HANGUL SYLLABLE RYUS;Lo;0;L;;;;;N;;;;;
+B96C;HANGUL SYLLABLE RYUSS;Lo;0;L;;;;;N;;;;;
+B96D;HANGUL SYLLABLE RYUNG;Lo;0;L;;;;;N;;;;;
+B96E;HANGUL SYLLABLE RYUJ;Lo;0;L;;;;;N;;;;;
+B96F;HANGUL SYLLABLE RYUC;Lo;0;L;;;;;N;;;;;
+B970;HANGUL SYLLABLE RYUK;Lo;0;L;;;;;N;;;;;
+B971;HANGUL SYLLABLE RYUT;Lo;0;L;;;;;N;;;;;
+B972;HANGUL SYLLABLE RYUP;Lo;0;L;;;;;N;;;;;
+B973;HANGUL SYLLABLE RYUH;Lo;0;L;;;;;N;;;;;
+B974;HANGUL SYLLABLE REU;Lo;0;L;;;;;N;;;;;
+B975;HANGUL SYLLABLE REUG;Lo;0;L;;;;;N;;;;;
+B976;HANGUL SYLLABLE REUGG;Lo;0;L;;;;;N;;;;;
+B977;HANGUL SYLLABLE REUGS;Lo;0;L;;;;;N;;;;;
+B978;HANGUL SYLLABLE REUN;Lo;0;L;;;;;N;;;;;
+B979;HANGUL SYLLABLE REUNI;Lo;0;L;;;;;N;;;;;
+B97A;HANGUL SYLLABLE REUNH;Lo;0;L;;;;;N;;;;;
+B97B;HANGUL SYLLABLE REUD;Lo;0;L;;;;;N;;;;;
+B97C;HANGUL SYLLABLE REUL;Lo;0;L;;;;;N;;;;;
+B97D;HANGUL SYLLABLE REULG;Lo;0;L;;;;;N;;;;;
+B97E;HANGUL SYLLABLE REULM;Lo;0;L;;;;;N;;;;;
+B97F;HANGUL SYLLABLE REULB;Lo;0;L;;;;;N;;;;;
+B980;HANGUL SYLLABLE REULS;Lo;0;L;;;;;N;;;;;
+B981;HANGUL SYLLABLE REULT;Lo;0;L;;;;;N;;;;;
+B982;HANGUL SYLLABLE REULP;Lo;0;L;;;;;N;;;;;
+B983;HANGUL SYLLABLE REULH;Lo;0;L;;;;;N;;;;;
+B984;HANGUL SYLLABLE REUM;Lo;0;L;;;;;N;;;;;
+B985;HANGUL SYLLABLE REUB;Lo;0;L;;;;;N;;;;;
+B986;HANGUL SYLLABLE REUBS;Lo;0;L;;;;;N;;;;;
+B987;HANGUL SYLLABLE REUS;Lo;0;L;;;;;N;;;;;
+B988;HANGUL SYLLABLE REUSS;Lo;0;L;;;;;N;;;;;
+B989;HANGUL SYLLABLE REUNG;Lo;0;L;;;;;N;;;;;
+B98A;HANGUL SYLLABLE REUJ;Lo;0;L;;;;;N;;;;;
+B98B;HANGUL SYLLABLE REUC;Lo;0;L;;;;;N;;;;;
+B98C;HANGUL SYLLABLE REUK;Lo;0;L;;;;;N;;;;;
+B98D;HANGUL SYLLABLE REUT;Lo;0;L;;;;;N;;;;;
+B98E;HANGUL SYLLABLE REUP;Lo;0;L;;;;;N;;;;;
+B98F;HANGUL SYLLABLE REUH;Lo;0;L;;;;;N;;;;;
+B990;HANGUL SYLLABLE RYI;Lo;0;L;;;;;N;;;;;
+B991;HANGUL SYLLABLE RYIG;Lo;0;L;;;;;N;;;;;
+B992;HANGUL SYLLABLE RYIGG;Lo;0;L;;;;;N;;;;;
+B993;HANGUL SYLLABLE RYIGS;Lo;0;L;;;;;N;;;;;
+B994;HANGUL SYLLABLE RYIN;Lo;0;L;;;;;N;;;;;
+B995;HANGUL SYLLABLE RYINI;Lo;0;L;;;;;N;;;;;
+B996;HANGUL SYLLABLE RYINH;Lo;0;L;;;;;N;;;;;
+B997;HANGUL SYLLABLE RYID;Lo;0;L;;;;;N;;;;;
+B998;HANGUL SYLLABLE RYIL;Lo;0;L;;;;;N;;;;;
+B999;HANGUL SYLLABLE RYILG;Lo;0;L;;;;;N;;;;;
+B99A;HANGUL SYLLABLE RYILM;Lo;0;L;;;;;N;;;;;
+B99B;HANGUL SYLLABLE RYILB;Lo;0;L;;;;;N;;;;;
+B99C;HANGUL SYLLABLE RYILS;Lo;0;L;;;;;N;;;;;
+B99D;HANGUL SYLLABLE RYILT;Lo;0;L;;;;;N;;;;;
+B99E;HANGUL SYLLABLE RYILP;Lo;0;L;;;;;N;;;;;
+B99F;HANGUL SYLLABLE RYILH;Lo;0;L;;;;;N;;;;;
+B9A0;HANGUL SYLLABLE RYIM;Lo;0;L;;;;;N;;;;;
+B9A1;HANGUL SYLLABLE RYIB;Lo;0;L;;;;;N;;;;;
+B9A2;HANGUL SYLLABLE RYIBS;Lo;0;L;;;;;N;;;;;
+B9A3;HANGUL SYLLABLE RYIS;Lo;0;L;;;;;N;;;;;
+B9A4;HANGUL SYLLABLE RYISS;Lo;0;L;;;;;N;;;;;
+B9A5;HANGUL SYLLABLE RYING;Lo;0;L;;;;;N;;;;;
+B9A6;HANGUL SYLLABLE RYIJ;Lo;0;L;;;;;N;;;;;
+B9A7;HANGUL SYLLABLE RYIC;Lo;0;L;;;;;N;;;;;
+B9A8;HANGUL SYLLABLE RYIK;Lo;0;L;;;;;N;;;;;
+B9A9;HANGUL SYLLABLE RYIT;Lo;0;L;;;;;N;;;;;
+B9AA;HANGUL SYLLABLE RYIP;Lo;0;L;;;;;N;;;;;
+B9AB;HANGUL SYLLABLE RYIH;Lo;0;L;;;;;N;;;;;
+B9AC;HANGUL SYLLABLE RI;Lo;0;L;;;;;N;;;;;
+B9AD;HANGUL SYLLABLE RIG;Lo;0;L;;;;;N;;;;;
+B9AE;HANGUL SYLLABLE RIGG;Lo;0;L;;;;;N;;;;;
+B9AF;HANGUL SYLLABLE RIGS;Lo;0;L;;;;;N;;;;;
+B9B0;HANGUL SYLLABLE RIN;Lo;0;L;;;;;N;;;;;
+B9B1;HANGUL SYLLABLE RINI;Lo;0;L;;;;;N;;;;;
+B9B2;HANGUL SYLLABLE RINH;Lo;0;L;;;;;N;;;;;
+B9B3;HANGUL SYLLABLE RID;Lo;0;L;;;;;N;;;;;
+B9B4;HANGUL SYLLABLE RIL;Lo;0;L;;;;;N;;;;;
+B9B5;HANGUL SYLLABLE RILG;Lo;0;L;;;;;N;;;;;
+B9B6;HANGUL SYLLABLE RILM;Lo;0;L;;;;;N;;;;;
+B9B7;HANGUL SYLLABLE RILB;Lo;0;L;;;;;N;;;;;
+B9B8;HANGUL SYLLABLE RILS;Lo;0;L;;;;;N;;;;;
+B9B9;HANGUL SYLLABLE RILT;Lo;0;L;;;;;N;;;;;
+B9BA;HANGUL SYLLABLE RILP;Lo;0;L;;;;;N;;;;;
+B9BB;HANGUL SYLLABLE RILH;Lo;0;L;;;;;N;;;;;
+B9BC;HANGUL SYLLABLE RIM;Lo;0;L;;;;;N;;;;;
+B9BD;HANGUL SYLLABLE RIB;Lo;0;L;;;;;N;;;;;
+B9BE;HANGUL SYLLABLE RIBS;Lo;0;L;;;;;N;;;;;
+B9BF;HANGUL SYLLABLE RIS;Lo;0;L;;;;;N;;;;;
+B9C0;HANGUL SYLLABLE RISS;Lo;0;L;;;;;N;;;;;
+B9C1;HANGUL SYLLABLE RING;Lo;0;L;;;;;N;;;;;
+B9C2;HANGUL SYLLABLE RIJ;Lo;0;L;;;;;N;;;;;
+B9C3;HANGUL SYLLABLE RIC;Lo;0;L;;;;;N;;;;;
+B9C4;HANGUL SYLLABLE RIK;Lo;0;L;;;;;N;;;;;
+B9C5;HANGUL SYLLABLE RIT;Lo;0;L;;;;;N;;;;;
+B9C6;HANGUL SYLLABLE RIP;Lo;0;L;;;;;N;;;;;
+B9C7;HANGUL SYLLABLE RIH;Lo;0;L;;;;;N;;;;;
+B9C8;HANGUL SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+B9C9;HANGUL SYLLABLE MAG;Lo;0;L;;;;;N;;;;;
+B9CA;HANGUL SYLLABLE MAGG;Lo;0;L;;;;;N;;;;;
+B9CB;HANGUL SYLLABLE MAGS;Lo;0;L;;;;;N;;;;;
+B9CC;HANGUL SYLLABLE MAN;Lo;0;L;;;;;N;;;;;
+B9CD;HANGUL SYLLABLE MANI;Lo;0;L;;;;;N;;;;;
+B9CE;HANGUL SYLLABLE MANH;Lo;0;L;;;;;N;;;;;
+B9CF;HANGUL SYLLABLE MAD;Lo;0;L;;;;;N;;;;;
+B9D0;HANGUL SYLLABLE MAL;Lo;0;L;;;;;N;;;;;
+B9D1;HANGUL SYLLABLE MALG;Lo;0;L;;;;;N;;;;;
+B9D2;HANGUL SYLLABLE MALM;Lo;0;L;;;;;N;;;;;
+B9D3;HANGUL SYLLABLE MALB;Lo;0;L;;;;;N;;;;;
+B9D4;HANGUL SYLLABLE MALS;Lo;0;L;;;;;N;;;;;
+B9D5;HANGUL SYLLABLE MALT;Lo;0;L;;;;;N;;;;;
+B9D6;HANGUL SYLLABLE MALP;Lo;0;L;;;;;N;;;;;
+B9D7;HANGUL SYLLABLE MALH;Lo;0;L;;;;;N;;;;;
+B9D8;HANGUL SYLLABLE MAM;Lo;0;L;;;;;N;;;;;
+B9D9;HANGUL SYLLABLE MAB;Lo;0;L;;;;;N;;;;;
+B9DA;HANGUL SYLLABLE MABS;Lo;0;L;;;;;N;;;;;
+B9DB;HANGUL SYLLABLE MAS;Lo;0;L;;;;;N;;;;;
+B9DC;HANGUL SYLLABLE MASS;Lo;0;L;;;;;N;;;;;
+B9DD;HANGUL SYLLABLE MANG;Lo;0;L;;;;;N;;;;;
+B9DE;HANGUL SYLLABLE MAJ;Lo;0;L;;;;;N;;;;;
+B9DF;HANGUL SYLLABLE MAC;Lo;0;L;;;;;N;;;;;
+B9E0;HANGUL SYLLABLE MAK;Lo;0;L;;;;;N;;;;;
+B9E1;HANGUL SYLLABLE MAT;Lo;0;L;;;;;N;;;;;
+B9E2;HANGUL SYLLABLE MAP;Lo;0;L;;;;;N;;;;;
+B9E3;HANGUL SYLLABLE MAH;Lo;0;L;;;;;N;;;;;
+B9E4;HANGUL SYLLABLE MAE;Lo;0;L;;;;;N;;;;;
+B9E5;HANGUL SYLLABLE MAEG;Lo;0;L;;;;;N;;;;;
+B9E6;HANGUL SYLLABLE MAEGG;Lo;0;L;;;;;N;;;;;
+B9E7;HANGUL SYLLABLE MAEGS;Lo;0;L;;;;;N;;;;;
+B9E8;HANGUL SYLLABLE MAEN;Lo;0;L;;;;;N;;;;;
+B9E9;HANGUL SYLLABLE MAENI;Lo;0;L;;;;;N;;;;;
+B9EA;HANGUL SYLLABLE MAENH;Lo;0;L;;;;;N;;;;;
+B9EB;HANGUL SYLLABLE MAED;Lo;0;L;;;;;N;;;;;
+B9EC;HANGUL SYLLABLE MAEL;Lo;0;L;;;;;N;;;;;
+B9ED;HANGUL SYLLABLE MAELG;Lo;0;L;;;;;N;;;;;
+B9EE;HANGUL SYLLABLE MAELM;Lo;0;L;;;;;N;;;;;
+B9EF;HANGUL SYLLABLE MAELB;Lo;0;L;;;;;N;;;;;
+B9F0;HANGUL SYLLABLE MAELS;Lo;0;L;;;;;N;;;;;
+B9F1;HANGUL SYLLABLE MAELT;Lo;0;L;;;;;N;;;;;
+B9F2;HANGUL SYLLABLE MAELP;Lo;0;L;;;;;N;;;;;
+B9F3;HANGUL SYLLABLE MAELH;Lo;0;L;;;;;N;;;;;
+B9F4;HANGUL SYLLABLE MAEM;Lo;0;L;;;;;N;;;;;
+B9F5;HANGUL SYLLABLE MAEB;Lo;0;L;;;;;N;;;;;
+B9F6;HANGUL SYLLABLE MAEBS;Lo;0;L;;;;;N;;;;;
+B9F7;HANGUL SYLLABLE MAES;Lo;0;L;;;;;N;;;;;
+B9F8;HANGUL SYLLABLE MAESS;Lo;0;L;;;;;N;;;;;
+B9F9;HANGUL SYLLABLE MAENG;Lo;0;L;;;;;N;;;;;
+B9FA;HANGUL SYLLABLE MAEJ;Lo;0;L;;;;;N;;;;;
+B9FB;HANGUL SYLLABLE MAEC;Lo;0;L;;;;;N;;;;;
+B9FC;HANGUL SYLLABLE MAEK;Lo;0;L;;;;;N;;;;;
+B9FD;HANGUL SYLLABLE MAET;Lo;0;L;;;;;N;;;;;
+B9FE;HANGUL SYLLABLE MAEP;Lo;0;L;;;;;N;;;;;
+B9FF;HANGUL SYLLABLE MAEH;Lo;0;L;;;;;N;;;;;
+BA00;HANGUL SYLLABLE MYA;Lo;0;L;;;;;N;;;;;
+BA01;HANGUL SYLLABLE MYAG;Lo;0;L;;;;;N;;;;;
+BA02;HANGUL SYLLABLE MYAGG;Lo;0;L;;;;;N;;;;;
+BA03;HANGUL SYLLABLE MYAGS;Lo;0;L;;;;;N;;;;;
+BA04;HANGUL SYLLABLE MYAN;Lo;0;L;;;;;N;;;;;
+BA05;HANGUL SYLLABLE MYANI;Lo;0;L;;;;;N;;;;;
+BA06;HANGUL SYLLABLE MYANH;Lo;0;L;;;;;N;;;;;
+BA07;HANGUL SYLLABLE MYAD;Lo;0;L;;;;;N;;;;;
+BA08;HANGUL SYLLABLE MYAL;Lo;0;L;;;;;N;;;;;
+BA09;HANGUL SYLLABLE MYALG;Lo;0;L;;;;;N;;;;;
+BA0A;HANGUL SYLLABLE MYALM;Lo;0;L;;;;;N;;;;;
+BA0B;HANGUL SYLLABLE MYALB;Lo;0;L;;;;;N;;;;;
+BA0C;HANGUL SYLLABLE MYALS;Lo;0;L;;;;;N;;;;;
+BA0D;HANGUL SYLLABLE MYALT;Lo;0;L;;;;;N;;;;;
+BA0E;HANGUL SYLLABLE MYALP;Lo;0;L;;;;;N;;;;;
+BA0F;HANGUL SYLLABLE MYALH;Lo;0;L;;;;;N;;;;;
+BA10;HANGUL SYLLABLE MYAM;Lo;0;L;;;;;N;;;;;
+BA11;HANGUL SYLLABLE MYAB;Lo;0;L;;;;;N;;;;;
+BA12;HANGUL SYLLABLE MYABS;Lo;0;L;;;;;N;;;;;
+BA13;HANGUL SYLLABLE MYAS;Lo;0;L;;;;;N;;;;;
+BA14;HANGUL SYLLABLE MYASS;Lo;0;L;;;;;N;;;;;
+BA15;HANGUL SYLLABLE MYANG;Lo;0;L;;;;;N;;;;;
+BA16;HANGUL SYLLABLE MYAJ;Lo;0;L;;;;;N;;;;;
+BA17;HANGUL SYLLABLE MYAC;Lo;0;L;;;;;N;;;;;
+BA18;HANGUL SYLLABLE MYAK;Lo;0;L;;;;;N;;;;;
+BA19;HANGUL SYLLABLE MYAT;Lo;0;L;;;;;N;;;;;
+BA1A;HANGUL SYLLABLE MYAP;Lo;0;L;;;;;N;;;;;
+BA1B;HANGUL SYLLABLE MYAH;Lo;0;L;;;;;N;;;;;
+BA1C;HANGUL SYLLABLE MYAE;Lo;0;L;;;;;N;;;;;
+BA1D;HANGUL SYLLABLE MYAEG;Lo;0;L;;;;;N;;;;;
+BA1E;HANGUL SYLLABLE MYAEGG;Lo;0;L;;;;;N;;;;;
+BA1F;HANGUL SYLLABLE MYAEGS;Lo;0;L;;;;;N;;;;;
+BA20;HANGUL SYLLABLE MYAEN;Lo;0;L;;;;;N;;;;;
+BA21;HANGUL SYLLABLE MYAENI;Lo;0;L;;;;;N;;;;;
+BA22;HANGUL SYLLABLE MYAENH;Lo;0;L;;;;;N;;;;;
+BA23;HANGUL SYLLABLE MYAED;Lo;0;L;;;;;N;;;;;
+BA24;HANGUL SYLLABLE MYAEL;Lo;0;L;;;;;N;;;;;
+BA25;HANGUL SYLLABLE MYAELG;Lo;0;L;;;;;N;;;;;
+BA26;HANGUL SYLLABLE MYAELM;Lo;0;L;;;;;N;;;;;
+BA27;HANGUL SYLLABLE MYAELB;Lo;0;L;;;;;N;;;;;
+BA28;HANGUL SYLLABLE MYAELS;Lo;0;L;;;;;N;;;;;
+BA29;HANGUL SYLLABLE MYAELT;Lo;0;L;;;;;N;;;;;
+BA2A;HANGUL SYLLABLE MYAELP;Lo;0;L;;;;;N;;;;;
+BA2B;HANGUL SYLLABLE MYAELH;Lo;0;L;;;;;N;;;;;
+BA2C;HANGUL SYLLABLE MYAEM;Lo;0;L;;;;;N;;;;;
+BA2D;HANGUL SYLLABLE MYAEB;Lo;0;L;;;;;N;;;;;
+BA2E;HANGUL SYLLABLE MYAEBS;Lo;0;L;;;;;N;;;;;
+BA2F;HANGUL SYLLABLE MYAES;Lo;0;L;;;;;N;;;;;
+BA30;HANGUL SYLLABLE MYAESS;Lo;0;L;;;;;N;;;;;
+BA31;HANGUL SYLLABLE MYAENG;Lo;0;L;;;;;N;;;;;
+BA32;HANGUL SYLLABLE MYAEJ;Lo;0;L;;;;;N;;;;;
+BA33;HANGUL SYLLABLE MYAEC;Lo;0;L;;;;;N;;;;;
+BA34;HANGUL SYLLABLE MYAEK;Lo;0;L;;;;;N;;;;;
+BA35;HANGUL SYLLABLE MYAET;Lo;0;L;;;;;N;;;;;
+BA36;HANGUL SYLLABLE MYAEP;Lo;0;L;;;;;N;;;;;
+BA37;HANGUL SYLLABLE MYAEH;Lo;0;L;;;;;N;;;;;
+BA38;HANGUL SYLLABLE MEO;Lo;0;L;;;;;N;;;;;
+BA39;HANGUL SYLLABLE MEOG;Lo;0;L;;;;;N;;;;;
+BA3A;HANGUL SYLLABLE MEOGG;Lo;0;L;;;;;N;;;;;
+BA3B;HANGUL SYLLABLE MEOGS;Lo;0;L;;;;;N;;;;;
+BA3C;HANGUL SYLLABLE MEON;Lo;0;L;;;;;N;;;;;
+BA3D;HANGUL SYLLABLE MEONI;Lo;0;L;;;;;N;;;;;
+BA3E;HANGUL SYLLABLE MEONH;Lo;0;L;;;;;N;;;;;
+BA3F;HANGUL SYLLABLE MEOD;Lo;0;L;;;;;N;;;;;
+BA40;HANGUL SYLLABLE MEOL;Lo;0;L;;;;;N;;;;;
+BA41;HANGUL SYLLABLE MEOLG;Lo;0;L;;;;;N;;;;;
+BA42;HANGUL SYLLABLE MEOLM;Lo;0;L;;;;;N;;;;;
+BA43;HANGUL SYLLABLE MEOLB;Lo;0;L;;;;;N;;;;;
+BA44;HANGUL SYLLABLE MEOLS;Lo;0;L;;;;;N;;;;;
+BA45;HANGUL SYLLABLE MEOLT;Lo;0;L;;;;;N;;;;;
+BA46;HANGUL SYLLABLE MEOLP;Lo;0;L;;;;;N;;;;;
+BA47;HANGUL SYLLABLE MEOLH;Lo;0;L;;;;;N;;;;;
+BA48;HANGUL SYLLABLE MEOM;Lo;0;L;;;;;N;;;;;
+BA49;HANGUL SYLLABLE MEOB;Lo;0;L;;;;;N;;;;;
+BA4A;HANGUL SYLLABLE MEOBS;Lo;0;L;;;;;N;;;;;
+BA4B;HANGUL SYLLABLE MEOS;Lo;0;L;;;;;N;;;;;
+BA4C;HANGUL SYLLABLE MEOSS;Lo;0;L;;;;;N;;;;;
+BA4D;HANGUL SYLLABLE MEONG;Lo;0;L;;;;;N;;;;;
+BA4E;HANGUL SYLLABLE MEOJ;Lo;0;L;;;;;N;;;;;
+BA4F;HANGUL SYLLABLE MEOC;Lo;0;L;;;;;N;;;;;
+BA50;HANGUL SYLLABLE MEOK;Lo;0;L;;;;;N;;;;;
+BA51;HANGUL SYLLABLE MEOT;Lo;0;L;;;;;N;;;;;
+BA52;HANGUL SYLLABLE MEOP;Lo;0;L;;;;;N;;;;;
+BA53;HANGUL SYLLABLE MEOH;Lo;0;L;;;;;N;;;;;
+BA54;HANGUL SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+BA55;HANGUL SYLLABLE MEG;Lo;0;L;;;;;N;;;;;
+BA56;HANGUL SYLLABLE MEGG;Lo;0;L;;;;;N;;;;;
+BA57;HANGUL SYLLABLE MEGS;Lo;0;L;;;;;N;;;;;
+BA58;HANGUL SYLLABLE MEN;Lo;0;L;;;;;N;;;;;
+BA59;HANGUL SYLLABLE MENI;Lo;0;L;;;;;N;;;;;
+BA5A;HANGUL SYLLABLE MENH;Lo;0;L;;;;;N;;;;;
+BA5B;HANGUL SYLLABLE MED;Lo;0;L;;;;;N;;;;;
+BA5C;HANGUL SYLLABLE MEL;Lo;0;L;;;;;N;;;;;
+BA5D;HANGUL SYLLABLE MELG;Lo;0;L;;;;;N;;;;;
+BA5E;HANGUL SYLLABLE MELM;Lo;0;L;;;;;N;;;;;
+BA5F;HANGUL SYLLABLE MELB;Lo;0;L;;;;;N;;;;;
+BA60;HANGUL SYLLABLE MELS;Lo;0;L;;;;;N;;;;;
+BA61;HANGUL SYLLABLE MELT;Lo;0;L;;;;;N;;;;;
+BA62;HANGUL SYLLABLE MELP;Lo;0;L;;;;;N;;;;;
+BA63;HANGUL SYLLABLE MELH;Lo;0;L;;;;;N;;;;;
+BA64;HANGUL SYLLABLE MEM;Lo;0;L;;;;;N;;;;;
+BA65;HANGUL SYLLABLE MEB;Lo;0;L;;;;;N;;;;;
+BA66;HANGUL SYLLABLE MEBS;Lo;0;L;;;;;N;;;;;
+BA67;HANGUL SYLLABLE MES;Lo;0;L;;;;;N;;;;;
+BA68;HANGUL SYLLABLE MESS;Lo;0;L;;;;;N;;;;;
+BA69;HANGUL SYLLABLE MENG;Lo;0;L;;;;;N;;;;;
+BA6A;HANGUL SYLLABLE MEJ;Lo;0;L;;;;;N;;;;;
+BA6B;HANGUL SYLLABLE MEC;Lo;0;L;;;;;N;;;;;
+BA6C;HANGUL SYLLABLE MEK;Lo;0;L;;;;;N;;;;;
+BA6D;HANGUL SYLLABLE MET;Lo;0;L;;;;;N;;;;;
+BA6E;HANGUL SYLLABLE MEP;Lo;0;L;;;;;N;;;;;
+BA6F;HANGUL SYLLABLE MEH;Lo;0;L;;;;;N;;;;;
+BA70;HANGUL SYLLABLE MYEO;Lo;0;L;;;;;N;;;;;
+BA71;HANGUL SYLLABLE MYEOG;Lo;0;L;;;;;N;;;;;
+BA72;HANGUL SYLLABLE MYEOGG;Lo;0;L;;;;;N;;;;;
+BA73;HANGUL SYLLABLE MYEOGS;Lo;0;L;;;;;N;;;;;
+BA74;HANGUL SYLLABLE MYEON;Lo;0;L;;;;;N;;;;;
+BA75;HANGUL SYLLABLE MYEONI;Lo;0;L;;;;;N;;;;;
+BA76;HANGUL SYLLABLE MYEONH;Lo;0;L;;;;;N;;;;;
+BA77;HANGUL SYLLABLE MYEOD;Lo;0;L;;;;;N;;;;;
+BA78;HANGUL SYLLABLE MYEOL;Lo;0;L;;;;;N;;;;;
+BA79;HANGUL SYLLABLE MYEOLG;Lo;0;L;;;;;N;;;;;
+BA7A;HANGUL SYLLABLE MYEOLM;Lo;0;L;;;;;N;;;;;
+BA7B;HANGUL SYLLABLE MYEOLB;Lo;0;L;;;;;N;;;;;
+BA7C;HANGUL SYLLABLE MYEOLS;Lo;0;L;;;;;N;;;;;
+BA7D;HANGUL SYLLABLE MYEOLT;Lo;0;L;;;;;N;;;;;
+BA7E;HANGUL SYLLABLE MYEOLP;Lo;0;L;;;;;N;;;;;
+BA7F;HANGUL SYLLABLE MYEOLH;Lo;0;L;;;;;N;;;;;
+BA80;HANGUL SYLLABLE MYEOM;Lo;0;L;;;;;N;;;;;
+BA81;HANGUL SYLLABLE MYEOB;Lo;0;L;;;;;N;;;;;
+BA82;HANGUL SYLLABLE MYEOBS;Lo;0;L;;;;;N;;;;;
+BA83;HANGUL SYLLABLE MYEOS;Lo;0;L;;;;;N;;;;;
+BA84;HANGUL SYLLABLE MYEOSS;Lo;0;L;;;;;N;;;;;
+BA85;HANGUL SYLLABLE MYEONG;Lo;0;L;;;;;N;;;;;
+BA86;HANGUL SYLLABLE MYEOJ;Lo;0;L;;;;;N;;;;;
+BA87;HANGUL SYLLABLE MYEOC;Lo;0;L;;;;;N;;;;;
+BA88;HANGUL SYLLABLE MYEOK;Lo;0;L;;;;;N;;;;;
+BA89;HANGUL SYLLABLE MYEOT;Lo;0;L;;;;;N;;;;;
+BA8A;HANGUL SYLLABLE MYEOP;Lo;0;L;;;;;N;;;;;
+BA8B;HANGUL SYLLABLE MYEOH;Lo;0;L;;;;;N;;;;;
+BA8C;HANGUL SYLLABLE MYE;Lo;0;L;;;;;N;;;;;
+BA8D;HANGUL SYLLABLE MYEG;Lo;0;L;;;;;N;;;;;
+BA8E;HANGUL SYLLABLE MYEGG;Lo;0;L;;;;;N;;;;;
+BA8F;HANGUL SYLLABLE MYEGS;Lo;0;L;;;;;N;;;;;
+BA90;HANGUL SYLLABLE MYEN;Lo;0;L;;;;;N;;;;;
+BA91;HANGUL SYLLABLE MYENI;Lo;0;L;;;;;N;;;;;
+BA92;HANGUL SYLLABLE MYENH;Lo;0;L;;;;;N;;;;;
+BA93;HANGUL SYLLABLE MYED;Lo;0;L;;;;;N;;;;;
+BA94;HANGUL SYLLABLE MYEL;Lo;0;L;;;;;N;;;;;
+BA95;HANGUL SYLLABLE MYELG;Lo;0;L;;;;;N;;;;;
+BA96;HANGUL SYLLABLE MYELM;Lo;0;L;;;;;N;;;;;
+BA97;HANGUL SYLLABLE MYELB;Lo;0;L;;;;;N;;;;;
+BA98;HANGUL SYLLABLE MYELS;Lo;0;L;;;;;N;;;;;
+BA99;HANGUL SYLLABLE MYELT;Lo;0;L;;;;;N;;;;;
+BA9A;HANGUL SYLLABLE MYELP;Lo;0;L;;;;;N;;;;;
+BA9B;HANGUL SYLLABLE MYELH;Lo;0;L;;;;;N;;;;;
+BA9C;HANGUL SYLLABLE MYEM;Lo;0;L;;;;;N;;;;;
+BA9D;HANGUL SYLLABLE MYEB;Lo;0;L;;;;;N;;;;;
+BA9E;HANGUL SYLLABLE MYEBS;Lo;0;L;;;;;N;;;;;
+BA9F;HANGUL SYLLABLE MYES;Lo;0;L;;;;;N;;;;;
+BAA0;HANGUL SYLLABLE MYESS;Lo;0;L;;;;;N;;;;;
+BAA1;HANGUL SYLLABLE MYENG;Lo;0;L;;;;;N;;;;;
+BAA2;HANGUL SYLLABLE MYEJ;Lo;0;L;;;;;N;;;;;
+BAA3;HANGUL SYLLABLE MYEC;Lo;0;L;;;;;N;;;;;
+BAA4;HANGUL SYLLABLE MYEK;Lo;0;L;;;;;N;;;;;
+BAA5;HANGUL SYLLABLE MYET;Lo;0;L;;;;;N;;;;;
+BAA6;HANGUL SYLLABLE MYEP;Lo;0;L;;;;;N;;;;;
+BAA7;HANGUL SYLLABLE MYEH;Lo;0;L;;;;;N;;;;;
+BAA8;HANGUL SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+BAA9;HANGUL SYLLABLE MOG;Lo;0;L;;;;;N;;;;;
+BAAA;HANGUL SYLLABLE MOGG;Lo;0;L;;;;;N;;;;;
+BAAB;HANGUL SYLLABLE MOGS;Lo;0;L;;;;;N;;;;;
+BAAC;HANGUL SYLLABLE MON;Lo;0;L;;;;;N;;;;;
+BAAD;HANGUL SYLLABLE MONI;Lo;0;L;;;;;N;;;;;
+BAAE;HANGUL SYLLABLE MONH;Lo;0;L;;;;;N;;;;;
+BAAF;HANGUL SYLLABLE MOD;Lo;0;L;;;;;N;;;;;
+BAB0;HANGUL SYLLABLE MOL;Lo;0;L;;;;;N;;;;;
+BAB1;HANGUL SYLLABLE MOLG;Lo;0;L;;;;;N;;;;;
+BAB2;HANGUL SYLLABLE MOLM;Lo;0;L;;;;;N;;;;;
+BAB3;HANGUL SYLLABLE MOLB;Lo;0;L;;;;;N;;;;;
+BAB4;HANGUL SYLLABLE MOLS;Lo;0;L;;;;;N;;;;;
+BAB5;HANGUL SYLLABLE MOLT;Lo;0;L;;;;;N;;;;;
+BAB6;HANGUL SYLLABLE MOLP;Lo;0;L;;;;;N;;;;;
+BAB7;HANGUL SYLLABLE MOLH;Lo;0;L;;;;;N;;;;;
+BAB8;HANGUL SYLLABLE MOM;Lo;0;L;;;;;N;;;;;
+BAB9;HANGUL SYLLABLE MOB;Lo;0;L;;;;;N;;;;;
+BABA;HANGUL SYLLABLE MOBS;Lo;0;L;;;;;N;;;;;
+BABB;HANGUL SYLLABLE MOS;Lo;0;L;;;;;N;;;;;
+BABC;HANGUL SYLLABLE MOSS;Lo;0;L;;;;;N;;;;;
+BABD;HANGUL SYLLABLE MONG;Lo;0;L;;;;;N;;;;;
+BABE;HANGUL SYLLABLE MOJ;Lo;0;L;;;;;N;;;;;
+BABF;HANGUL SYLLABLE MOC;Lo;0;L;;;;;N;;;;;
+BAC0;HANGUL SYLLABLE MOK;Lo;0;L;;;;;N;;;;;
+BAC1;HANGUL SYLLABLE MOT;Lo;0;L;;;;;N;;;;;
+BAC2;HANGUL SYLLABLE MOP;Lo;0;L;;;;;N;;;;;
+BAC3;HANGUL SYLLABLE MOH;Lo;0;L;;;;;N;;;;;
+BAC4;HANGUL SYLLABLE MWA;Lo;0;L;;;;;N;;;;;
+BAC5;HANGUL SYLLABLE MWAG;Lo;0;L;;;;;N;;;;;
+BAC6;HANGUL SYLLABLE MWAGG;Lo;0;L;;;;;N;;;;;
+BAC7;HANGUL SYLLABLE MWAGS;Lo;0;L;;;;;N;;;;;
+BAC8;HANGUL SYLLABLE MWAN;Lo;0;L;;;;;N;;;;;
+BAC9;HANGUL SYLLABLE MWANI;Lo;0;L;;;;;N;;;;;
+BACA;HANGUL SYLLABLE MWANH;Lo;0;L;;;;;N;;;;;
+BACB;HANGUL SYLLABLE MWAD;Lo;0;L;;;;;N;;;;;
+BACC;HANGUL SYLLABLE MWAL;Lo;0;L;;;;;N;;;;;
+BACD;HANGUL SYLLABLE MWALG;Lo;0;L;;;;;N;;;;;
+BACE;HANGUL SYLLABLE MWALM;Lo;0;L;;;;;N;;;;;
+BACF;HANGUL SYLLABLE MWALB;Lo;0;L;;;;;N;;;;;
+BAD0;HANGUL SYLLABLE MWALS;Lo;0;L;;;;;N;;;;;
+BAD1;HANGUL SYLLABLE MWALT;Lo;0;L;;;;;N;;;;;
+BAD2;HANGUL SYLLABLE MWALP;Lo;0;L;;;;;N;;;;;
+BAD3;HANGUL SYLLABLE MWALH;Lo;0;L;;;;;N;;;;;
+BAD4;HANGUL SYLLABLE MWAM;Lo;0;L;;;;;N;;;;;
+BAD5;HANGUL SYLLABLE MWAB;Lo;0;L;;;;;N;;;;;
+BAD6;HANGUL SYLLABLE MWABS;Lo;0;L;;;;;N;;;;;
+BAD7;HANGUL SYLLABLE MWAS;Lo;0;L;;;;;N;;;;;
+BAD8;HANGUL SYLLABLE MWASS;Lo;0;L;;;;;N;;;;;
+BAD9;HANGUL SYLLABLE MWANG;Lo;0;L;;;;;N;;;;;
+BADA;HANGUL SYLLABLE MWAJ;Lo;0;L;;;;;N;;;;;
+BADB;HANGUL SYLLABLE MWAC;Lo;0;L;;;;;N;;;;;
+BADC;HANGUL SYLLABLE MWAK;Lo;0;L;;;;;N;;;;;
+BADD;HANGUL SYLLABLE MWAT;Lo;0;L;;;;;N;;;;;
+BADE;HANGUL SYLLABLE MWAP;Lo;0;L;;;;;N;;;;;
+BADF;HANGUL SYLLABLE MWAH;Lo;0;L;;;;;N;;;;;
+BAE0;HANGUL SYLLABLE MWAE;Lo;0;L;;;;;N;;;;;
+BAE1;HANGUL SYLLABLE MWAEG;Lo;0;L;;;;;N;;;;;
+BAE2;HANGUL SYLLABLE MWAEGG;Lo;0;L;;;;;N;;;;;
+BAE3;HANGUL SYLLABLE MWAEGS;Lo;0;L;;;;;N;;;;;
+BAE4;HANGUL SYLLABLE MWAEN;Lo;0;L;;;;;N;;;;;
+BAE5;HANGUL SYLLABLE MWAENI;Lo;0;L;;;;;N;;;;;
+BAE6;HANGUL SYLLABLE MWAENH;Lo;0;L;;;;;N;;;;;
+BAE7;HANGUL SYLLABLE MWAED;Lo;0;L;;;;;N;;;;;
+BAE8;HANGUL SYLLABLE MWAEL;Lo;0;L;;;;;N;;;;;
+BAE9;HANGUL SYLLABLE MWAELG;Lo;0;L;;;;;N;;;;;
+BAEA;HANGUL SYLLABLE MWAELM;Lo;0;L;;;;;N;;;;;
+BAEB;HANGUL SYLLABLE MWAELB;Lo;0;L;;;;;N;;;;;
+BAEC;HANGUL SYLLABLE MWAELS;Lo;0;L;;;;;N;;;;;
+BAED;HANGUL SYLLABLE MWAELT;Lo;0;L;;;;;N;;;;;
+BAEE;HANGUL SYLLABLE MWAELP;Lo;0;L;;;;;N;;;;;
+BAEF;HANGUL SYLLABLE MWAELH;Lo;0;L;;;;;N;;;;;
+BAF0;HANGUL SYLLABLE MWAEM;Lo;0;L;;;;;N;;;;;
+BAF1;HANGUL SYLLABLE MWAEB;Lo;0;L;;;;;N;;;;;
+BAF2;HANGUL SYLLABLE MWAEBS;Lo;0;L;;;;;N;;;;;
+BAF3;HANGUL SYLLABLE MWAES;Lo;0;L;;;;;N;;;;;
+BAF4;HANGUL SYLLABLE MWAESS;Lo;0;L;;;;;N;;;;;
+BAF5;HANGUL SYLLABLE MWAENG;Lo;0;L;;;;;N;;;;;
+BAF6;HANGUL SYLLABLE MWAEJ;Lo;0;L;;;;;N;;;;;
+BAF7;HANGUL SYLLABLE MWAEC;Lo;0;L;;;;;N;;;;;
+BAF8;HANGUL SYLLABLE MWAEK;Lo;0;L;;;;;N;;;;;
+BAF9;HANGUL SYLLABLE MWAET;Lo;0;L;;;;;N;;;;;
+BAFA;HANGUL SYLLABLE MWAEP;Lo;0;L;;;;;N;;;;;
+BAFB;HANGUL SYLLABLE MWAEH;Lo;0;L;;;;;N;;;;;
+BAFC;HANGUL SYLLABLE MOE;Lo;0;L;;;;;N;;;;;
+BAFD;HANGUL SYLLABLE MOEG;Lo;0;L;;;;;N;;;;;
+BAFE;HANGUL SYLLABLE MOEGG;Lo;0;L;;;;;N;;;;;
+BAFF;HANGUL SYLLABLE MOEGS;Lo;0;L;;;;;N;;;;;
+BB00;HANGUL SYLLABLE MOEN;Lo;0;L;;;;;N;;;;;
+BB01;HANGUL SYLLABLE MOENI;Lo;0;L;;;;;N;;;;;
+BB02;HANGUL SYLLABLE MOENH;Lo;0;L;;;;;N;;;;;
+BB03;HANGUL SYLLABLE MOED;Lo;0;L;;;;;N;;;;;
+BB04;HANGUL SYLLABLE MOEL;Lo;0;L;;;;;N;;;;;
+BB05;HANGUL SYLLABLE MOELG;Lo;0;L;;;;;N;;;;;
+BB06;HANGUL SYLLABLE MOELM;Lo;0;L;;;;;N;;;;;
+BB07;HANGUL SYLLABLE MOELB;Lo;0;L;;;;;N;;;;;
+BB08;HANGUL SYLLABLE MOELS;Lo;0;L;;;;;N;;;;;
+BB09;HANGUL SYLLABLE MOELT;Lo;0;L;;;;;N;;;;;
+BB0A;HANGUL SYLLABLE MOELP;Lo;0;L;;;;;N;;;;;
+BB0B;HANGUL SYLLABLE MOELH;Lo;0;L;;;;;N;;;;;
+BB0C;HANGUL SYLLABLE MOEM;Lo;0;L;;;;;N;;;;;
+BB0D;HANGUL SYLLABLE MOEB;Lo;0;L;;;;;N;;;;;
+BB0E;HANGUL SYLLABLE MOEBS;Lo;0;L;;;;;N;;;;;
+BB0F;HANGUL SYLLABLE MOES;Lo;0;L;;;;;N;;;;;
+BB10;HANGUL SYLLABLE MOESS;Lo;0;L;;;;;N;;;;;
+BB11;HANGUL SYLLABLE MOENG;Lo;0;L;;;;;N;;;;;
+BB12;HANGUL SYLLABLE MOEJ;Lo;0;L;;;;;N;;;;;
+BB13;HANGUL SYLLABLE MOEC;Lo;0;L;;;;;N;;;;;
+BB14;HANGUL SYLLABLE MOEK;Lo;0;L;;;;;N;;;;;
+BB15;HANGUL SYLLABLE MOET;Lo;0;L;;;;;N;;;;;
+BB16;HANGUL SYLLABLE MOEP;Lo;0;L;;;;;N;;;;;
+BB17;HANGUL SYLLABLE MOEH;Lo;0;L;;;;;N;;;;;
+BB18;HANGUL SYLLABLE MYO;Lo;0;L;;;;;N;;;;;
+BB19;HANGUL SYLLABLE MYOG;Lo;0;L;;;;;N;;;;;
+BB1A;HANGUL SYLLABLE MYOGG;Lo;0;L;;;;;N;;;;;
+BB1B;HANGUL SYLLABLE MYOGS;Lo;0;L;;;;;N;;;;;
+BB1C;HANGUL SYLLABLE MYON;Lo;0;L;;;;;N;;;;;
+BB1D;HANGUL SYLLABLE MYONI;Lo;0;L;;;;;N;;;;;
+BB1E;HANGUL SYLLABLE MYONH;Lo;0;L;;;;;N;;;;;
+BB1F;HANGUL SYLLABLE MYOD;Lo;0;L;;;;;N;;;;;
+BB20;HANGUL SYLLABLE MYOL;Lo;0;L;;;;;N;;;;;
+BB21;HANGUL SYLLABLE MYOLG;Lo;0;L;;;;;N;;;;;
+BB22;HANGUL SYLLABLE MYOLM;Lo;0;L;;;;;N;;;;;
+BB23;HANGUL SYLLABLE MYOLB;Lo;0;L;;;;;N;;;;;
+BB24;HANGUL SYLLABLE MYOLS;Lo;0;L;;;;;N;;;;;
+BB25;HANGUL SYLLABLE MYOLT;Lo;0;L;;;;;N;;;;;
+BB26;HANGUL SYLLABLE MYOLP;Lo;0;L;;;;;N;;;;;
+BB27;HANGUL SYLLABLE MYOLH;Lo;0;L;;;;;N;;;;;
+BB28;HANGUL SYLLABLE MYOM;Lo;0;L;;;;;N;;;;;
+BB29;HANGUL SYLLABLE MYOB;Lo;0;L;;;;;N;;;;;
+BB2A;HANGUL SYLLABLE MYOBS;Lo;0;L;;;;;N;;;;;
+BB2B;HANGUL SYLLABLE MYOS;Lo;0;L;;;;;N;;;;;
+BB2C;HANGUL SYLLABLE MYOSS;Lo;0;L;;;;;N;;;;;
+BB2D;HANGUL SYLLABLE MYONG;Lo;0;L;;;;;N;;;;;
+BB2E;HANGUL SYLLABLE MYOJ;Lo;0;L;;;;;N;;;;;
+BB2F;HANGUL SYLLABLE MYOC;Lo;0;L;;;;;N;;;;;
+BB30;HANGUL SYLLABLE MYOK;Lo;0;L;;;;;N;;;;;
+BB31;HANGUL SYLLABLE MYOT;Lo;0;L;;;;;N;;;;;
+BB32;HANGUL SYLLABLE MYOP;Lo;0;L;;;;;N;;;;;
+BB33;HANGUL SYLLABLE MYOH;Lo;0;L;;;;;N;;;;;
+BB34;HANGUL SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+BB35;HANGUL SYLLABLE MUG;Lo;0;L;;;;;N;;;;;
+BB36;HANGUL SYLLABLE MUGG;Lo;0;L;;;;;N;;;;;
+BB37;HANGUL SYLLABLE MUGS;Lo;0;L;;;;;N;;;;;
+BB38;HANGUL SYLLABLE MUN;Lo;0;L;;;;;N;;;;;
+BB39;HANGUL SYLLABLE MUNI;Lo;0;L;;;;;N;;;;;
+BB3A;HANGUL SYLLABLE MUNH;Lo;0;L;;;;;N;;;;;
+BB3B;HANGUL SYLLABLE MUD;Lo;0;L;;;;;N;;;;;
+BB3C;HANGUL SYLLABLE MUL;Lo;0;L;;;;;N;;;;;
+BB3D;HANGUL SYLLABLE MULG;Lo;0;L;;;;;N;;;;;
+BB3E;HANGUL SYLLABLE MULM;Lo;0;L;;;;;N;;;;;
+BB3F;HANGUL SYLLABLE MULB;Lo;0;L;;;;;N;;;;;
+BB40;HANGUL SYLLABLE MULS;Lo;0;L;;;;;N;;;;;
+BB41;HANGUL SYLLABLE MULT;Lo;0;L;;;;;N;;;;;
+BB42;HANGUL SYLLABLE MULP;Lo;0;L;;;;;N;;;;;
+BB43;HANGUL SYLLABLE MULH;Lo;0;L;;;;;N;;;;;
+BB44;HANGUL SYLLABLE MUM;Lo;0;L;;;;;N;;;;;
+BB45;HANGUL SYLLABLE MUB;Lo;0;L;;;;;N;;;;;
+BB46;HANGUL SYLLABLE MUBS;Lo;0;L;;;;;N;;;;;
+BB47;HANGUL SYLLABLE MUS;Lo;0;L;;;;;N;;;;;
+BB48;HANGUL SYLLABLE MUSS;Lo;0;L;;;;;N;;;;;
+BB49;HANGUL SYLLABLE MUNG;Lo;0;L;;;;;N;;;;;
+BB4A;HANGUL SYLLABLE MUJ;Lo;0;L;;;;;N;;;;;
+BB4B;HANGUL SYLLABLE MUC;Lo;0;L;;;;;N;;;;;
+BB4C;HANGUL SYLLABLE MUK;Lo;0;L;;;;;N;;;;;
+BB4D;HANGUL SYLLABLE MUT;Lo;0;L;;;;;N;;;;;
+BB4E;HANGUL SYLLABLE MUP;Lo;0;L;;;;;N;;;;;
+BB4F;HANGUL SYLLABLE MUH;Lo;0;L;;;;;N;;;;;
+BB50;HANGUL SYLLABLE MWEO;Lo;0;L;;;;;N;;;;;
+BB51;HANGUL SYLLABLE MWEOG;Lo;0;L;;;;;N;;;;;
+BB52;HANGUL SYLLABLE MWEOGG;Lo;0;L;;;;;N;;;;;
+BB53;HANGUL SYLLABLE MWEOGS;Lo;0;L;;;;;N;;;;;
+BB54;HANGUL SYLLABLE MWEON;Lo;0;L;;;;;N;;;;;
+BB55;HANGUL SYLLABLE MWEONI;Lo;0;L;;;;;N;;;;;
+BB56;HANGUL SYLLABLE MWEONH;Lo;0;L;;;;;N;;;;;
+BB57;HANGUL SYLLABLE MWEOD;Lo;0;L;;;;;N;;;;;
+BB58;HANGUL SYLLABLE MWEOL;Lo;0;L;;;;;N;;;;;
+BB59;HANGUL SYLLABLE MWEOLG;Lo;0;L;;;;;N;;;;;
+BB5A;HANGUL SYLLABLE MWEOLM;Lo;0;L;;;;;N;;;;;
+BB5B;HANGUL SYLLABLE MWEOLB;Lo;0;L;;;;;N;;;;;
+BB5C;HANGUL SYLLABLE MWEOLS;Lo;0;L;;;;;N;;;;;
+BB5D;HANGUL SYLLABLE MWEOLT;Lo;0;L;;;;;N;;;;;
+BB5E;HANGUL SYLLABLE MWEOLP;Lo;0;L;;;;;N;;;;;
+BB5F;HANGUL SYLLABLE MWEOLH;Lo;0;L;;;;;N;;;;;
+BB60;HANGUL SYLLABLE MWEOM;Lo;0;L;;;;;N;;;;;
+BB61;HANGUL SYLLABLE MWEOB;Lo;0;L;;;;;N;;;;;
+BB62;HANGUL SYLLABLE MWEOBS;Lo;0;L;;;;;N;;;;;
+BB63;HANGUL SYLLABLE MWEOS;Lo;0;L;;;;;N;;;;;
+BB64;HANGUL SYLLABLE MWEOSS;Lo;0;L;;;;;N;;;;;
+BB65;HANGUL SYLLABLE MWEONG;Lo;0;L;;;;;N;;;;;
+BB66;HANGUL SYLLABLE MWEOJ;Lo;0;L;;;;;N;;;;;
+BB67;HANGUL SYLLABLE MWEOC;Lo;0;L;;;;;N;;;;;
+BB68;HANGUL SYLLABLE MWEOK;Lo;0;L;;;;;N;;;;;
+BB69;HANGUL SYLLABLE MWEOT;Lo;0;L;;;;;N;;;;;
+BB6A;HANGUL SYLLABLE MWEOP;Lo;0;L;;;;;N;;;;;
+BB6B;HANGUL SYLLABLE MWEOH;Lo;0;L;;;;;N;;;;;
+BB6C;HANGUL SYLLABLE MWE;Lo;0;L;;;;;N;;;;;
+BB6D;HANGUL SYLLABLE MWEG;Lo;0;L;;;;;N;;;;;
+BB6E;HANGUL SYLLABLE MWEGG;Lo;0;L;;;;;N;;;;;
+BB6F;HANGUL SYLLABLE MWEGS;Lo;0;L;;;;;N;;;;;
+BB70;HANGUL SYLLABLE MWEN;Lo;0;L;;;;;N;;;;;
+BB71;HANGUL SYLLABLE MWENI;Lo;0;L;;;;;N;;;;;
+BB72;HANGUL SYLLABLE MWENH;Lo;0;L;;;;;N;;;;;
+BB73;HANGUL SYLLABLE MWED;Lo;0;L;;;;;N;;;;;
+BB74;HANGUL SYLLABLE MWEL;Lo;0;L;;;;;N;;;;;
+BB75;HANGUL SYLLABLE MWELG;Lo;0;L;;;;;N;;;;;
+BB76;HANGUL SYLLABLE MWELM;Lo;0;L;;;;;N;;;;;
+BB77;HANGUL SYLLABLE MWELB;Lo;0;L;;;;;N;;;;;
+BB78;HANGUL SYLLABLE MWELS;Lo;0;L;;;;;N;;;;;
+BB79;HANGUL SYLLABLE MWELT;Lo;0;L;;;;;N;;;;;
+BB7A;HANGUL SYLLABLE MWELP;Lo;0;L;;;;;N;;;;;
+BB7B;HANGUL SYLLABLE MWELH;Lo;0;L;;;;;N;;;;;
+BB7C;HANGUL SYLLABLE MWEM;Lo;0;L;;;;;N;;;;;
+BB7D;HANGUL SYLLABLE MWEB;Lo;0;L;;;;;N;;;;;
+BB7E;HANGUL SYLLABLE MWEBS;Lo;0;L;;;;;N;;;;;
+BB7F;HANGUL SYLLABLE MWES;Lo;0;L;;;;;N;;;;;
+BB80;HANGUL SYLLABLE MWESS;Lo;0;L;;;;;N;;;;;
+BB81;HANGUL SYLLABLE MWENG;Lo;0;L;;;;;N;;;;;
+BB82;HANGUL SYLLABLE MWEJ;Lo;0;L;;;;;N;;;;;
+BB83;HANGUL SYLLABLE MWEC;Lo;0;L;;;;;N;;;;;
+BB84;HANGUL SYLLABLE MWEK;Lo;0;L;;;;;N;;;;;
+BB85;HANGUL SYLLABLE MWET;Lo;0;L;;;;;N;;;;;
+BB86;HANGUL SYLLABLE MWEP;Lo;0;L;;;;;N;;;;;
+BB87;HANGUL SYLLABLE MWEH;Lo;0;L;;;;;N;;;;;
+BB88;HANGUL SYLLABLE MWI;Lo;0;L;;;;;N;;;;;
+BB89;HANGUL SYLLABLE MWIG;Lo;0;L;;;;;N;;;;;
+BB8A;HANGUL SYLLABLE MWIGG;Lo;0;L;;;;;N;;;;;
+BB8B;HANGUL SYLLABLE MWIGS;Lo;0;L;;;;;N;;;;;
+BB8C;HANGUL SYLLABLE MWIN;Lo;0;L;;;;;N;;;;;
+BB8D;HANGUL SYLLABLE MWINI;Lo;0;L;;;;;N;;;;;
+BB8E;HANGUL SYLLABLE MWINH;Lo;0;L;;;;;N;;;;;
+BB8F;HANGUL SYLLABLE MWID;Lo;0;L;;;;;N;;;;;
+BB90;HANGUL SYLLABLE MWIL;Lo;0;L;;;;;N;;;;;
+BB91;HANGUL SYLLABLE MWILG;Lo;0;L;;;;;N;;;;;
+BB92;HANGUL SYLLABLE MWILM;Lo;0;L;;;;;N;;;;;
+BB93;HANGUL SYLLABLE MWILB;Lo;0;L;;;;;N;;;;;
+BB94;HANGUL SYLLABLE MWILS;Lo;0;L;;;;;N;;;;;
+BB95;HANGUL SYLLABLE MWILT;Lo;0;L;;;;;N;;;;;
+BB96;HANGUL SYLLABLE MWILP;Lo;0;L;;;;;N;;;;;
+BB97;HANGUL SYLLABLE MWILH;Lo;0;L;;;;;N;;;;;
+BB98;HANGUL SYLLABLE MWIM;Lo;0;L;;;;;N;;;;;
+BB99;HANGUL SYLLABLE MWIB;Lo;0;L;;;;;N;;;;;
+BB9A;HANGUL SYLLABLE MWIBS;Lo;0;L;;;;;N;;;;;
+BB9B;HANGUL SYLLABLE MWIS;Lo;0;L;;;;;N;;;;;
+BB9C;HANGUL SYLLABLE MWISS;Lo;0;L;;;;;N;;;;;
+BB9D;HANGUL SYLLABLE MWING;Lo;0;L;;;;;N;;;;;
+BB9E;HANGUL SYLLABLE MWIJ;Lo;0;L;;;;;N;;;;;
+BB9F;HANGUL SYLLABLE MWIC;Lo;0;L;;;;;N;;;;;
+BBA0;HANGUL SYLLABLE MWIK;Lo;0;L;;;;;N;;;;;
+BBA1;HANGUL SYLLABLE MWIT;Lo;0;L;;;;;N;;;;;
+BBA2;HANGUL SYLLABLE MWIP;Lo;0;L;;;;;N;;;;;
+BBA3;HANGUL SYLLABLE MWIH;Lo;0;L;;;;;N;;;;;
+BBA4;HANGUL SYLLABLE MYU;Lo;0;L;;;;;N;;;;;
+BBA5;HANGUL SYLLABLE MYUG;Lo;0;L;;;;;N;;;;;
+BBA6;HANGUL SYLLABLE MYUGG;Lo;0;L;;;;;N;;;;;
+BBA7;HANGUL SYLLABLE MYUGS;Lo;0;L;;;;;N;;;;;
+BBA8;HANGUL SYLLABLE MYUN;Lo;0;L;;;;;N;;;;;
+BBA9;HANGUL SYLLABLE MYUNI;Lo;0;L;;;;;N;;;;;
+BBAA;HANGUL SYLLABLE MYUNH;Lo;0;L;;;;;N;;;;;
+BBAB;HANGUL SYLLABLE MYUD;Lo;0;L;;;;;N;;;;;
+BBAC;HANGUL SYLLABLE MYUL;Lo;0;L;;;;;N;;;;;
+BBAD;HANGUL SYLLABLE MYULG;Lo;0;L;;;;;N;;;;;
+BBAE;HANGUL SYLLABLE MYULM;Lo;0;L;;;;;N;;;;;
+BBAF;HANGUL SYLLABLE MYULB;Lo;0;L;;;;;N;;;;;
+BBB0;HANGUL SYLLABLE MYULS;Lo;0;L;;;;;N;;;;;
+BBB1;HANGUL SYLLABLE MYULT;Lo;0;L;;;;;N;;;;;
+BBB2;HANGUL SYLLABLE MYULP;Lo;0;L;;;;;N;;;;;
+BBB3;HANGUL SYLLABLE MYULH;Lo;0;L;;;;;N;;;;;
+BBB4;HANGUL SYLLABLE MYUM;Lo;0;L;;;;;N;;;;;
+BBB5;HANGUL SYLLABLE MYUB;Lo;0;L;;;;;N;;;;;
+BBB6;HANGUL SYLLABLE MYUBS;Lo;0;L;;;;;N;;;;;
+BBB7;HANGUL SYLLABLE MYUS;Lo;0;L;;;;;N;;;;;
+BBB8;HANGUL SYLLABLE MYUSS;Lo;0;L;;;;;N;;;;;
+BBB9;HANGUL SYLLABLE MYUNG;Lo;0;L;;;;;N;;;;;
+BBBA;HANGUL SYLLABLE MYUJ;Lo;0;L;;;;;N;;;;;
+BBBB;HANGUL SYLLABLE MYUC;Lo;0;L;;;;;N;;;;;
+BBBC;HANGUL SYLLABLE MYUK;Lo;0;L;;;;;N;;;;;
+BBBD;HANGUL SYLLABLE MYUT;Lo;0;L;;;;;N;;;;;
+BBBE;HANGUL SYLLABLE MYUP;Lo;0;L;;;;;N;;;;;
+BBBF;HANGUL SYLLABLE MYUH;Lo;0;L;;;;;N;;;;;
+BBC0;HANGUL SYLLABLE MEU;Lo;0;L;;;;;N;;;;;
+BBC1;HANGUL SYLLABLE MEUG;Lo;0;L;;;;;N;;;;;
+BBC2;HANGUL SYLLABLE MEUGG;Lo;0;L;;;;;N;;;;;
+BBC3;HANGUL SYLLABLE MEUGS;Lo;0;L;;;;;N;;;;;
+BBC4;HANGUL SYLLABLE MEUN;Lo;0;L;;;;;N;;;;;
+BBC5;HANGUL SYLLABLE MEUNI;Lo;0;L;;;;;N;;;;;
+BBC6;HANGUL SYLLABLE MEUNH;Lo;0;L;;;;;N;;;;;
+BBC7;HANGUL SYLLABLE MEUD;Lo;0;L;;;;;N;;;;;
+BBC8;HANGUL SYLLABLE MEUL;Lo;0;L;;;;;N;;;;;
+BBC9;HANGUL SYLLABLE MEULG;Lo;0;L;;;;;N;;;;;
+BBCA;HANGUL SYLLABLE MEULM;Lo;0;L;;;;;N;;;;;
+BBCB;HANGUL SYLLABLE MEULB;Lo;0;L;;;;;N;;;;;
+BBCC;HANGUL SYLLABLE MEULS;Lo;0;L;;;;;N;;;;;
+BBCD;HANGUL SYLLABLE MEULT;Lo;0;L;;;;;N;;;;;
+BBCE;HANGUL SYLLABLE MEULP;Lo;0;L;;;;;N;;;;;
+BBCF;HANGUL SYLLABLE MEULH;Lo;0;L;;;;;N;;;;;
+BBD0;HANGUL SYLLABLE MEUM;Lo;0;L;;;;;N;;;;;
+BBD1;HANGUL SYLLABLE MEUB;Lo;0;L;;;;;N;;;;;
+BBD2;HANGUL SYLLABLE MEUBS;Lo;0;L;;;;;N;;;;;
+BBD3;HANGUL SYLLABLE MEUS;Lo;0;L;;;;;N;;;;;
+BBD4;HANGUL SYLLABLE MEUSS;Lo;0;L;;;;;N;;;;;
+BBD5;HANGUL SYLLABLE MEUNG;Lo;0;L;;;;;N;;;;;
+BBD6;HANGUL SYLLABLE MEUJ;Lo;0;L;;;;;N;;;;;
+BBD7;HANGUL SYLLABLE MEUC;Lo;0;L;;;;;N;;;;;
+BBD8;HANGUL SYLLABLE MEUK;Lo;0;L;;;;;N;;;;;
+BBD9;HANGUL SYLLABLE MEUT;Lo;0;L;;;;;N;;;;;
+BBDA;HANGUL SYLLABLE MEUP;Lo;0;L;;;;;N;;;;;
+BBDB;HANGUL SYLLABLE MEUH;Lo;0;L;;;;;N;;;;;
+BBDC;HANGUL SYLLABLE MYI;Lo;0;L;;;;;N;;;;;
+BBDD;HANGUL SYLLABLE MYIG;Lo;0;L;;;;;N;;;;;
+BBDE;HANGUL SYLLABLE MYIGG;Lo;0;L;;;;;N;;;;;
+BBDF;HANGUL SYLLABLE MYIGS;Lo;0;L;;;;;N;;;;;
+BBE0;HANGUL SYLLABLE MYIN;Lo;0;L;;;;;N;;;;;
+BBE1;HANGUL SYLLABLE MYINI;Lo;0;L;;;;;N;;;;;
+BBE2;HANGUL SYLLABLE MYINH;Lo;0;L;;;;;N;;;;;
+BBE3;HANGUL SYLLABLE MYID;Lo;0;L;;;;;N;;;;;
+BBE4;HANGUL SYLLABLE MYIL;Lo;0;L;;;;;N;;;;;
+BBE5;HANGUL SYLLABLE MYILG;Lo;0;L;;;;;N;;;;;
+BBE6;HANGUL SYLLABLE MYILM;Lo;0;L;;;;;N;;;;;
+BBE7;HANGUL SYLLABLE MYILB;Lo;0;L;;;;;N;;;;;
+BBE8;HANGUL SYLLABLE MYILS;Lo;0;L;;;;;N;;;;;
+BBE9;HANGUL SYLLABLE MYILT;Lo;0;L;;;;;N;;;;;
+BBEA;HANGUL SYLLABLE MYILP;Lo;0;L;;;;;N;;;;;
+BBEB;HANGUL SYLLABLE MYILH;Lo;0;L;;;;;N;;;;;
+BBEC;HANGUL SYLLABLE MYIM;Lo;0;L;;;;;N;;;;;
+BBED;HANGUL SYLLABLE MYIB;Lo;0;L;;;;;N;;;;;
+BBEE;HANGUL SYLLABLE MYIBS;Lo;0;L;;;;;N;;;;;
+BBEF;HANGUL SYLLABLE MYIS;Lo;0;L;;;;;N;;;;;
+BBF0;HANGUL SYLLABLE MYISS;Lo;0;L;;;;;N;;;;;
+BBF1;HANGUL SYLLABLE MYING;Lo;0;L;;;;;N;;;;;
+BBF2;HANGUL SYLLABLE MYIJ;Lo;0;L;;;;;N;;;;;
+BBF3;HANGUL SYLLABLE MYIC;Lo;0;L;;;;;N;;;;;
+BBF4;HANGUL SYLLABLE MYIK;Lo;0;L;;;;;N;;;;;
+BBF5;HANGUL SYLLABLE MYIT;Lo;0;L;;;;;N;;;;;
+BBF6;HANGUL SYLLABLE MYIP;Lo;0;L;;;;;N;;;;;
+BBF7;HANGUL SYLLABLE MYIH;Lo;0;L;;;;;N;;;;;
+BBF8;HANGUL SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+BBF9;HANGUL SYLLABLE MIG;Lo;0;L;;;;;N;;;;;
+BBFA;HANGUL SYLLABLE MIGG;Lo;0;L;;;;;N;;;;;
+BBFB;HANGUL SYLLABLE MIGS;Lo;0;L;;;;;N;;;;;
+BBFC;HANGUL SYLLABLE MIN;Lo;0;L;;;;;N;;;;;
+BBFD;HANGUL SYLLABLE MINI;Lo;0;L;;;;;N;;;;;
+BBFE;HANGUL SYLLABLE MINH;Lo;0;L;;;;;N;;;;;
+BBFF;HANGUL SYLLABLE MID;Lo;0;L;;;;;N;;;;;
+BC00;HANGUL SYLLABLE MIL;Lo;0;L;;;;;N;;;;;
+BC01;HANGUL SYLLABLE MILG;Lo;0;L;;;;;N;;;;;
+BC02;HANGUL SYLLABLE MILM;Lo;0;L;;;;;N;;;;;
+BC03;HANGUL SYLLABLE MILB;Lo;0;L;;;;;N;;;;;
+BC04;HANGUL SYLLABLE MILS;Lo;0;L;;;;;N;;;;;
+BC05;HANGUL SYLLABLE MILT;Lo;0;L;;;;;N;;;;;
+BC06;HANGUL SYLLABLE MILP;Lo;0;L;;;;;N;;;;;
+BC07;HANGUL SYLLABLE MILH;Lo;0;L;;;;;N;;;;;
+BC08;HANGUL SYLLABLE MIM;Lo;0;L;;;;;N;;;;;
+BC09;HANGUL SYLLABLE MIB;Lo;0;L;;;;;N;;;;;
+BC0A;HANGUL SYLLABLE MIBS;Lo;0;L;;;;;N;;;;;
+BC0B;HANGUL SYLLABLE MIS;Lo;0;L;;;;;N;;;;;
+BC0C;HANGUL SYLLABLE MISS;Lo;0;L;;;;;N;;;;;
+BC0D;HANGUL SYLLABLE MING;Lo;0;L;;;;;N;;;;;
+BC0E;HANGUL SYLLABLE MIJ;Lo;0;L;;;;;N;;;;;
+BC0F;HANGUL SYLLABLE MIC;Lo;0;L;;;;;N;;;;;
+BC10;HANGUL SYLLABLE MIK;Lo;0;L;;;;;N;;;;;
+BC11;HANGUL SYLLABLE MIT;Lo;0;L;;;;;N;;;;;
+BC12;HANGUL SYLLABLE MIP;Lo;0;L;;;;;N;;;;;
+BC13;HANGUL SYLLABLE MIH;Lo;0;L;;;;;N;;;;;
+BC14;HANGUL SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+BC15;HANGUL SYLLABLE BAG;Lo;0;L;;;;;N;;;;;
+BC16;HANGUL SYLLABLE BAGG;Lo;0;L;;;;;N;;;;;
+BC17;HANGUL SYLLABLE BAGS;Lo;0;L;;;;;N;;;;;
+BC18;HANGUL SYLLABLE BAN;Lo;0;L;;;;;N;;;;;
+BC19;HANGUL SYLLABLE BANI;Lo;0;L;;;;;N;;;;;
+BC1A;HANGUL SYLLABLE BANH;Lo;0;L;;;;;N;;;;;
+BC1B;HANGUL SYLLABLE BAD;Lo;0;L;;;;;N;;;;;
+BC1C;HANGUL SYLLABLE BAL;Lo;0;L;;;;;N;;;;;
+BC1D;HANGUL SYLLABLE BALG;Lo;0;L;;;;;N;;;;;
+BC1E;HANGUL SYLLABLE BALM;Lo;0;L;;;;;N;;;;;
+BC1F;HANGUL SYLLABLE BALB;Lo;0;L;;;;;N;;;;;
+BC20;HANGUL SYLLABLE BALS;Lo;0;L;;;;;N;;;;;
+BC21;HANGUL SYLLABLE BALT;Lo;0;L;;;;;N;;;;;
+BC22;HANGUL SYLLABLE BALP;Lo;0;L;;;;;N;;;;;
+BC23;HANGUL SYLLABLE BALH;Lo;0;L;;;;;N;;;;;
+BC24;HANGUL SYLLABLE BAM;Lo;0;L;;;;;N;;;;;
+BC25;HANGUL SYLLABLE BAB;Lo;0;L;;;;;N;;;;;
+BC26;HANGUL SYLLABLE BABS;Lo;0;L;;;;;N;;;;;
+BC27;HANGUL SYLLABLE BAS;Lo;0;L;;;;;N;;;;;
+BC28;HANGUL SYLLABLE BASS;Lo;0;L;;;;;N;;;;;
+BC29;HANGUL SYLLABLE BANG;Lo;0;L;;;;;N;;;;;
+BC2A;HANGUL SYLLABLE BAJ;Lo;0;L;;;;;N;;;;;
+BC2B;HANGUL SYLLABLE BAC;Lo;0;L;;;;;N;;;;;
+BC2C;HANGUL SYLLABLE BAK;Lo;0;L;;;;;N;;;;;
+BC2D;HANGUL SYLLABLE BAT;Lo;0;L;;;;;N;;;;;
+BC2E;HANGUL SYLLABLE BAP;Lo;0;L;;;;;N;;;;;
+BC2F;HANGUL SYLLABLE BAH;Lo;0;L;;;;;N;;;;;
+BC30;HANGUL SYLLABLE BAE;Lo;0;L;;;;;N;;;;;
+BC31;HANGUL SYLLABLE BAEG;Lo;0;L;;;;;N;;;;;
+BC32;HANGUL SYLLABLE BAEGG;Lo;0;L;;;;;N;;;;;
+BC33;HANGUL SYLLABLE BAEGS;Lo;0;L;;;;;N;;;;;
+BC34;HANGUL SYLLABLE BAEN;Lo;0;L;;;;;N;;;;;
+BC35;HANGUL SYLLABLE BAENI;Lo;0;L;;;;;N;;;;;
+BC36;HANGUL SYLLABLE BAENH;Lo;0;L;;;;;N;;;;;
+BC37;HANGUL SYLLABLE BAED;Lo;0;L;;;;;N;;;;;
+BC38;HANGUL SYLLABLE BAEL;Lo;0;L;;;;;N;;;;;
+BC39;HANGUL SYLLABLE BAELG;Lo;0;L;;;;;N;;;;;
+BC3A;HANGUL SYLLABLE BAELM;Lo;0;L;;;;;N;;;;;
+BC3B;HANGUL SYLLABLE BAELB;Lo;0;L;;;;;N;;;;;
+BC3C;HANGUL SYLLABLE BAELS;Lo;0;L;;;;;N;;;;;
+BC3D;HANGUL SYLLABLE BAELT;Lo;0;L;;;;;N;;;;;
+BC3E;HANGUL SYLLABLE BAELP;Lo;0;L;;;;;N;;;;;
+BC3F;HANGUL SYLLABLE BAELH;Lo;0;L;;;;;N;;;;;
+BC40;HANGUL SYLLABLE BAEM;Lo;0;L;;;;;N;;;;;
+BC41;HANGUL SYLLABLE BAEB;Lo;0;L;;;;;N;;;;;
+BC42;HANGUL SYLLABLE BAEBS;Lo;0;L;;;;;N;;;;;
+BC43;HANGUL SYLLABLE BAES;Lo;0;L;;;;;N;;;;;
+BC44;HANGUL SYLLABLE BAESS;Lo;0;L;;;;;N;;;;;
+BC45;HANGUL SYLLABLE BAENG;Lo;0;L;;;;;N;;;;;
+BC46;HANGUL SYLLABLE BAEJ;Lo;0;L;;;;;N;;;;;
+BC47;HANGUL SYLLABLE BAEC;Lo;0;L;;;;;N;;;;;
+BC48;HANGUL SYLLABLE BAEK;Lo;0;L;;;;;N;;;;;
+BC49;HANGUL SYLLABLE BAET;Lo;0;L;;;;;N;;;;;
+BC4A;HANGUL SYLLABLE BAEP;Lo;0;L;;;;;N;;;;;
+BC4B;HANGUL SYLLABLE BAEH;Lo;0;L;;;;;N;;;;;
+BC4C;HANGUL SYLLABLE BYA;Lo;0;L;;;;;N;;;;;
+BC4D;HANGUL SYLLABLE BYAG;Lo;0;L;;;;;N;;;;;
+BC4E;HANGUL SYLLABLE BYAGG;Lo;0;L;;;;;N;;;;;
+BC4F;HANGUL SYLLABLE BYAGS;Lo;0;L;;;;;N;;;;;
+BC50;HANGUL SYLLABLE BYAN;Lo;0;L;;;;;N;;;;;
+BC51;HANGUL SYLLABLE BYANI;Lo;0;L;;;;;N;;;;;
+BC52;HANGUL SYLLABLE BYANH;Lo;0;L;;;;;N;;;;;
+BC53;HANGUL SYLLABLE BYAD;Lo;0;L;;;;;N;;;;;
+BC54;HANGUL SYLLABLE BYAL;Lo;0;L;;;;;N;;;;;
+BC55;HANGUL SYLLABLE BYALG;Lo;0;L;;;;;N;;;;;
+BC56;HANGUL SYLLABLE BYALM;Lo;0;L;;;;;N;;;;;
+BC57;HANGUL SYLLABLE BYALB;Lo;0;L;;;;;N;;;;;
+BC58;HANGUL SYLLABLE BYALS;Lo;0;L;;;;;N;;;;;
+BC59;HANGUL SYLLABLE BYALT;Lo;0;L;;;;;N;;;;;
+BC5A;HANGUL SYLLABLE BYALP;Lo;0;L;;;;;N;;;;;
+BC5B;HANGUL SYLLABLE BYALH;Lo;0;L;;;;;N;;;;;
+BC5C;HANGUL SYLLABLE BYAM;Lo;0;L;;;;;N;;;;;
+BC5D;HANGUL SYLLABLE BYAB;Lo;0;L;;;;;N;;;;;
+BC5E;HANGUL SYLLABLE BYABS;Lo;0;L;;;;;N;;;;;
+BC5F;HANGUL SYLLABLE BYAS;Lo;0;L;;;;;N;;;;;
+BC60;HANGUL SYLLABLE BYASS;Lo;0;L;;;;;N;;;;;
+BC61;HANGUL SYLLABLE BYANG;Lo;0;L;;;;;N;;;;;
+BC62;HANGUL SYLLABLE BYAJ;Lo;0;L;;;;;N;;;;;
+BC63;HANGUL SYLLABLE BYAC;Lo;0;L;;;;;N;;;;;
+BC64;HANGUL SYLLABLE BYAK;Lo;0;L;;;;;N;;;;;
+BC65;HANGUL SYLLABLE BYAT;Lo;0;L;;;;;N;;;;;
+BC66;HANGUL SYLLABLE BYAP;Lo;0;L;;;;;N;;;;;
+BC67;HANGUL SYLLABLE BYAH;Lo;0;L;;;;;N;;;;;
+BC68;HANGUL SYLLABLE BYAE;Lo;0;L;;;;;N;;;;;
+BC69;HANGUL SYLLABLE BYAEG;Lo;0;L;;;;;N;;;;;
+BC6A;HANGUL SYLLABLE BYAEGG;Lo;0;L;;;;;N;;;;;
+BC6B;HANGUL SYLLABLE BYAEGS;Lo;0;L;;;;;N;;;;;
+BC6C;HANGUL SYLLABLE BYAEN;Lo;0;L;;;;;N;;;;;
+BC6D;HANGUL SYLLABLE BYAENI;Lo;0;L;;;;;N;;;;;
+BC6E;HANGUL SYLLABLE BYAENH;Lo;0;L;;;;;N;;;;;
+BC6F;HANGUL SYLLABLE BYAED;Lo;0;L;;;;;N;;;;;
+BC70;HANGUL SYLLABLE BYAEL;Lo;0;L;;;;;N;;;;;
+BC71;HANGUL SYLLABLE BYAELG;Lo;0;L;;;;;N;;;;;
+BC72;HANGUL SYLLABLE BYAELM;Lo;0;L;;;;;N;;;;;
+BC73;HANGUL SYLLABLE BYAELB;Lo;0;L;;;;;N;;;;;
+BC74;HANGUL SYLLABLE BYAELS;Lo;0;L;;;;;N;;;;;
+BC75;HANGUL SYLLABLE BYAELT;Lo;0;L;;;;;N;;;;;
+BC76;HANGUL SYLLABLE BYAELP;Lo;0;L;;;;;N;;;;;
+BC77;HANGUL SYLLABLE BYAELH;Lo;0;L;;;;;N;;;;;
+BC78;HANGUL SYLLABLE BYAEM;Lo;0;L;;;;;N;;;;;
+BC79;HANGUL SYLLABLE BYAEB;Lo;0;L;;;;;N;;;;;
+BC7A;HANGUL SYLLABLE BYAEBS;Lo;0;L;;;;;N;;;;;
+BC7B;HANGUL SYLLABLE BYAES;Lo;0;L;;;;;N;;;;;
+BC7C;HANGUL SYLLABLE BYAESS;Lo;0;L;;;;;N;;;;;
+BC7D;HANGUL SYLLABLE BYAENG;Lo;0;L;;;;;N;;;;;
+BC7E;HANGUL SYLLABLE BYAEJ;Lo;0;L;;;;;N;;;;;
+BC7F;HANGUL SYLLABLE BYAEC;Lo;0;L;;;;;N;;;;;
+BC80;HANGUL SYLLABLE BYAEK;Lo;0;L;;;;;N;;;;;
+BC81;HANGUL SYLLABLE BYAET;Lo;0;L;;;;;N;;;;;
+BC82;HANGUL SYLLABLE BYAEP;Lo;0;L;;;;;N;;;;;
+BC83;HANGUL SYLLABLE BYAEH;Lo;0;L;;;;;N;;;;;
+BC84;HANGUL SYLLABLE BEO;Lo;0;L;;;;;N;;;;;
+BC85;HANGUL SYLLABLE BEOG;Lo;0;L;;;;;N;;;;;
+BC86;HANGUL SYLLABLE BEOGG;Lo;0;L;;;;;N;;;;;
+BC87;HANGUL SYLLABLE BEOGS;Lo;0;L;;;;;N;;;;;
+BC88;HANGUL SYLLABLE BEON;Lo;0;L;;;;;N;;;;;
+BC89;HANGUL SYLLABLE BEONI;Lo;0;L;;;;;N;;;;;
+BC8A;HANGUL SYLLABLE BEONH;Lo;0;L;;;;;N;;;;;
+BC8B;HANGUL SYLLABLE BEOD;Lo;0;L;;;;;N;;;;;
+BC8C;HANGUL SYLLABLE BEOL;Lo;0;L;;;;;N;;;;;
+BC8D;HANGUL SYLLABLE BEOLG;Lo;0;L;;;;;N;;;;;
+BC8E;HANGUL SYLLABLE BEOLM;Lo;0;L;;;;;N;;;;;
+BC8F;HANGUL SYLLABLE BEOLB;Lo;0;L;;;;;N;;;;;
+BC90;HANGUL SYLLABLE BEOLS;Lo;0;L;;;;;N;;;;;
+BC91;HANGUL SYLLABLE BEOLT;Lo;0;L;;;;;N;;;;;
+BC92;HANGUL SYLLABLE BEOLP;Lo;0;L;;;;;N;;;;;
+BC93;HANGUL SYLLABLE BEOLH;Lo;0;L;;;;;N;;;;;
+BC94;HANGUL SYLLABLE BEOM;Lo;0;L;;;;;N;;;;;
+BC95;HANGUL SYLLABLE BEOB;Lo;0;L;;;;;N;;;;;
+BC96;HANGUL SYLLABLE BEOBS;Lo;0;L;;;;;N;;;;;
+BC97;HANGUL SYLLABLE BEOS;Lo;0;L;;;;;N;;;;;
+BC98;HANGUL SYLLABLE BEOSS;Lo;0;L;;;;;N;;;;;
+BC99;HANGUL SYLLABLE BEONG;Lo;0;L;;;;;N;;;;;
+BC9A;HANGUL SYLLABLE BEOJ;Lo;0;L;;;;;N;;;;;
+BC9B;HANGUL SYLLABLE BEOC;Lo;0;L;;;;;N;;;;;
+BC9C;HANGUL SYLLABLE BEOK;Lo;0;L;;;;;N;;;;;
+BC9D;HANGUL SYLLABLE BEOT;Lo;0;L;;;;;N;;;;;
+BC9E;HANGUL SYLLABLE BEOP;Lo;0;L;;;;;N;;;;;
+BC9F;HANGUL SYLLABLE BEOH;Lo;0;L;;;;;N;;;;;
+BCA0;HANGUL SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+BCA1;HANGUL SYLLABLE BEG;Lo;0;L;;;;;N;;;;;
+BCA2;HANGUL SYLLABLE BEGG;Lo;0;L;;;;;N;;;;;
+BCA3;HANGUL SYLLABLE BEGS;Lo;0;L;;;;;N;;;;;
+BCA4;HANGUL SYLLABLE BEN;Lo;0;L;;;;;N;;;;;
+BCA5;HANGUL SYLLABLE BENI;Lo;0;L;;;;;N;;;;;
+BCA6;HANGUL SYLLABLE BENH;Lo;0;L;;;;;N;;;;;
+BCA7;HANGUL SYLLABLE BED;Lo;0;L;;;;;N;;;;;
+BCA8;HANGUL SYLLABLE BEL;Lo;0;L;;;;;N;;;;;
+BCA9;HANGUL SYLLABLE BELG;Lo;0;L;;;;;N;;;;;
+BCAA;HANGUL SYLLABLE BELM;Lo;0;L;;;;;N;;;;;
+BCAB;HANGUL SYLLABLE BELB;Lo;0;L;;;;;N;;;;;
+BCAC;HANGUL SYLLABLE BELS;Lo;0;L;;;;;N;;;;;
+BCAD;HANGUL SYLLABLE BELT;Lo;0;L;;;;;N;;;;;
+BCAE;HANGUL SYLLABLE BELP;Lo;0;L;;;;;N;;;;;
+BCAF;HANGUL SYLLABLE BELH;Lo;0;L;;;;;N;;;;;
+BCB0;HANGUL SYLLABLE BEM;Lo;0;L;;;;;N;;;;;
+BCB1;HANGUL SYLLABLE BEB;Lo;0;L;;;;;N;;;;;
+BCB2;HANGUL SYLLABLE BEBS;Lo;0;L;;;;;N;;;;;
+BCB3;HANGUL SYLLABLE BES;Lo;0;L;;;;;N;;;;;
+BCB4;HANGUL SYLLABLE BESS;Lo;0;L;;;;;N;;;;;
+BCB5;HANGUL SYLLABLE BENG;Lo;0;L;;;;;N;;;;;
+BCB6;HANGUL SYLLABLE BEJ;Lo;0;L;;;;;N;;;;;
+BCB7;HANGUL SYLLABLE BEC;Lo;0;L;;;;;N;;;;;
+BCB8;HANGUL SYLLABLE BEK;Lo;0;L;;;;;N;;;;;
+BCB9;HANGUL SYLLABLE BET;Lo;0;L;;;;;N;;;;;
+BCBA;HANGUL SYLLABLE BEP;Lo;0;L;;;;;N;;;;;
+BCBB;HANGUL SYLLABLE BEH;Lo;0;L;;;;;N;;;;;
+BCBC;HANGUL SYLLABLE BYEO;Lo;0;L;;;;;N;;;;;
+BCBD;HANGUL SYLLABLE BYEOG;Lo;0;L;;;;;N;;;;;
+BCBE;HANGUL SYLLABLE BYEOGG;Lo;0;L;;;;;N;;;;;
+BCBF;HANGUL SYLLABLE BYEOGS;Lo;0;L;;;;;N;;;;;
+BCC0;HANGUL SYLLABLE BYEON;Lo;0;L;;;;;N;;;;;
+BCC1;HANGUL SYLLABLE BYEONI;Lo;0;L;;;;;N;;;;;
+BCC2;HANGUL SYLLABLE BYEONH;Lo;0;L;;;;;N;;;;;
+BCC3;HANGUL SYLLABLE BYEOD;Lo;0;L;;;;;N;;;;;
+BCC4;HANGUL SYLLABLE BYEOL;Lo;0;L;;;;;N;;;;;
+BCC5;HANGUL SYLLABLE BYEOLG;Lo;0;L;;;;;N;;;;;
+BCC6;HANGUL SYLLABLE BYEOLM;Lo;0;L;;;;;N;;;;;
+BCC7;HANGUL SYLLABLE BYEOLB;Lo;0;L;;;;;N;;;;;
+BCC8;HANGUL SYLLABLE BYEOLS;Lo;0;L;;;;;N;;;;;
+BCC9;HANGUL SYLLABLE BYEOLT;Lo;0;L;;;;;N;;;;;
+BCCA;HANGUL SYLLABLE BYEOLP;Lo;0;L;;;;;N;;;;;
+BCCB;HANGUL SYLLABLE BYEOLH;Lo;0;L;;;;;N;;;;;
+BCCC;HANGUL SYLLABLE BYEOM;Lo;0;L;;;;;N;;;;;
+BCCD;HANGUL SYLLABLE BYEOB;Lo;0;L;;;;;N;;;;;
+BCCE;HANGUL SYLLABLE BYEOBS;Lo;0;L;;;;;N;;;;;
+BCCF;HANGUL SYLLABLE BYEOS;Lo;0;L;;;;;N;;;;;
+BCD0;HANGUL SYLLABLE BYEOSS;Lo;0;L;;;;;N;;;;;
+BCD1;HANGUL SYLLABLE BYEONG;Lo;0;L;;;;;N;;;;;
+BCD2;HANGUL SYLLABLE BYEOJ;Lo;0;L;;;;;N;;;;;
+BCD3;HANGUL SYLLABLE BYEOC;Lo;0;L;;;;;N;;;;;
+BCD4;HANGUL SYLLABLE BYEOK;Lo;0;L;;;;;N;;;;;
+BCD5;HANGUL SYLLABLE BYEOT;Lo;0;L;;;;;N;;;;;
+BCD6;HANGUL SYLLABLE BYEOP;Lo;0;L;;;;;N;;;;;
+BCD7;HANGUL SYLLABLE BYEOH;Lo;0;L;;;;;N;;;;;
+BCD8;HANGUL SYLLABLE BYE;Lo;0;L;;;;;N;;;;;
+BCD9;HANGUL SYLLABLE BYEG;Lo;0;L;;;;;N;;;;;
+BCDA;HANGUL SYLLABLE BYEGG;Lo;0;L;;;;;N;;;;;
+BCDB;HANGUL SYLLABLE BYEGS;Lo;0;L;;;;;N;;;;;
+BCDC;HANGUL SYLLABLE BYEN;Lo;0;L;;;;;N;;;;;
+BCDD;HANGUL SYLLABLE BYENI;Lo;0;L;;;;;N;;;;;
+BCDE;HANGUL SYLLABLE BYENH;Lo;0;L;;;;;N;;;;;
+BCDF;HANGUL SYLLABLE BYED;Lo;0;L;;;;;N;;;;;
+BCE0;HANGUL SYLLABLE BYEL;Lo;0;L;;;;;N;;;;;
+BCE1;HANGUL SYLLABLE BYELG;Lo;0;L;;;;;N;;;;;
+BCE2;HANGUL SYLLABLE BYELM;Lo;0;L;;;;;N;;;;;
+BCE3;HANGUL SYLLABLE BYELB;Lo;0;L;;;;;N;;;;;
+BCE4;HANGUL SYLLABLE BYELS;Lo;0;L;;;;;N;;;;;
+BCE5;HANGUL SYLLABLE BYELT;Lo;0;L;;;;;N;;;;;
+BCE6;HANGUL SYLLABLE BYELP;Lo;0;L;;;;;N;;;;;
+BCE7;HANGUL SYLLABLE BYELH;Lo;0;L;;;;;N;;;;;
+BCE8;HANGUL SYLLABLE BYEM;Lo;0;L;;;;;N;;;;;
+BCE9;HANGUL SYLLABLE BYEB;Lo;0;L;;;;;N;;;;;
+BCEA;HANGUL SYLLABLE BYEBS;Lo;0;L;;;;;N;;;;;
+BCEB;HANGUL SYLLABLE BYES;Lo;0;L;;;;;N;;;;;
+BCEC;HANGUL SYLLABLE BYESS;Lo;0;L;;;;;N;;;;;
+BCED;HANGUL SYLLABLE BYENG;Lo;0;L;;;;;N;;;;;
+BCEE;HANGUL SYLLABLE BYEJ;Lo;0;L;;;;;N;;;;;
+BCEF;HANGUL SYLLABLE BYEC;Lo;0;L;;;;;N;;;;;
+BCF0;HANGUL SYLLABLE BYEK;Lo;0;L;;;;;N;;;;;
+BCF1;HANGUL SYLLABLE BYET;Lo;0;L;;;;;N;;;;;
+BCF2;HANGUL SYLLABLE BYEP;Lo;0;L;;;;;N;;;;;
+BCF3;HANGUL SYLLABLE BYEH;Lo;0;L;;;;;N;;;;;
+BCF4;HANGUL SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+BCF5;HANGUL SYLLABLE BOG;Lo;0;L;;;;;N;;;;;
+BCF6;HANGUL SYLLABLE BOGG;Lo;0;L;;;;;N;;;;;
+BCF7;HANGUL SYLLABLE BOGS;Lo;0;L;;;;;N;;;;;
+BCF8;HANGUL SYLLABLE BON;Lo;0;L;;;;;N;;;;;
+BCF9;HANGUL SYLLABLE BONI;Lo;0;L;;;;;N;;;;;
+BCFA;HANGUL SYLLABLE BONH;Lo;0;L;;;;;N;;;;;
+BCFB;HANGUL SYLLABLE BOD;Lo;0;L;;;;;N;;;;;
+BCFC;HANGUL SYLLABLE BOL;Lo;0;L;;;;;N;;;;;
+BCFD;HANGUL SYLLABLE BOLG;Lo;0;L;;;;;N;;;;;
+BCFE;HANGUL SYLLABLE BOLM;Lo;0;L;;;;;N;;;;;
+BCFF;HANGUL SYLLABLE BOLB;Lo;0;L;;;;;N;;;;;
+BD00;HANGUL SYLLABLE BOLS;Lo;0;L;;;;;N;;;;;
+BD01;HANGUL SYLLABLE BOLT;Lo;0;L;;;;;N;;;;;
+BD02;HANGUL SYLLABLE BOLP;Lo;0;L;;;;;N;;;;;
+BD03;HANGUL SYLLABLE BOLH;Lo;0;L;;;;;N;;;;;
+BD04;HANGUL SYLLABLE BOM;Lo;0;L;;;;;N;;;;;
+BD05;HANGUL SYLLABLE BOB;Lo;0;L;;;;;N;;;;;
+BD06;HANGUL SYLLABLE BOBS;Lo;0;L;;;;;N;;;;;
+BD07;HANGUL SYLLABLE BOS;Lo;0;L;;;;;N;;;;;
+BD08;HANGUL SYLLABLE BOSS;Lo;0;L;;;;;N;;;;;
+BD09;HANGUL SYLLABLE BONG;Lo;0;L;;;;;N;;;;;
+BD0A;HANGUL SYLLABLE BOJ;Lo;0;L;;;;;N;;;;;
+BD0B;HANGUL SYLLABLE BOC;Lo;0;L;;;;;N;;;;;
+BD0C;HANGUL SYLLABLE BOK;Lo;0;L;;;;;N;;;;;
+BD0D;HANGUL SYLLABLE BOT;Lo;0;L;;;;;N;;;;;
+BD0E;HANGUL SYLLABLE BOP;Lo;0;L;;;;;N;;;;;
+BD0F;HANGUL SYLLABLE BOH;Lo;0;L;;;;;N;;;;;
+BD10;HANGUL SYLLABLE BWA;Lo;0;L;;;;;N;;;;;
+BD11;HANGUL SYLLABLE BWAG;Lo;0;L;;;;;N;;;;;
+BD12;HANGUL SYLLABLE BWAGG;Lo;0;L;;;;;N;;;;;
+BD13;HANGUL SYLLABLE BWAGS;Lo;0;L;;;;;N;;;;;
+BD14;HANGUL SYLLABLE BWAN;Lo;0;L;;;;;N;;;;;
+BD15;HANGUL SYLLABLE BWANI;Lo;0;L;;;;;N;;;;;
+BD16;HANGUL SYLLABLE BWANH;Lo;0;L;;;;;N;;;;;
+BD17;HANGUL SYLLABLE BWAD;Lo;0;L;;;;;N;;;;;
+BD18;HANGUL SYLLABLE BWAL;Lo;0;L;;;;;N;;;;;
+BD19;HANGUL SYLLABLE BWALG;Lo;0;L;;;;;N;;;;;
+BD1A;HANGUL SYLLABLE BWALM;Lo;0;L;;;;;N;;;;;
+BD1B;HANGUL SYLLABLE BWALB;Lo;0;L;;;;;N;;;;;
+BD1C;HANGUL SYLLABLE BWALS;Lo;0;L;;;;;N;;;;;
+BD1D;HANGUL SYLLABLE BWALT;Lo;0;L;;;;;N;;;;;
+BD1E;HANGUL SYLLABLE BWALP;Lo;0;L;;;;;N;;;;;
+BD1F;HANGUL SYLLABLE BWALH;Lo;0;L;;;;;N;;;;;
+BD20;HANGUL SYLLABLE BWAM;Lo;0;L;;;;;N;;;;;
+BD21;HANGUL SYLLABLE BWAB;Lo;0;L;;;;;N;;;;;
+BD22;HANGUL SYLLABLE BWABS;Lo;0;L;;;;;N;;;;;
+BD23;HANGUL SYLLABLE BWAS;Lo;0;L;;;;;N;;;;;
+BD24;HANGUL SYLLABLE BWASS;Lo;0;L;;;;;N;;;;;
+BD25;HANGUL SYLLABLE BWANG;Lo;0;L;;;;;N;;;;;
+BD26;HANGUL SYLLABLE BWAJ;Lo;0;L;;;;;N;;;;;
+BD27;HANGUL SYLLABLE BWAC;Lo;0;L;;;;;N;;;;;
+BD28;HANGUL SYLLABLE BWAK;Lo;0;L;;;;;N;;;;;
+BD29;HANGUL SYLLABLE BWAT;Lo;0;L;;;;;N;;;;;
+BD2A;HANGUL SYLLABLE BWAP;Lo;0;L;;;;;N;;;;;
+BD2B;HANGUL SYLLABLE BWAH;Lo;0;L;;;;;N;;;;;
+BD2C;HANGUL SYLLABLE BWAE;Lo;0;L;;;;;N;;;;;
+BD2D;HANGUL SYLLABLE BWAEG;Lo;0;L;;;;;N;;;;;
+BD2E;HANGUL SYLLABLE BWAEGG;Lo;0;L;;;;;N;;;;;
+BD2F;HANGUL SYLLABLE BWAEGS;Lo;0;L;;;;;N;;;;;
+BD30;HANGUL SYLLABLE BWAEN;Lo;0;L;;;;;N;;;;;
+BD31;HANGUL SYLLABLE BWAENI;Lo;0;L;;;;;N;;;;;
+BD32;HANGUL SYLLABLE BWAENH;Lo;0;L;;;;;N;;;;;
+BD33;HANGUL SYLLABLE BWAED;Lo;0;L;;;;;N;;;;;
+BD34;HANGUL SYLLABLE BWAEL;Lo;0;L;;;;;N;;;;;
+BD35;HANGUL SYLLABLE BWAELG;Lo;0;L;;;;;N;;;;;
+BD36;HANGUL SYLLABLE BWAELM;Lo;0;L;;;;;N;;;;;
+BD37;HANGUL SYLLABLE BWAELB;Lo;0;L;;;;;N;;;;;
+BD38;HANGUL SYLLABLE BWAELS;Lo;0;L;;;;;N;;;;;
+BD39;HANGUL SYLLABLE BWAELT;Lo;0;L;;;;;N;;;;;
+BD3A;HANGUL SYLLABLE BWAELP;Lo;0;L;;;;;N;;;;;
+BD3B;HANGUL SYLLABLE BWAELH;Lo;0;L;;;;;N;;;;;
+BD3C;HANGUL SYLLABLE BWAEM;Lo;0;L;;;;;N;;;;;
+BD3D;HANGUL SYLLABLE BWAEB;Lo;0;L;;;;;N;;;;;
+BD3E;HANGUL SYLLABLE BWAEBS;Lo;0;L;;;;;N;;;;;
+BD3F;HANGUL SYLLABLE BWAES;Lo;0;L;;;;;N;;;;;
+BD40;HANGUL SYLLABLE BWAESS;Lo;0;L;;;;;N;;;;;
+BD41;HANGUL SYLLABLE BWAENG;Lo;0;L;;;;;N;;;;;
+BD42;HANGUL SYLLABLE BWAEJ;Lo;0;L;;;;;N;;;;;
+BD43;HANGUL SYLLABLE BWAEC;Lo;0;L;;;;;N;;;;;
+BD44;HANGUL SYLLABLE BWAEK;Lo;0;L;;;;;N;;;;;
+BD45;HANGUL SYLLABLE BWAET;Lo;0;L;;;;;N;;;;;
+BD46;HANGUL SYLLABLE BWAEP;Lo;0;L;;;;;N;;;;;
+BD47;HANGUL SYLLABLE BWAEH;Lo;0;L;;;;;N;;;;;
+BD48;HANGUL SYLLABLE BOE;Lo;0;L;;;;;N;;;;;
+BD49;HANGUL SYLLABLE BOEG;Lo;0;L;;;;;N;;;;;
+BD4A;HANGUL SYLLABLE BOEGG;Lo;0;L;;;;;N;;;;;
+BD4B;HANGUL SYLLABLE BOEGS;Lo;0;L;;;;;N;;;;;
+BD4C;HANGUL SYLLABLE BOEN;Lo;0;L;;;;;N;;;;;
+BD4D;HANGUL SYLLABLE BOENI;Lo;0;L;;;;;N;;;;;
+BD4E;HANGUL SYLLABLE BOENH;Lo;0;L;;;;;N;;;;;
+BD4F;HANGUL SYLLABLE BOED;Lo;0;L;;;;;N;;;;;
+BD50;HANGUL SYLLABLE BOEL;Lo;0;L;;;;;N;;;;;
+BD51;HANGUL SYLLABLE BOELG;Lo;0;L;;;;;N;;;;;
+BD52;HANGUL SYLLABLE BOELM;Lo;0;L;;;;;N;;;;;
+BD53;HANGUL SYLLABLE BOELB;Lo;0;L;;;;;N;;;;;
+BD54;HANGUL SYLLABLE BOELS;Lo;0;L;;;;;N;;;;;
+BD55;HANGUL SYLLABLE BOELT;Lo;0;L;;;;;N;;;;;
+BD56;HANGUL SYLLABLE BOELP;Lo;0;L;;;;;N;;;;;
+BD57;HANGUL SYLLABLE BOELH;Lo;0;L;;;;;N;;;;;
+BD58;HANGUL SYLLABLE BOEM;Lo;0;L;;;;;N;;;;;
+BD59;HANGUL SYLLABLE BOEB;Lo;0;L;;;;;N;;;;;
+BD5A;HANGUL SYLLABLE BOEBS;Lo;0;L;;;;;N;;;;;
+BD5B;HANGUL SYLLABLE BOES;Lo;0;L;;;;;N;;;;;
+BD5C;HANGUL SYLLABLE BOESS;Lo;0;L;;;;;N;;;;;
+BD5D;HANGUL SYLLABLE BOENG;Lo;0;L;;;;;N;;;;;
+BD5E;HANGUL SYLLABLE BOEJ;Lo;0;L;;;;;N;;;;;
+BD5F;HANGUL SYLLABLE BOEC;Lo;0;L;;;;;N;;;;;
+BD60;HANGUL SYLLABLE BOEK;Lo;0;L;;;;;N;;;;;
+BD61;HANGUL SYLLABLE BOET;Lo;0;L;;;;;N;;;;;
+BD62;HANGUL SYLLABLE BOEP;Lo;0;L;;;;;N;;;;;
+BD63;HANGUL SYLLABLE BOEH;Lo;0;L;;;;;N;;;;;
+BD64;HANGUL SYLLABLE BYO;Lo;0;L;;;;;N;;;;;
+BD65;HANGUL SYLLABLE BYOG;Lo;0;L;;;;;N;;;;;
+BD66;HANGUL SYLLABLE BYOGG;Lo;0;L;;;;;N;;;;;
+BD67;HANGUL SYLLABLE BYOGS;Lo;0;L;;;;;N;;;;;
+BD68;HANGUL SYLLABLE BYON;Lo;0;L;;;;;N;;;;;
+BD69;HANGUL SYLLABLE BYONI;Lo;0;L;;;;;N;;;;;
+BD6A;HANGUL SYLLABLE BYONH;Lo;0;L;;;;;N;;;;;
+BD6B;HANGUL SYLLABLE BYOD;Lo;0;L;;;;;N;;;;;
+BD6C;HANGUL SYLLABLE BYOL;Lo;0;L;;;;;N;;;;;
+BD6D;HANGUL SYLLABLE BYOLG;Lo;0;L;;;;;N;;;;;
+BD6E;HANGUL SYLLABLE BYOLM;Lo;0;L;;;;;N;;;;;
+BD6F;HANGUL SYLLABLE BYOLB;Lo;0;L;;;;;N;;;;;
+BD70;HANGUL SYLLABLE BYOLS;Lo;0;L;;;;;N;;;;;
+BD71;HANGUL SYLLABLE BYOLT;Lo;0;L;;;;;N;;;;;
+BD72;HANGUL SYLLABLE BYOLP;Lo;0;L;;;;;N;;;;;
+BD73;HANGUL SYLLABLE BYOLH;Lo;0;L;;;;;N;;;;;
+BD74;HANGUL SYLLABLE BYOM;Lo;0;L;;;;;N;;;;;
+BD75;HANGUL SYLLABLE BYOB;Lo;0;L;;;;;N;;;;;
+BD76;HANGUL SYLLABLE BYOBS;Lo;0;L;;;;;N;;;;;
+BD77;HANGUL SYLLABLE BYOS;Lo;0;L;;;;;N;;;;;
+BD78;HANGUL SYLLABLE BYOSS;Lo;0;L;;;;;N;;;;;
+BD79;HANGUL SYLLABLE BYONG;Lo;0;L;;;;;N;;;;;
+BD7A;HANGUL SYLLABLE BYOJ;Lo;0;L;;;;;N;;;;;
+BD7B;HANGUL SYLLABLE BYOC;Lo;0;L;;;;;N;;;;;
+BD7C;HANGUL SYLLABLE BYOK;Lo;0;L;;;;;N;;;;;
+BD7D;HANGUL SYLLABLE BYOT;Lo;0;L;;;;;N;;;;;
+BD7E;HANGUL SYLLABLE BYOP;Lo;0;L;;;;;N;;;;;
+BD7F;HANGUL SYLLABLE BYOH;Lo;0;L;;;;;N;;;;;
+BD80;HANGUL SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+BD81;HANGUL SYLLABLE BUG;Lo;0;L;;;;;N;;;;;
+BD82;HANGUL SYLLABLE BUGG;Lo;0;L;;;;;N;;;;;
+BD83;HANGUL SYLLABLE BUGS;Lo;0;L;;;;;N;;;;;
+BD84;HANGUL SYLLABLE BUN;Lo;0;L;;;;;N;;;;;
+BD85;HANGUL SYLLABLE BUNI;Lo;0;L;;;;;N;;;;;
+BD86;HANGUL SYLLABLE BUNH;Lo;0;L;;;;;N;;;;;
+BD87;HANGUL SYLLABLE BUD;Lo;0;L;;;;;N;;;;;
+BD88;HANGUL SYLLABLE BUL;Lo;0;L;;;;;N;;;;;
+BD89;HANGUL SYLLABLE BULG;Lo;0;L;;;;;N;;;;;
+BD8A;HANGUL SYLLABLE BULM;Lo;0;L;;;;;N;;;;;
+BD8B;HANGUL SYLLABLE BULB;Lo;0;L;;;;;N;;;;;
+BD8C;HANGUL SYLLABLE BULS;Lo;0;L;;;;;N;;;;;
+BD8D;HANGUL SYLLABLE BULT;Lo;0;L;;;;;N;;;;;
+BD8E;HANGUL SYLLABLE BULP;Lo;0;L;;;;;N;;;;;
+BD8F;HANGUL SYLLABLE BULH;Lo;0;L;;;;;N;;;;;
+BD90;HANGUL SYLLABLE BUM;Lo;0;L;;;;;N;;;;;
+BD91;HANGUL SYLLABLE BUB;Lo;0;L;;;;;N;;;;;
+BD92;HANGUL SYLLABLE BUBS;Lo;0;L;;;;;N;;;;;
+BD93;HANGUL SYLLABLE BUS;Lo;0;L;;;;;N;;;;;
+BD94;HANGUL SYLLABLE BUSS;Lo;0;L;;;;;N;;;;;
+BD95;HANGUL SYLLABLE BUNG;Lo;0;L;;;;;N;;;;;
+BD96;HANGUL SYLLABLE BUJ;Lo;0;L;;;;;N;;;;;
+BD97;HANGUL SYLLABLE BUC;Lo;0;L;;;;;N;;;;;
+BD98;HANGUL SYLLABLE BUK;Lo;0;L;;;;;N;;;;;
+BD99;HANGUL SYLLABLE BUT;Lo;0;L;;;;;N;;;;;
+BD9A;HANGUL SYLLABLE BUP;Lo;0;L;;;;;N;;;;;
+BD9B;HANGUL SYLLABLE BUH;Lo;0;L;;;;;N;;;;;
+BD9C;HANGUL SYLLABLE BWEO;Lo;0;L;;;;;N;;;;;
+BD9D;HANGUL SYLLABLE BWEOG;Lo;0;L;;;;;N;;;;;
+BD9E;HANGUL SYLLABLE BWEOGG;Lo;0;L;;;;;N;;;;;
+BD9F;HANGUL SYLLABLE BWEOGS;Lo;0;L;;;;;N;;;;;
+BDA0;HANGUL SYLLABLE BWEON;Lo;0;L;;;;;N;;;;;
+BDA1;HANGUL SYLLABLE BWEONI;Lo;0;L;;;;;N;;;;;
+BDA2;HANGUL SYLLABLE BWEONH;Lo;0;L;;;;;N;;;;;
+BDA3;HANGUL SYLLABLE BWEOD;Lo;0;L;;;;;N;;;;;
+BDA4;HANGUL SYLLABLE BWEOL;Lo;0;L;;;;;N;;;;;
+BDA5;HANGUL SYLLABLE BWEOLG;Lo;0;L;;;;;N;;;;;
+BDA6;HANGUL SYLLABLE BWEOLM;Lo;0;L;;;;;N;;;;;
+BDA7;HANGUL SYLLABLE BWEOLB;Lo;0;L;;;;;N;;;;;
+BDA8;HANGUL SYLLABLE BWEOLS;Lo;0;L;;;;;N;;;;;
+BDA9;HANGUL SYLLABLE BWEOLT;Lo;0;L;;;;;N;;;;;
+BDAA;HANGUL SYLLABLE BWEOLP;Lo;0;L;;;;;N;;;;;
+BDAB;HANGUL SYLLABLE BWEOLH;Lo;0;L;;;;;N;;;;;
+BDAC;HANGUL SYLLABLE BWEOM;Lo;0;L;;;;;N;;;;;
+BDAD;HANGUL SYLLABLE BWEOB;Lo;0;L;;;;;N;;;;;
+BDAE;HANGUL SYLLABLE BWEOBS;Lo;0;L;;;;;N;;;;;
+BDAF;HANGUL SYLLABLE BWEOS;Lo;0;L;;;;;N;;;;;
+BDB0;HANGUL SYLLABLE BWEOSS;Lo;0;L;;;;;N;;;;;
+BDB1;HANGUL SYLLABLE BWEONG;Lo;0;L;;;;;N;;;;;
+BDB2;HANGUL SYLLABLE BWEOJ;Lo;0;L;;;;;N;;;;;
+BDB3;HANGUL SYLLABLE BWEOC;Lo;0;L;;;;;N;;;;;
+BDB4;HANGUL SYLLABLE BWEOK;Lo;0;L;;;;;N;;;;;
+BDB5;HANGUL SYLLABLE BWEOT;Lo;0;L;;;;;N;;;;;
+BDB6;HANGUL SYLLABLE BWEOP;Lo;0;L;;;;;N;;;;;
+BDB7;HANGUL SYLLABLE BWEOH;Lo;0;L;;;;;N;;;;;
+BDB8;HANGUL SYLLABLE BWE;Lo;0;L;;;;;N;;;;;
+BDB9;HANGUL SYLLABLE BWEG;Lo;0;L;;;;;N;;;;;
+BDBA;HANGUL SYLLABLE BWEGG;Lo;0;L;;;;;N;;;;;
+BDBB;HANGUL SYLLABLE BWEGS;Lo;0;L;;;;;N;;;;;
+BDBC;HANGUL SYLLABLE BWEN;Lo;0;L;;;;;N;;;;;
+BDBD;HANGUL SYLLABLE BWENI;Lo;0;L;;;;;N;;;;;
+BDBE;HANGUL SYLLABLE BWENH;Lo;0;L;;;;;N;;;;;
+BDBF;HANGUL SYLLABLE BWED;Lo;0;L;;;;;N;;;;;
+BDC0;HANGUL SYLLABLE BWEL;Lo;0;L;;;;;N;;;;;
+BDC1;HANGUL SYLLABLE BWELG;Lo;0;L;;;;;N;;;;;
+BDC2;HANGUL SYLLABLE BWELM;Lo;0;L;;;;;N;;;;;
+BDC3;HANGUL SYLLABLE BWELB;Lo;0;L;;;;;N;;;;;
+BDC4;HANGUL SYLLABLE BWELS;Lo;0;L;;;;;N;;;;;
+BDC5;HANGUL SYLLABLE BWELT;Lo;0;L;;;;;N;;;;;
+BDC6;HANGUL SYLLABLE BWELP;Lo;0;L;;;;;N;;;;;
+BDC7;HANGUL SYLLABLE BWELH;Lo;0;L;;;;;N;;;;;
+BDC8;HANGUL SYLLABLE BWEM;Lo;0;L;;;;;N;;;;;
+BDC9;HANGUL SYLLABLE BWEB;Lo;0;L;;;;;N;;;;;
+BDCA;HANGUL SYLLABLE BWEBS;Lo;0;L;;;;;N;;;;;
+BDCB;HANGUL SYLLABLE BWES;Lo;0;L;;;;;N;;;;;
+BDCC;HANGUL SYLLABLE BWESS;Lo;0;L;;;;;N;;;;;
+BDCD;HANGUL SYLLABLE BWENG;Lo;0;L;;;;;N;;;;;
+BDCE;HANGUL SYLLABLE BWEJ;Lo;0;L;;;;;N;;;;;
+BDCF;HANGUL SYLLABLE BWEC;Lo;0;L;;;;;N;;;;;
+BDD0;HANGUL SYLLABLE BWEK;Lo;0;L;;;;;N;;;;;
+BDD1;HANGUL SYLLABLE BWET;Lo;0;L;;;;;N;;;;;
+BDD2;HANGUL SYLLABLE BWEP;Lo;0;L;;;;;N;;;;;
+BDD3;HANGUL SYLLABLE BWEH;Lo;0;L;;;;;N;;;;;
+BDD4;HANGUL SYLLABLE BWI;Lo;0;L;;;;;N;;;;;
+BDD5;HANGUL SYLLABLE BWIG;Lo;0;L;;;;;N;;;;;
+BDD6;HANGUL SYLLABLE BWIGG;Lo;0;L;;;;;N;;;;;
+BDD7;HANGUL SYLLABLE BWIGS;Lo;0;L;;;;;N;;;;;
+BDD8;HANGUL SYLLABLE BWIN;Lo;0;L;;;;;N;;;;;
+BDD9;HANGUL SYLLABLE BWINI;Lo;0;L;;;;;N;;;;;
+BDDA;HANGUL SYLLABLE BWINH;Lo;0;L;;;;;N;;;;;
+BDDB;HANGUL SYLLABLE BWID;Lo;0;L;;;;;N;;;;;
+BDDC;HANGUL SYLLABLE BWIL;Lo;0;L;;;;;N;;;;;
+BDDD;HANGUL SYLLABLE BWILG;Lo;0;L;;;;;N;;;;;
+BDDE;HANGUL SYLLABLE BWILM;Lo;0;L;;;;;N;;;;;
+BDDF;HANGUL SYLLABLE BWILB;Lo;0;L;;;;;N;;;;;
+BDE0;HANGUL SYLLABLE BWILS;Lo;0;L;;;;;N;;;;;
+BDE1;HANGUL SYLLABLE BWILT;Lo;0;L;;;;;N;;;;;
+BDE2;HANGUL SYLLABLE BWILP;Lo;0;L;;;;;N;;;;;
+BDE3;HANGUL SYLLABLE BWILH;Lo;0;L;;;;;N;;;;;
+BDE4;HANGUL SYLLABLE BWIM;Lo;0;L;;;;;N;;;;;
+BDE5;HANGUL SYLLABLE BWIB;Lo;0;L;;;;;N;;;;;
+BDE6;HANGUL SYLLABLE BWIBS;Lo;0;L;;;;;N;;;;;
+BDE7;HANGUL SYLLABLE BWIS;Lo;0;L;;;;;N;;;;;
+BDE8;HANGUL SYLLABLE BWISS;Lo;0;L;;;;;N;;;;;
+BDE9;HANGUL SYLLABLE BWING;Lo;0;L;;;;;N;;;;;
+BDEA;HANGUL SYLLABLE BWIJ;Lo;0;L;;;;;N;;;;;
+BDEB;HANGUL SYLLABLE BWIC;Lo;0;L;;;;;N;;;;;
+BDEC;HANGUL SYLLABLE BWIK;Lo;0;L;;;;;N;;;;;
+BDED;HANGUL SYLLABLE BWIT;Lo;0;L;;;;;N;;;;;
+BDEE;HANGUL SYLLABLE BWIP;Lo;0;L;;;;;N;;;;;
+BDEF;HANGUL SYLLABLE BWIH;Lo;0;L;;;;;N;;;;;
+BDF0;HANGUL SYLLABLE BYU;Lo;0;L;;;;;N;;;;;
+BDF1;HANGUL SYLLABLE BYUG;Lo;0;L;;;;;N;;;;;
+BDF2;HANGUL SYLLABLE BYUGG;Lo;0;L;;;;;N;;;;;
+BDF3;HANGUL SYLLABLE BYUGS;Lo;0;L;;;;;N;;;;;
+BDF4;HANGUL SYLLABLE BYUN;Lo;0;L;;;;;N;;;;;
+BDF5;HANGUL SYLLABLE BYUNI;Lo;0;L;;;;;N;;;;;
+BDF6;HANGUL SYLLABLE BYUNH;Lo;0;L;;;;;N;;;;;
+BDF7;HANGUL SYLLABLE BYUD;Lo;0;L;;;;;N;;;;;
+BDF8;HANGUL SYLLABLE BYUL;Lo;0;L;;;;;N;;;;;
+BDF9;HANGUL SYLLABLE BYULG;Lo;0;L;;;;;N;;;;;
+BDFA;HANGUL SYLLABLE BYULM;Lo;0;L;;;;;N;;;;;
+BDFB;HANGUL SYLLABLE BYULB;Lo;0;L;;;;;N;;;;;
+BDFC;HANGUL SYLLABLE BYULS;Lo;0;L;;;;;N;;;;;
+BDFD;HANGUL SYLLABLE BYULT;Lo;0;L;;;;;N;;;;;
+BDFE;HANGUL SYLLABLE BYULP;Lo;0;L;;;;;N;;;;;
+BDFF;HANGUL SYLLABLE BYULH;Lo;0;L;;;;;N;;;;;
+BE00;HANGUL SYLLABLE BYUM;Lo;0;L;;;;;N;;;;;
+BE01;HANGUL SYLLABLE BYUB;Lo;0;L;;;;;N;;;;;
+BE02;HANGUL SYLLABLE BYUBS;Lo;0;L;;;;;N;;;;;
+BE03;HANGUL SYLLABLE BYUS;Lo;0;L;;;;;N;;;;;
+BE04;HANGUL SYLLABLE BYUSS;Lo;0;L;;;;;N;;;;;
+BE05;HANGUL SYLLABLE BYUNG;Lo;0;L;;;;;N;;;;;
+BE06;HANGUL SYLLABLE BYUJ;Lo;0;L;;;;;N;;;;;
+BE07;HANGUL SYLLABLE BYUC;Lo;0;L;;;;;N;;;;;
+BE08;HANGUL SYLLABLE BYUK;Lo;0;L;;;;;N;;;;;
+BE09;HANGUL SYLLABLE BYUT;Lo;0;L;;;;;N;;;;;
+BE0A;HANGUL SYLLABLE BYUP;Lo;0;L;;;;;N;;;;;
+BE0B;HANGUL SYLLABLE BYUH;Lo;0;L;;;;;N;;;;;
+BE0C;HANGUL SYLLABLE BEU;Lo;0;L;;;;;N;;;;;
+BE0D;HANGUL SYLLABLE BEUG;Lo;0;L;;;;;N;;;;;
+BE0E;HANGUL SYLLABLE BEUGG;Lo;0;L;;;;;N;;;;;
+BE0F;HANGUL SYLLABLE BEUGS;Lo;0;L;;;;;N;;;;;
+BE10;HANGUL SYLLABLE BEUN;Lo;0;L;;;;;N;;;;;
+BE11;HANGUL SYLLABLE BEUNI;Lo;0;L;;;;;N;;;;;
+BE12;HANGUL SYLLABLE BEUNH;Lo;0;L;;;;;N;;;;;
+BE13;HANGUL SYLLABLE BEUD;Lo;0;L;;;;;N;;;;;
+BE14;HANGUL SYLLABLE BEUL;Lo;0;L;;;;;N;;;;;
+BE15;HANGUL SYLLABLE BEULG;Lo;0;L;;;;;N;;;;;
+BE16;HANGUL SYLLABLE BEULM;Lo;0;L;;;;;N;;;;;
+BE17;HANGUL SYLLABLE BEULB;Lo;0;L;;;;;N;;;;;
+BE18;HANGUL SYLLABLE BEULS;Lo;0;L;;;;;N;;;;;
+BE19;HANGUL SYLLABLE BEULT;Lo;0;L;;;;;N;;;;;
+BE1A;HANGUL SYLLABLE BEULP;Lo;0;L;;;;;N;;;;;
+BE1B;HANGUL SYLLABLE BEULH;Lo;0;L;;;;;N;;;;;
+BE1C;HANGUL SYLLABLE BEUM;Lo;0;L;;;;;N;;;;;
+BE1D;HANGUL SYLLABLE BEUB;Lo;0;L;;;;;N;;;;;
+BE1E;HANGUL SYLLABLE BEUBS;Lo;0;L;;;;;N;;;;;
+BE1F;HANGUL SYLLABLE BEUS;Lo;0;L;;;;;N;;;;;
+BE20;HANGUL SYLLABLE BEUSS;Lo;0;L;;;;;N;;;;;
+BE21;HANGUL SYLLABLE BEUNG;Lo;0;L;;;;;N;;;;;
+BE22;HANGUL SYLLABLE BEUJ;Lo;0;L;;;;;N;;;;;
+BE23;HANGUL SYLLABLE BEUC;Lo;0;L;;;;;N;;;;;
+BE24;HANGUL SYLLABLE BEUK;Lo;0;L;;;;;N;;;;;
+BE25;HANGUL SYLLABLE BEUT;Lo;0;L;;;;;N;;;;;
+BE26;HANGUL SYLLABLE BEUP;Lo;0;L;;;;;N;;;;;
+BE27;HANGUL SYLLABLE BEUH;Lo;0;L;;;;;N;;;;;
+BE28;HANGUL SYLLABLE BYI;Lo;0;L;;;;;N;;;;;
+BE29;HANGUL SYLLABLE BYIG;Lo;0;L;;;;;N;;;;;
+BE2A;HANGUL SYLLABLE BYIGG;Lo;0;L;;;;;N;;;;;
+BE2B;HANGUL SYLLABLE BYIGS;Lo;0;L;;;;;N;;;;;
+BE2C;HANGUL SYLLABLE BYIN;Lo;0;L;;;;;N;;;;;
+BE2D;HANGUL SYLLABLE BYINI;Lo;0;L;;;;;N;;;;;
+BE2E;HANGUL SYLLABLE BYINH;Lo;0;L;;;;;N;;;;;
+BE2F;HANGUL SYLLABLE BYID;Lo;0;L;;;;;N;;;;;
+BE30;HANGUL SYLLABLE BYIL;Lo;0;L;;;;;N;;;;;
+BE31;HANGUL SYLLABLE BYILG;Lo;0;L;;;;;N;;;;;
+BE32;HANGUL SYLLABLE BYILM;Lo;0;L;;;;;N;;;;;
+BE33;HANGUL SYLLABLE BYILB;Lo;0;L;;;;;N;;;;;
+BE34;HANGUL SYLLABLE BYILS;Lo;0;L;;;;;N;;;;;
+BE35;HANGUL SYLLABLE BYILT;Lo;0;L;;;;;N;;;;;
+BE36;HANGUL SYLLABLE BYILP;Lo;0;L;;;;;N;;;;;
+BE37;HANGUL SYLLABLE BYILH;Lo;0;L;;;;;N;;;;;
+BE38;HANGUL SYLLABLE BYIM;Lo;0;L;;;;;N;;;;;
+BE39;HANGUL SYLLABLE BYIB;Lo;0;L;;;;;N;;;;;
+BE3A;HANGUL SYLLABLE BYIBS;Lo;0;L;;;;;N;;;;;
+BE3B;HANGUL SYLLABLE BYIS;Lo;0;L;;;;;N;;;;;
+BE3C;HANGUL SYLLABLE BYISS;Lo;0;L;;;;;N;;;;;
+BE3D;HANGUL SYLLABLE BYING;Lo;0;L;;;;;N;;;;;
+BE3E;HANGUL SYLLABLE BYIJ;Lo;0;L;;;;;N;;;;;
+BE3F;HANGUL SYLLABLE BYIC;Lo;0;L;;;;;N;;;;;
+BE40;HANGUL SYLLABLE BYIK;Lo;0;L;;;;;N;;;;;
+BE41;HANGUL SYLLABLE BYIT;Lo;0;L;;;;;N;;;;;
+BE42;HANGUL SYLLABLE BYIP;Lo;0;L;;;;;N;;;;;
+BE43;HANGUL SYLLABLE BYIH;Lo;0;L;;;;;N;;;;;
+BE44;HANGUL SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+BE45;HANGUL SYLLABLE BIG;Lo;0;L;;;;;N;;;;;
+BE46;HANGUL SYLLABLE BIGG;Lo;0;L;;;;;N;;;;;
+BE47;HANGUL SYLLABLE BIGS;Lo;0;L;;;;;N;;;;;
+BE48;HANGUL SYLLABLE BIN;Lo;0;L;;;;;N;;;;;
+BE49;HANGUL SYLLABLE BINI;Lo;0;L;;;;;N;;;;;
+BE4A;HANGUL SYLLABLE BINH;Lo;0;L;;;;;N;;;;;
+BE4B;HANGUL SYLLABLE BID;Lo;0;L;;;;;N;;;;;
+BE4C;HANGUL SYLLABLE BIL;Lo;0;L;;;;;N;;;;;
+BE4D;HANGUL SYLLABLE BILG;Lo;0;L;;;;;N;;;;;
+BE4E;HANGUL SYLLABLE BILM;Lo;0;L;;;;;N;;;;;
+BE4F;HANGUL SYLLABLE BILB;Lo;0;L;;;;;N;;;;;
+BE50;HANGUL SYLLABLE BILS;Lo;0;L;;;;;N;;;;;
+BE51;HANGUL SYLLABLE BILT;Lo;0;L;;;;;N;;;;;
+BE52;HANGUL SYLLABLE BILP;Lo;0;L;;;;;N;;;;;
+BE53;HANGUL SYLLABLE BILH;Lo;0;L;;;;;N;;;;;
+BE54;HANGUL SYLLABLE BIM;Lo;0;L;;;;;N;;;;;
+BE55;HANGUL SYLLABLE BIB;Lo;0;L;;;;;N;;;;;
+BE56;HANGUL SYLLABLE BIBS;Lo;0;L;;;;;N;;;;;
+BE57;HANGUL SYLLABLE BIS;Lo;0;L;;;;;N;;;;;
+BE58;HANGUL SYLLABLE BISS;Lo;0;L;;;;;N;;;;;
+BE59;HANGUL SYLLABLE BING;Lo;0;L;;;;;N;;;;;
+BE5A;HANGUL SYLLABLE BIJ;Lo;0;L;;;;;N;;;;;
+BE5B;HANGUL SYLLABLE BIC;Lo;0;L;;;;;N;;;;;
+BE5C;HANGUL SYLLABLE BIK;Lo;0;L;;;;;N;;;;;
+BE5D;HANGUL SYLLABLE BIT;Lo;0;L;;;;;N;;;;;
+BE5E;HANGUL SYLLABLE BIP;Lo;0;L;;;;;N;;;;;
+BE5F;HANGUL SYLLABLE BIH;Lo;0;L;;;;;N;;;;;
+BE60;HANGUL SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
+BE61;HANGUL SYLLABLE BBAG;Lo;0;L;;;;;N;;;;;
+BE62;HANGUL SYLLABLE BBAGG;Lo;0;L;;;;;N;;;;;
+BE63;HANGUL SYLLABLE BBAGS;Lo;0;L;;;;;N;;;;;
+BE64;HANGUL SYLLABLE BBAN;Lo;0;L;;;;;N;;;;;
+BE65;HANGUL SYLLABLE BBANI;Lo;0;L;;;;;N;;;;;
+BE66;HANGUL SYLLABLE BBANH;Lo;0;L;;;;;N;;;;;
+BE67;HANGUL SYLLABLE BBAD;Lo;0;L;;;;;N;;;;;
+BE68;HANGUL SYLLABLE BBAL;Lo;0;L;;;;;N;;;;;
+BE69;HANGUL SYLLABLE BBALG;Lo;0;L;;;;;N;;;;;
+BE6A;HANGUL SYLLABLE BBALM;Lo;0;L;;;;;N;;;;;
+BE6B;HANGUL SYLLABLE BBALB;Lo;0;L;;;;;N;;;;;
+BE6C;HANGUL SYLLABLE BBALS;Lo;0;L;;;;;N;;;;;
+BE6D;HANGUL SYLLABLE BBALT;Lo;0;L;;;;;N;;;;;
+BE6E;HANGUL SYLLABLE BBALP;Lo;0;L;;;;;N;;;;;
+BE6F;HANGUL SYLLABLE BBALH;Lo;0;L;;;;;N;;;;;
+BE70;HANGUL SYLLABLE BBAM;Lo;0;L;;;;;N;;;;;
+BE71;HANGUL SYLLABLE BBAB;Lo;0;L;;;;;N;;;;;
+BE72;HANGUL SYLLABLE BBABS;Lo;0;L;;;;;N;;;;;
+BE73;HANGUL SYLLABLE BBAS;Lo;0;L;;;;;N;;;;;
+BE74;HANGUL SYLLABLE BBASS;Lo;0;L;;;;;N;;;;;
+BE75;HANGUL SYLLABLE BBANG;Lo;0;L;;;;;N;;;;;
+BE76;HANGUL SYLLABLE BBAJ;Lo;0;L;;;;;N;;;;;
+BE77;HANGUL SYLLABLE BBAC;Lo;0;L;;;;;N;;;;;
+BE78;HANGUL SYLLABLE BBAK;Lo;0;L;;;;;N;;;;;
+BE79;HANGUL SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;
+BE7A;HANGUL SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;
+BE7B;HANGUL SYLLABLE BBAH;Lo;0;L;;;;;N;;;;;
+BE7C;HANGUL SYLLABLE BBAE;Lo;0;L;;;;;N;;;;;
+BE7D;HANGUL SYLLABLE BBAEG;Lo;0;L;;;;;N;;;;;
+BE7E;HANGUL SYLLABLE BBAEGG;Lo;0;L;;;;;N;;;;;
+BE7F;HANGUL SYLLABLE BBAEGS;Lo;0;L;;;;;N;;;;;
+BE80;HANGUL SYLLABLE BBAEN;Lo;0;L;;;;;N;;;;;
+BE81;HANGUL SYLLABLE BBAENI;Lo;0;L;;;;;N;;;;;
+BE82;HANGUL SYLLABLE BBAENH;Lo;0;L;;;;;N;;;;;
+BE83;HANGUL SYLLABLE BBAED;Lo;0;L;;;;;N;;;;;
+BE84;HANGUL SYLLABLE BBAEL;Lo;0;L;;;;;N;;;;;
+BE85;HANGUL SYLLABLE BBAELG;Lo;0;L;;;;;N;;;;;
+BE86;HANGUL SYLLABLE BBAELM;Lo;0;L;;;;;N;;;;;
+BE87;HANGUL SYLLABLE BBAELB;Lo;0;L;;;;;N;;;;;
+BE88;HANGUL SYLLABLE BBAELS;Lo;0;L;;;;;N;;;;;
+BE89;HANGUL SYLLABLE BBAELT;Lo;0;L;;;;;N;;;;;
+BE8A;HANGUL SYLLABLE BBAELP;Lo;0;L;;;;;N;;;;;
+BE8B;HANGUL SYLLABLE BBAELH;Lo;0;L;;;;;N;;;;;
+BE8C;HANGUL SYLLABLE BBAEM;Lo;0;L;;;;;N;;;;;
+BE8D;HANGUL SYLLABLE BBAEB;Lo;0;L;;;;;N;;;;;
+BE8E;HANGUL SYLLABLE BBAEBS;Lo;0;L;;;;;N;;;;;
+BE8F;HANGUL SYLLABLE BBAES;Lo;0;L;;;;;N;;;;;
+BE90;HANGUL SYLLABLE BBAESS;Lo;0;L;;;;;N;;;;;
+BE91;HANGUL SYLLABLE BBAENG;Lo;0;L;;;;;N;;;;;
+BE92;HANGUL SYLLABLE BBAEJ;Lo;0;L;;;;;N;;;;;
+BE93;HANGUL SYLLABLE BBAEC;Lo;0;L;;;;;N;;;;;
+BE94;HANGUL SYLLABLE BBAEK;Lo;0;L;;;;;N;;;;;
+BE95;HANGUL SYLLABLE BBAET;Lo;0;L;;;;;N;;;;;
+BE96;HANGUL SYLLABLE BBAEP;Lo;0;L;;;;;N;;;;;
+BE97;HANGUL SYLLABLE BBAEH;Lo;0;L;;;;;N;;;;;
+BE98;HANGUL SYLLABLE BBYA;Lo;0;L;;;;;N;;;;;
+BE99;HANGUL SYLLABLE BBYAG;Lo;0;L;;;;;N;;;;;
+BE9A;HANGUL SYLLABLE BBYAGG;Lo;0;L;;;;;N;;;;;
+BE9B;HANGUL SYLLABLE BBYAGS;Lo;0;L;;;;;N;;;;;
+BE9C;HANGUL SYLLABLE BBYAN;Lo;0;L;;;;;N;;;;;
+BE9D;HANGUL SYLLABLE BBYANI;Lo;0;L;;;;;N;;;;;
+BE9E;HANGUL SYLLABLE BBYANH;Lo;0;L;;;;;N;;;;;
+BE9F;HANGUL SYLLABLE BBYAD;Lo;0;L;;;;;N;;;;;
+BEA0;HANGUL SYLLABLE BBYAL;Lo;0;L;;;;;N;;;;;
+BEA1;HANGUL SYLLABLE BBYALG;Lo;0;L;;;;;N;;;;;
+BEA2;HANGUL SYLLABLE BBYALM;Lo;0;L;;;;;N;;;;;
+BEA3;HANGUL SYLLABLE BBYALB;Lo;0;L;;;;;N;;;;;
+BEA4;HANGUL SYLLABLE BBYALS;Lo;0;L;;;;;N;;;;;
+BEA5;HANGUL SYLLABLE BBYALT;Lo;0;L;;;;;N;;;;;
+BEA6;HANGUL SYLLABLE BBYALP;Lo;0;L;;;;;N;;;;;
+BEA7;HANGUL SYLLABLE BBYALH;Lo;0;L;;;;;N;;;;;
+BEA8;HANGUL SYLLABLE BBYAM;Lo;0;L;;;;;N;;;;;
+BEA9;HANGUL SYLLABLE BBYAB;Lo;0;L;;;;;N;;;;;
+BEAA;HANGUL SYLLABLE BBYABS;Lo;0;L;;;;;N;;;;;
+BEAB;HANGUL SYLLABLE BBYAS;Lo;0;L;;;;;N;;;;;
+BEAC;HANGUL SYLLABLE BBYASS;Lo;0;L;;;;;N;;;;;
+BEAD;HANGUL SYLLABLE BBYANG;Lo;0;L;;;;;N;;;;;
+BEAE;HANGUL SYLLABLE BBYAJ;Lo;0;L;;;;;N;;;;;
+BEAF;HANGUL SYLLABLE BBYAC;Lo;0;L;;;;;N;;;;;
+BEB0;HANGUL SYLLABLE BBYAK;Lo;0;L;;;;;N;;;;;
+BEB1;HANGUL SYLLABLE BBYAT;Lo;0;L;;;;;N;;;;;
+BEB2;HANGUL SYLLABLE BBYAP;Lo;0;L;;;;;N;;;;;
+BEB3;HANGUL SYLLABLE BBYAH;Lo;0;L;;;;;N;;;;;
+BEB4;HANGUL SYLLABLE BBYAE;Lo;0;L;;;;;N;;;;;
+BEB5;HANGUL SYLLABLE BBYAEG;Lo;0;L;;;;;N;;;;;
+BEB6;HANGUL SYLLABLE BBYAEGG;Lo;0;L;;;;;N;;;;;
+BEB7;HANGUL SYLLABLE BBYAEGS;Lo;0;L;;;;;N;;;;;
+BEB8;HANGUL SYLLABLE BBYAEN;Lo;0;L;;;;;N;;;;;
+BEB9;HANGUL SYLLABLE BBYAENI;Lo;0;L;;;;;N;;;;;
+BEBA;HANGUL SYLLABLE BBYAENH;Lo;0;L;;;;;N;;;;;
+BEBB;HANGUL SYLLABLE BBYAED;Lo;0;L;;;;;N;;;;;
+BEBC;HANGUL SYLLABLE BBYAEL;Lo;0;L;;;;;N;;;;;
+BEBD;HANGUL SYLLABLE BBYAELG;Lo;0;L;;;;;N;;;;;
+BEBE;HANGUL SYLLABLE BBYAELM;Lo;0;L;;;;;N;;;;;
+BEBF;HANGUL SYLLABLE BBYAELB;Lo;0;L;;;;;N;;;;;
+BEC0;HANGUL SYLLABLE BBYAELS;Lo;0;L;;;;;N;;;;;
+BEC1;HANGUL SYLLABLE BBYAELT;Lo;0;L;;;;;N;;;;;
+BEC2;HANGUL SYLLABLE BBYAELP;Lo;0;L;;;;;N;;;;;
+BEC3;HANGUL SYLLABLE BBYAELH;Lo;0;L;;;;;N;;;;;
+BEC4;HANGUL SYLLABLE BBYAEM;Lo;0;L;;;;;N;;;;;
+BEC5;HANGUL SYLLABLE BBYAEB;Lo;0;L;;;;;N;;;;;
+BEC6;HANGUL SYLLABLE BBYAEBS;Lo;0;L;;;;;N;;;;;
+BEC7;HANGUL SYLLABLE BBYAES;Lo;0;L;;;;;N;;;;;
+BEC8;HANGUL SYLLABLE BBYAESS;Lo;0;L;;;;;N;;;;;
+BEC9;HANGUL SYLLABLE BBYAENG;Lo;0;L;;;;;N;;;;;
+BECA;HANGUL SYLLABLE BBYAEJ;Lo;0;L;;;;;N;;;;;
+BECB;HANGUL SYLLABLE BBYAEC;Lo;0;L;;;;;N;;;;;
+BECC;HANGUL SYLLABLE BBYAEK;Lo;0;L;;;;;N;;;;;
+BECD;HANGUL SYLLABLE BBYAET;Lo;0;L;;;;;N;;;;;
+BECE;HANGUL SYLLABLE BBYAEP;Lo;0;L;;;;;N;;;;;
+BECF;HANGUL SYLLABLE BBYAEH;Lo;0;L;;;;;N;;;;;
+BED0;HANGUL SYLLABLE BBEO;Lo;0;L;;;;;N;;;;;
+BED1;HANGUL SYLLABLE BBEOG;Lo;0;L;;;;;N;;;;;
+BED2;HANGUL SYLLABLE BBEOGG;Lo;0;L;;;;;N;;;;;
+BED3;HANGUL SYLLABLE BBEOGS;Lo;0;L;;;;;N;;;;;
+BED4;HANGUL SYLLABLE BBEON;Lo;0;L;;;;;N;;;;;
+BED5;HANGUL SYLLABLE BBEONI;Lo;0;L;;;;;N;;;;;
+BED6;HANGUL SYLLABLE BBEONH;Lo;0;L;;;;;N;;;;;
+BED7;HANGUL SYLLABLE BBEOD;Lo;0;L;;;;;N;;;;;
+BED8;HANGUL SYLLABLE BBEOL;Lo;0;L;;;;;N;;;;;
+BED9;HANGUL SYLLABLE BBEOLG;Lo;0;L;;;;;N;;;;;
+BEDA;HANGUL SYLLABLE BBEOLM;Lo;0;L;;;;;N;;;;;
+BEDB;HANGUL SYLLABLE BBEOLB;Lo;0;L;;;;;N;;;;;
+BEDC;HANGUL SYLLABLE BBEOLS;Lo;0;L;;;;;N;;;;;
+BEDD;HANGUL SYLLABLE BBEOLT;Lo;0;L;;;;;N;;;;;
+BEDE;HANGUL SYLLABLE BBEOLP;Lo;0;L;;;;;N;;;;;
+BEDF;HANGUL SYLLABLE BBEOLH;Lo;0;L;;;;;N;;;;;
+BEE0;HANGUL SYLLABLE BBEOM;Lo;0;L;;;;;N;;;;;
+BEE1;HANGUL SYLLABLE BBEOB;Lo;0;L;;;;;N;;;;;
+BEE2;HANGUL SYLLABLE BBEOBS;Lo;0;L;;;;;N;;;;;
+BEE3;HANGUL SYLLABLE BBEOS;Lo;0;L;;;;;N;;;;;
+BEE4;HANGUL SYLLABLE BBEOSS;Lo;0;L;;;;;N;;;;;
+BEE5;HANGUL SYLLABLE BBEONG;Lo;0;L;;;;;N;;;;;
+BEE6;HANGUL SYLLABLE BBEOJ;Lo;0;L;;;;;N;;;;;
+BEE7;HANGUL SYLLABLE BBEOC;Lo;0;L;;;;;N;;;;;
+BEE8;HANGUL SYLLABLE BBEOK;Lo;0;L;;;;;N;;;;;
+BEE9;HANGUL SYLLABLE BBEOT;Lo;0;L;;;;;N;;;;;
+BEEA;HANGUL SYLLABLE BBEOP;Lo;0;L;;;;;N;;;;;
+BEEB;HANGUL SYLLABLE BBEOH;Lo;0;L;;;;;N;;;;;
+BEEC;HANGUL SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
+BEED;HANGUL SYLLABLE BBEG;Lo;0;L;;;;;N;;;;;
+BEEE;HANGUL SYLLABLE BBEGG;Lo;0;L;;;;;N;;;;;
+BEEF;HANGUL SYLLABLE BBEGS;Lo;0;L;;;;;N;;;;;
+BEF0;HANGUL SYLLABLE BBEN;Lo;0;L;;;;;N;;;;;
+BEF1;HANGUL SYLLABLE BBENI;Lo;0;L;;;;;N;;;;;
+BEF2;HANGUL SYLLABLE BBENH;Lo;0;L;;;;;N;;;;;
+BEF3;HANGUL SYLLABLE BBED;Lo;0;L;;;;;N;;;;;
+BEF4;HANGUL SYLLABLE BBEL;Lo;0;L;;;;;N;;;;;
+BEF5;HANGUL SYLLABLE BBELG;Lo;0;L;;;;;N;;;;;
+BEF6;HANGUL SYLLABLE BBELM;Lo;0;L;;;;;N;;;;;
+BEF7;HANGUL SYLLABLE BBELB;Lo;0;L;;;;;N;;;;;
+BEF8;HANGUL SYLLABLE BBELS;Lo;0;L;;;;;N;;;;;
+BEF9;HANGUL SYLLABLE BBELT;Lo;0;L;;;;;N;;;;;
+BEFA;HANGUL SYLLABLE BBELP;Lo;0;L;;;;;N;;;;;
+BEFB;HANGUL SYLLABLE BBELH;Lo;0;L;;;;;N;;;;;
+BEFC;HANGUL SYLLABLE BBEM;Lo;0;L;;;;;N;;;;;
+BEFD;HANGUL SYLLABLE BBEB;Lo;0;L;;;;;N;;;;;
+BEFE;HANGUL SYLLABLE BBEBS;Lo;0;L;;;;;N;;;;;
+BEFF;HANGUL SYLLABLE BBES;Lo;0;L;;;;;N;;;;;
+BF00;HANGUL SYLLABLE BBESS;Lo;0;L;;;;;N;;;;;
+BF01;HANGUL SYLLABLE BBENG;Lo;0;L;;;;;N;;;;;
+BF02;HANGUL SYLLABLE BBEJ;Lo;0;L;;;;;N;;;;;
+BF03;HANGUL SYLLABLE BBEC;Lo;0;L;;;;;N;;;;;
+BF04;HANGUL SYLLABLE BBEK;Lo;0;L;;;;;N;;;;;
+BF05;HANGUL SYLLABLE BBET;Lo;0;L;;;;;N;;;;;
+BF06;HANGUL SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;
+BF07;HANGUL SYLLABLE BBEH;Lo;0;L;;;;;N;;;;;
+BF08;HANGUL SYLLABLE BBYEO;Lo;0;L;;;;;N;;;;;
+BF09;HANGUL SYLLABLE BBYEOG;Lo;0;L;;;;;N;;;;;
+BF0A;HANGUL SYLLABLE BBYEOGG;Lo;0;L;;;;;N;;;;;
+BF0B;HANGUL SYLLABLE BBYEOGS;Lo;0;L;;;;;N;;;;;
+BF0C;HANGUL SYLLABLE BBYEON;Lo;0;L;;;;;N;;;;;
+BF0D;HANGUL SYLLABLE BBYEONI;Lo;0;L;;;;;N;;;;;
+BF0E;HANGUL SYLLABLE BBYEONH;Lo;0;L;;;;;N;;;;;
+BF0F;HANGUL SYLLABLE BBYEOD;Lo;0;L;;;;;N;;;;;
+BF10;HANGUL SYLLABLE BBYEOL;Lo;0;L;;;;;N;;;;;
+BF11;HANGUL SYLLABLE BBYEOLG;Lo;0;L;;;;;N;;;;;
+BF12;HANGUL SYLLABLE BBYEOLM;Lo;0;L;;;;;N;;;;;
+BF13;HANGUL SYLLABLE BBYEOLB;Lo;0;L;;;;;N;;;;;
+BF14;HANGUL SYLLABLE BBYEOLS;Lo;0;L;;;;;N;;;;;
+BF15;HANGUL SYLLABLE BBYEOLT;Lo;0;L;;;;;N;;;;;
+BF16;HANGUL SYLLABLE BBYEOLP;Lo;0;L;;;;;N;;;;;
+BF17;HANGUL SYLLABLE BBYEOLH;Lo;0;L;;;;;N;;;;;
+BF18;HANGUL SYLLABLE BBYEOM;Lo;0;L;;;;;N;;;;;
+BF19;HANGUL SYLLABLE BBYEOB;Lo;0;L;;;;;N;;;;;
+BF1A;HANGUL SYLLABLE BBYEOBS;Lo;0;L;;;;;N;;;;;
+BF1B;HANGUL SYLLABLE BBYEOS;Lo;0;L;;;;;N;;;;;
+BF1C;HANGUL SYLLABLE BBYEOSS;Lo;0;L;;;;;N;;;;;
+BF1D;HANGUL SYLLABLE BBYEONG;Lo;0;L;;;;;N;;;;;
+BF1E;HANGUL SYLLABLE BBYEOJ;Lo;0;L;;;;;N;;;;;
+BF1F;HANGUL SYLLABLE BBYEOC;Lo;0;L;;;;;N;;;;;
+BF20;HANGUL SYLLABLE BBYEOK;Lo;0;L;;;;;N;;;;;
+BF21;HANGUL SYLLABLE BBYEOT;Lo;0;L;;;;;N;;;;;
+BF22;HANGUL SYLLABLE BBYEOP;Lo;0;L;;;;;N;;;;;
+BF23;HANGUL SYLLABLE BBYEOH;Lo;0;L;;;;;N;;;;;
+BF24;HANGUL SYLLABLE BBYE;Lo;0;L;;;;;N;;;;;
+BF25;HANGUL SYLLABLE BBYEG;Lo;0;L;;;;;N;;;;;
+BF26;HANGUL SYLLABLE BBYEGG;Lo;0;L;;;;;N;;;;;
+BF27;HANGUL SYLLABLE BBYEGS;Lo;0;L;;;;;N;;;;;
+BF28;HANGUL SYLLABLE BBYEN;Lo;0;L;;;;;N;;;;;
+BF29;HANGUL SYLLABLE BBYENI;Lo;0;L;;;;;N;;;;;
+BF2A;HANGUL SYLLABLE BBYENH;Lo;0;L;;;;;N;;;;;
+BF2B;HANGUL SYLLABLE BBYED;Lo;0;L;;;;;N;;;;;
+BF2C;HANGUL SYLLABLE BBYEL;Lo;0;L;;;;;N;;;;;
+BF2D;HANGUL SYLLABLE BBYELG;Lo;0;L;;;;;N;;;;;
+BF2E;HANGUL SYLLABLE BBYELM;Lo;0;L;;;;;N;;;;;
+BF2F;HANGUL SYLLABLE BBYELB;Lo;0;L;;;;;N;;;;;
+BF30;HANGUL SYLLABLE BBYELS;Lo;0;L;;;;;N;;;;;
+BF31;HANGUL SYLLABLE BBYELT;Lo;0;L;;;;;N;;;;;
+BF32;HANGUL SYLLABLE BBYELP;Lo;0;L;;;;;N;;;;;
+BF33;HANGUL SYLLABLE BBYELH;Lo;0;L;;;;;N;;;;;
+BF34;HANGUL SYLLABLE BBYEM;Lo;0;L;;;;;N;;;;;
+BF35;HANGUL SYLLABLE BBYEB;Lo;0;L;;;;;N;;;;;
+BF36;HANGUL SYLLABLE BBYEBS;Lo;0;L;;;;;N;;;;;
+BF37;HANGUL SYLLABLE BBYES;Lo;0;L;;;;;N;;;;;
+BF38;HANGUL SYLLABLE BBYESS;Lo;0;L;;;;;N;;;;;
+BF39;HANGUL SYLLABLE BBYENG;Lo;0;L;;;;;N;;;;;
+BF3A;HANGUL SYLLABLE BBYEJ;Lo;0;L;;;;;N;;;;;
+BF3B;HANGUL SYLLABLE BBYEC;Lo;0;L;;;;;N;;;;;
+BF3C;HANGUL SYLLABLE BBYEK;Lo;0;L;;;;;N;;;;;
+BF3D;HANGUL SYLLABLE BBYET;Lo;0;L;;;;;N;;;;;
+BF3E;HANGUL SYLLABLE BBYEP;Lo;0;L;;;;;N;;;;;
+BF3F;HANGUL SYLLABLE BBYEH;Lo;0;L;;;;;N;;;;;
+BF40;HANGUL SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+BF41;HANGUL SYLLABLE BBOG;Lo;0;L;;;;;N;;;;;
+BF42;HANGUL SYLLABLE BBOGG;Lo;0;L;;;;;N;;;;;
+BF43;HANGUL SYLLABLE BBOGS;Lo;0;L;;;;;N;;;;;
+BF44;HANGUL SYLLABLE BBON;Lo;0;L;;;;;N;;;;;
+BF45;HANGUL SYLLABLE BBONI;Lo;0;L;;;;;N;;;;;
+BF46;HANGUL SYLLABLE BBONH;Lo;0;L;;;;;N;;;;;
+BF47;HANGUL SYLLABLE BBOD;Lo;0;L;;;;;N;;;;;
+BF48;HANGUL SYLLABLE BBOL;Lo;0;L;;;;;N;;;;;
+BF49;HANGUL SYLLABLE BBOLG;Lo;0;L;;;;;N;;;;;
+BF4A;HANGUL SYLLABLE BBOLM;Lo;0;L;;;;;N;;;;;
+BF4B;HANGUL SYLLABLE BBOLB;Lo;0;L;;;;;N;;;;;
+BF4C;HANGUL SYLLABLE BBOLS;Lo;0;L;;;;;N;;;;;
+BF4D;HANGUL SYLLABLE BBOLT;Lo;0;L;;;;;N;;;;;
+BF4E;HANGUL SYLLABLE BBOLP;Lo;0;L;;;;;N;;;;;
+BF4F;HANGUL SYLLABLE BBOLH;Lo;0;L;;;;;N;;;;;
+BF50;HANGUL SYLLABLE BBOM;Lo;0;L;;;;;N;;;;;
+BF51;HANGUL SYLLABLE BBOB;Lo;0;L;;;;;N;;;;;
+BF52;HANGUL SYLLABLE BBOBS;Lo;0;L;;;;;N;;;;;
+BF53;HANGUL SYLLABLE BBOS;Lo;0;L;;;;;N;;;;;
+BF54;HANGUL SYLLABLE BBOSS;Lo;0;L;;;;;N;;;;;
+BF55;HANGUL SYLLABLE BBONG;Lo;0;L;;;;;N;;;;;
+BF56;HANGUL SYLLABLE BBOJ;Lo;0;L;;;;;N;;;;;
+BF57;HANGUL SYLLABLE BBOC;Lo;0;L;;;;;N;;;;;
+BF58;HANGUL SYLLABLE BBOK;Lo;0;L;;;;;N;;;;;
+BF59;HANGUL SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;
+BF5A;HANGUL SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;
+BF5B;HANGUL SYLLABLE BBOH;Lo;0;L;;;;;N;;;;;
+BF5C;HANGUL SYLLABLE BBWA;Lo;0;L;;;;;N;;;;;
+BF5D;HANGUL SYLLABLE BBWAG;Lo;0;L;;;;;N;;;;;
+BF5E;HANGUL SYLLABLE BBWAGG;Lo;0;L;;;;;N;;;;;
+BF5F;HANGUL SYLLABLE BBWAGS;Lo;0;L;;;;;N;;;;;
+BF60;HANGUL SYLLABLE BBWAN;Lo;0;L;;;;;N;;;;;
+BF61;HANGUL SYLLABLE BBWANI;Lo;0;L;;;;;N;;;;;
+BF62;HANGUL SYLLABLE BBWANH;Lo;0;L;;;;;N;;;;;
+BF63;HANGUL SYLLABLE BBWAD;Lo;0;L;;;;;N;;;;;
+BF64;HANGUL SYLLABLE BBWAL;Lo;0;L;;;;;N;;;;;
+BF65;HANGUL SYLLABLE BBWALG;Lo;0;L;;;;;N;;;;;
+BF66;HANGUL SYLLABLE BBWALM;Lo;0;L;;;;;N;;;;;
+BF67;HANGUL SYLLABLE BBWALB;Lo;0;L;;;;;N;;;;;
+BF68;HANGUL SYLLABLE BBWALS;Lo;0;L;;;;;N;;;;;
+BF69;HANGUL SYLLABLE BBWALT;Lo;0;L;;;;;N;;;;;
+BF6A;HANGUL SYLLABLE BBWALP;Lo;0;L;;;;;N;;;;;
+BF6B;HANGUL SYLLABLE BBWALH;Lo;0;L;;;;;N;;;;;
+BF6C;HANGUL SYLLABLE BBWAM;Lo;0;L;;;;;N;;;;;
+BF6D;HANGUL SYLLABLE BBWAB;Lo;0;L;;;;;N;;;;;
+BF6E;HANGUL SYLLABLE BBWABS;Lo;0;L;;;;;N;;;;;
+BF6F;HANGUL SYLLABLE BBWAS;Lo;0;L;;;;;N;;;;;
+BF70;HANGUL SYLLABLE BBWASS;Lo;0;L;;;;;N;;;;;
+BF71;HANGUL SYLLABLE BBWANG;Lo;0;L;;;;;N;;;;;
+BF72;HANGUL SYLLABLE BBWAJ;Lo;0;L;;;;;N;;;;;
+BF73;HANGUL SYLLABLE BBWAC;Lo;0;L;;;;;N;;;;;
+BF74;HANGUL SYLLABLE BBWAK;Lo;0;L;;;;;N;;;;;
+BF75;HANGUL SYLLABLE BBWAT;Lo;0;L;;;;;N;;;;;
+BF76;HANGUL SYLLABLE BBWAP;Lo;0;L;;;;;N;;;;;
+BF77;HANGUL SYLLABLE BBWAH;Lo;0;L;;;;;N;;;;;
+BF78;HANGUL SYLLABLE BBWAE;Lo;0;L;;;;;N;;;;;
+BF79;HANGUL SYLLABLE BBWAEG;Lo;0;L;;;;;N;;;;;
+BF7A;HANGUL SYLLABLE BBWAEGG;Lo;0;L;;;;;N;;;;;
+BF7B;HANGUL SYLLABLE BBWAEGS;Lo;0;L;;;;;N;;;;;
+BF7C;HANGUL SYLLABLE BBWAEN;Lo;0;L;;;;;N;;;;;
+BF7D;HANGUL SYLLABLE BBWAENI;Lo;0;L;;;;;N;;;;;
+BF7E;HANGUL SYLLABLE BBWAENH;Lo;0;L;;;;;N;;;;;
+BF7F;HANGUL SYLLABLE BBWAED;Lo;0;L;;;;;N;;;;;
+BF80;HANGUL SYLLABLE BBWAEL;Lo;0;L;;;;;N;;;;;
+BF81;HANGUL SYLLABLE BBWAELG;Lo;0;L;;;;;N;;;;;
+BF82;HANGUL SYLLABLE BBWAELM;Lo;0;L;;;;;N;;;;;
+BF83;HANGUL SYLLABLE BBWAELB;Lo;0;L;;;;;N;;;;;
+BF84;HANGUL SYLLABLE BBWAELS;Lo;0;L;;;;;N;;;;;
+BF85;HANGUL SYLLABLE BBWAELT;Lo;0;L;;;;;N;;;;;
+BF86;HANGUL SYLLABLE BBWAELP;Lo;0;L;;;;;N;;;;;
+BF87;HANGUL SYLLABLE BBWAELH;Lo;0;L;;;;;N;;;;;
+BF88;HANGUL SYLLABLE BBWAEM;Lo;0;L;;;;;N;;;;;
+BF89;HANGUL SYLLABLE BBWAEB;Lo;0;L;;;;;N;;;;;
+BF8A;HANGUL SYLLABLE BBWAEBS;Lo;0;L;;;;;N;;;;;
+BF8B;HANGUL SYLLABLE BBWAES;Lo;0;L;;;;;N;;;;;
+BF8C;HANGUL SYLLABLE BBWAESS;Lo;0;L;;;;;N;;;;;
+BF8D;HANGUL SYLLABLE BBWAENG;Lo;0;L;;;;;N;;;;;
+BF8E;HANGUL SYLLABLE BBWAEJ;Lo;0;L;;;;;N;;;;;
+BF8F;HANGUL SYLLABLE BBWAEC;Lo;0;L;;;;;N;;;;;
+BF90;HANGUL SYLLABLE BBWAEK;Lo;0;L;;;;;N;;;;;
+BF91;HANGUL SYLLABLE BBWAET;Lo;0;L;;;;;N;;;;;
+BF92;HANGUL SYLLABLE BBWAEP;Lo;0;L;;;;;N;;;;;
+BF93;HANGUL SYLLABLE BBWAEH;Lo;0;L;;;;;N;;;;;
+BF94;HANGUL SYLLABLE BBOE;Lo;0;L;;;;;N;;;;;
+BF95;HANGUL SYLLABLE BBOEG;Lo;0;L;;;;;N;;;;;
+BF96;HANGUL SYLLABLE BBOEGG;Lo;0;L;;;;;N;;;;;
+BF97;HANGUL SYLLABLE BBOEGS;Lo;0;L;;;;;N;;;;;
+BF98;HANGUL SYLLABLE BBOEN;Lo;0;L;;;;;N;;;;;
+BF99;HANGUL SYLLABLE BBOENI;Lo;0;L;;;;;N;;;;;
+BF9A;HANGUL SYLLABLE BBOENH;Lo;0;L;;;;;N;;;;;
+BF9B;HANGUL SYLLABLE BBOED;Lo;0;L;;;;;N;;;;;
+BF9C;HANGUL SYLLABLE BBOEL;Lo;0;L;;;;;N;;;;;
+BF9D;HANGUL SYLLABLE BBOELG;Lo;0;L;;;;;N;;;;;
+BF9E;HANGUL SYLLABLE BBOELM;Lo;0;L;;;;;N;;;;;
+BF9F;HANGUL SYLLABLE BBOELB;Lo;0;L;;;;;N;;;;;
+BFA0;HANGUL SYLLABLE BBOELS;Lo;0;L;;;;;N;;;;;
+BFA1;HANGUL SYLLABLE BBOELT;Lo;0;L;;;;;N;;;;;
+BFA2;HANGUL SYLLABLE BBOELP;Lo;0;L;;;;;N;;;;;
+BFA3;HANGUL SYLLABLE BBOELH;Lo;0;L;;;;;N;;;;;
+BFA4;HANGUL SYLLABLE BBOEM;Lo;0;L;;;;;N;;;;;
+BFA5;HANGUL SYLLABLE BBOEB;Lo;0;L;;;;;N;;;;;
+BFA6;HANGUL SYLLABLE BBOEBS;Lo;0;L;;;;;N;;;;;
+BFA7;HANGUL SYLLABLE BBOES;Lo;0;L;;;;;N;;;;;
+BFA8;HANGUL SYLLABLE BBOESS;Lo;0;L;;;;;N;;;;;
+BFA9;HANGUL SYLLABLE BBOENG;Lo;0;L;;;;;N;;;;;
+BFAA;HANGUL SYLLABLE BBOEJ;Lo;0;L;;;;;N;;;;;
+BFAB;HANGUL SYLLABLE BBOEC;Lo;0;L;;;;;N;;;;;
+BFAC;HANGUL SYLLABLE BBOEK;Lo;0;L;;;;;N;;;;;
+BFAD;HANGUL SYLLABLE BBOET;Lo;0;L;;;;;N;;;;;
+BFAE;HANGUL SYLLABLE BBOEP;Lo;0;L;;;;;N;;;;;
+BFAF;HANGUL SYLLABLE BBOEH;Lo;0;L;;;;;N;;;;;
+BFB0;HANGUL SYLLABLE BBYO;Lo;0;L;;;;;N;;;;;
+BFB1;HANGUL SYLLABLE BBYOG;Lo;0;L;;;;;N;;;;;
+BFB2;HANGUL SYLLABLE BBYOGG;Lo;0;L;;;;;N;;;;;
+BFB3;HANGUL SYLLABLE BBYOGS;Lo;0;L;;;;;N;;;;;
+BFB4;HANGUL SYLLABLE BBYON;Lo;0;L;;;;;N;;;;;
+BFB5;HANGUL SYLLABLE BBYONI;Lo;0;L;;;;;N;;;;;
+BFB6;HANGUL SYLLABLE BBYONH;Lo;0;L;;;;;N;;;;;
+BFB7;HANGUL SYLLABLE BBYOD;Lo;0;L;;;;;N;;;;;
+BFB8;HANGUL SYLLABLE BBYOL;Lo;0;L;;;;;N;;;;;
+BFB9;HANGUL SYLLABLE BBYOLG;Lo;0;L;;;;;N;;;;;
+BFBA;HANGUL SYLLABLE BBYOLM;Lo;0;L;;;;;N;;;;;
+BFBB;HANGUL SYLLABLE BBYOLB;Lo;0;L;;;;;N;;;;;
+BFBC;HANGUL SYLLABLE BBYOLS;Lo;0;L;;;;;N;;;;;
+BFBD;HANGUL SYLLABLE BBYOLT;Lo;0;L;;;;;N;;;;;
+BFBE;HANGUL SYLLABLE BBYOLP;Lo;0;L;;;;;N;;;;;
+BFBF;HANGUL SYLLABLE BBYOLH;Lo;0;L;;;;;N;;;;;
+BFC0;HANGUL SYLLABLE BBYOM;Lo;0;L;;;;;N;;;;;
+BFC1;HANGUL SYLLABLE BBYOB;Lo;0;L;;;;;N;;;;;
+BFC2;HANGUL SYLLABLE BBYOBS;Lo;0;L;;;;;N;;;;;
+BFC3;HANGUL SYLLABLE BBYOS;Lo;0;L;;;;;N;;;;;
+BFC4;HANGUL SYLLABLE BBYOSS;Lo;0;L;;;;;N;;;;;
+BFC5;HANGUL SYLLABLE BBYONG;Lo;0;L;;;;;N;;;;;
+BFC6;HANGUL SYLLABLE BBYOJ;Lo;0;L;;;;;N;;;;;
+BFC7;HANGUL SYLLABLE BBYOC;Lo;0;L;;;;;N;;;;;
+BFC8;HANGUL SYLLABLE BBYOK;Lo;0;L;;;;;N;;;;;
+BFC9;HANGUL SYLLABLE BBYOT;Lo;0;L;;;;;N;;;;;
+BFCA;HANGUL SYLLABLE BBYOP;Lo;0;L;;;;;N;;;;;
+BFCB;HANGUL SYLLABLE BBYOH;Lo;0;L;;;;;N;;;;;
+BFCC;HANGUL SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
+BFCD;HANGUL SYLLABLE BBUG;Lo;0;L;;;;;N;;;;;
+BFCE;HANGUL SYLLABLE BBUGG;Lo;0;L;;;;;N;;;;;
+BFCF;HANGUL SYLLABLE BBUGS;Lo;0;L;;;;;N;;;;;
+BFD0;HANGUL SYLLABLE BBUN;Lo;0;L;;;;;N;;;;;
+BFD1;HANGUL SYLLABLE BBUNI;Lo;0;L;;;;;N;;;;;
+BFD2;HANGUL SYLLABLE BBUNH;Lo;0;L;;;;;N;;;;;
+BFD3;HANGUL SYLLABLE BBUD;Lo;0;L;;;;;N;;;;;
+BFD4;HANGUL SYLLABLE BBUL;Lo;0;L;;;;;N;;;;;
+BFD5;HANGUL SYLLABLE BBULG;Lo;0;L;;;;;N;;;;;
+BFD6;HANGUL SYLLABLE BBULM;Lo;0;L;;;;;N;;;;;
+BFD7;HANGUL SYLLABLE BBULB;Lo;0;L;;;;;N;;;;;
+BFD8;HANGUL SYLLABLE BBULS;Lo;0;L;;;;;N;;;;;
+BFD9;HANGUL SYLLABLE BBULT;Lo;0;L;;;;;N;;;;;
+BFDA;HANGUL SYLLABLE BBULP;Lo;0;L;;;;;N;;;;;
+BFDB;HANGUL SYLLABLE BBULH;Lo;0;L;;;;;N;;;;;
+BFDC;HANGUL SYLLABLE BBUM;Lo;0;L;;;;;N;;;;;
+BFDD;HANGUL SYLLABLE BBUB;Lo;0;L;;;;;N;;;;;
+BFDE;HANGUL SYLLABLE BBUBS;Lo;0;L;;;;;N;;;;;
+BFDF;HANGUL SYLLABLE BBUS;Lo;0;L;;;;;N;;;;;
+BFE0;HANGUL SYLLABLE BBUSS;Lo;0;L;;;;;N;;;;;
+BFE1;HANGUL SYLLABLE BBUNG;Lo;0;L;;;;;N;;;;;
+BFE2;HANGUL SYLLABLE BBUJ;Lo;0;L;;;;;N;;;;;
+BFE3;HANGUL SYLLABLE BBUC;Lo;0;L;;;;;N;;;;;
+BFE4;HANGUL SYLLABLE BBUK;Lo;0;L;;;;;N;;;;;
+BFE5;HANGUL SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;
+BFE6;HANGUL SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;
+BFE7;HANGUL SYLLABLE BBUH;Lo;0;L;;;;;N;;;;;
+BFE8;HANGUL SYLLABLE BBWEO;Lo;0;L;;;;;N;;;;;
+BFE9;HANGUL SYLLABLE BBWEOG;Lo;0;L;;;;;N;;;;;
+BFEA;HANGUL SYLLABLE BBWEOGG;Lo;0;L;;;;;N;;;;;
+BFEB;HANGUL SYLLABLE BBWEOGS;Lo;0;L;;;;;N;;;;;
+BFEC;HANGUL SYLLABLE BBWEON;Lo;0;L;;;;;N;;;;;
+BFED;HANGUL SYLLABLE BBWEONI;Lo;0;L;;;;;N;;;;;
+BFEE;HANGUL SYLLABLE BBWEONH;Lo;0;L;;;;;N;;;;;
+BFEF;HANGUL SYLLABLE BBWEOD;Lo;0;L;;;;;N;;;;;
+BFF0;HANGUL SYLLABLE BBWEOL;Lo;0;L;;;;;N;;;;;
+BFF1;HANGUL SYLLABLE BBWEOLG;Lo;0;L;;;;;N;;;;;
+BFF2;HANGUL SYLLABLE BBWEOLM;Lo;0;L;;;;;N;;;;;
+BFF3;HANGUL SYLLABLE BBWEOLB;Lo;0;L;;;;;N;;;;;
+BFF4;HANGUL SYLLABLE BBWEOLS;Lo;0;L;;;;;N;;;;;
+BFF5;HANGUL SYLLABLE BBWEOLT;Lo;0;L;;;;;N;;;;;
+BFF6;HANGUL SYLLABLE BBWEOLP;Lo;0;L;;;;;N;;;;;
+BFF7;HANGUL SYLLABLE BBWEOLH;Lo;0;L;;;;;N;;;;;
+BFF8;HANGUL SYLLABLE BBWEOM;Lo;0;L;;;;;N;;;;;
+BFF9;HANGUL SYLLABLE BBWEOB;Lo;0;L;;;;;N;;;;;
+BFFA;HANGUL SYLLABLE BBWEOBS;Lo;0;L;;;;;N;;;;;
+BFFB;HANGUL SYLLABLE BBWEOS;Lo;0;L;;;;;N;;;;;
+BFFC;HANGUL SYLLABLE BBWEOSS;Lo;0;L;;;;;N;;;;;
+BFFD;HANGUL SYLLABLE BBWEONG;Lo;0;L;;;;;N;;;;;
+BFFE;HANGUL SYLLABLE BBWEOJ;Lo;0;L;;;;;N;;;;;
+BFFF;HANGUL SYLLABLE BBWEOC;Lo;0;L;;;;;N;;;;;
+C000;HANGUL SYLLABLE BBWEOK;Lo;0;L;;;;;N;;;;;
+C001;HANGUL SYLLABLE BBWEOT;Lo;0;L;;;;;N;;;;;
+C002;HANGUL SYLLABLE BBWEOP;Lo;0;L;;;;;N;;;;;
+C003;HANGUL SYLLABLE BBWEOH;Lo;0;L;;;;;N;;;;;
+C004;HANGUL SYLLABLE BBWE;Lo;0;L;;;;;N;;;;;
+C005;HANGUL SYLLABLE BBWEG;Lo;0;L;;;;;N;;;;;
+C006;HANGUL SYLLABLE BBWEGG;Lo;0;L;;;;;N;;;;;
+C007;HANGUL SYLLABLE BBWEGS;Lo;0;L;;;;;N;;;;;
+C008;HANGUL SYLLABLE BBWEN;Lo;0;L;;;;;N;;;;;
+C009;HANGUL SYLLABLE BBWENI;Lo;0;L;;;;;N;;;;;
+C00A;HANGUL SYLLABLE BBWENH;Lo;0;L;;;;;N;;;;;
+C00B;HANGUL SYLLABLE BBWED;Lo;0;L;;;;;N;;;;;
+C00C;HANGUL SYLLABLE BBWEL;Lo;0;L;;;;;N;;;;;
+C00D;HANGUL SYLLABLE BBWELG;Lo;0;L;;;;;N;;;;;
+C00E;HANGUL SYLLABLE BBWELM;Lo;0;L;;;;;N;;;;;
+C00F;HANGUL SYLLABLE BBWELB;Lo;0;L;;;;;N;;;;;
+C010;HANGUL SYLLABLE BBWELS;Lo;0;L;;;;;N;;;;;
+C011;HANGUL SYLLABLE BBWELT;Lo;0;L;;;;;N;;;;;
+C012;HANGUL SYLLABLE BBWELP;Lo;0;L;;;;;N;;;;;
+C013;HANGUL SYLLABLE BBWELH;Lo;0;L;;;;;N;;;;;
+C014;HANGUL SYLLABLE BBWEM;Lo;0;L;;;;;N;;;;;
+C015;HANGUL SYLLABLE BBWEB;Lo;0;L;;;;;N;;;;;
+C016;HANGUL SYLLABLE BBWEBS;Lo;0;L;;;;;N;;;;;
+C017;HANGUL SYLLABLE BBWES;Lo;0;L;;;;;N;;;;;
+C018;HANGUL SYLLABLE BBWESS;Lo;0;L;;;;;N;;;;;
+C019;HANGUL SYLLABLE BBWENG;Lo;0;L;;;;;N;;;;;
+C01A;HANGUL SYLLABLE BBWEJ;Lo;0;L;;;;;N;;;;;
+C01B;HANGUL SYLLABLE BBWEC;Lo;0;L;;;;;N;;;;;
+C01C;HANGUL SYLLABLE BBWEK;Lo;0;L;;;;;N;;;;;
+C01D;HANGUL SYLLABLE BBWET;Lo;0;L;;;;;N;;;;;
+C01E;HANGUL SYLLABLE BBWEP;Lo;0;L;;;;;N;;;;;
+C01F;HANGUL SYLLABLE BBWEH;Lo;0;L;;;;;N;;;;;
+C020;HANGUL SYLLABLE BBWI;Lo;0;L;;;;;N;;;;;
+C021;HANGUL SYLLABLE BBWIG;Lo;0;L;;;;;N;;;;;
+C022;HANGUL SYLLABLE BBWIGG;Lo;0;L;;;;;N;;;;;
+C023;HANGUL SYLLABLE BBWIGS;Lo;0;L;;;;;N;;;;;
+C024;HANGUL SYLLABLE BBWIN;Lo;0;L;;;;;N;;;;;
+C025;HANGUL SYLLABLE BBWINI;Lo;0;L;;;;;N;;;;;
+C026;HANGUL SYLLABLE BBWINH;Lo;0;L;;;;;N;;;;;
+C027;HANGUL SYLLABLE BBWID;Lo;0;L;;;;;N;;;;;
+C028;HANGUL SYLLABLE BBWIL;Lo;0;L;;;;;N;;;;;
+C029;HANGUL SYLLABLE BBWILG;Lo;0;L;;;;;N;;;;;
+C02A;HANGUL SYLLABLE BBWILM;Lo;0;L;;;;;N;;;;;
+C02B;HANGUL SYLLABLE BBWILB;Lo;0;L;;;;;N;;;;;
+C02C;HANGUL SYLLABLE BBWILS;Lo;0;L;;;;;N;;;;;
+C02D;HANGUL SYLLABLE BBWILT;Lo;0;L;;;;;N;;;;;
+C02E;HANGUL SYLLABLE BBWILP;Lo;0;L;;;;;N;;;;;
+C02F;HANGUL SYLLABLE BBWILH;Lo;0;L;;;;;N;;;;;
+C030;HANGUL SYLLABLE BBWIM;Lo;0;L;;;;;N;;;;;
+C031;HANGUL SYLLABLE BBWIB;Lo;0;L;;;;;N;;;;;
+C032;HANGUL SYLLABLE BBWIBS;Lo;0;L;;;;;N;;;;;
+C033;HANGUL SYLLABLE BBWIS;Lo;0;L;;;;;N;;;;;
+C034;HANGUL SYLLABLE BBWISS;Lo;0;L;;;;;N;;;;;
+C035;HANGUL SYLLABLE BBWING;Lo;0;L;;;;;N;;;;;
+C036;HANGUL SYLLABLE BBWIJ;Lo;0;L;;;;;N;;;;;
+C037;HANGUL SYLLABLE BBWIC;Lo;0;L;;;;;N;;;;;
+C038;HANGUL SYLLABLE BBWIK;Lo;0;L;;;;;N;;;;;
+C039;HANGUL SYLLABLE BBWIT;Lo;0;L;;;;;N;;;;;
+C03A;HANGUL SYLLABLE BBWIP;Lo;0;L;;;;;N;;;;;
+C03B;HANGUL SYLLABLE BBWIH;Lo;0;L;;;;;N;;;;;
+C03C;HANGUL SYLLABLE BBYU;Lo;0;L;;;;;N;;;;;
+C03D;HANGUL SYLLABLE BBYUG;Lo;0;L;;;;;N;;;;;
+C03E;HANGUL SYLLABLE BBYUGG;Lo;0;L;;;;;N;;;;;
+C03F;HANGUL SYLLABLE BBYUGS;Lo;0;L;;;;;N;;;;;
+C040;HANGUL SYLLABLE BBYUN;Lo;0;L;;;;;N;;;;;
+C041;HANGUL SYLLABLE BBYUNI;Lo;0;L;;;;;N;;;;;
+C042;HANGUL SYLLABLE BBYUNH;Lo;0;L;;;;;N;;;;;
+C043;HANGUL SYLLABLE BBYUD;Lo;0;L;;;;;N;;;;;
+C044;HANGUL SYLLABLE BBYUL;Lo;0;L;;;;;N;;;;;
+C045;HANGUL SYLLABLE BBYULG;Lo;0;L;;;;;N;;;;;
+C046;HANGUL SYLLABLE BBYULM;Lo;0;L;;;;;N;;;;;
+C047;HANGUL SYLLABLE BBYULB;Lo;0;L;;;;;N;;;;;
+C048;HANGUL SYLLABLE BBYULS;Lo;0;L;;;;;N;;;;;
+C049;HANGUL SYLLABLE BBYULT;Lo;0;L;;;;;N;;;;;
+C04A;HANGUL SYLLABLE BBYULP;Lo;0;L;;;;;N;;;;;
+C04B;HANGUL SYLLABLE BBYULH;Lo;0;L;;;;;N;;;;;
+C04C;HANGUL SYLLABLE BBYUM;Lo;0;L;;;;;N;;;;;
+C04D;HANGUL SYLLABLE BBYUB;Lo;0;L;;;;;N;;;;;
+C04E;HANGUL SYLLABLE BBYUBS;Lo;0;L;;;;;N;;;;;
+C04F;HANGUL SYLLABLE BBYUS;Lo;0;L;;;;;N;;;;;
+C050;HANGUL SYLLABLE BBYUSS;Lo;0;L;;;;;N;;;;;
+C051;HANGUL SYLLABLE BBYUNG;Lo;0;L;;;;;N;;;;;
+C052;HANGUL SYLLABLE BBYUJ;Lo;0;L;;;;;N;;;;;
+C053;HANGUL SYLLABLE BBYUC;Lo;0;L;;;;;N;;;;;
+C054;HANGUL SYLLABLE BBYUK;Lo;0;L;;;;;N;;;;;
+C055;HANGUL SYLLABLE BBYUT;Lo;0;L;;;;;N;;;;;
+C056;HANGUL SYLLABLE BBYUP;Lo;0;L;;;;;N;;;;;
+C057;HANGUL SYLLABLE BBYUH;Lo;0;L;;;;;N;;;;;
+C058;HANGUL SYLLABLE BBEU;Lo;0;L;;;;;N;;;;;
+C059;HANGUL SYLLABLE BBEUG;Lo;0;L;;;;;N;;;;;
+C05A;HANGUL SYLLABLE BBEUGG;Lo;0;L;;;;;N;;;;;
+C05B;HANGUL SYLLABLE BBEUGS;Lo;0;L;;;;;N;;;;;
+C05C;HANGUL SYLLABLE BBEUN;Lo;0;L;;;;;N;;;;;
+C05D;HANGUL SYLLABLE BBEUNI;Lo;0;L;;;;;N;;;;;
+C05E;HANGUL SYLLABLE BBEUNH;Lo;0;L;;;;;N;;;;;
+C05F;HANGUL SYLLABLE BBEUD;Lo;0;L;;;;;N;;;;;
+C060;HANGUL SYLLABLE BBEUL;Lo;0;L;;;;;N;;;;;
+C061;HANGUL SYLLABLE BBEULG;Lo;0;L;;;;;N;;;;;
+C062;HANGUL SYLLABLE BBEULM;Lo;0;L;;;;;N;;;;;
+C063;HANGUL SYLLABLE BBEULB;Lo;0;L;;;;;N;;;;;
+C064;HANGUL SYLLABLE BBEULS;Lo;0;L;;;;;N;;;;;
+C065;HANGUL SYLLABLE BBEULT;Lo;0;L;;;;;N;;;;;
+C066;HANGUL SYLLABLE BBEULP;Lo;0;L;;;;;N;;;;;
+C067;HANGUL SYLLABLE BBEULH;Lo;0;L;;;;;N;;;;;
+C068;HANGUL SYLLABLE BBEUM;Lo;0;L;;;;;N;;;;;
+C069;HANGUL SYLLABLE BBEUB;Lo;0;L;;;;;N;;;;;
+C06A;HANGUL SYLLABLE BBEUBS;Lo;0;L;;;;;N;;;;;
+C06B;HANGUL SYLLABLE BBEUS;Lo;0;L;;;;;N;;;;;
+C06C;HANGUL SYLLABLE BBEUSS;Lo;0;L;;;;;N;;;;;
+C06D;HANGUL SYLLABLE BBEUNG;Lo;0;L;;;;;N;;;;;
+C06E;HANGUL SYLLABLE BBEUJ;Lo;0;L;;;;;N;;;;;
+C06F;HANGUL SYLLABLE BBEUC;Lo;0;L;;;;;N;;;;;
+C070;HANGUL SYLLABLE BBEUK;Lo;0;L;;;;;N;;;;;
+C071;HANGUL SYLLABLE BBEUT;Lo;0;L;;;;;N;;;;;
+C072;HANGUL SYLLABLE BBEUP;Lo;0;L;;;;;N;;;;;
+C073;HANGUL SYLLABLE BBEUH;Lo;0;L;;;;;N;;;;;
+C074;HANGUL SYLLABLE BBYI;Lo;0;L;;;;;N;;;;;
+C075;HANGUL SYLLABLE BBYIG;Lo;0;L;;;;;N;;;;;
+C076;HANGUL SYLLABLE BBYIGG;Lo;0;L;;;;;N;;;;;
+C077;HANGUL SYLLABLE BBYIGS;Lo;0;L;;;;;N;;;;;
+C078;HANGUL SYLLABLE BBYIN;Lo;0;L;;;;;N;;;;;
+C079;HANGUL SYLLABLE BBYINI;Lo;0;L;;;;;N;;;;;
+C07A;HANGUL SYLLABLE BBYINH;Lo;0;L;;;;;N;;;;;
+C07B;HANGUL SYLLABLE BBYID;Lo;0;L;;;;;N;;;;;
+C07C;HANGUL SYLLABLE BBYIL;Lo;0;L;;;;;N;;;;;
+C07D;HANGUL SYLLABLE BBYILG;Lo;0;L;;;;;N;;;;;
+C07E;HANGUL SYLLABLE BBYILM;Lo;0;L;;;;;N;;;;;
+C07F;HANGUL SYLLABLE BBYILB;Lo;0;L;;;;;N;;;;;
+C080;HANGUL SYLLABLE BBYILS;Lo;0;L;;;;;N;;;;;
+C081;HANGUL SYLLABLE BBYILT;Lo;0;L;;;;;N;;;;;
+C082;HANGUL SYLLABLE BBYILP;Lo;0;L;;;;;N;;;;;
+C083;HANGUL SYLLABLE BBYILH;Lo;0;L;;;;;N;;;;;
+C084;HANGUL SYLLABLE BBYIM;Lo;0;L;;;;;N;;;;;
+C085;HANGUL SYLLABLE BBYIB;Lo;0;L;;;;;N;;;;;
+C086;HANGUL SYLLABLE BBYIBS;Lo;0;L;;;;;N;;;;;
+C087;HANGUL SYLLABLE BBYIS;Lo;0;L;;;;;N;;;;;
+C088;HANGUL SYLLABLE BBYISS;Lo;0;L;;;;;N;;;;;
+C089;HANGUL SYLLABLE BBYING;Lo;0;L;;;;;N;;;;;
+C08A;HANGUL SYLLABLE BBYIJ;Lo;0;L;;;;;N;;;;;
+C08B;HANGUL SYLLABLE BBYIC;Lo;0;L;;;;;N;;;;;
+C08C;HANGUL SYLLABLE BBYIK;Lo;0;L;;;;;N;;;;;
+C08D;HANGUL SYLLABLE BBYIT;Lo;0;L;;;;;N;;;;;
+C08E;HANGUL SYLLABLE BBYIP;Lo;0;L;;;;;N;;;;;
+C08F;HANGUL SYLLABLE BBYIH;Lo;0;L;;;;;N;;;;;
+C090;HANGUL SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
+C091;HANGUL SYLLABLE BBIG;Lo;0;L;;;;;N;;;;;
+C092;HANGUL SYLLABLE BBIGG;Lo;0;L;;;;;N;;;;;
+C093;HANGUL SYLLABLE BBIGS;Lo;0;L;;;;;N;;;;;
+C094;HANGUL SYLLABLE BBIN;Lo;0;L;;;;;N;;;;;
+C095;HANGUL SYLLABLE BBINI;Lo;0;L;;;;;N;;;;;
+C096;HANGUL SYLLABLE BBINH;Lo;0;L;;;;;N;;;;;
+C097;HANGUL SYLLABLE BBID;Lo;0;L;;;;;N;;;;;
+C098;HANGUL SYLLABLE BBIL;Lo;0;L;;;;;N;;;;;
+C099;HANGUL SYLLABLE BBILG;Lo;0;L;;;;;N;;;;;
+C09A;HANGUL SYLLABLE BBILM;Lo;0;L;;;;;N;;;;;
+C09B;HANGUL SYLLABLE BBILB;Lo;0;L;;;;;N;;;;;
+C09C;HANGUL SYLLABLE BBILS;Lo;0;L;;;;;N;;;;;
+C09D;HANGUL SYLLABLE BBILT;Lo;0;L;;;;;N;;;;;
+C09E;HANGUL SYLLABLE BBILP;Lo;0;L;;;;;N;;;;;
+C09F;HANGUL SYLLABLE BBILH;Lo;0;L;;;;;N;;;;;
+C0A0;HANGUL SYLLABLE BBIM;Lo;0;L;;;;;N;;;;;
+C0A1;HANGUL SYLLABLE BBIB;Lo;0;L;;;;;N;;;;;
+C0A2;HANGUL SYLLABLE BBIBS;Lo;0;L;;;;;N;;;;;
+C0A3;HANGUL SYLLABLE BBIS;Lo;0;L;;;;;N;;;;;
+C0A4;HANGUL SYLLABLE BBISS;Lo;0;L;;;;;N;;;;;
+C0A5;HANGUL SYLLABLE BBING;Lo;0;L;;;;;N;;;;;
+C0A6;HANGUL SYLLABLE BBIJ;Lo;0;L;;;;;N;;;;;
+C0A7;HANGUL SYLLABLE BBIC;Lo;0;L;;;;;N;;;;;
+C0A8;HANGUL SYLLABLE BBIK;Lo;0;L;;;;;N;;;;;
+C0A9;HANGUL SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;
+C0AA;HANGUL SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;
+C0AB;HANGUL SYLLABLE BBIH;Lo;0;L;;;;;N;;;;;
+C0AC;HANGUL SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+C0AD;HANGUL SYLLABLE SAG;Lo;0;L;;;;;N;;;;;
+C0AE;HANGUL SYLLABLE SAGG;Lo;0;L;;;;;N;;;;;
+C0AF;HANGUL SYLLABLE SAGS;Lo;0;L;;;;;N;;;;;
+C0B0;HANGUL SYLLABLE SAN;Lo;0;L;;;;;N;;;;;
+C0B1;HANGUL SYLLABLE SANI;Lo;0;L;;;;;N;;;;;
+C0B2;HANGUL SYLLABLE SANH;Lo;0;L;;;;;N;;;;;
+C0B3;HANGUL SYLLABLE SAD;Lo;0;L;;;;;N;;;;;
+C0B4;HANGUL SYLLABLE SAL;Lo;0;L;;;;;N;;;;;
+C0B5;HANGUL SYLLABLE SALG;Lo;0;L;;;;;N;;;;;
+C0B6;HANGUL SYLLABLE SALM;Lo;0;L;;;;;N;;;;;
+C0B7;HANGUL SYLLABLE SALB;Lo;0;L;;;;;N;;;;;
+C0B8;HANGUL SYLLABLE SALS;Lo;0;L;;;;;N;;;;;
+C0B9;HANGUL SYLLABLE SALT;Lo;0;L;;;;;N;;;;;
+C0BA;HANGUL SYLLABLE SALP;Lo;0;L;;;;;N;;;;;
+C0BB;HANGUL SYLLABLE SALH;Lo;0;L;;;;;N;;;;;
+C0BC;HANGUL SYLLABLE SAM;Lo;0;L;;;;;N;;;;;
+C0BD;HANGUL SYLLABLE SAB;Lo;0;L;;;;;N;;;;;
+C0BE;HANGUL SYLLABLE SABS;Lo;0;L;;;;;N;;;;;
+C0BF;HANGUL SYLLABLE SAS;Lo;0;L;;;;;N;;;;;
+C0C0;HANGUL SYLLABLE SASS;Lo;0;L;;;;;N;;;;;
+C0C1;HANGUL SYLLABLE SANG;Lo;0;L;;;;;N;;;;;
+C0C2;HANGUL SYLLABLE SAJ;Lo;0;L;;;;;N;;;;;
+C0C3;HANGUL SYLLABLE SAC;Lo;0;L;;;;;N;;;;;
+C0C4;HANGUL SYLLABLE SAK;Lo;0;L;;;;;N;;;;;
+C0C5;HANGUL SYLLABLE SAT;Lo;0;L;;;;;N;;;;;
+C0C6;HANGUL SYLLABLE SAP;Lo;0;L;;;;;N;;;;;
+C0C7;HANGUL SYLLABLE SAH;Lo;0;L;;;;;N;;;;;
+C0C8;HANGUL SYLLABLE SAE;Lo;0;L;;;;;N;;;;;
+C0C9;HANGUL SYLLABLE SAEG;Lo;0;L;;;;;N;;;;;
+C0CA;HANGUL SYLLABLE SAEGG;Lo;0;L;;;;;N;;;;;
+C0CB;HANGUL SYLLABLE SAEGS;Lo;0;L;;;;;N;;;;;
+C0CC;HANGUL SYLLABLE SAEN;Lo;0;L;;;;;N;;;;;
+C0CD;HANGUL SYLLABLE SAENI;Lo;0;L;;;;;N;;;;;
+C0CE;HANGUL SYLLABLE SAENH;Lo;0;L;;;;;N;;;;;
+C0CF;HANGUL SYLLABLE SAED;Lo;0;L;;;;;N;;;;;
+C0D0;HANGUL SYLLABLE SAEL;Lo;0;L;;;;;N;;;;;
+C0D1;HANGUL SYLLABLE SAELG;Lo;0;L;;;;;N;;;;;
+C0D2;HANGUL SYLLABLE SAELM;Lo;0;L;;;;;N;;;;;
+C0D3;HANGUL SYLLABLE SAELB;Lo;0;L;;;;;N;;;;;
+C0D4;HANGUL SYLLABLE SAELS;Lo;0;L;;;;;N;;;;;
+C0D5;HANGUL SYLLABLE SAELT;Lo;0;L;;;;;N;;;;;
+C0D6;HANGUL SYLLABLE SAELP;Lo;0;L;;;;;N;;;;;
+C0D7;HANGUL SYLLABLE SAELH;Lo;0;L;;;;;N;;;;;
+C0D8;HANGUL SYLLABLE SAEM;Lo;0;L;;;;;N;;;;;
+C0D9;HANGUL SYLLABLE SAEB;Lo;0;L;;;;;N;;;;;
+C0DA;HANGUL SYLLABLE SAEBS;Lo;0;L;;;;;N;;;;;
+C0DB;HANGUL SYLLABLE SAES;Lo;0;L;;;;;N;;;;;
+C0DC;HANGUL SYLLABLE SAESS;Lo;0;L;;;;;N;;;;;
+C0DD;HANGUL SYLLABLE SAENG;Lo;0;L;;;;;N;;;;;
+C0DE;HANGUL SYLLABLE SAEJ;Lo;0;L;;;;;N;;;;;
+C0DF;HANGUL SYLLABLE SAEC;Lo;0;L;;;;;N;;;;;
+C0E0;HANGUL SYLLABLE SAEK;Lo;0;L;;;;;N;;;;;
+C0E1;HANGUL SYLLABLE SAET;Lo;0;L;;;;;N;;;;;
+C0E2;HANGUL SYLLABLE SAEP;Lo;0;L;;;;;N;;;;;
+C0E3;HANGUL SYLLABLE SAEH;Lo;0;L;;;;;N;;;;;
+C0E4;HANGUL SYLLABLE SYA;Lo;0;L;;;;;N;;;;;
+C0E5;HANGUL SYLLABLE SYAG;Lo;0;L;;;;;N;;;;;
+C0E6;HANGUL SYLLABLE SYAGG;Lo;0;L;;;;;N;;;;;
+C0E7;HANGUL SYLLABLE SYAGS;Lo;0;L;;;;;N;;;;;
+C0E8;HANGUL SYLLABLE SYAN;Lo;0;L;;;;;N;;;;;
+C0E9;HANGUL SYLLABLE SYANI;Lo;0;L;;;;;N;;;;;
+C0EA;HANGUL SYLLABLE SYANH;Lo;0;L;;;;;N;;;;;
+C0EB;HANGUL SYLLABLE SYAD;Lo;0;L;;;;;N;;;;;
+C0EC;HANGUL SYLLABLE SYAL;Lo;0;L;;;;;N;;;;;
+C0ED;HANGUL SYLLABLE SYALG;Lo;0;L;;;;;N;;;;;
+C0EE;HANGUL SYLLABLE SYALM;Lo;0;L;;;;;N;;;;;
+C0EF;HANGUL SYLLABLE SYALB;Lo;0;L;;;;;N;;;;;
+C0F0;HANGUL SYLLABLE SYALS;Lo;0;L;;;;;N;;;;;
+C0F1;HANGUL SYLLABLE SYALT;Lo;0;L;;;;;N;;;;;
+C0F2;HANGUL SYLLABLE SYALP;Lo;0;L;;;;;N;;;;;
+C0F3;HANGUL SYLLABLE SYALH;Lo;0;L;;;;;N;;;;;
+C0F4;HANGUL SYLLABLE SYAM;Lo;0;L;;;;;N;;;;;
+C0F5;HANGUL SYLLABLE SYAB;Lo;0;L;;;;;N;;;;;
+C0F6;HANGUL SYLLABLE SYABS;Lo;0;L;;;;;N;;;;;
+C0F7;HANGUL SYLLABLE SYAS;Lo;0;L;;;;;N;;;;;
+C0F8;HANGUL SYLLABLE SYASS;Lo;0;L;;;;;N;;;;;
+C0F9;HANGUL SYLLABLE SYANG;Lo;0;L;;;;;N;;;;;
+C0FA;HANGUL SYLLABLE SYAJ;Lo;0;L;;;;;N;;;;;
+C0FB;HANGUL SYLLABLE SYAC;Lo;0;L;;;;;N;;;;;
+C0FC;HANGUL SYLLABLE SYAK;Lo;0;L;;;;;N;;;;;
+C0FD;HANGUL SYLLABLE SYAT;Lo;0;L;;;;;N;;;;;
+C0FE;HANGUL SYLLABLE SYAP;Lo;0;L;;;;;N;;;;;
+C0FF;HANGUL SYLLABLE SYAH;Lo;0;L;;;;;N;;;;;
+C100;HANGUL SYLLABLE SYAE;Lo;0;L;;;;;N;;;;;
+C101;HANGUL SYLLABLE SYAEG;Lo;0;L;;;;;N;;;;;
+C102;HANGUL SYLLABLE SYAEGG;Lo;0;L;;;;;N;;;;;
+C103;HANGUL SYLLABLE SYAEGS;Lo;0;L;;;;;N;;;;;
+C104;HANGUL SYLLABLE SYAEN;Lo;0;L;;;;;N;;;;;
+C105;HANGUL SYLLABLE SYAENI;Lo;0;L;;;;;N;;;;;
+C106;HANGUL SYLLABLE SYAENH;Lo;0;L;;;;;N;;;;;
+C107;HANGUL SYLLABLE SYAED;Lo;0;L;;;;;N;;;;;
+C108;HANGUL SYLLABLE SYAEL;Lo;0;L;;;;;N;;;;;
+C109;HANGUL SYLLABLE SYAELG;Lo;0;L;;;;;N;;;;;
+C10A;HANGUL SYLLABLE SYAELM;Lo;0;L;;;;;N;;;;;
+C10B;HANGUL SYLLABLE SYAELB;Lo;0;L;;;;;N;;;;;
+C10C;HANGUL SYLLABLE SYAELS;Lo;0;L;;;;;N;;;;;
+C10D;HANGUL SYLLABLE SYAELT;Lo;0;L;;;;;N;;;;;
+C10E;HANGUL SYLLABLE SYAELP;Lo;0;L;;;;;N;;;;;
+C10F;HANGUL SYLLABLE SYAELH;Lo;0;L;;;;;N;;;;;
+C110;HANGUL SYLLABLE SYAEM;Lo;0;L;;;;;N;;;;;
+C111;HANGUL SYLLABLE SYAEB;Lo;0;L;;;;;N;;;;;
+C112;HANGUL SYLLABLE SYAEBS;Lo;0;L;;;;;N;;;;;
+C113;HANGUL SYLLABLE SYAES;Lo;0;L;;;;;N;;;;;
+C114;HANGUL SYLLABLE SYAESS;Lo;0;L;;;;;N;;;;;
+C115;HANGUL SYLLABLE SYAENG;Lo;0;L;;;;;N;;;;;
+C116;HANGUL SYLLABLE SYAEJ;Lo;0;L;;;;;N;;;;;
+C117;HANGUL SYLLABLE SYAEC;Lo;0;L;;;;;N;;;;;
+C118;HANGUL SYLLABLE SYAEK;Lo;0;L;;;;;N;;;;;
+C119;HANGUL SYLLABLE SYAET;Lo;0;L;;;;;N;;;;;
+C11A;HANGUL SYLLABLE SYAEP;Lo;0;L;;;;;N;;;;;
+C11B;HANGUL SYLLABLE SYAEH;Lo;0;L;;;;;N;;;;;
+C11C;HANGUL SYLLABLE SEO;Lo;0;L;;;;;N;;;;;
+C11D;HANGUL SYLLABLE SEOG;Lo;0;L;;;;;N;;;;;
+C11E;HANGUL SYLLABLE SEOGG;Lo;0;L;;;;;N;;;;;
+C11F;HANGUL SYLLABLE SEOGS;Lo;0;L;;;;;N;;;;;
+C120;HANGUL SYLLABLE SEON;Lo;0;L;;;;;N;;;;;
+C121;HANGUL SYLLABLE SEONI;Lo;0;L;;;;;N;;;;;
+C122;HANGUL SYLLABLE SEONH;Lo;0;L;;;;;N;;;;;
+C123;HANGUL SYLLABLE SEOD;Lo;0;L;;;;;N;;;;;
+C124;HANGUL SYLLABLE SEOL;Lo;0;L;;;;;N;;;;;
+C125;HANGUL SYLLABLE SEOLG;Lo;0;L;;;;;N;;;;;
+C126;HANGUL SYLLABLE SEOLM;Lo;0;L;;;;;N;;;;;
+C127;HANGUL SYLLABLE SEOLB;Lo;0;L;;;;;N;;;;;
+C128;HANGUL SYLLABLE SEOLS;Lo;0;L;;;;;N;;;;;
+C129;HANGUL SYLLABLE SEOLT;Lo;0;L;;;;;N;;;;;
+C12A;HANGUL SYLLABLE SEOLP;Lo;0;L;;;;;N;;;;;
+C12B;HANGUL SYLLABLE SEOLH;Lo;0;L;;;;;N;;;;;
+C12C;HANGUL SYLLABLE SEOM;Lo;0;L;;;;;N;;;;;
+C12D;HANGUL SYLLABLE SEOB;Lo;0;L;;;;;N;;;;;
+C12E;HANGUL SYLLABLE SEOBS;Lo;0;L;;;;;N;;;;;
+C12F;HANGUL SYLLABLE SEOS;Lo;0;L;;;;;N;;;;;
+C130;HANGUL SYLLABLE SEOSS;Lo;0;L;;;;;N;;;;;
+C131;HANGUL SYLLABLE SEONG;Lo;0;L;;;;;N;;;;;
+C132;HANGUL SYLLABLE SEOJ;Lo;0;L;;;;;N;;;;;
+C133;HANGUL SYLLABLE SEOC;Lo;0;L;;;;;N;;;;;
+C134;HANGUL SYLLABLE SEOK;Lo;0;L;;;;;N;;;;;
+C135;HANGUL SYLLABLE SEOT;Lo;0;L;;;;;N;;;;;
+C136;HANGUL SYLLABLE SEOP;Lo;0;L;;;;;N;;;;;
+C137;HANGUL SYLLABLE SEOH;Lo;0;L;;;;;N;;;;;
+C138;HANGUL SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+C139;HANGUL SYLLABLE SEG;Lo;0;L;;;;;N;;;;;
+C13A;HANGUL SYLLABLE SEGG;Lo;0;L;;;;;N;;;;;
+C13B;HANGUL SYLLABLE SEGS;Lo;0;L;;;;;N;;;;;
+C13C;HANGUL SYLLABLE SEN;Lo;0;L;;;;;N;;;;;
+C13D;HANGUL SYLLABLE SENI;Lo;0;L;;;;;N;;;;;
+C13E;HANGUL SYLLABLE SENH;Lo;0;L;;;;;N;;;;;
+C13F;HANGUL SYLLABLE SED;Lo;0;L;;;;;N;;;;;
+C140;HANGUL SYLLABLE SEL;Lo;0;L;;;;;N;;;;;
+C141;HANGUL SYLLABLE SELG;Lo;0;L;;;;;N;;;;;
+C142;HANGUL SYLLABLE SELM;Lo;0;L;;;;;N;;;;;
+C143;HANGUL SYLLABLE SELB;Lo;0;L;;;;;N;;;;;
+C144;HANGUL SYLLABLE SELS;Lo;0;L;;;;;N;;;;;
+C145;HANGUL SYLLABLE SELT;Lo;0;L;;;;;N;;;;;
+C146;HANGUL SYLLABLE SELP;Lo;0;L;;;;;N;;;;;
+C147;HANGUL SYLLABLE SELH;Lo;0;L;;;;;N;;;;;
+C148;HANGUL SYLLABLE SEM;Lo;0;L;;;;;N;;;;;
+C149;HANGUL SYLLABLE SEB;Lo;0;L;;;;;N;;;;;
+C14A;HANGUL SYLLABLE SEBS;Lo;0;L;;;;;N;;;;;
+C14B;HANGUL SYLLABLE SES;Lo;0;L;;;;;N;;;;;
+C14C;HANGUL SYLLABLE SESS;Lo;0;L;;;;;N;;;;;
+C14D;HANGUL SYLLABLE SENG;Lo;0;L;;;;;N;;;;;
+C14E;HANGUL SYLLABLE SEJ;Lo;0;L;;;;;N;;;;;
+C14F;HANGUL SYLLABLE SEC;Lo;0;L;;;;;N;;;;;
+C150;HANGUL SYLLABLE SEK;Lo;0;L;;;;;N;;;;;
+C151;HANGUL SYLLABLE SET;Lo;0;L;;;;;N;;;;;
+C152;HANGUL SYLLABLE SEP;Lo;0;L;;;;;N;;;;;
+C153;HANGUL SYLLABLE SEH;Lo;0;L;;;;;N;;;;;
+C154;HANGUL SYLLABLE SYEO;Lo;0;L;;;;;N;;;;;
+C155;HANGUL SYLLABLE SYEOG;Lo;0;L;;;;;N;;;;;
+C156;HANGUL SYLLABLE SYEOGG;Lo;0;L;;;;;N;;;;;
+C157;HANGUL SYLLABLE SYEOGS;Lo;0;L;;;;;N;;;;;
+C158;HANGUL SYLLABLE SYEON;Lo;0;L;;;;;N;;;;;
+C159;HANGUL SYLLABLE SYEONI;Lo;0;L;;;;;N;;;;;
+C15A;HANGUL SYLLABLE SYEONH;Lo;0;L;;;;;N;;;;;
+C15B;HANGUL SYLLABLE SYEOD;Lo;0;L;;;;;N;;;;;
+C15C;HANGUL SYLLABLE SYEOL;Lo;0;L;;;;;N;;;;;
+C15D;HANGUL SYLLABLE SYEOLG;Lo;0;L;;;;;N;;;;;
+C15E;HANGUL SYLLABLE SYEOLM;Lo;0;L;;;;;N;;;;;
+C15F;HANGUL SYLLABLE SYEOLB;Lo;0;L;;;;;N;;;;;
+C160;HANGUL SYLLABLE SYEOLS;Lo;0;L;;;;;N;;;;;
+C161;HANGUL SYLLABLE SYEOLT;Lo;0;L;;;;;N;;;;;
+C162;HANGUL SYLLABLE SYEOLP;Lo;0;L;;;;;N;;;;;
+C163;HANGUL SYLLABLE SYEOLH;Lo;0;L;;;;;N;;;;;
+C164;HANGUL SYLLABLE SYEOM;Lo;0;L;;;;;N;;;;;
+C165;HANGUL SYLLABLE SYEOB;Lo;0;L;;;;;N;;;;;
+C166;HANGUL SYLLABLE SYEOBS;Lo;0;L;;;;;N;;;;;
+C167;HANGUL SYLLABLE SYEOS;Lo;0;L;;;;;N;;;;;
+C168;HANGUL SYLLABLE SYEOSS;Lo;0;L;;;;;N;;;;;
+C169;HANGUL SYLLABLE SYEONG;Lo;0;L;;;;;N;;;;;
+C16A;HANGUL SYLLABLE SYEOJ;Lo;0;L;;;;;N;;;;;
+C16B;HANGUL SYLLABLE SYEOC;Lo;0;L;;;;;N;;;;;
+C16C;HANGUL SYLLABLE SYEOK;Lo;0;L;;;;;N;;;;;
+C16D;HANGUL SYLLABLE SYEOT;Lo;0;L;;;;;N;;;;;
+C16E;HANGUL SYLLABLE SYEOP;Lo;0;L;;;;;N;;;;;
+C16F;HANGUL SYLLABLE SYEOH;Lo;0;L;;;;;N;;;;;
+C170;HANGUL SYLLABLE SYE;Lo;0;L;;;;;N;;;;;
+C171;HANGUL SYLLABLE SYEG;Lo;0;L;;;;;N;;;;;
+C172;HANGUL SYLLABLE SYEGG;Lo;0;L;;;;;N;;;;;
+C173;HANGUL SYLLABLE SYEGS;Lo;0;L;;;;;N;;;;;
+C174;HANGUL SYLLABLE SYEN;Lo;0;L;;;;;N;;;;;
+C175;HANGUL SYLLABLE SYENI;Lo;0;L;;;;;N;;;;;
+C176;HANGUL SYLLABLE SYENH;Lo;0;L;;;;;N;;;;;
+C177;HANGUL SYLLABLE SYED;Lo;0;L;;;;;N;;;;;
+C178;HANGUL SYLLABLE SYEL;Lo;0;L;;;;;N;;;;;
+C179;HANGUL SYLLABLE SYELG;Lo;0;L;;;;;N;;;;;
+C17A;HANGUL SYLLABLE SYELM;Lo;0;L;;;;;N;;;;;
+C17B;HANGUL SYLLABLE SYELB;Lo;0;L;;;;;N;;;;;
+C17C;HANGUL SYLLABLE SYELS;Lo;0;L;;;;;N;;;;;
+C17D;HANGUL SYLLABLE SYELT;Lo;0;L;;;;;N;;;;;
+C17E;HANGUL SYLLABLE SYELP;Lo;0;L;;;;;N;;;;;
+C17F;HANGUL SYLLABLE SYELH;Lo;0;L;;;;;N;;;;;
+C180;HANGUL SYLLABLE SYEM;Lo;0;L;;;;;N;;;;;
+C181;HANGUL SYLLABLE SYEB;Lo;0;L;;;;;N;;;;;
+C182;HANGUL SYLLABLE SYEBS;Lo;0;L;;;;;N;;;;;
+C183;HANGUL SYLLABLE SYES;Lo;0;L;;;;;N;;;;;
+C184;HANGUL SYLLABLE SYESS;Lo;0;L;;;;;N;;;;;
+C185;HANGUL SYLLABLE SYENG;Lo;0;L;;;;;N;;;;;
+C186;HANGUL SYLLABLE SYEJ;Lo;0;L;;;;;N;;;;;
+C187;HANGUL SYLLABLE SYEC;Lo;0;L;;;;;N;;;;;
+C188;HANGUL SYLLABLE SYEK;Lo;0;L;;;;;N;;;;;
+C189;HANGUL SYLLABLE SYET;Lo;0;L;;;;;N;;;;;
+C18A;HANGUL SYLLABLE SYEP;Lo;0;L;;;;;N;;;;;
+C18B;HANGUL SYLLABLE SYEH;Lo;0;L;;;;;N;;;;;
+C18C;HANGUL SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+C18D;HANGUL SYLLABLE SOG;Lo;0;L;;;;;N;;;;;
+C18E;HANGUL SYLLABLE SOGG;Lo;0;L;;;;;N;;;;;
+C18F;HANGUL SYLLABLE SOGS;Lo;0;L;;;;;N;;;;;
+C190;HANGUL SYLLABLE SON;Lo;0;L;;;;;N;;;;;
+C191;HANGUL SYLLABLE SONI;Lo;0;L;;;;;N;;;;;
+C192;HANGUL SYLLABLE SONH;Lo;0;L;;;;;N;;;;;
+C193;HANGUL SYLLABLE SOD;Lo;0;L;;;;;N;;;;;
+C194;HANGUL SYLLABLE SOL;Lo;0;L;;;;;N;;;;;
+C195;HANGUL SYLLABLE SOLG;Lo;0;L;;;;;N;;;;;
+C196;HANGUL SYLLABLE SOLM;Lo;0;L;;;;;N;;;;;
+C197;HANGUL SYLLABLE SOLB;Lo;0;L;;;;;N;;;;;
+C198;HANGUL SYLLABLE SOLS;Lo;0;L;;;;;N;;;;;
+C199;HANGUL SYLLABLE SOLT;Lo;0;L;;;;;N;;;;;
+C19A;HANGUL SYLLABLE SOLP;Lo;0;L;;;;;N;;;;;
+C19B;HANGUL SYLLABLE SOLH;Lo;0;L;;;;;N;;;;;
+C19C;HANGUL SYLLABLE SOM;Lo;0;L;;;;;N;;;;;
+C19D;HANGUL SYLLABLE SOB;Lo;0;L;;;;;N;;;;;
+C19E;HANGUL SYLLABLE SOBS;Lo;0;L;;;;;N;;;;;
+C19F;HANGUL SYLLABLE SOS;Lo;0;L;;;;;N;;;;;
+C1A0;HANGUL SYLLABLE SOSS;Lo;0;L;;;;;N;;;;;
+C1A1;HANGUL SYLLABLE SONG;Lo;0;L;;;;;N;;;;;
+C1A2;HANGUL SYLLABLE SOJ;Lo;0;L;;;;;N;;;;;
+C1A3;HANGUL SYLLABLE SOC;Lo;0;L;;;;;N;;;;;
+C1A4;HANGUL SYLLABLE SOK;Lo;0;L;;;;;N;;;;;
+C1A5;HANGUL SYLLABLE SOT;Lo;0;L;;;;;N;;;;;
+C1A6;HANGUL SYLLABLE SOP;Lo;0;L;;;;;N;;;;;
+C1A7;HANGUL SYLLABLE SOH;Lo;0;L;;;;;N;;;;;
+C1A8;HANGUL SYLLABLE SWA;Lo;0;L;;;;;N;;;;;
+C1A9;HANGUL SYLLABLE SWAG;Lo;0;L;;;;;N;;;;;
+C1AA;HANGUL SYLLABLE SWAGG;Lo;0;L;;;;;N;;;;;
+C1AB;HANGUL SYLLABLE SWAGS;Lo;0;L;;;;;N;;;;;
+C1AC;HANGUL SYLLABLE SWAN;Lo;0;L;;;;;N;;;;;
+C1AD;HANGUL SYLLABLE SWANI;Lo;0;L;;;;;N;;;;;
+C1AE;HANGUL SYLLABLE SWANH;Lo;0;L;;;;;N;;;;;
+C1AF;HANGUL SYLLABLE SWAD;Lo;0;L;;;;;N;;;;;
+C1B0;HANGUL SYLLABLE SWAL;Lo;0;L;;;;;N;;;;;
+C1B1;HANGUL SYLLABLE SWALG;Lo;0;L;;;;;N;;;;;
+C1B2;HANGUL SYLLABLE SWALM;Lo;0;L;;;;;N;;;;;
+C1B3;HANGUL SYLLABLE SWALB;Lo;0;L;;;;;N;;;;;
+C1B4;HANGUL SYLLABLE SWALS;Lo;0;L;;;;;N;;;;;
+C1B5;HANGUL SYLLABLE SWALT;Lo;0;L;;;;;N;;;;;
+C1B6;HANGUL SYLLABLE SWALP;Lo;0;L;;;;;N;;;;;
+C1B7;HANGUL SYLLABLE SWALH;Lo;0;L;;;;;N;;;;;
+C1B8;HANGUL SYLLABLE SWAM;Lo;0;L;;;;;N;;;;;
+C1B9;HANGUL SYLLABLE SWAB;Lo;0;L;;;;;N;;;;;
+C1BA;HANGUL SYLLABLE SWABS;Lo;0;L;;;;;N;;;;;
+C1BB;HANGUL SYLLABLE SWAS;Lo;0;L;;;;;N;;;;;
+C1BC;HANGUL SYLLABLE SWASS;Lo;0;L;;;;;N;;;;;
+C1BD;HANGUL SYLLABLE SWANG;Lo;0;L;;;;;N;;;;;
+C1BE;HANGUL SYLLABLE SWAJ;Lo;0;L;;;;;N;;;;;
+C1BF;HANGUL SYLLABLE SWAC;Lo;0;L;;;;;N;;;;;
+C1C0;HANGUL SYLLABLE SWAK;Lo;0;L;;;;;N;;;;;
+C1C1;HANGUL SYLLABLE SWAT;Lo;0;L;;;;;N;;;;;
+C1C2;HANGUL SYLLABLE SWAP;Lo;0;L;;;;;N;;;;;
+C1C3;HANGUL SYLLABLE SWAH;Lo;0;L;;;;;N;;;;;
+C1C4;HANGUL SYLLABLE SWAE;Lo;0;L;;;;;N;;;;;
+C1C5;HANGUL SYLLABLE SWAEG;Lo;0;L;;;;;N;;;;;
+C1C6;HANGUL SYLLABLE SWAEGG;Lo;0;L;;;;;N;;;;;
+C1C7;HANGUL SYLLABLE SWAEGS;Lo;0;L;;;;;N;;;;;
+C1C8;HANGUL SYLLABLE SWAEN;Lo;0;L;;;;;N;;;;;
+C1C9;HANGUL SYLLABLE SWAENI;Lo;0;L;;;;;N;;;;;
+C1CA;HANGUL SYLLABLE SWAENH;Lo;0;L;;;;;N;;;;;
+C1CB;HANGUL SYLLABLE SWAED;Lo;0;L;;;;;N;;;;;
+C1CC;HANGUL SYLLABLE SWAEL;Lo;0;L;;;;;N;;;;;
+C1CD;HANGUL SYLLABLE SWAELG;Lo;0;L;;;;;N;;;;;
+C1CE;HANGUL SYLLABLE SWAELM;Lo;0;L;;;;;N;;;;;
+C1CF;HANGUL SYLLABLE SWAELB;Lo;0;L;;;;;N;;;;;
+C1D0;HANGUL SYLLABLE SWAELS;Lo;0;L;;;;;N;;;;;
+C1D1;HANGUL SYLLABLE SWAELT;Lo;0;L;;;;;N;;;;;
+C1D2;HANGUL SYLLABLE SWAELP;Lo;0;L;;;;;N;;;;;
+C1D3;HANGUL SYLLABLE SWAELH;Lo;0;L;;;;;N;;;;;
+C1D4;HANGUL SYLLABLE SWAEM;Lo;0;L;;;;;N;;;;;
+C1D5;HANGUL SYLLABLE SWAEB;Lo;0;L;;;;;N;;;;;
+C1D6;HANGUL SYLLABLE SWAEBS;Lo;0;L;;;;;N;;;;;
+C1D7;HANGUL SYLLABLE SWAES;Lo;0;L;;;;;N;;;;;
+C1D8;HANGUL SYLLABLE SWAESS;Lo;0;L;;;;;N;;;;;
+C1D9;HANGUL SYLLABLE SWAENG;Lo;0;L;;;;;N;;;;;
+C1DA;HANGUL SYLLABLE SWAEJ;Lo;0;L;;;;;N;;;;;
+C1DB;HANGUL SYLLABLE SWAEC;Lo;0;L;;;;;N;;;;;
+C1DC;HANGUL SYLLABLE SWAEK;Lo;0;L;;;;;N;;;;;
+C1DD;HANGUL SYLLABLE SWAET;Lo;0;L;;;;;N;;;;;
+C1DE;HANGUL SYLLABLE SWAEP;Lo;0;L;;;;;N;;;;;
+C1DF;HANGUL SYLLABLE SWAEH;Lo;0;L;;;;;N;;;;;
+C1E0;HANGUL SYLLABLE SOE;Lo;0;L;;;;;N;;;;;
+C1E1;HANGUL SYLLABLE SOEG;Lo;0;L;;;;;N;;;;;
+C1E2;HANGUL SYLLABLE SOEGG;Lo;0;L;;;;;N;;;;;
+C1E3;HANGUL SYLLABLE SOEGS;Lo;0;L;;;;;N;;;;;
+C1E4;HANGUL SYLLABLE SOEN;Lo;0;L;;;;;N;;;;;
+C1E5;HANGUL SYLLABLE SOENI;Lo;0;L;;;;;N;;;;;
+C1E6;HANGUL SYLLABLE SOENH;Lo;0;L;;;;;N;;;;;
+C1E7;HANGUL SYLLABLE SOED;Lo;0;L;;;;;N;;;;;
+C1E8;HANGUL SYLLABLE SOEL;Lo;0;L;;;;;N;;;;;
+C1E9;HANGUL SYLLABLE SOELG;Lo;0;L;;;;;N;;;;;
+C1EA;HANGUL SYLLABLE SOELM;Lo;0;L;;;;;N;;;;;
+C1EB;HANGUL SYLLABLE SOELB;Lo;0;L;;;;;N;;;;;
+C1EC;HANGUL SYLLABLE SOELS;Lo;0;L;;;;;N;;;;;
+C1ED;HANGUL SYLLABLE SOELT;Lo;0;L;;;;;N;;;;;
+C1EE;HANGUL SYLLABLE SOELP;Lo;0;L;;;;;N;;;;;
+C1EF;HANGUL SYLLABLE SOELH;Lo;0;L;;;;;N;;;;;
+C1F0;HANGUL SYLLABLE SOEM;Lo;0;L;;;;;N;;;;;
+C1F1;HANGUL SYLLABLE SOEB;Lo;0;L;;;;;N;;;;;
+C1F2;HANGUL SYLLABLE SOEBS;Lo;0;L;;;;;N;;;;;
+C1F3;HANGUL SYLLABLE SOES;Lo;0;L;;;;;N;;;;;
+C1F4;HANGUL SYLLABLE SOESS;Lo;0;L;;;;;N;;;;;
+C1F5;HANGUL SYLLABLE SOENG;Lo;0;L;;;;;N;;;;;
+C1F6;HANGUL SYLLABLE SOEJ;Lo;0;L;;;;;N;;;;;
+C1F7;HANGUL SYLLABLE SOEC;Lo;0;L;;;;;N;;;;;
+C1F8;HANGUL SYLLABLE SOEK;Lo;0;L;;;;;N;;;;;
+C1F9;HANGUL SYLLABLE SOET;Lo;0;L;;;;;N;;;;;
+C1FA;HANGUL SYLLABLE SOEP;Lo;0;L;;;;;N;;;;;
+C1FB;HANGUL SYLLABLE SOEH;Lo;0;L;;;;;N;;;;;
+C1FC;HANGUL SYLLABLE SYO;Lo;0;L;;;;;N;;;;;
+C1FD;HANGUL SYLLABLE SYOG;Lo;0;L;;;;;N;;;;;
+C1FE;HANGUL SYLLABLE SYOGG;Lo;0;L;;;;;N;;;;;
+C1FF;HANGUL SYLLABLE SYOGS;Lo;0;L;;;;;N;;;;;
+C200;HANGUL SYLLABLE SYON;Lo;0;L;;;;;N;;;;;
+C201;HANGUL SYLLABLE SYONI;Lo;0;L;;;;;N;;;;;
+C202;HANGUL SYLLABLE SYONH;Lo;0;L;;;;;N;;;;;
+C203;HANGUL SYLLABLE SYOD;Lo;0;L;;;;;N;;;;;
+C204;HANGUL SYLLABLE SYOL;Lo;0;L;;;;;N;;;;;
+C205;HANGUL SYLLABLE SYOLG;Lo;0;L;;;;;N;;;;;
+C206;HANGUL SYLLABLE SYOLM;Lo;0;L;;;;;N;;;;;
+C207;HANGUL SYLLABLE SYOLB;Lo;0;L;;;;;N;;;;;
+C208;HANGUL SYLLABLE SYOLS;Lo;0;L;;;;;N;;;;;
+C209;HANGUL SYLLABLE SYOLT;Lo;0;L;;;;;N;;;;;
+C20A;HANGUL SYLLABLE SYOLP;Lo;0;L;;;;;N;;;;;
+C20B;HANGUL SYLLABLE SYOLH;Lo;0;L;;;;;N;;;;;
+C20C;HANGUL SYLLABLE SYOM;Lo;0;L;;;;;N;;;;;
+C20D;HANGUL SYLLABLE SYOB;Lo;0;L;;;;;N;;;;;
+C20E;HANGUL SYLLABLE SYOBS;Lo;0;L;;;;;N;;;;;
+C20F;HANGUL SYLLABLE SYOS;Lo;0;L;;;;;N;;;;;
+C210;HANGUL SYLLABLE SYOSS;Lo;0;L;;;;;N;;;;;
+C211;HANGUL SYLLABLE SYONG;Lo;0;L;;;;;N;;;;;
+C212;HANGUL SYLLABLE SYOJ;Lo;0;L;;;;;N;;;;;
+C213;HANGUL SYLLABLE SYOC;Lo;0;L;;;;;N;;;;;
+C214;HANGUL SYLLABLE SYOK;Lo;0;L;;;;;N;;;;;
+C215;HANGUL SYLLABLE SYOT;Lo;0;L;;;;;N;;;;;
+C216;HANGUL SYLLABLE SYOP;Lo;0;L;;;;;N;;;;;
+C217;HANGUL SYLLABLE SYOH;Lo;0;L;;;;;N;;;;;
+C218;HANGUL SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+C219;HANGUL SYLLABLE SUG;Lo;0;L;;;;;N;;;;;
+C21A;HANGUL SYLLABLE SUGG;Lo;0;L;;;;;N;;;;;
+C21B;HANGUL SYLLABLE SUGS;Lo;0;L;;;;;N;;;;;
+C21C;HANGUL SYLLABLE SUN;Lo;0;L;;;;;N;;;;;
+C21D;HANGUL SYLLABLE SUNI;Lo;0;L;;;;;N;;;;;
+C21E;HANGUL SYLLABLE SUNH;Lo;0;L;;;;;N;;;;;
+C21F;HANGUL SYLLABLE SUD;Lo;0;L;;;;;N;;;;;
+C220;HANGUL SYLLABLE SUL;Lo;0;L;;;;;N;;;;;
+C221;HANGUL SYLLABLE SULG;Lo;0;L;;;;;N;;;;;
+C222;HANGUL SYLLABLE SULM;Lo;0;L;;;;;N;;;;;
+C223;HANGUL SYLLABLE SULB;Lo;0;L;;;;;N;;;;;
+C224;HANGUL SYLLABLE SULS;Lo;0;L;;;;;N;;;;;
+C225;HANGUL SYLLABLE SULT;Lo;0;L;;;;;N;;;;;
+C226;HANGUL SYLLABLE SULP;Lo;0;L;;;;;N;;;;;
+C227;HANGUL SYLLABLE SULH;Lo;0;L;;;;;N;;;;;
+C228;HANGUL SYLLABLE SUM;Lo;0;L;;;;;N;;;;;
+C229;HANGUL SYLLABLE SUB;Lo;0;L;;;;;N;;;;;
+C22A;HANGUL SYLLABLE SUBS;Lo;0;L;;;;;N;;;;;
+C22B;HANGUL SYLLABLE SUS;Lo;0;L;;;;;N;;;;;
+C22C;HANGUL SYLLABLE SUSS;Lo;0;L;;;;;N;;;;;
+C22D;HANGUL SYLLABLE SUNG;Lo;0;L;;;;;N;;;;;
+C22E;HANGUL SYLLABLE SUJ;Lo;0;L;;;;;N;;;;;
+C22F;HANGUL SYLLABLE SUC;Lo;0;L;;;;;N;;;;;
+C230;HANGUL SYLLABLE SUK;Lo;0;L;;;;;N;;;;;
+C231;HANGUL SYLLABLE SUT;Lo;0;L;;;;;N;;;;;
+C232;HANGUL SYLLABLE SUP;Lo;0;L;;;;;N;;;;;
+C233;HANGUL SYLLABLE SUH;Lo;0;L;;;;;N;;;;;
+C234;HANGUL SYLLABLE SWEO;Lo;0;L;;;;;N;;;;;
+C235;HANGUL SYLLABLE SWEOG;Lo;0;L;;;;;N;;;;;
+C236;HANGUL SYLLABLE SWEOGG;Lo;0;L;;;;;N;;;;;
+C237;HANGUL SYLLABLE SWEOGS;Lo;0;L;;;;;N;;;;;
+C238;HANGUL SYLLABLE SWEON;Lo;0;L;;;;;N;;;;;
+C239;HANGUL SYLLABLE SWEONI;Lo;0;L;;;;;N;;;;;
+C23A;HANGUL SYLLABLE SWEONH;Lo;0;L;;;;;N;;;;;
+C23B;HANGUL SYLLABLE SWEOD;Lo;0;L;;;;;N;;;;;
+C23C;HANGUL SYLLABLE SWEOL;Lo;0;L;;;;;N;;;;;
+C23D;HANGUL SYLLABLE SWEOLG;Lo;0;L;;;;;N;;;;;
+C23E;HANGUL SYLLABLE SWEOLM;Lo;0;L;;;;;N;;;;;
+C23F;HANGUL SYLLABLE SWEOLB;Lo;0;L;;;;;N;;;;;
+C240;HANGUL SYLLABLE SWEOLS;Lo;0;L;;;;;N;;;;;
+C241;HANGUL SYLLABLE SWEOLT;Lo;0;L;;;;;N;;;;;
+C242;HANGUL SYLLABLE SWEOLP;Lo;0;L;;;;;N;;;;;
+C243;HANGUL SYLLABLE SWEOLH;Lo;0;L;;;;;N;;;;;
+C244;HANGUL SYLLABLE SWEOM;Lo;0;L;;;;;N;;;;;
+C245;HANGUL SYLLABLE SWEOB;Lo;0;L;;;;;N;;;;;
+C246;HANGUL SYLLABLE SWEOBS;Lo;0;L;;;;;N;;;;;
+C247;HANGUL SYLLABLE SWEOS;Lo;0;L;;;;;N;;;;;
+C248;HANGUL SYLLABLE SWEOSS;Lo;0;L;;;;;N;;;;;
+C249;HANGUL SYLLABLE SWEONG;Lo;0;L;;;;;N;;;;;
+C24A;HANGUL SYLLABLE SWEOJ;Lo;0;L;;;;;N;;;;;
+C24B;HANGUL SYLLABLE SWEOC;Lo;0;L;;;;;N;;;;;
+C24C;HANGUL SYLLABLE SWEOK;Lo;0;L;;;;;N;;;;;
+C24D;HANGUL SYLLABLE SWEOT;Lo;0;L;;;;;N;;;;;
+C24E;HANGUL SYLLABLE SWEOP;Lo;0;L;;;;;N;;;;;
+C24F;HANGUL SYLLABLE SWEOH;Lo;0;L;;;;;N;;;;;
+C250;HANGUL SYLLABLE SWE;Lo;0;L;;;;;N;;;;;
+C251;HANGUL SYLLABLE SWEG;Lo;0;L;;;;;N;;;;;
+C252;HANGUL SYLLABLE SWEGG;Lo;0;L;;;;;N;;;;;
+C253;HANGUL SYLLABLE SWEGS;Lo;0;L;;;;;N;;;;;
+C254;HANGUL SYLLABLE SWEN;Lo;0;L;;;;;N;;;;;
+C255;HANGUL SYLLABLE SWENI;Lo;0;L;;;;;N;;;;;
+C256;HANGUL SYLLABLE SWENH;Lo;0;L;;;;;N;;;;;
+C257;HANGUL SYLLABLE SWED;Lo;0;L;;;;;N;;;;;
+C258;HANGUL SYLLABLE SWEL;Lo;0;L;;;;;N;;;;;
+C259;HANGUL SYLLABLE SWELG;Lo;0;L;;;;;N;;;;;
+C25A;HANGUL SYLLABLE SWELM;Lo;0;L;;;;;N;;;;;
+C25B;HANGUL SYLLABLE SWELB;Lo;0;L;;;;;N;;;;;
+C25C;HANGUL SYLLABLE SWELS;Lo;0;L;;;;;N;;;;;
+C25D;HANGUL SYLLABLE SWELT;Lo;0;L;;;;;N;;;;;
+C25E;HANGUL SYLLABLE SWELP;Lo;0;L;;;;;N;;;;;
+C25F;HANGUL SYLLABLE SWELH;Lo;0;L;;;;;N;;;;;
+C260;HANGUL SYLLABLE SWEM;Lo;0;L;;;;;N;;;;;
+C261;HANGUL SYLLABLE SWEB;Lo;0;L;;;;;N;;;;;
+C262;HANGUL SYLLABLE SWEBS;Lo;0;L;;;;;N;;;;;
+C263;HANGUL SYLLABLE SWES;Lo;0;L;;;;;N;;;;;
+C264;HANGUL SYLLABLE SWESS;Lo;0;L;;;;;N;;;;;
+C265;HANGUL SYLLABLE SWENG;Lo;0;L;;;;;N;;;;;
+C266;HANGUL SYLLABLE SWEJ;Lo;0;L;;;;;N;;;;;
+C267;HANGUL SYLLABLE SWEC;Lo;0;L;;;;;N;;;;;
+C268;HANGUL SYLLABLE SWEK;Lo;0;L;;;;;N;;;;;
+C269;HANGUL SYLLABLE SWET;Lo;0;L;;;;;N;;;;;
+C26A;HANGUL SYLLABLE SWEP;Lo;0;L;;;;;N;;;;;
+C26B;HANGUL SYLLABLE SWEH;Lo;0;L;;;;;N;;;;;
+C26C;HANGUL SYLLABLE SWI;Lo;0;L;;;;;N;;;;;
+C26D;HANGUL SYLLABLE SWIG;Lo;0;L;;;;;N;;;;;
+C26E;HANGUL SYLLABLE SWIGG;Lo;0;L;;;;;N;;;;;
+C26F;HANGUL SYLLABLE SWIGS;Lo;0;L;;;;;N;;;;;
+C270;HANGUL SYLLABLE SWIN;Lo;0;L;;;;;N;;;;;
+C271;HANGUL SYLLABLE SWINI;Lo;0;L;;;;;N;;;;;
+C272;HANGUL SYLLABLE SWINH;Lo;0;L;;;;;N;;;;;
+C273;HANGUL SYLLABLE SWID;Lo;0;L;;;;;N;;;;;
+C274;HANGUL SYLLABLE SWIL;Lo;0;L;;;;;N;;;;;
+C275;HANGUL SYLLABLE SWILG;Lo;0;L;;;;;N;;;;;
+C276;HANGUL SYLLABLE SWILM;Lo;0;L;;;;;N;;;;;
+C277;HANGUL SYLLABLE SWILB;Lo;0;L;;;;;N;;;;;
+C278;HANGUL SYLLABLE SWILS;Lo;0;L;;;;;N;;;;;
+C279;HANGUL SYLLABLE SWILT;Lo;0;L;;;;;N;;;;;
+C27A;HANGUL SYLLABLE SWILP;Lo;0;L;;;;;N;;;;;
+C27B;HANGUL SYLLABLE SWILH;Lo;0;L;;;;;N;;;;;
+C27C;HANGUL SYLLABLE SWIM;Lo;0;L;;;;;N;;;;;
+C27D;HANGUL SYLLABLE SWIB;Lo;0;L;;;;;N;;;;;
+C27E;HANGUL SYLLABLE SWIBS;Lo;0;L;;;;;N;;;;;
+C27F;HANGUL SYLLABLE SWIS;Lo;0;L;;;;;N;;;;;
+C280;HANGUL SYLLABLE SWISS;Lo;0;L;;;;;N;;;;;
+C281;HANGUL SYLLABLE SWING;Lo;0;L;;;;;N;;;;;
+C282;HANGUL SYLLABLE SWIJ;Lo;0;L;;;;;N;;;;;
+C283;HANGUL SYLLABLE SWIC;Lo;0;L;;;;;N;;;;;
+C284;HANGUL SYLLABLE SWIK;Lo;0;L;;;;;N;;;;;
+C285;HANGUL SYLLABLE SWIT;Lo;0;L;;;;;N;;;;;
+C286;HANGUL SYLLABLE SWIP;Lo;0;L;;;;;N;;;;;
+C287;HANGUL SYLLABLE SWIH;Lo;0;L;;;;;N;;;;;
+C288;HANGUL SYLLABLE SYU;Lo;0;L;;;;;N;;;;;
+C289;HANGUL SYLLABLE SYUG;Lo;0;L;;;;;N;;;;;
+C28A;HANGUL SYLLABLE SYUGG;Lo;0;L;;;;;N;;;;;
+C28B;HANGUL SYLLABLE SYUGS;Lo;0;L;;;;;N;;;;;
+C28C;HANGUL SYLLABLE SYUN;Lo;0;L;;;;;N;;;;;
+C28D;HANGUL SYLLABLE SYUNI;Lo;0;L;;;;;N;;;;;
+C28E;HANGUL SYLLABLE SYUNH;Lo;0;L;;;;;N;;;;;
+C28F;HANGUL SYLLABLE SYUD;Lo;0;L;;;;;N;;;;;
+C290;HANGUL SYLLABLE SYUL;Lo;0;L;;;;;N;;;;;
+C291;HANGUL SYLLABLE SYULG;Lo;0;L;;;;;N;;;;;
+C292;HANGUL SYLLABLE SYULM;Lo;0;L;;;;;N;;;;;
+C293;HANGUL SYLLABLE SYULB;Lo;0;L;;;;;N;;;;;
+C294;HANGUL SYLLABLE SYULS;Lo;0;L;;;;;N;;;;;
+C295;HANGUL SYLLABLE SYULT;Lo;0;L;;;;;N;;;;;
+C296;HANGUL SYLLABLE SYULP;Lo;0;L;;;;;N;;;;;
+C297;HANGUL SYLLABLE SYULH;Lo;0;L;;;;;N;;;;;
+C298;HANGUL SYLLABLE SYUM;Lo;0;L;;;;;N;;;;;
+C299;HANGUL SYLLABLE SYUB;Lo;0;L;;;;;N;;;;;
+C29A;HANGUL SYLLABLE SYUBS;Lo;0;L;;;;;N;;;;;
+C29B;HANGUL SYLLABLE SYUS;Lo;0;L;;;;;N;;;;;
+C29C;HANGUL SYLLABLE SYUSS;Lo;0;L;;;;;N;;;;;
+C29D;HANGUL SYLLABLE SYUNG;Lo;0;L;;;;;N;;;;;
+C29E;HANGUL SYLLABLE SYUJ;Lo;0;L;;;;;N;;;;;
+C29F;HANGUL SYLLABLE SYUC;Lo;0;L;;;;;N;;;;;
+C2A0;HANGUL SYLLABLE SYUK;Lo;0;L;;;;;N;;;;;
+C2A1;HANGUL SYLLABLE SYUT;Lo;0;L;;;;;N;;;;;
+C2A2;HANGUL SYLLABLE SYUP;Lo;0;L;;;;;N;;;;;
+C2A3;HANGUL SYLLABLE SYUH;Lo;0;L;;;;;N;;;;;
+C2A4;HANGUL SYLLABLE SEU;Lo;0;L;;;;;N;;;;;
+C2A5;HANGUL SYLLABLE SEUG;Lo;0;L;;;;;N;;;;;
+C2A6;HANGUL SYLLABLE SEUGG;Lo;0;L;;;;;N;;;;;
+C2A7;HANGUL SYLLABLE SEUGS;Lo;0;L;;;;;N;;;;;
+C2A8;HANGUL SYLLABLE SEUN;Lo;0;L;;;;;N;;;;;
+C2A9;HANGUL SYLLABLE SEUNI;Lo;0;L;;;;;N;;;;;
+C2AA;HANGUL SYLLABLE SEUNH;Lo;0;L;;;;;N;;;;;
+C2AB;HANGUL SYLLABLE SEUD;Lo;0;L;;;;;N;;;;;
+C2AC;HANGUL SYLLABLE SEUL;Lo;0;L;;;;;N;;;;;
+C2AD;HANGUL SYLLABLE SEULG;Lo;0;L;;;;;N;;;;;
+C2AE;HANGUL SYLLABLE SEULM;Lo;0;L;;;;;N;;;;;
+C2AF;HANGUL SYLLABLE SEULB;Lo;0;L;;;;;N;;;;;
+C2B0;HANGUL SYLLABLE SEULS;Lo;0;L;;;;;N;;;;;
+C2B1;HANGUL SYLLABLE SEULT;Lo;0;L;;;;;N;;;;;
+C2B2;HANGUL SYLLABLE SEULP;Lo;0;L;;;;;N;;;;;
+C2B3;HANGUL SYLLABLE SEULH;Lo;0;L;;;;;N;;;;;
+C2B4;HANGUL SYLLABLE SEUM;Lo;0;L;;;;;N;;;;;
+C2B5;HANGUL SYLLABLE SEUB;Lo;0;L;;;;;N;;;;;
+C2B6;HANGUL SYLLABLE SEUBS;Lo;0;L;;;;;N;;;;;
+C2B7;HANGUL SYLLABLE SEUS;Lo;0;L;;;;;N;;;;;
+C2B8;HANGUL SYLLABLE SEUSS;Lo;0;L;;;;;N;;;;;
+C2B9;HANGUL SYLLABLE SEUNG;Lo;0;L;;;;;N;;;;;
+C2BA;HANGUL SYLLABLE SEUJ;Lo;0;L;;;;;N;;;;;
+C2BB;HANGUL SYLLABLE SEUC;Lo;0;L;;;;;N;;;;;
+C2BC;HANGUL SYLLABLE SEUK;Lo;0;L;;;;;N;;;;;
+C2BD;HANGUL SYLLABLE SEUT;Lo;0;L;;;;;N;;;;;
+C2BE;HANGUL SYLLABLE SEUP;Lo;0;L;;;;;N;;;;;
+C2BF;HANGUL SYLLABLE SEUH;Lo;0;L;;;;;N;;;;;
+C2C0;HANGUL SYLLABLE SYI;Lo;0;L;;;;;N;;;;;
+C2C1;HANGUL SYLLABLE SYIG;Lo;0;L;;;;;N;;;;;
+C2C2;HANGUL SYLLABLE SYIGG;Lo;0;L;;;;;N;;;;;
+C2C3;HANGUL SYLLABLE SYIGS;Lo;0;L;;;;;N;;;;;
+C2C4;HANGUL SYLLABLE SYIN;Lo;0;L;;;;;N;;;;;
+C2C5;HANGUL SYLLABLE SYINI;Lo;0;L;;;;;N;;;;;
+C2C6;HANGUL SYLLABLE SYINH;Lo;0;L;;;;;N;;;;;
+C2C7;HANGUL SYLLABLE SYID;Lo;0;L;;;;;N;;;;;
+C2C8;HANGUL SYLLABLE SYIL;Lo;0;L;;;;;N;;;;;
+C2C9;HANGUL SYLLABLE SYILG;Lo;0;L;;;;;N;;;;;
+C2CA;HANGUL SYLLABLE SYILM;Lo;0;L;;;;;N;;;;;
+C2CB;HANGUL SYLLABLE SYILB;Lo;0;L;;;;;N;;;;;
+C2CC;HANGUL SYLLABLE SYILS;Lo;0;L;;;;;N;;;;;
+C2CD;HANGUL SYLLABLE SYILT;Lo;0;L;;;;;N;;;;;
+C2CE;HANGUL SYLLABLE SYILP;Lo;0;L;;;;;N;;;;;
+C2CF;HANGUL SYLLABLE SYILH;Lo;0;L;;;;;N;;;;;
+C2D0;HANGUL SYLLABLE SYIM;Lo;0;L;;;;;N;;;;;
+C2D1;HANGUL SYLLABLE SYIB;Lo;0;L;;;;;N;;;;;
+C2D2;HANGUL SYLLABLE SYIBS;Lo;0;L;;;;;N;;;;;
+C2D3;HANGUL SYLLABLE SYIS;Lo;0;L;;;;;N;;;;;
+C2D4;HANGUL SYLLABLE SYISS;Lo;0;L;;;;;N;;;;;
+C2D5;HANGUL SYLLABLE SYING;Lo;0;L;;;;;N;;;;;
+C2D6;HANGUL SYLLABLE SYIJ;Lo;0;L;;;;;N;;;;;
+C2D7;HANGUL SYLLABLE SYIC;Lo;0;L;;;;;N;;;;;
+C2D8;HANGUL SYLLABLE SYIK;Lo;0;L;;;;;N;;;;;
+C2D9;HANGUL SYLLABLE SYIT;Lo;0;L;;;;;N;;;;;
+C2DA;HANGUL SYLLABLE SYIP;Lo;0;L;;;;;N;;;;;
+C2DB;HANGUL SYLLABLE SYIH;Lo;0;L;;;;;N;;;;;
+C2DC;HANGUL SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+C2DD;HANGUL SYLLABLE SIG;Lo;0;L;;;;;N;;;;;
+C2DE;HANGUL SYLLABLE SIGG;Lo;0;L;;;;;N;;;;;
+C2DF;HANGUL SYLLABLE SIGS;Lo;0;L;;;;;N;;;;;
+C2E0;HANGUL SYLLABLE SIN;Lo;0;L;;;;;N;;;;;
+C2E1;HANGUL SYLLABLE SINI;Lo;0;L;;;;;N;;;;;
+C2E2;HANGUL SYLLABLE SINH;Lo;0;L;;;;;N;;;;;
+C2E3;HANGUL SYLLABLE SID;Lo;0;L;;;;;N;;;;;
+C2E4;HANGUL SYLLABLE SIL;Lo;0;L;;;;;N;;;;;
+C2E5;HANGUL SYLLABLE SILG;Lo;0;L;;;;;N;;;;;
+C2E6;HANGUL SYLLABLE SILM;Lo;0;L;;;;;N;;;;;
+C2E7;HANGUL SYLLABLE SILB;Lo;0;L;;;;;N;;;;;
+C2E8;HANGUL SYLLABLE SILS;Lo;0;L;;;;;N;;;;;
+C2E9;HANGUL SYLLABLE SILT;Lo;0;L;;;;;N;;;;;
+C2EA;HANGUL SYLLABLE SILP;Lo;0;L;;;;;N;;;;;
+C2EB;HANGUL SYLLABLE SILH;Lo;0;L;;;;;N;;;;;
+C2EC;HANGUL SYLLABLE SIM;Lo;0;L;;;;;N;;;;;
+C2ED;HANGUL SYLLABLE SIB;Lo;0;L;;;;;N;;;;;
+C2EE;HANGUL SYLLABLE SIBS;Lo;0;L;;;;;N;;;;;
+C2EF;HANGUL SYLLABLE SIS;Lo;0;L;;;;;N;;;;;
+C2F0;HANGUL SYLLABLE SISS;Lo;0;L;;;;;N;;;;;
+C2F1;HANGUL SYLLABLE SING;Lo;0;L;;;;;N;;;;;
+C2F2;HANGUL SYLLABLE SIJ;Lo;0;L;;;;;N;;;;;
+C2F3;HANGUL SYLLABLE SIC;Lo;0;L;;;;;N;;;;;
+C2F4;HANGUL SYLLABLE SIK;Lo;0;L;;;;;N;;;;;
+C2F5;HANGUL SYLLABLE SIT;Lo;0;L;;;;;N;;;;;
+C2F6;HANGUL SYLLABLE SIP;Lo;0;L;;;;;N;;;;;
+C2F7;HANGUL SYLLABLE SIH;Lo;0;L;;;;;N;;;;;
+C2F8;HANGUL SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+C2F9;HANGUL SYLLABLE SSAG;Lo;0;L;;;;;N;;;;;
+C2FA;HANGUL SYLLABLE SSAGG;Lo;0;L;;;;;N;;;;;
+C2FB;HANGUL SYLLABLE SSAGS;Lo;0;L;;;;;N;;;;;
+C2FC;HANGUL SYLLABLE SSAN;Lo;0;L;;;;;N;;;;;
+C2FD;HANGUL SYLLABLE SSANI;Lo;0;L;;;;;N;;;;;
+C2FE;HANGUL SYLLABLE SSANH;Lo;0;L;;;;;N;;;;;
+C2FF;HANGUL SYLLABLE SSAD;Lo;0;L;;;;;N;;;;;
+C300;HANGUL SYLLABLE SSAL;Lo;0;L;;;;;N;;;;;
+C301;HANGUL SYLLABLE SSALG;Lo;0;L;;;;;N;;;;;
+C302;HANGUL SYLLABLE SSALM;Lo;0;L;;;;;N;;;;;
+C303;HANGUL SYLLABLE SSALB;Lo;0;L;;;;;N;;;;;
+C304;HANGUL SYLLABLE SSALS;Lo;0;L;;;;;N;;;;;
+C305;HANGUL SYLLABLE SSALT;Lo;0;L;;;;;N;;;;;
+C306;HANGUL SYLLABLE SSALP;Lo;0;L;;;;;N;;;;;
+C307;HANGUL SYLLABLE SSALH;Lo;0;L;;;;;N;;;;;
+C308;HANGUL SYLLABLE SSAM;Lo;0;L;;;;;N;;;;;
+C309;HANGUL SYLLABLE SSAB;Lo;0;L;;;;;N;;;;;
+C30A;HANGUL SYLLABLE SSABS;Lo;0;L;;;;;N;;;;;
+C30B;HANGUL SYLLABLE SSAS;Lo;0;L;;;;;N;;;;;
+C30C;HANGUL SYLLABLE SSASS;Lo;0;L;;;;;N;;;;;
+C30D;HANGUL SYLLABLE SSANG;Lo;0;L;;;;;N;;;;;
+C30E;HANGUL SYLLABLE SSAJ;Lo;0;L;;;;;N;;;;;
+C30F;HANGUL SYLLABLE SSAC;Lo;0;L;;;;;N;;;;;
+C310;HANGUL SYLLABLE SSAK;Lo;0;L;;;;;N;;;;;
+C311;HANGUL SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;
+C312;HANGUL SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;
+C313;HANGUL SYLLABLE SSAH;Lo;0;L;;;;;N;;;;;
+C314;HANGUL SYLLABLE SSAE;Lo;0;L;;;;;N;;;;;
+C315;HANGUL SYLLABLE SSAEG;Lo;0;L;;;;;N;;;;;
+C316;HANGUL SYLLABLE SSAEGG;Lo;0;L;;;;;N;;;;;
+C317;HANGUL SYLLABLE SSAEGS;Lo;0;L;;;;;N;;;;;
+C318;HANGUL SYLLABLE SSAEN;Lo;0;L;;;;;N;;;;;
+C319;HANGUL SYLLABLE SSAENI;Lo;0;L;;;;;N;;;;;
+C31A;HANGUL SYLLABLE SSAENH;Lo;0;L;;;;;N;;;;;
+C31B;HANGUL SYLLABLE SSAED;Lo;0;L;;;;;N;;;;;
+C31C;HANGUL SYLLABLE SSAEL;Lo;0;L;;;;;N;;;;;
+C31D;HANGUL SYLLABLE SSAELG;Lo;0;L;;;;;N;;;;;
+C31E;HANGUL SYLLABLE SSAELM;Lo;0;L;;;;;N;;;;;
+C31F;HANGUL SYLLABLE SSAELB;Lo;0;L;;;;;N;;;;;
+C320;HANGUL SYLLABLE SSAELS;Lo;0;L;;;;;N;;;;;
+C321;HANGUL SYLLABLE SSAELT;Lo;0;L;;;;;N;;;;;
+C322;HANGUL SYLLABLE SSAELP;Lo;0;L;;;;;N;;;;;
+C323;HANGUL SYLLABLE SSAELH;Lo;0;L;;;;;N;;;;;
+C324;HANGUL SYLLABLE SSAEM;Lo;0;L;;;;;N;;;;;
+C325;HANGUL SYLLABLE SSAEB;Lo;0;L;;;;;N;;;;;
+C326;HANGUL SYLLABLE SSAEBS;Lo;0;L;;;;;N;;;;;
+C327;HANGUL SYLLABLE SSAES;Lo;0;L;;;;;N;;;;;
+C328;HANGUL SYLLABLE SSAESS;Lo;0;L;;;;;N;;;;;
+C329;HANGUL SYLLABLE SSAENG;Lo;0;L;;;;;N;;;;;
+C32A;HANGUL SYLLABLE SSAEJ;Lo;0;L;;;;;N;;;;;
+C32B;HANGUL SYLLABLE SSAEC;Lo;0;L;;;;;N;;;;;
+C32C;HANGUL SYLLABLE SSAEK;Lo;0;L;;;;;N;;;;;
+C32D;HANGUL SYLLABLE SSAET;Lo;0;L;;;;;N;;;;;
+C32E;HANGUL SYLLABLE SSAEP;Lo;0;L;;;;;N;;;;;
+C32F;HANGUL SYLLABLE SSAEH;Lo;0;L;;;;;N;;;;;
+C330;HANGUL SYLLABLE SSYA;Lo;0;L;;;;;N;;;;;
+C331;HANGUL SYLLABLE SSYAG;Lo;0;L;;;;;N;;;;;
+C332;HANGUL SYLLABLE SSYAGG;Lo;0;L;;;;;N;;;;;
+C333;HANGUL SYLLABLE SSYAGS;Lo;0;L;;;;;N;;;;;
+C334;HANGUL SYLLABLE SSYAN;Lo;0;L;;;;;N;;;;;
+C335;HANGUL SYLLABLE SSYANI;Lo;0;L;;;;;N;;;;;
+C336;HANGUL SYLLABLE SSYANH;Lo;0;L;;;;;N;;;;;
+C337;HANGUL SYLLABLE SSYAD;Lo;0;L;;;;;N;;;;;
+C338;HANGUL SYLLABLE SSYAL;Lo;0;L;;;;;N;;;;;
+C339;HANGUL SYLLABLE SSYALG;Lo;0;L;;;;;N;;;;;
+C33A;HANGUL SYLLABLE SSYALM;Lo;0;L;;;;;N;;;;;
+C33B;HANGUL SYLLABLE SSYALB;Lo;0;L;;;;;N;;;;;
+C33C;HANGUL SYLLABLE SSYALS;Lo;0;L;;;;;N;;;;;
+C33D;HANGUL SYLLABLE SSYALT;Lo;0;L;;;;;N;;;;;
+C33E;HANGUL SYLLABLE SSYALP;Lo;0;L;;;;;N;;;;;
+C33F;HANGUL SYLLABLE SSYALH;Lo;0;L;;;;;N;;;;;
+C340;HANGUL SYLLABLE SSYAM;Lo;0;L;;;;;N;;;;;
+C341;HANGUL SYLLABLE SSYAB;Lo;0;L;;;;;N;;;;;
+C342;HANGUL SYLLABLE SSYABS;Lo;0;L;;;;;N;;;;;
+C343;HANGUL SYLLABLE SSYAS;Lo;0;L;;;;;N;;;;;
+C344;HANGUL SYLLABLE SSYASS;Lo;0;L;;;;;N;;;;;
+C345;HANGUL SYLLABLE SSYANG;Lo;0;L;;;;;N;;;;;
+C346;HANGUL SYLLABLE SSYAJ;Lo;0;L;;;;;N;;;;;
+C347;HANGUL SYLLABLE SSYAC;Lo;0;L;;;;;N;;;;;
+C348;HANGUL SYLLABLE SSYAK;Lo;0;L;;;;;N;;;;;
+C349;HANGUL SYLLABLE SSYAT;Lo;0;L;;;;;N;;;;;
+C34A;HANGUL SYLLABLE SSYAP;Lo;0;L;;;;;N;;;;;
+C34B;HANGUL SYLLABLE SSYAH;Lo;0;L;;;;;N;;;;;
+C34C;HANGUL SYLLABLE SSYAE;Lo;0;L;;;;;N;;;;;
+C34D;HANGUL SYLLABLE SSYAEG;Lo;0;L;;;;;N;;;;;
+C34E;HANGUL SYLLABLE SSYAEGG;Lo;0;L;;;;;N;;;;;
+C34F;HANGUL SYLLABLE SSYAEGS;Lo;0;L;;;;;N;;;;;
+C350;HANGUL SYLLABLE SSYAEN;Lo;0;L;;;;;N;;;;;
+C351;HANGUL SYLLABLE SSYAENI;Lo;0;L;;;;;N;;;;;
+C352;HANGUL SYLLABLE SSYAENH;Lo;0;L;;;;;N;;;;;
+C353;HANGUL SYLLABLE SSYAED;Lo;0;L;;;;;N;;;;;
+C354;HANGUL SYLLABLE SSYAEL;Lo;0;L;;;;;N;;;;;
+C355;HANGUL SYLLABLE SSYAELG;Lo;0;L;;;;;N;;;;;
+C356;HANGUL SYLLABLE SSYAELM;Lo;0;L;;;;;N;;;;;
+C357;HANGUL SYLLABLE SSYAELB;Lo;0;L;;;;;N;;;;;
+C358;HANGUL SYLLABLE SSYAELS;Lo;0;L;;;;;N;;;;;
+C359;HANGUL SYLLABLE SSYAELT;Lo;0;L;;;;;N;;;;;
+C35A;HANGUL SYLLABLE SSYAELP;Lo;0;L;;;;;N;;;;;
+C35B;HANGUL SYLLABLE SSYAELH;Lo;0;L;;;;;N;;;;;
+C35C;HANGUL SYLLABLE SSYAEM;Lo;0;L;;;;;N;;;;;
+C35D;HANGUL SYLLABLE SSYAEB;Lo;0;L;;;;;N;;;;;
+C35E;HANGUL SYLLABLE SSYAEBS;Lo;0;L;;;;;N;;;;;
+C35F;HANGUL SYLLABLE SSYAES;Lo;0;L;;;;;N;;;;;
+C360;HANGUL SYLLABLE SSYAESS;Lo;0;L;;;;;N;;;;;
+C361;HANGUL SYLLABLE SSYAENG;Lo;0;L;;;;;N;;;;;
+C362;HANGUL SYLLABLE SSYAEJ;Lo;0;L;;;;;N;;;;;
+C363;HANGUL SYLLABLE SSYAEC;Lo;0;L;;;;;N;;;;;
+C364;HANGUL SYLLABLE SSYAEK;Lo;0;L;;;;;N;;;;;
+C365;HANGUL SYLLABLE SSYAET;Lo;0;L;;;;;N;;;;;
+C366;HANGUL SYLLABLE SSYAEP;Lo;0;L;;;;;N;;;;;
+C367;HANGUL SYLLABLE SSYAEH;Lo;0;L;;;;;N;;;;;
+C368;HANGUL SYLLABLE SSEO;Lo;0;L;;;;;N;;;;;
+C369;HANGUL SYLLABLE SSEOG;Lo;0;L;;;;;N;;;;;
+C36A;HANGUL SYLLABLE SSEOGG;Lo;0;L;;;;;N;;;;;
+C36B;HANGUL SYLLABLE SSEOGS;Lo;0;L;;;;;N;;;;;
+C36C;HANGUL SYLLABLE SSEON;Lo;0;L;;;;;N;;;;;
+C36D;HANGUL SYLLABLE SSEONI;Lo;0;L;;;;;N;;;;;
+C36E;HANGUL SYLLABLE SSEONH;Lo;0;L;;;;;N;;;;;
+C36F;HANGUL SYLLABLE SSEOD;Lo;0;L;;;;;N;;;;;
+C370;HANGUL SYLLABLE SSEOL;Lo;0;L;;;;;N;;;;;
+C371;HANGUL SYLLABLE SSEOLG;Lo;0;L;;;;;N;;;;;
+C372;HANGUL SYLLABLE SSEOLM;Lo;0;L;;;;;N;;;;;
+C373;HANGUL SYLLABLE SSEOLB;Lo;0;L;;;;;N;;;;;
+C374;HANGUL SYLLABLE SSEOLS;Lo;0;L;;;;;N;;;;;
+C375;HANGUL SYLLABLE SSEOLT;Lo;0;L;;;;;N;;;;;
+C376;HANGUL SYLLABLE SSEOLP;Lo;0;L;;;;;N;;;;;
+C377;HANGUL SYLLABLE SSEOLH;Lo;0;L;;;;;N;;;;;
+C378;HANGUL SYLLABLE SSEOM;Lo;0;L;;;;;N;;;;;
+C379;HANGUL SYLLABLE SSEOB;Lo;0;L;;;;;N;;;;;
+C37A;HANGUL SYLLABLE SSEOBS;Lo;0;L;;;;;N;;;;;
+C37B;HANGUL SYLLABLE SSEOS;Lo;0;L;;;;;N;;;;;
+C37C;HANGUL SYLLABLE SSEOSS;Lo;0;L;;;;;N;;;;;
+C37D;HANGUL SYLLABLE SSEONG;Lo;0;L;;;;;N;;;;;
+C37E;HANGUL SYLLABLE SSEOJ;Lo;0;L;;;;;N;;;;;
+C37F;HANGUL SYLLABLE SSEOC;Lo;0;L;;;;;N;;;;;
+C380;HANGUL SYLLABLE SSEOK;Lo;0;L;;;;;N;;;;;
+C381;HANGUL SYLLABLE SSEOT;Lo;0;L;;;;;N;;;;;
+C382;HANGUL SYLLABLE SSEOP;Lo;0;L;;;;;N;;;;;
+C383;HANGUL SYLLABLE SSEOH;Lo;0;L;;;;;N;;;;;
+C384;HANGUL SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+C385;HANGUL SYLLABLE SSEG;Lo;0;L;;;;;N;;;;;
+C386;HANGUL SYLLABLE SSEGG;Lo;0;L;;;;;N;;;;;
+C387;HANGUL SYLLABLE SSEGS;Lo;0;L;;;;;N;;;;;
+C388;HANGUL SYLLABLE SSEN;Lo;0;L;;;;;N;;;;;
+C389;HANGUL SYLLABLE SSENI;Lo;0;L;;;;;N;;;;;
+C38A;HANGUL SYLLABLE SSENH;Lo;0;L;;;;;N;;;;;
+C38B;HANGUL SYLLABLE SSED;Lo;0;L;;;;;N;;;;;
+C38C;HANGUL SYLLABLE SSEL;Lo;0;L;;;;;N;;;;;
+C38D;HANGUL SYLLABLE SSELG;Lo;0;L;;;;;N;;;;;
+C38E;HANGUL SYLLABLE SSELM;Lo;0;L;;;;;N;;;;;
+C38F;HANGUL SYLLABLE SSELB;Lo;0;L;;;;;N;;;;;
+C390;HANGUL SYLLABLE SSELS;Lo;0;L;;;;;N;;;;;
+C391;HANGUL SYLLABLE SSELT;Lo;0;L;;;;;N;;;;;
+C392;HANGUL SYLLABLE SSELP;Lo;0;L;;;;;N;;;;;
+C393;HANGUL SYLLABLE SSELH;Lo;0;L;;;;;N;;;;;
+C394;HANGUL SYLLABLE SSEM;Lo;0;L;;;;;N;;;;;
+C395;HANGUL SYLLABLE SSEB;Lo;0;L;;;;;N;;;;;
+C396;HANGUL SYLLABLE SSEBS;Lo;0;L;;;;;N;;;;;
+C397;HANGUL SYLLABLE SSES;Lo;0;L;;;;;N;;;;;
+C398;HANGUL SYLLABLE SSESS;Lo;0;L;;;;;N;;;;;
+C399;HANGUL SYLLABLE SSENG;Lo;0;L;;;;;N;;;;;
+C39A;HANGUL SYLLABLE SSEJ;Lo;0;L;;;;;N;;;;;
+C39B;HANGUL SYLLABLE SSEC;Lo;0;L;;;;;N;;;;;
+C39C;HANGUL SYLLABLE SSEK;Lo;0;L;;;;;N;;;;;
+C39D;HANGUL SYLLABLE SSET;Lo;0;L;;;;;N;;;;;
+C39E;HANGUL SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;
+C39F;HANGUL SYLLABLE SSEH;Lo;0;L;;;;;N;;;;;
+C3A0;HANGUL SYLLABLE SSYEO;Lo;0;L;;;;;N;;;;;
+C3A1;HANGUL SYLLABLE SSYEOG;Lo;0;L;;;;;N;;;;;
+C3A2;HANGUL SYLLABLE SSYEOGG;Lo;0;L;;;;;N;;;;;
+C3A3;HANGUL SYLLABLE SSYEOGS;Lo;0;L;;;;;N;;;;;
+C3A4;HANGUL SYLLABLE SSYEON;Lo;0;L;;;;;N;;;;;
+C3A5;HANGUL SYLLABLE SSYEONI;Lo;0;L;;;;;N;;;;;
+C3A6;HANGUL SYLLABLE SSYEONH;Lo;0;L;;;;;N;;;;;
+C3A7;HANGUL SYLLABLE SSYEOD;Lo;0;L;;;;;N;;;;;
+C3A8;HANGUL SYLLABLE SSYEOL;Lo;0;L;;;;;N;;;;;
+C3A9;HANGUL SYLLABLE SSYEOLG;Lo;0;L;;;;;N;;;;;
+C3AA;HANGUL SYLLABLE SSYEOLM;Lo;0;L;;;;;N;;;;;
+C3AB;HANGUL SYLLABLE SSYEOLB;Lo;0;L;;;;;N;;;;;
+C3AC;HANGUL SYLLABLE SSYEOLS;Lo;0;L;;;;;N;;;;;
+C3AD;HANGUL SYLLABLE SSYEOLT;Lo;0;L;;;;;N;;;;;
+C3AE;HANGUL SYLLABLE SSYEOLP;Lo;0;L;;;;;N;;;;;
+C3AF;HANGUL SYLLABLE SSYEOLH;Lo;0;L;;;;;N;;;;;
+C3B0;HANGUL SYLLABLE SSYEOM;Lo;0;L;;;;;N;;;;;
+C3B1;HANGUL SYLLABLE SSYEOB;Lo;0;L;;;;;N;;;;;
+C3B2;HANGUL SYLLABLE SSYEOBS;Lo;0;L;;;;;N;;;;;
+C3B3;HANGUL SYLLABLE SSYEOS;Lo;0;L;;;;;N;;;;;
+C3B4;HANGUL SYLLABLE SSYEOSS;Lo;0;L;;;;;N;;;;;
+C3B5;HANGUL SYLLABLE SSYEONG;Lo;0;L;;;;;N;;;;;
+C3B6;HANGUL SYLLABLE SSYEOJ;Lo;0;L;;;;;N;;;;;
+C3B7;HANGUL SYLLABLE SSYEOC;Lo;0;L;;;;;N;;;;;
+C3B8;HANGUL SYLLABLE SSYEOK;Lo;0;L;;;;;N;;;;;
+C3B9;HANGUL SYLLABLE SSYEOT;Lo;0;L;;;;;N;;;;;
+C3BA;HANGUL SYLLABLE SSYEOP;Lo;0;L;;;;;N;;;;;
+C3BB;HANGUL SYLLABLE SSYEOH;Lo;0;L;;;;;N;;;;;
+C3BC;HANGUL SYLLABLE SSYE;Lo;0;L;;;;;N;;;;;
+C3BD;HANGUL SYLLABLE SSYEG;Lo;0;L;;;;;N;;;;;
+C3BE;HANGUL SYLLABLE SSYEGG;Lo;0;L;;;;;N;;;;;
+C3BF;HANGUL SYLLABLE SSYEGS;Lo;0;L;;;;;N;;;;;
+C3C0;HANGUL SYLLABLE SSYEN;Lo;0;L;;;;;N;;;;;
+C3C1;HANGUL SYLLABLE SSYENI;Lo;0;L;;;;;N;;;;;
+C3C2;HANGUL SYLLABLE SSYENH;Lo;0;L;;;;;N;;;;;
+C3C3;HANGUL SYLLABLE SSYED;Lo;0;L;;;;;N;;;;;
+C3C4;HANGUL SYLLABLE SSYEL;Lo;0;L;;;;;N;;;;;
+C3C5;HANGUL SYLLABLE SSYELG;Lo;0;L;;;;;N;;;;;
+C3C6;HANGUL SYLLABLE SSYELM;Lo;0;L;;;;;N;;;;;
+C3C7;HANGUL SYLLABLE SSYELB;Lo;0;L;;;;;N;;;;;
+C3C8;HANGUL SYLLABLE SSYELS;Lo;0;L;;;;;N;;;;;
+C3C9;HANGUL SYLLABLE SSYELT;Lo;0;L;;;;;N;;;;;
+C3CA;HANGUL SYLLABLE SSYELP;Lo;0;L;;;;;N;;;;;
+C3CB;HANGUL SYLLABLE SSYELH;Lo;0;L;;;;;N;;;;;
+C3CC;HANGUL SYLLABLE SSYEM;Lo;0;L;;;;;N;;;;;
+C3CD;HANGUL SYLLABLE SSYEB;Lo;0;L;;;;;N;;;;;
+C3CE;HANGUL SYLLABLE SSYEBS;Lo;0;L;;;;;N;;;;;
+C3CF;HANGUL SYLLABLE SSYES;Lo;0;L;;;;;N;;;;;
+C3D0;HANGUL SYLLABLE SSYESS;Lo;0;L;;;;;N;;;;;
+C3D1;HANGUL SYLLABLE SSYENG;Lo;0;L;;;;;N;;;;;
+C3D2;HANGUL SYLLABLE SSYEJ;Lo;0;L;;;;;N;;;;;
+C3D3;HANGUL SYLLABLE SSYEC;Lo;0;L;;;;;N;;;;;
+C3D4;HANGUL SYLLABLE SSYEK;Lo;0;L;;;;;N;;;;;
+C3D5;HANGUL SYLLABLE SSYET;Lo;0;L;;;;;N;;;;;
+C3D6;HANGUL SYLLABLE SSYEP;Lo;0;L;;;;;N;;;;;
+C3D7;HANGUL SYLLABLE SSYEH;Lo;0;L;;;;;N;;;;;
+C3D8;HANGUL SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+C3D9;HANGUL SYLLABLE SSOG;Lo;0;L;;;;;N;;;;;
+C3DA;HANGUL SYLLABLE SSOGG;Lo;0;L;;;;;N;;;;;
+C3DB;HANGUL SYLLABLE SSOGS;Lo;0;L;;;;;N;;;;;
+C3DC;HANGUL SYLLABLE SSON;Lo;0;L;;;;;N;;;;;
+C3DD;HANGUL SYLLABLE SSONI;Lo;0;L;;;;;N;;;;;
+C3DE;HANGUL SYLLABLE SSONH;Lo;0;L;;;;;N;;;;;
+C3DF;HANGUL SYLLABLE SSOD;Lo;0;L;;;;;N;;;;;
+C3E0;HANGUL SYLLABLE SSOL;Lo;0;L;;;;;N;;;;;
+C3E1;HANGUL SYLLABLE SSOLG;Lo;0;L;;;;;N;;;;;
+C3E2;HANGUL SYLLABLE SSOLM;Lo;0;L;;;;;N;;;;;
+C3E3;HANGUL SYLLABLE SSOLB;Lo;0;L;;;;;N;;;;;
+C3E4;HANGUL SYLLABLE SSOLS;Lo;0;L;;;;;N;;;;;
+C3E5;HANGUL SYLLABLE SSOLT;Lo;0;L;;;;;N;;;;;
+C3E6;HANGUL SYLLABLE SSOLP;Lo;0;L;;;;;N;;;;;
+C3E7;HANGUL SYLLABLE SSOLH;Lo;0;L;;;;;N;;;;;
+C3E8;HANGUL SYLLABLE SSOM;Lo;0;L;;;;;N;;;;;
+C3E9;HANGUL SYLLABLE SSOB;Lo;0;L;;;;;N;;;;;
+C3EA;HANGUL SYLLABLE SSOBS;Lo;0;L;;;;;N;;;;;
+C3EB;HANGUL SYLLABLE SSOS;Lo;0;L;;;;;N;;;;;
+C3EC;HANGUL SYLLABLE SSOSS;Lo;0;L;;;;;N;;;;;
+C3ED;HANGUL SYLLABLE SSONG;Lo;0;L;;;;;N;;;;;
+C3EE;HANGUL SYLLABLE SSOJ;Lo;0;L;;;;;N;;;;;
+C3EF;HANGUL SYLLABLE SSOC;Lo;0;L;;;;;N;;;;;
+C3F0;HANGUL SYLLABLE SSOK;Lo;0;L;;;;;N;;;;;
+C3F1;HANGUL SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;
+C3F2;HANGUL SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;
+C3F3;HANGUL SYLLABLE SSOH;Lo;0;L;;;;;N;;;;;
+C3F4;HANGUL SYLLABLE SSWA;Lo;0;L;;;;;N;;;;;
+C3F5;HANGUL SYLLABLE SSWAG;Lo;0;L;;;;;N;;;;;
+C3F6;HANGUL SYLLABLE SSWAGG;Lo;0;L;;;;;N;;;;;
+C3F7;HANGUL SYLLABLE SSWAGS;Lo;0;L;;;;;N;;;;;
+C3F8;HANGUL SYLLABLE SSWAN;Lo;0;L;;;;;N;;;;;
+C3F9;HANGUL SYLLABLE SSWANI;Lo;0;L;;;;;N;;;;;
+C3FA;HANGUL SYLLABLE SSWANH;Lo;0;L;;;;;N;;;;;
+C3FB;HANGUL SYLLABLE SSWAD;Lo;0;L;;;;;N;;;;;
+C3FC;HANGUL SYLLABLE SSWAL;Lo;0;L;;;;;N;;;;;
+C3FD;HANGUL SYLLABLE SSWALG;Lo;0;L;;;;;N;;;;;
+C3FE;HANGUL SYLLABLE SSWALM;Lo;0;L;;;;;N;;;;;
+C3FF;HANGUL SYLLABLE SSWALB;Lo;0;L;;;;;N;;;;;
+C400;HANGUL SYLLABLE SSWALS;Lo;0;L;;;;;N;;;;;
+C401;HANGUL SYLLABLE SSWALT;Lo;0;L;;;;;N;;;;;
+C402;HANGUL SYLLABLE SSWALP;Lo;0;L;;;;;N;;;;;
+C403;HANGUL SYLLABLE SSWALH;Lo;0;L;;;;;N;;;;;
+C404;HANGUL SYLLABLE SSWAM;Lo;0;L;;;;;N;;;;;
+C405;HANGUL SYLLABLE SSWAB;Lo;0;L;;;;;N;;;;;
+C406;HANGUL SYLLABLE SSWABS;Lo;0;L;;;;;N;;;;;
+C407;HANGUL SYLLABLE SSWAS;Lo;0;L;;;;;N;;;;;
+C408;HANGUL SYLLABLE SSWASS;Lo;0;L;;;;;N;;;;;
+C409;HANGUL SYLLABLE SSWANG;Lo;0;L;;;;;N;;;;;
+C40A;HANGUL SYLLABLE SSWAJ;Lo;0;L;;;;;N;;;;;
+C40B;HANGUL SYLLABLE SSWAC;Lo;0;L;;;;;N;;;;;
+C40C;HANGUL SYLLABLE SSWAK;Lo;0;L;;;;;N;;;;;
+C40D;HANGUL SYLLABLE SSWAT;Lo;0;L;;;;;N;;;;;
+C40E;HANGUL SYLLABLE SSWAP;Lo;0;L;;;;;N;;;;;
+C40F;HANGUL SYLLABLE SSWAH;Lo;0;L;;;;;N;;;;;
+C410;HANGUL SYLLABLE SSWAE;Lo;0;L;;;;;N;;;;;
+C411;HANGUL SYLLABLE SSWAEG;Lo;0;L;;;;;N;;;;;
+C412;HANGUL SYLLABLE SSWAEGG;Lo;0;L;;;;;N;;;;;
+C413;HANGUL SYLLABLE SSWAEGS;Lo;0;L;;;;;N;;;;;
+C414;HANGUL SYLLABLE SSWAEN;Lo;0;L;;;;;N;;;;;
+C415;HANGUL SYLLABLE SSWAENI;Lo;0;L;;;;;N;;;;;
+C416;HANGUL SYLLABLE SSWAENH;Lo;0;L;;;;;N;;;;;
+C417;HANGUL SYLLABLE SSWAED;Lo;0;L;;;;;N;;;;;
+C418;HANGUL SYLLABLE SSWAEL;Lo;0;L;;;;;N;;;;;
+C419;HANGUL SYLLABLE SSWAELG;Lo;0;L;;;;;N;;;;;
+C41A;HANGUL SYLLABLE SSWAELM;Lo;0;L;;;;;N;;;;;
+C41B;HANGUL SYLLABLE SSWAELB;Lo;0;L;;;;;N;;;;;
+C41C;HANGUL SYLLABLE SSWAELS;Lo;0;L;;;;;N;;;;;
+C41D;HANGUL SYLLABLE SSWAELT;Lo;0;L;;;;;N;;;;;
+C41E;HANGUL SYLLABLE SSWAELP;Lo;0;L;;;;;N;;;;;
+C41F;HANGUL SYLLABLE SSWAELH;Lo;0;L;;;;;N;;;;;
+C420;HANGUL SYLLABLE SSWAEM;Lo;0;L;;;;;N;;;;;
+C421;HANGUL SYLLABLE SSWAEB;Lo;0;L;;;;;N;;;;;
+C422;HANGUL SYLLABLE SSWAEBS;Lo;0;L;;;;;N;;;;;
+C423;HANGUL SYLLABLE SSWAES;Lo;0;L;;;;;N;;;;;
+C424;HANGUL SYLLABLE SSWAESS;Lo;0;L;;;;;N;;;;;
+C425;HANGUL SYLLABLE SSWAENG;Lo;0;L;;;;;N;;;;;
+C426;HANGUL SYLLABLE SSWAEJ;Lo;0;L;;;;;N;;;;;
+C427;HANGUL SYLLABLE SSWAEC;Lo;0;L;;;;;N;;;;;
+C428;HANGUL SYLLABLE SSWAEK;Lo;0;L;;;;;N;;;;;
+C429;HANGUL SYLLABLE SSWAET;Lo;0;L;;;;;N;;;;;
+C42A;HANGUL SYLLABLE SSWAEP;Lo;0;L;;;;;N;;;;;
+C42B;HANGUL SYLLABLE SSWAEH;Lo;0;L;;;;;N;;;;;
+C42C;HANGUL SYLLABLE SSOE;Lo;0;L;;;;;N;;;;;
+C42D;HANGUL SYLLABLE SSOEG;Lo;0;L;;;;;N;;;;;
+C42E;HANGUL SYLLABLE SSOEGG;Lo;0;L;;;;;N;;;;;
+C42F;HANGUL SYLLABLE SSOEGS;Lo;0;L;;;;;N;;;;;
+C430;HANGUL SYLLABLE SSOEN;Lo;0;L;;;;;N;;;;;
+C431;HANGUL SYLLABLE SSOENI;Lo;0;L;;;;;N;;;;;
+C432;HANGUL SYLLABLE SSOENH;Lo;0;L;;;;;N;;;;;
+C433;HANGUL SYLLABLE SSOED;Lo;0;L;;;;;N;;;;;
+C434;HANGUL SYLLABLE SSOEL;Lo;0;L;;;;;N;;;;;
+C435;HANGUL SYLLABLE SSOELG;Lo;0;L;;;;;N;;;;;
+C436;HANGUL SYLLABLE SSOELM;Lo;0;L;;;;;N;;;;;
+C437;HANGUL SYLLABLE SSOELB;Lo;0;L;;;;;N;;;;;
+C438;HANGUL SYLLABLE SSOELS;Lo;0;L;;;;;N;;;;;
+C439;HANGUL SYLLABLE SSOELT;Lo;0;L;;;;;N;;;;;
+C43A;HANGUL SYLLABLE SSOELP;Lo;0;L;;;;;N;;;;;
+C43B;HANGUL SYLLABLE SSOELH;Lo;0;L;;;;;N;;;;;
+C43C;HANGUL SYLLABLE SSOEM;Lo;0;L;;;;;N;;;;;
+C43D;HANGUL SYLLABLE SSOEB;Lo;0;L;;;;;N;;;;;
+C43E;HANGUL SYLLABLE SSOEBS;Lo;0;L;;;;;N;;;;;
+C43F;HANGUL SYLLABLE SSOES;Lo;0;L;;;;;N;;;;;
+C440;HANGUL SYLLABLE SSOESS;Lo;0;L;;;;;N;;;;;
+C441;HANGUL SYLLABLE SSOENG;Lo;0;L;;;;;N;;;;;
+C442;HANGUL SYLLABLE SSOEJ;Lo;0;L;;;;;N;;;;;
+C443;HANGUL SYLLABLE SSOEC;Lo;0;L;;;;;N;;;;;
+C444;HANGUL SYLLABLE SSOEK;Lo;0;L;;;;;N;;;;;
+C445;HANGUL SYLLABLE SSOET;Lo;0;L;;;;;N;;;;;
+C446;HANGUL SYLLABLE SSOEP;Lo;0;L;;;;;N;;;;;
+C447;HANGUL SYLLABLE SSOEH;Lo;0;L;;;;;N;;;;;
+C448;HANGUL SYLLABLE SSYO;Lo;0;L;;;;;N;;;;;
+C449;HANGUL SYLLABLE SSYOG;Lo;0;L;;;;;N;;;;;
+C44A;HANGUL SYLLABLE SSYOGG;Lo;0;L;;;;;N;;;;;
+C44B;HANGUL SYLLABLE SSYOGS;Lo;0;L;;;;;N;;;;;
+C44C;HANGUL SYLLABLE SSYON;Lo;0;L;;;;;N;;;;;
+C44D;HANGUL SYLLABLE SSYONI;Lo;0;L;;;;;N;;;;;
+C44E;HANGUL SYLLABLE SSYONH;Lo;0;L;;;;;N;;;;;
+C44F;HANGUL SYLLABLE SSYOD;Lo;0;L;;;;;N;;;;;
+C450;HANGUL SYLLABLE SSYOL;Lo;0;L;;;;;N;;;;;
+C451;HANGUL SYLLABLE SSYOLG;Lo;0;L;;;;;N;;;;;
+C452;HANGUL SYLLABLE SSYOLM;Lo;0;L;;;;;N;;;;;
+C453;HANGUL SYLLABLE SSYOLB;Lo;0;L;;;;;N;;;;;
+C454;HANGUL SYLLABLE SSYOLS;Lo;0;L;;;;;N;;;;;
+C455;HANGUL SYLLABLE SSYOLT;Lo;0;L;;;;;N;;;;;
+C456;HANGUL SYLLABLE SSYOLP;Lo;0;L;;;;;N;;;;;
+C457;HANGUL SYLLABLE SSYOLH;Lo;0;L;;;;;N;;;;;
+C458;HANGUL SYLLABLE SSYOM;Lo;0;L;;;;;N;;;;;
+C459;HANGUL SYLLABLE SSYOB;Lo;0;L;;;;;N;;;;;
+C45A;HANGUL SYLLABLE SSYOBS;Lo;0;L;;;;;N;;;;;
+C45B;HANGUL SYLLABLE SSYOS;Lo;0;L;;;;;N;;;;;
+C45C;HANGUL SYLLABLE SSYOSS;Lo;0;L;;;;;N;;;;;
+C45D;HANGUL SYLLABLE SSYONG;Lo;0;L;;;;;N;;;;;
+C45E;HANGUL SYLLABLE SSYOJ;Lo;0;L;;;;;N;;;;;
+C45F;HANGUL SYLLABLE SSYOC;Lo;0;L;;;;;N;;;;;
+C460;HANGUL SYLLABLE SSYOK;Lo;0;L;;;;;N;;;;;
+C461;HANGUL SYLLABLE SSYOT;Lo;0;L;;;;;N;;;;;
+C462;HANGUL SYLLABLE SSYOP;Lo;0;L;;;;;N;;;;;
+C463;HANGUL SYLLABLE SSYOH;Lo;0;L;;;;;N;;;;;
+C464;HANGUL SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+C465;HANGUL SYLLABLE SSUG;Lo;0;L;;;;;N;;;;;
+C466;HANGUL SYLLABLE SSUGG;Lo;0;L;;;;;N;;;;;
+C467;HANGUL SYLLABLE SSUGS;Lo;0;L;;;;;N;;;;;
+C468;HANGUL SYLLABLE SSUN;Lo;0;L;;;;;N;;;;;
+C469;HANGUL SYLLABLE SSUNI;Lo;0;L;;;;;N;;;;;
+C46A;HANGUL SYLLABLE SSUNH;Lo;0;L;;;;;N;;;;;
+C46B;HANGUL SYLLABLE SSUD;Lo;0;L;;;;;N;;;;;
+C46C;HANGUL SYLLABLE SSUL;Lo;0;L;;;;;N;;;;;
+C46D;HANGUL SYLLABLE SSULG;Lo;0;L;;;;;N;;;;;
+C46E;HANGUL SYLLABLE SSULM;Lo;0;L;;;;;N;;;;;
+C46F;HANGUL SYLLABLE SSULB;Lo;0;L;;;;;N;;;;;
+C470;HANGUL SYLLABLE SSULS;Lo;0;L;;;;;N;;;;;
+C471;HANGUL SYLLABLE SSULT;Lo;0;L;;;;;N;;;;;
+C472;HANGUL SYLLABLE SSULP;Lo;0;L;;;;;N;;;;;
+C473;HANGUL SYLLABLE SSULH;Lo;0;L;;;;;N;;;;;
+C474;HANGUL SYLLABLE SSUM;Lo;0;L;;;;;N;;;;;
+C475;HANGUL SYLLABLE SSUB;Lo;0;L;;;;;N;;;;;
+C476;HANGUL SYLLABLE SSUBS;Lo;0;L;;;;;N;;;;;
+C477;HANGUL SYLLABLE SSUS;Lo;0;L;;;;;N;;;;;
+C478;HANGUL SYLLABLE SSUSS;Lo;0;L;;;;;N;;;;;
+C479;HANGUL SYLLABLE SSUNG;Lo;0;L;;;;;N;;;;;
+C47A;HANGUL SYLLABLE SSUJ;Lo;0;L;;;;;N;;;;;
+C47B;HANGUL SYLLABLE SSUC;Lo;0;L;;;;;N;;;;;
+C47C;HANGUL SYLLABLE SSUK;Lo;0;L;;;;;N;;;;;
+C47D;HANGUL SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;
+C47E;HANGUL SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;
+C47F;HANGUL SYLLABLE SSUH;Lo;0;L;;;;;N;;;;;
+C480;HANGUL SYLLABLE SSWEO;Lo;0;L;;;;;N;;;;;
+C481;HANGUL SYLLABLE SSWEOG;Lo;0;L;;;;;N;;;;;
+C482;HANGUL SYLLABLE SSWEOGG;Lo;0;L;;;;;N;;;;;
+C483;HANGUL SYLLABLE SSWEOGS;Lo;0;L;;;;;N;;;;;
+C484;HANGUL SYLLABLE SSWEON;Lo;0;L;;;;;N;;;;;
+C485;HANGUL SYLLABLE SSWEONI;Lo;0;L;;;;;N;;;;;
+C486;HANGUL SYLLABLE SSWEONH;Lo;0;L;;;;;N;;;;;
+C487;HANGUL SYLLABLE SSWEOD;Lo;0;L;;;;;N;;;;;
+C488;HANGUL SYLLABLE SSWEOL;Lo;0;L;;;;;N;;;;;
+C489;HANGUL SYLLABLE SSWEOLG;Lo;0;L;;;;;N;;;;;
+C48A;HANGUL SYLLABLE SSWEOLM;Lo;0;L;;;;;N;;;;;
+C48B;HANGUL SYLLABLE SSWEOLB;Lo;0;L;;;;;N;;;;;
+C48C;HANGUL SYLLABLE SSWEOLS;Lo;0;L;;;;;N;;;;;
+C48D;HANGUL SYLLABLE SSWEOLT;Lo;0;L;;;;;N;;;;;
+C48E;HANGUL SYLLABLE SSWEOLP;Lo;0;L;;;;;N;;;;;
+C48F;HANGUL SYLLABLE SSWEOLH;Lo;0;L;;;;;N;;;;;
+C490;HANGUL SYLLABLE SSWEOM;Lo;0;L;;;;;N;;;;;
+C491;HANGUL SYLLABLE SSWEOB;Lo;0;L;;;;;N;;;;;
+C492;HANGUL SYLLABLE SSWEOBS;Lo;0;L;;;;;N;;;;;
+C493;HANGUL SYLLABLE SSWEOS;Lo;0;L;;;;;N;;;;;
+C494;HANGUL SYLLABLE SSWEOSS;Lo;0;L;;;;;N;;;;;
+C495;HANGUL SYLLABLE SSWEONG;Lo;0;L;;;;;N;;;;;
+C496;HANGUL SYLLABLE SSWEOJ;Lo;0;L;;;;;N;;;;;
+C497;HANGUL SYLLABLE SSWEOC;Lo;0;L;;;;;N;;;;;
+C498;HANGUL SYLLABLE SSWEOK;Lo;0;L;;;;;N;;;;;
+C499;HANGUL SYLLABLE SSWEOT;Lo;0;L;;;;;N;;;;;
+C49A;HANGUL SYLLABLE SSWEOP;Lo;0;L;;;;;N;;;;;
+C49B;HANGUL SYLLABLE SSWEOH;Lo;0;L;;;;;N;;;;;
+C49C;HANGUL SYLLABLE SSWE;Lo;0;L;;;;;N;;;;;
+C49D;HANGUL SYLLABLE SSWEG;Lo;0;L;;;;;N;;;;;
+C49E;HANGUL SYLLABLE SSWEGG;Lo;0;L;;;;;N;;;;;
+C49F;HANGUL SYLLABLE SSWEGS;Lo;0;L;;;;;N;;;;;
+C4A0;HANGUL SYLLABLE SSWEN;Lo;0;L;;;;;N;;;;;
+C4A1;HANGUL SYLLABLE SSWENI;Lo;0;L;;;;;N;;;;;
+C4A2;HANGUL SYLLABLE SSWENH;Lo;0;L;;;;;N;;;;;
+C4A3;HANGUL SYLLABLE SSWED;Lo;0;L;;;;;N;;;;;
+C4A4;HANGUL SYLLABLE SSWEL;Lo;0;L;;;;;N;;;;;
+C4A5;HANGUL SYLLABLE SSWELG;Lo;0;L;;;;;N;;;;;
+C4A6;HANGUL SYLLABLE SSWELM;Lo;0;L;;;;;N;;;;;
+C4A7;HANGUL SYLLABLE SSWELB;Lo;0;L;;;;;N;;;;;
+C4A8;HANGUL SYLLABLE SSWELS;Lo;0;L;;;;;N;;;;;
+C4A9;HANGUL SYLLABLE SSWELT;Lo;0;L;;;;;N;;;;;
+C4AA;HANGUL SYLLABLE SSWELP;Lo;0;L;;;;;N;;;;;
+C4AB;HANGUL SYLLABLE SSWELH;Lo;0;L;;;;;N;;;;;
+C4AC;HANGUL SYLLABLE SSWEM;Lo;0;L;;;;;N;;;;;
+C4AD;HANGUL SYLLABLE SSWEB;Lo;0;L;;;;;N;;;;;
+C4AE;HANGUL SYLLABLE SSWEBS;Lo;0;L;;;;;N;;;;;
+C4AF;HANGUL SYLLABLE SSWES;Lo;0;L;;;;;N;;;;;
+C4B0;HANGUL SYLLABLE SSWESS;Lo;0;L;;;;;N;;;;;
+C4B1;HANGUL SYLLABLE SSWENG;Lo;0;L;;;;;N;;;;;
+C4B2;HANGUL SYLLABLE SSWEJ;Lo;0;L;;;;;N;;;;;
+C4B3;HANGUL SYLLABLE SSWEC;Lo;0;L;;;;;N;;;;;
+C4B4;HANGUL SYLLABLE SSWEK;Lo;0;L;;;;;N;;;;;
+C4B5;HANGUL SYLLABLE SSWET;Lo;0;L;;;;;N;;;;;
+C4B6;HANGUL SYLLABLE SSWEP;Lo;0;L;;;;;N;;;;;
+C4B7;HANGUL SYLLABLE SSWEH;Lo;0;L;;;;;N;;;;;
+C4B8;HANGUL SYLLABLE SSWI;Lo;0;L;;;;;N;;;;;
+C4B9;HANGUL SYLLABLE SSWIG;Lo;0;L;;;;;N;;;;;
+C4BA;HANGUL SYLLABLE SSWIGG;Lo;0;L;;;;;N;;;;;
+C4BB;HANGUL SYLLABLE SSWIGS;Lo;0;L;;;;;N;;;;;
+C4BC;HANGUL SYLLABLE SSWIN;Lo;0;L;;;;;N;;;;;
+C4BD;HANGUL SYLLABLE SSWINI;Lo;0;L;;;;;N;;;;;
+C4BE;HANGUL SYLLABLE SSWINH;Lo;0;L;;;;;N;;;;;
+C4BF;HANGUL SYLLABLE SSWID;Lo;0;L;;;;;N;;;;;
+C4C0;HANGUL SYLLABLE SSWIL;Lo;0;L;;;;;N;;;;;
+C4C1;HANGUL SYLLABLE SSWILG;Lo;0;L;;;;;N;;;;;
+C4C2;HANGUL SYLLABLE SSWILM;Lo;0;L;;;;;N;;;;;
+C4C3;HANGUL SYLLABLE SSWILB;Lo;0;L;;;;;N;;;;;
+C4C4;HANGUL SYLLABLE SSWILS;Lo;0;L;;;;;N;;;;;
+C4C5;HANGUL SYLLABLE SSWILT;Lo;0;L;;;;;N;;;;;
+C4C6;HANGUL SYLLABLE SSWILP;Lo;0;L;;;;;N;;;;;
+C4C7;HANGUL SYLLABLE SSWILH;Lo;0;L;;;;;N;;;;;
+C4C8;HANGUL SYLLABLE SSWIM;Lo;0;L;;;;;N;;;;;
+C4C9;HANGUL SYLLABLE SSWIB;Lo;0;L;;;;;N;;;;;
+C4CA;HANGUL SYLLABLE SSWIBS;Lo;0;L;;;;;N;;;;;
+C4CB;HANGUL SYLLABLE SSWIS;Lo;0;L;;;;;N;;;;;
+C4CC;HANGUL SYLLABLE SSWISS;Lo;0;L;;;;;N;;;;;
+C4CD;HANGUL SYLLABLE SSWING;Lo;0;L;;;;;N;;;;;
+C4CE;HANGUL SYLLABLE SSWIJ;Lo;0;L;;;;;N;;;;;
+C4CF;HANGUL SYLLABLE SSWIC;Lo;0;L;;;;;N;;;;;
+C4D0;HANGUL SYLLABLE SSWIK;Lo;0;L;;;;;N;;;;;
+C4D1;HANGUL SYLLABLE SSWIT;Lo;0;L;;;;;N;;;;;
+C4D2;HANGUL SYLLABLE SSWIP;Lo;0;L;;;;;N;;;;;
+C4D3;HANGUL SYLLABLE SSWIH;Lo;0;L;;;;;N;;;;;
+C4D4;HANGUL SYLLABLE SSYU;Lo;0;L;;;;;N;;;;;
+C4D5;HANGUL SYLLABLE SSYUG;Lo;0;L;;;;;N;;;;;
+C4D6;HANGUL SYLLABLE SSYUGG;Lo;0;L;;;;;N;;;;;
+C4D7;HANGUL SYLLABLE SSYUGS;Lo;0;L;;;;;N;;;;;
+C4D8;HANGUL SYLLABLE SSYUN;Lo;0;L;;;;;N;;;;;
+C4D9;HANGUL SYLLABLE SSYUNI;Lo;0;L;;;;;N;;;;;
+C4DA;HANGUL SYLLABLE SSYUNH;Lo;0;L;;;;;N;;;;;
+C4DB;HANGUL SYLLABLE SSYUD;Lo;0;L;;;;;N;;;;;
+C4DC;HANGUL SYLLABLE SSYUL;Lo;0;L;;;;;N;;;;;
+C4DD;HANGUL SYLLABLE SSYULG;Lo;0;L;;;;;N;;;;;
+C4DE;HANGUL SYLLABLE SSYULM;Lo;0;L;;;;;N;;;;;
+C4DF;HANGUL SYLLABLE SSYULB;Lo;0;L;;;;;N;;;;;
+C4E0;HANGUL SYLLABLE SSYULS;Lo;0;L;;;;;N;;;;;
+C4E1;HANGUL SYLLABLE SSYULT;Lo;0;L;;;;;N;;;;;
+C4E2;HANGUL SYLLABLE SSYULP;Lo;0;L;;;;;N;;;;;
+C4E3;HANGUL SYLLABLE SSYULH;Lo;0;L;;;;;N;;;;;
+C4E4;HANGUL SYLLABLE SSYUM;Lo;0;L;;;;;N;;;;;
+C4E5;HANGUL SYLLABLE SSYUB;Lo;0;L;;;;;N;;;;;
+C4E6;HANGUL SYLLABLE SSYUBS;Lo;0;L;;;;;N;;;;;
+C4E7;HANGUL SYLLABLE SSYUS;Lo;0;L;;;;;N;;;;;
+C4E8;HANGUL SYLLABLE SSYUSS;Lo;0;L;;;;;N;;;;;
+C4E9;HANGUL SYLLABLE SSYUNG;Lo;0;L;;;;;N;;;;;
+C4EA;HANGUL SYLLABLE SSYUJ;Lo;0;L;;;;;N;;;;;
+C4EB;HANGUL SYLLABLE SSYUC;Lo;0;L;;;;;N;;;;;
+C4EC;HANGUL SYLLABLE SSYUK;Lo;0;L;;;;;N;;;;;
+C4ED;HANGUL SYLLABLE SSYUT;Lo;0;L;;;;;N;;;;;
+C4EE;HANGUL SYLLABLE SSYUP;Lo;0;L;;;;;N;;;;;
+C4EF;HANGUL SYLLABLE SSYUH;Lo;0;L;;;;;N;;;;;
+C4F0;HANGUL SYLLABLE SSEU;Lo;0;L;;;;;N;;;;;
+C4F1;HANGUL SYLLABLE SSEUG;Lo;0;L;;;;;N;;;;;
+C4F2;HANGUL SYLLABLE SSEUGG;Lo;0;L;;;;;N;;;;;
+C4F3;HANGUL SYLLABLE SSEUGS;Lo;0;L;;;;;N;;;;;
+C4F4;HANGUL SYLLABLE SSEUN;Lo;0;L;;;;;N;;;;;
+C4F5;HANGUL SYLLABLE SSEUNI;Lo;0;L;;;;;N;;;;;
+C4F6;HANGUL SYLLABLE SSEUNH;Lo;0;L;;;;;N;;;;;
+C4F7;HANGUL SYLLABLE SSEUD;Lo;0;L;;;;;N;;;;;
+C4F8;HANGUL SYLLABLE SSEUL;Lo;0;L;;;;;N;;;;;
+C4F9;HANGUL SYLLABLE SSEULG;Lo;0;L;;;;;N;;;;;
+C4FA;HANGUL SYLLABLE SSEULM;Lo;0;L;;;;;N;;;;;
+C4FB;HANGUL SYLLABLE SSEULB;Lo;0;L;;;;;N;;;;;
+C4FC;HANGUL SYLLABLE SSEULS;Lo;0;L;;;;;N;;;;;
+C4FD;HANGUL SYLLABLE SSEULT;Lo;0;L;;;;;N;;;;;
+C4FE;HANGUL SYLLABLE SSEULP;Lo;0;L;;;;;N;;;;;
+C4FF;HANGUL SYLLABLE SSEULH;Lo;0;L;;;;;N;;;;;
+C500;HANGUL SYLLABLE SSEUM;Lo;0;L;;;;;N;;;;;
+C501;HANGUL SYLLABLE SSEUB;Lo;0;L;;;;;N;;;;;
+C502;HANGUL SYLLABLE SSEUBS;Lo;0;L;;;;;N;;;;;
+C503;HANGUL SYLLABLE SSEUS;Lo;0;L;;;;;N;;;;;
+C504;HANGUL SYLLABLE SSEUSS;Lo;0;L;;;;;N;;;;;
+C505;HANGUL SYLLABLE SSEUNG;Lo;0;L;;;;;N;;;;;
+C506;HANGUL SYLLABLE SSEUJ;Lo;0;L;;;;;N;;;;;
+C507;HANGUL SYLLABLE SSEUC;Lo;0;L;;;;;N;;;;;
+C508;HANGUL SYLLABLE SSEUK;Lo;0;L;;;;;N;;;;;
+C509;HANGUL SYLLABLE SSEUT;Lo;0;L;;;;;N;;;;;
+C50A;HANGUL SYLLABLE SSEUP;Lo;0;L;;;;;N;;;;;
+C50B;HANGUL SYLLABLE SSEUH;Lo;0;L;;;;;N;;;;;
+C50C;HANGUL SYLLABLE SSYI;Lo;0;L;;;;;N;;;;;
+C50D;HANGUL SYLLABLE SSYIG;Lo;0;L;;;;;N;;;;;
+C50E;HANGUL SYLLABLE SSYIGG;Lo;0;L;;;;;N;;;;;
+C50F;HANGUL SYLLABLE SSYIGS;Lo;0;L;;;;;N;;;;;
+C510;HANGUL SYLLABLE SSYIN;Lo;0;L;;;;;N;;;;;
+C511;HANGUL SYLLABLE SSYINI;Lo;0;L;;;;;N;;;;;
+C512;HANGUL SYLLABLE SSYINH;Lo;0;L;;;;;N;;;;;
+C513;HANGUL SYLLABLE SSYID;Lo;0;L;;;;;N;;;;;
+C514;HANGUL SYLLABLE SSYIL;Lo;0;L;;;;;N;;;;;
+C515;HANGUL SYLLABLE SSYILG;Lo;0;L;;;;;N;;;;;
+C516;HANGUL SYLLABLE SSYILM;Lo;0;L;;;;;N;;;;;
+C517;HANGUL SYLLABLE SSYILB;Lo;0;L;;;;;N;;;;;
+C518;HANGUL SYLLABLE SSYILS;Lo;0;L;;;;;N;;;;;
+C519;HANGUL SYLLABLE SSYILT;Lo;0;L;;;;;N;;;;;
+C51A;HANGUL SYLLABLE SSYILP;Lo;0;L;;;;;N;;;;;
+C51B;HANGUL SYLLABLE SSYILH;Lo;0;L;;;;;N;;;;;
+C51C;HANGUL SYLLABLE SSYIM;Lo;0;L;;;;;N;;;;;
+C51D;HANGUL SYLLABLE SSYIB;Lo;0;L;;;;;N;;;;;
+C51E;HANGUL SYLLABLE SSYIBS;Lo;0;L;;;;;N;;;;;
+C51F;HANGUL SYLLABLE SSYIS;Lo;0;L;;;;;N;;;;;
+C520;HANGUL SYLLABLE SSYISS;Lo;0;L;;;;;N;;;;;
+C521;HANGUL SYLLABLE SSYING;Lo;0;L;;;;;N;;;;;
+C522;HANGUL SYLLABLE SSYIJ;Lo;0;L;;;;;N;;;;;
+C523;HANGUL SYLLABLE SSYIC;Lo;0;L;;;;;N;;;;;
+C524;HANGUL SYLLABLE SSYIK;Lo;0;L;;;;;N;;;;;
+C525;HANGUL SYLLABLE SSYIT;Lo;0;L;;;;;N;;;;;
+C526;HANGUL SYLLABLE SSYIP;Lo;0;L;;;;;N;;;;;
+C527;HANGUL SYLLABLE SSYIH;Lo;0;L;;;;;N;;;;;
+C528;HANGUL SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+C529;HANGUL SYLLABLE SSIG;Lo;0;L;;;;;N;;;;;
+C52A;HANGUL SYLLABLE SSIGG;Lo;0;L;;;;;N;;;;;
+C52B;HANGUL SYLLABLE SSIGS;Lo;0;L;;;;;N;;;;;
+C52C;HANGUL SYLLABLE SSIN;Lo;0;L;;;;;N;;;;;
+C52D;HANGUL SYLLABLE SSINI;Lo;0;L;;;;;N;;;;;
+C52E;HANGUL SYLLABLE SSINH;Lo;0;L;;;;;N;;;;;
+C52F;HANGUL SYLLABLE SSID;Lo;0;L;;;;;N;;;;;
+C530;HANGUL SYLLABLE SSIL;Lo;0;L;;;;;N;;;;;
+C531;HANGUL SYLLABLE SSILG;Lo;0;L;;;;;N;;;;;
+C532;HANGUL SYLLABLE SSILM;Lo;0;L;;;;;N;;;;;
+C533;HANGUL SYLLABLE SSILB;Lo;0;L;;;;;N;;;;;
+C534;HANGUL SYLLABLE SSILS;Lo;0;L;;;;;N;;;;;
+C535;HANGUL SYLLABLE SSILT;Lo;0;L;;;;;N;;;;;
+C536;HANGUL SYLLABLE SSILP;Lo;0;L;;;;;N;;;;;
+C537;HANGUL SYLLABLE SSILH;Lo;0;L;;;;;N;;;;;
+C538;HANGUL SYLLABLE SSIM;Lo;0;L;;;;;N;;;;;
+C539;HANGUL SYLLABLE SSIB;Lo;0;L;;;;;N;;;;;
+C53A;HANGUL SYLLABLE SSIBS;Lo;0;L;;;;;N;;;;;
+C53B;HANGUL SYLLABLE SSIS;Lo;0;L;;;;;N;;;;;
+C53C;HANGUL SYLLABLE SSISS;Lo;0;L;;;;;N;;;;;
+C53D;HANGUL SYLLABLE SSING;Lo;0;L;;;;;N;;;;;
+C53E;HANGUL SYLLABLE SSIJ;Lo;0;L;;;;;N;;;;;
+C53F;HANGUL SYLLABLE SSIC;Lo;0;L;;;;;N;;;;;
+C540;HANGUL SYLLABLE SSIK;Lo;0;L;;;;;N;;;;;
+C541;HANGUL SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;
+C542;HANGUL SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;
+C543;HANGUL SYLLABLE SSIH;Lo;0;L;;;;;N;;;;;
+C544;HANGUL SYLLABLE A;Lo;0;L;;;;;N;;;;;
+C545;HANGUL SYLLABLE AG;Lo;0;L;;;;;N;;;;;
+C546;HANGUL SYLLABLE AGG;Lo;0;L;;;;;N;;;;;
+C547;HANGUL SYLLABLE AGS;Lo;0;L;;;;;N;;;;;
+C548;HANGUL SYLLABLE AN;Lo;0;L;;;;;N;;;;;
+C549;HANGUL SYLLABLE ANI;Lo;0;L;;;;;N;;;;;
+C54A;HANGUL SYLLABLE ANH;Lo;0;L;;;;;N;;;;;
+C54B;HANGUL SYLLABLE AD;Lo;0;L;;;;;N;;;;;
+C54C;HANGUL SYLLABLE AL;Lo;0;L;;;;;N;;;;;
+C54D;HANGUL SYLLABLE ALG;Lo;0;L;;;;;N;;;;;
+C54E;HANGUL SYLLABLE ALM;Lo;0;L;;;;;N;;;;;
+C54F;HANGUL SYLLABLE ALB;Lo;0;L;;;;;N;;;;;
+C550;HANGUL SYLLABLE ALS;Lo;0;L;;;;;N;;;;;
+C551;HANGUL SYLLABLE ALT;Lo;0;L;;;;;N;;;;;
+C552;HANGUL SYLLABLE ALP;Lo;0;L;;;;;N;;;;;
+C553;HANGUL SYLLABLE ALH;Lo;0;L;;;;;N;;;;;
+C554;HANGUL SYLLABLE AM;Lo;0;L;;;;;N;;;;;
+C555;HANGUL SYLLABLE AB;Lo;0;L;;;;;N;;;;;
+C556;HANGUL SYLLABLE ABS;Lo;0;L;;;;;N;;;;;
+C557;HANGUL SYLLABLE AS;Lo;0;L;;;;;N;;;;;
+C558;HANGUL SYLLABLE ASS;Lo;0;L;;;;;N;;;;;
+C559;HANGUL SYLLABLE ANG;Lo;0;L;;;;;N;;;;;
+C55A;HANGUL SYLLABLE AJ;Lo;0;L;;;;;N;;;;;
+C55B;HANGUL SYLLABLE AC;Lo;0;L;;;;;N;;;;;
+C55C;HANGUL SYLLABLE AK;Lo;0;L;;;;;N;;;;;
+C55D;HANGUL SYLLABLE AT;Lo;0;L;;;;;N;;;;;
+C55E;HANGUL SYLLABLE AP;Lo;0;L;;;;;N;;;;;
+C55F;HANGUL SYLLABLE AH;Lo;0;L;;;;;N;;;;;
+C560;HANGUL SYLLABLE AE;Lo;0;L;;;;;N;;;;;
+C561;HANGUL SYLLABLE AEG;Lo;0;L;;;;;N;;;;;
+C562;HANGUL SYLLABLE AEGG;Lo;0;L;;;;;N;;;;;
+C563;HANGUL SYLLABLE AEGS;Lo;0;L;;;;;N;;;;;
+C564;HANGUL SYLLABLE AEN;Lo;0;L;;;;;N;;;;;
+C565;HANGUL SYLLABLE AENI;Lo;0;L;;;;;N;;;;;
+C566;HANGUL SYLLABLE AENH;Lo;0;L;;;;;N;;;;;
+C567;HANGUL SYLLABLE AED;Lo;0;L;;;;;N;;;;;
+C568;HANGUL SYLLABLE AEL;Lo;0;L;;;;;N;;;;;
+C569;HANGUL SYLLABLE AELG;Lo;0;L;;;;;N;;;;;
+C56A;HANGUL SYLLABLE AELM;Lo;0;L;;;;;N;;;;;
+C56B;HANGUL SYLLABLE AELB;Lo;0;L;;;;;N;;;;;
+C56C;HANGUL SYLLABLE AELS;Lo;0;L;;;;;N;;;;;
+C56D;HANGUL SYLLABLE AELT;Lo;0;L;;;;;N;;;;;
+C56E;HANGUL SYLLABLE AELP;Lo;0;L;;;;;N;;;;;
+C56F;HANGUL SYLLABLE AELH;Lo;0;L;;;;;N;;;;;
+C570;HANGUL SYLLABLE AEM;Lo;0;L;;;;;N;;;;;
+C571;HANGUL SYLLABLE AEB;Lo;0;L;;;;;N;;;;;
+C572;HANGUL SYLLABLE AEBS;Lo;0;L;;;;;N;;;;;
+C573;HANGUL SYLLABLE AES;Lo;0;L;;;;;N;;;;;
+C574;HANGUL SYLLABLE AESS;Lo;0;L;;;;;N;;;;;
+C575;HANGUL SYLLABLE AENG;Lo;0;L;;;;;N;;;;;
+C576;HANGUL SYLLABLE AEJ;Lo;0;L;;;;;N;;;;;
+C577;HANGUL SYLLABLE AEC;Lo;0;L;;;;;N;;;;;
+C578;HANGUL SYLLABLE AEK;Lo;0;L;;;;;N;;;;;
+C579;HANGUL SYLLABLE AET;Lo;0;L;;;;;N;;;;;
+C57A;HANGUL SYLLABLE AEP;Lo;0;L;;;;;N;;;;;
+C57B;HANGUL SYLLABLE AEH;Lo;0;L;;;;;N;;;;;
+C57C;HANGUL SYLLABLE YA;Lo;0;L;;;;;N;;;;;
+C57D;HANGUL SYLLABLE YAG;Lo;0;L;;;;;N;;;;;
+C57E;HANGUL SYLLABLE YAGG;Lo;0;L;;;;;N;;;;;
+C57F;HANGUL SYLLABLE YAGS;Lo;0;L;;;;;N;;;;;
+C580;HANGUL SYLLABLE YAN;Lo;0;L;;;;;N;;;;;
+C581;HANGUL SYLLABLE YANI;Lo;0;L;;;;;N;;;;;
+C582;HANGUL SYLLABLE YANH;Lo;0;L;;;;;N;;;;;
+C583;HANGUL SYLLABLE YAD;Lo;0;L;;;;;N;;;;;
+C584;HANGUL SYLLABLE YAL;Lo;0;L;;;;;N;;;;;
+C585;HANGUL SYLLABLE YALG;Lo;0;L;;;;;N;;;;;
+C586;HANGUL SYLLABLE YALM;Lo;0;L;;;;;N;;;;;
+C587;HANGUL SYLLABLE YALB;Lo;0;L;;;;;N;;;;;
+C588;HANGUL SYLLABLE YALS;Lo;0;L;;;;;N;;;;;
+C589;HANGUL SYLLABLE YALT;Lo;0;L;;;;;N;;;;;
+C58A;HANGUL SYLLABLE YALP;Lo;0;L;;;;;N;;;;;
+C58B;HANGUL SYLLABLE YALH;Lo;0;L;;;;;N;;;;;
+C58C;HANGUL SYLLABLE YAM;Lo;0;L;;;;;N;;;;;
+C58D;HANGUL SYLLABLE YAB;Lo;0;L;;;;;N;;;;;
+C58E;HANGUL SYLLABLE YABS;Lo;0;L;;;;;N;;;;;
+C58F;HANGUL SYLLABLE YAS;Lo;0;L;;;;;N;;;;;
+C590;HANGUL SYLLABLE YASS;Lo;0;L;;;;;N;;;;;
+C591;HANGUL SYLLABLE YANG;Lo;0;L;;;;;N;;;;;
+C592;HANGUL SYLLABLE YAJ;Lo;0;L;;;;;N;;;;;
+C593;HANGUL SYLLABLE YAC;Lo;0;L;;;;;N;;;;;
+C594;HANGUL SYLLABLE YAK;Lo;0;L;;;;;N;;;;;
+C595;HANGUL SYLLABLE YAT;Lo;0;L;;;;;N;;;;;
+C596;HANGUL SYLLABLE YAP;Lo;0;L;;;;;N;;;;;
+C597;HANGUL SYLLABLE YAH;Lo;0;L;;;;;N;;;;;
+C598;HANGUL SYLLABLE YAE;Lo;0;L;;;;;N;;;;;
+C599;HANGUL SYLLABLE YAEG;Lo;0;L;;;;;N;;;;;
+C59A;HANGUL SYLLABLE YAEGG;Lo;0;L;;;;;N;;;;;
+C59B;HANGUL SYLLABLE YAEGS;Lo;0;L;;;;;N;;;;;
+C59C;HANGUL SYLLABLE YAEN;Lo;0;L;;;;;N;;;;;
+C59D;HANGUL SYLLABLE YAENI;Lo;0;L;;;;;N;;;;;
+C59E;HANGUL SYLLABLE YAENH;Lo;0;L;;;;;N;;;;;
+C59F;HANGUL SYLLABLE YAED;Lo;0;L;;;;;N;;;;;
+C5A0;HANGUL SYLLABLE YAEL;Lo;0;L;;;;;N;;;;;
+C5A1;HANGUL SYLLABLE YAELG;Lo;0;L;;;;;N;;;;;
+C5A2;HANGUL SYLLABLE YAELM;Lo;0;L;;;;;N;;;;;
+C5A3;HANGUL SYLLABLE YAELB;Lo;0;L;;;;;N;;;;;
+C5A4;HANGUL SYLLABLE YAELS;Lo;0;L;;;;;N;;;;;
+C5A5;HANGUL SYLLABLE YAELT;Lo;0;L;;;;;N;;;;;
+C5A6;HANGUL SYLLABLE YAELP;Lo;0;L;;;;;N;;;;;
+C5A7;HANGUL SYLLABLE YAELH;Lo;0;L;;;;;N;;;;;
+C5A8;HANGUL SYLLABLE YAEM;Lo;0;L;;;;;N;;;;;
+C5A9;HANGUL SYLLABLE YAEB;Lo;0;L;;;;;N;;;;;
+C5AA;HANGUL SYLLABLE YAEBS;Lo;0;L;;;;;N;;;;;
+C5AB;HANGUL SYLLABLE YAES;Lo;0;L;;;;;N;;;;;
+C5AC;HANGUL SYLLABLE YAESS;Lo;0;L;;;;;N;;;;;
+C5AD;HANGUL SYLLABLE YAENG;Lo;0;L;;;;;N;;;;;
+C5AE;HANGUL SYLLABLE YAEJ;Lo;0;L;;;;;N;;;;;
+C5AF;HANGUL SYLLABLE YAEC;Lo;0;L;;;;;N;;;;;
+C5B0;HANGUL SYLLABLE YAEK;Lo;0;L;;;;;N;;;;;
+C5B1;HANGUL SYLLABLE YAET;Lo;0;L;;;;;N;;;;;
+C5B2;HANGUL SYLLABLE YAEP;Lo;0;L;;;;;N;;;;;
+C5B3;HANGUL SYLLABLE YAEH;Lo;0;L;;;;;N;;;;;
+C5B4;HANGUL SYLLABLE EO;Lo;0;L;;;;;N;;;;;
+C5B5;HANGUL SYLLABLE EOG;Lo;0;L;;;;;N;;;;;
+C5B6;HANGUL SYLLABLE EOGG;Lo;0;L;;;;;N;;;;;
+C5B7;HANGUL SYLLABLE EOGS;Lo;0;L;;;;;N;;;;;
+C5B8;HANGUL SYLLABLE EON;Lo;0;L;;;;;N;;;;;
+C5B9;HANGUL SYLLABLE EONI;Lo;0;L;;;;;N;;;;;
+C5BA;HANGUL SYLLABLE EONH;Lo;0;L;;;;;N;;;;;
+C5BB;HANGUL SYLLABLE EOD;Lo;0;L;;;;;N;;;;;
+C5BC;HANGUL SYLLABLE EOL;Lo;0;L;;;;;N;;;;;
+C5BD;HANGUL SYLLABLE EOLG;Lo;0;L;;;;;N;;;;;
+C5BE;HANGUL SYLLABLE EOLM;Lo;0;L;;;;;N;;;;;
+C5BF;HANGUL SYLLABLE EOLB;Lo;0;L;;;;;N;;;;;
+C5C0;HANGUL SYLLABLE EOLS;Lo;0;L;;;;;N;;;;;
+C5C1;HANGUL SYLLABLE EOLT;Lo;0;L;;;;;N;;;;;
+C5C2;HANGUL SYLLABLE EOLP;Lo;0;L;;;;;N;;;;;
+C5C3;HANGUL SYLLABLE EOLH;Lo;0;L;;;;;N;;;;;
+C5C4;HANGUL SYLLABLE EOM;Lo;0;L;;;;;N;;;;;
+C5C5;HANGUL SYLLABLE EOB;Lo;0;L;;;;;N;;;;;
+C5C6;HANGUL SYLLABLE EOBS;Lo;0;L;;;;;N;;;;;
+C5C7;HANGUL SYLLABLE EOS;Lo;0;L;;;;;N;;;;;
+C5C8;HANGUL SYLLABLE EOSS;Lo;0;L;;;;;N;;;;;
+C5C9;HANGUL SYLLABLE EONG;Lo;0;L;;;;;N;;;;;
+C5CA;HANGUL SYLLABLE EOJ;Lo;0;L;;;;;N;;;;;
+C5CB;HANGUL SYLLABLE EOC;Lo;0;L;;;;;N;;;;;
+C5CC;HANGUL SYLLABLE EOK;Lo;0;L;;;;;N;;;;;
+C5CD;HANGUL SYLLABLE EOT;Lo;0;L;;;;;N;;;;;
+C5CE;HANGUL SYLLABLE EOP;Lo;0;L;;;;;N;;;;;
+C5CF;HANGUL SYLLABLE EOH;Lo;0;L;;;;;N;;;;;
+C5D0;HANGUL SYLLABLE E;Lo;0;L;;;;;N;;;;;
+C5D1;HANGUL SYLLABLE EG;Lo;0;L;;;;;N;;;;;
+C5D2;HANGUL SYLLABLE EGG;Lo;0;L;;;;;N;;;;;
+C5D3;HANGUL SYLLABLE EGS;Lo;0;L;;;;;N;;;;;
+C5D4;HANGUL SYLLABLE EN;Lo;0;L;;;;;N;;;;;
+C5D5;HANGUL SYLLABLE ENI;Lo;0;L;;;;;N;;;;;
+C5D6;HANGUL SYLLABLE ENH;Lo;0;L;;;;;N;;;;;
+C5D7;HANGUL SYLLABLE ED;Lo;0;L;;;;;N;;;;;
+C5D8;HANGUL SYLLABLE EL;Lo;0;L;;;;;N;;;;;
+C5D9;HANGUL SYLLABLE ELG;Lo;0;L;;;;;N;;;;;
+C5DA;HANGUL SYLLABLE ELM;Lo;0;L;;;;;N;;;;;
+C5DB;HANGUL SYLLABLE ELB;Lo;0;L;;;;;N;;;;;
+C5DC;HANGUL SYLLABLE ELS;Lo;0;L;;;;;N;;;;;
+C5DD;HANGUL SYLLABLE ELT;Lo;0;L;;;;;N;;;;;
+C5DE;HANGUL SYLLABLE ELP;Lo;0;L;;;;;N;;;;;
+C5DF;HANGUL SYLLABLE ELH;Lo;0;L;;;;;N;;;;;
+C5E0;HANGUL SYLLABLE EM;Lo;0;L;;;;;N;;;;;
+C5E1;HANGUL SYLLABLE EB;Lo;0;L;;;;;N;;;;;
+C5E2;HANGUL SYLLABLE EBS;Lo;0;L;;;;;N;;;;;
+C5E3;HANGUL SYLLABLE ES;Lo;0;L;;;;;N;;;;;
+C5E4;HANGUL SYLLABLE ESS;Lo;0;L;;;;;N;;;;;
+C5E5;HANGUL SYLLABLE ENG;Lo;0;L;;;;;N;;;;;
+C5E6;HANGUL SYLLABLE EJ;Lo;0;L;;;;;N;;;;;
+C5E7;HANGUL SYLLABLE EC;Lo;0;L;;;;;N;;;;;
+C5E8;HANGUL SYLLABLE EK;Lo;0;L;;;;;N;;;;;
+C5E9;HANGUL SYLLABLE ET;Lo;0;L;;;;;N;;;;;
+C5EA;HANGUL SYLLABLE EP;Lo;0;L;;;;;N;;;;;
+C5EB;HANGUL SYLLABLE EH;Lo;0;L;;;;;N;;;;;
+C5EC;HANGUL SYLLABLE YEO;Lo;0;L;;;;;N;;;;;
+C5ED;HANGUL SYLLABLE YEOG;Lo;0;L;;;;;N;;;;;
+C5EE;HANGUL SYLLABLE YEOGG;Lo;0;L;;;;;N;;;;;
+C5EF;HANGUL SYLLABLE YEOGS;Lo;0;L;;;;;N;;;;;
+C5F0;HANGUL SYLLABLE YEON;Lo;0;L;;;;;N;;;;;
+C5F1;HANGUL SYLLABLE YEONI;Lo;0;L;;;;;N;;;;;
+C5F2;HANGUL SYLLABLE YEONH;Lo;0;L;;;;;N;;;;;
+C5F3;HANGUL SYLLABLE YEOD;Lo;0;L;;;;;N;;;;;
+C5F4;HANGUL SYLLABLE YEOL;Lo;0;L;;;;;N;;;;;
+C5F5;HANGUL SYLLABLE YEOLG;Lo;0;L;;;;;N;;;;;
+C5F6;HANGUL SYLLABLE YEOLM;Lo;0;L;;;;;N;;;;;
+C5F7;HANGUL SYLLABLE YEOLB;Lo;0;L;;;;;N;;;;;
+C5F8;HANGUL SYLLABLE YEOLS;Lo;0;L;;;;;N;;;;;
+C5F9;HANGUL SYLLABLE YEOLT;Lo;0;L;;;;;N;;;;;
+C5FA;HANGUL SYLLABLE YEOLP;Lo;0;L;;;;;N;;;;;
+C5FB;HANGUL SYLLABLE YEOLH;Lo;0;L;;;;;N;;;;;
+C5FC;HANGUL SYLLABLE YEOM;Lo;0;L;;;;;N;;;;;
+C5FD;HANGUL SYLLABLE YEOB;Lo;0;L;;;;;N;;;;;
+C5FE;HANGUL SYLLABLE YEOBS;Lo;0;L;;;;;N;;;;;
+C5FF;HANGUL SYLLABLE YEOS;Lo;0;L;;;;;N;;;;;
+C600;HANGUL SYLLABLE YEOSS;Lo;0;L;;;;;N;;;;;
+C601;HANGUL SYLLABLE YEONG;Lo;0;L;;;;;N;;;;;
+C602;HANGUL SYLLABLE YEOJ;Lo;0;L;;;;;N;;;;;
+C603;HANGUL SYLLABLE YEOC;Lo;0;L;;;;;N;;;;;
+C604;HANGUL SYLLABLE YEOK;Lo;0;L;;;;;N;;;;;
+C605;HANGUL SYLLABLE YEOT;Lo;0;L;;;;;N;;;;;
+C606;HANGUL SYLLABLE YEOP;Lo;0;L;;;;;N;;;;;
+C607;HANGUL SYLLABLE YEOH;Lo;0;L;;;;;N;;;;;
+C608;HANGUL SYLLABLE YE;Lo;0;L;;;;;N;;;;;
+C609;HANGUL SYLLABLE YEG;Lo;0;L;;;;;N;;;;;
+C60A;HANGUL SYLLABLE YEGG;Lo;0;L;;;;;N;;;;;
+C60B;HANGUL SYLLABLE YEGS;Lo;0;L;;;;;N;;;;;
+C60C;HANGUL SYLLABLE YEN;Lo;0;L;;;;;N;;;;;
+C60D;HANGUL SYLLABLE YENI;Lo;0;L;;;;;N;;;;;
+C60E;HANGUL SYLLABLE YENH;Lo;0;L;;;;;N;;;;;
+C60F;HANGUL SYLLABLE YED;Lo;0;L;;;;;N;;;;;
+C610;HANGUL SYLLABLE YEL;Lo;0;L;;;;;N;;;;;
+C611;HANGUL SYLLABLE YELG;Lo;0;L;;;;;N;;;;;
+C612;HANGUL SYLLABLE YELM;Lo;0;L;;;;;N;;;;;
+C613;HANGUL SYLLABLE YELB;Lo;0;L;;;;;N;;;;;
+C614;HANGUL SYLLABLE YELS;Lo;0;L;;;;;N;;;;;
+C615;HANGUL SYLLABLE YELT;Lo;0;L;;;;;N;;;;;
+C616;HANGUL SYLLABLE YELP;Lo;0;L;;;;;N;;;;;
+C617;HANGUL SYLLABLE YELH;Lo;0;L;;;;;N;;;;;
+C618;HANGUL SYLLABLE YEM;Lo;0;L;;;;;N;;;;;
+C619;HANGUL SYLLABLE YEB;Lo;0;L;;;;;N;;;;;
+C61A;HANGUL SYLLABLE YEBS;Lo;0;L;;;;;N;;;;;
+C61B;HANGUL SYLLABLE YES;Lo;0;L;;;;;N;;;;;
+C61C;HANGUL SYLLABLE YESS;Lo;0;L;;;;;N;;;;;
+C61D;HANGUL SYLLABLE YENG;Lo;0;L;;;;;N;;;;;
+C61E;HANGUL SYLLABLE YEJ;Lo;0;L;;;;;N;;;;;
+C61F;HANGUL SYLLABLE YEC;Lo;0;L;;;;;N;;;;;
+C620;HANGUL SYLLABLE YEK;Lo;0;L;;;;;N;;;;;
+C621;HANGUL SYLLABLE YET;Lo;0;L;;;;;N;;;;;
+C622;HANGUL SYLLABLE YEP;Lo;0;L;;;;;N;;;;;
+C623;HANGUL SYLLABLE YEH;Lo;0;L;;;;;N;;;;;
+C624;HANGUL SYLLABLE O;Lo;0;L;;;;;N;;;;;
+C625;HANGUL SYLLABLE OG;Lo;0;L;;;;;N;;;;;
+C626;HANGUL SYLLABLE OGG;Lo;0;L;;;;;N;;;;;
+C627;HANGUL SYLLABLE OGS;Lo;0;L;;;;;N;;;;;
+C628;HANGUL SYLLABLE ON;Lo;0;L;;;;;N;;;;;
+C629;HANGUL SYLLABLE ONI;Lo;0;L;;;;;N;;;;;
+C62A;HANGUL SYLLABLE ONH;Lo;0;L;;;;;N;;;;;
+C62B;HANGUL SYLLABLE OD;Lo;0;L;;;;;N;;;;;
+C62C;HANGUL SYLLABLE OL;Lo;0;L;;;;;N;;;;;
+C62D;HANGUL SYLLABLE OLG;Lo;0;L;;;;;N;;;;;
+C62E;HANGUL SYLLABLE OLM;Lo;0;L;;;;;N;;;;;
+C62F;HANGUL SYLLABLE OLB;Lo;0;L;;;;;N;;;;;
+C630;HANGUL SYLLABLE OLS;Lo;0;L;;;;;N;;;;;
+C631;HANGUL SYLLABLE OLT;Lo;0;L;;;;;N;;;;;
+C632;HANGUL SYLLABLE OLP;Lo;0;L;;;;;N;;;;;
+C633;HANGUL SYLLABLE OLH;Lo;0;L;;;;;N;;;;;
+C634;HANGUL SYLLABLE OM;Lo;0;L;;;;;N;;;;;
+C635;HANGUL SYLLABLE OB;Lo;0;L;;;;;N;;;;;
+C636;HANGUL SYLLABLE OBS;Lo;0;L;;;;;N;;;;;
+C637;HANGUL SYLLABLE OS;Lo;0;L;;;;;N;;;;;
+C638;HANGUL SYLLABLE OSS;Lo;0;L;;;;;N;;;;;
+C639;HANGUL SYLLABLE ONG;Lo;0;L;;;;;N;;;;;
+C63A;HANGUL SYLLABLE OJ;Lo;0;L;;;;;N;;;;;
+C63B;HANGUL SYLLABLE OC;Lo;0;L;;;;;N;;;;;
+C63C;HANGUL SYLLABLE OK;Lo;0;L;;;;;N;;;;;
+C63D;HANGUL SYLLABLE OT;Lo;0;L;;;;;N;;;;;
+C63E;HANGUL SYLLABLE OP;Lo;0;L;;;;;N;;;;;
+C63F;HANGUL SYLLABLE OH;Lo;0;L;;;;;N;;;;;
+C640;HANGUL SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+C641;HANGUL SYLLABLE WAG;Lo;0;L;;;;;N;;;;;
+C642;HANGUL SYLLABLE WAGG;Lo;0;L;;;;;N;;;;;
+C643;HANGUL SYLLABLE WAGS;Lo;0;L;;;;;N;;;;;
+C644;HANGUL SYLLABLE WAN;Lo;0;L;;;;;N;;;;;
+C645;HANGUL SYLLABLE WANI;Lo;0;L;;;;;N;;;;;
+C646;HANGUL SYLLABLE WANH;Lo;0;L;;;;;N;;;;;
+C647;HANGUL SYLLABLE WAD;Lo;0;L;;;;;N;;;;;
+C648;HANGUL SYLLABLE WAL;Lo;0;L;;;;;N;;;;;
+C649;HANGUL SYLLABLE WALG;Lo;0;L;;;;;N;;;;;
+C64A;HANGUL SYLLABLE WALM;Lo;0;L;;;;;N;;;;;
+C64B;HANGUL SYLLABLE WALB;Lo;0;L;;;;;N;;;;;
+C64C;HANGUL SYLLABLE WALS;Lo;0;L;;;;;N;;;;;
+C64D;HANGUL SYLLABLE WALT;Lo;0;L;;;;;N;;;;;
+C64E;HANGUL SYLLABLE WALP;Lo;0;L;;;;;N;;;;;
+C64F;HANGUL SYLLABLE WALH;Lo;0;L;;;;;N;;;;;
+C650;HANGUL SYLLABLE WAM;Lo;0;L;;;;;N;;;;;
+C651;HANGUL SYLLABLE WAB;Lo;0;L;;;;;N;;;;;
+C652;HANGUL SYLLABLE WABS;Lo;0;L;;;;;N;;;;;
+C653;HANGUL SYLLABLE WAS;Lo;0;L;;;;;N;;;;;
+C654;HANGUL SYLLABLE WASS;Lo;0;L;;;;;N;;;;;
+C655;HANGUL SYLLABLE WANG;Lo;0;L;;;;;N;;;;;
+C656;HANGUL SYLLABLE WAJ;Lo;0;L;;;;;N;;;;;
+C657;HANGUL SYLLABLE WAC;Lo;0;L;;;;;N;;;;;
+C658;HANGUL SYLLABLE WAK;Lo;0;L;;;;;N;;;;;
+C659;HANGUL SYLLABLE WAT;Lo;0;L;;;;;N;;;;;
+C65A;HANGUL SYLLABLE WAP;Lo;0;L;;;;;N;;;;;
+C65B;HANGUL SYLLABLE WAH;Lo;0;L;;;;;N;;;;;
+C65C;HANGUL SYLLABLE WAE;Lo;0;L;;;;;N;;;;;
+C65D;HANGUL SYLLABLE WAEG;Lo;0;L;;;;;N;;;;;
+C65E;HANGUL SYLLABLE WAEGG;Lo;0;L;;;;;N;;;;;
+C65F;HANGUL SYLLABLE WAEGS;Lo;0;L;;;;;N;;;;;
+C660;HANGUL SYLLABLE WAEN;Lo;0;L;;;;;N;;;;;
+C661;HANGUL SYLLABLE WAENI;Lo;0;L;;;;;N;;;;;
+C662;HANGUL SYLLABLE WAENH;Lo;0;L;;;;;N;;;;;
+C663;HANGUL SYLLABLE WAED;Lo;0;L;;;;;N;;;;;
+C664;HANGUL SYLLABLE WAEL;Lo;0;L;;;;;N;;;;;
+C665;HANGUL SYLLABLE WAELG;Lo;0;L;;;;;N;;;;;
+C666;HANGUL SYLLABLE WAELM;Lo;0;L;;;;;N;;;;;
+C667;HANGUL SYLLABLE WAELB;Lo;0;L;;;;;N;;;;;
+C668;HANGUL SYLLABLE WAELS;Lo;0;L;;;;;N;;;;;
+C669;HANGUL SYLLABLE WAELT;Lo;0;L;;;;;N;;;;;
+C66A;HANGUL SYLLABLE WAELP;Lo;0;L;;;;;N;;;;;
+C66B;HANGUL SYLLABLE WAELH;Lo;0;L;;;;;N;;;;;
+C66C;HANGUL SYLLABLE WAEM;Lo;0;L;;;;;N;;;;;
+C66D;HANGUL SYLLABLE WAEB;Lo;0;L;;;;;N;;;;;
+C66E;HANGUL SYLLABLE WAEBS;Lo;0;L;;;;;N;;;;;
+C66F;HANGUL SYLLABLE WAES;Lo;0;L;;;;;N;;;;;
+C670;HANGUL SYLLABLE WAESS;Lo;0;L;;;;;N;;;;;
+C671;HANGUL SYLLABLE WAENG;Lo;0;L;;;;;N;;;;;
+C672;HANGUL SYLLABLE WAEJ;Lo;0;L;;;;;N;;;;;
+C673;HANGUL SYLLABLE WAEC;Lo;0;L;;;;;N;;;;;
+C674;HANGUL SYLLABLE WAEK;Lo;0;L;;;;;N;;;;;
+C675;HANGUL SYLLABLE WAET;Lo;0;L;;;;;N;;;;;
+C676;HANGUL SYLLABLE WAEP;Lo;0;L;;;;;N;;;;;
+C677;HANGUL SYLLABLE WAEH;Lo;0;L;;;;;N;;;;;
+C678;HANGUL SYLLABLE OE;Lo;0;L;;;;;N;;;;;
+C679;HANGUL SYLLABLE OEG;Lo;0;L;;;;;N;;;;;
+C67A;HANGUL SYLLABLE OEGG;Lo;0;L;;;;;N;;;;;
+C67B;HANGUL SYLLABLE OEGS;Lo;0;L;;;;;N;;;;;
+C67C;HANGUL SYLLABLE OEN;Lo;0;L;;;;;N;;;;;
+C67D;HANGUL SYLLABLE OENI;Lo;0;L;;;;;N;;;;;
+C67E;HANGUL SYLLABLE OENH;Lo;0;L;;;;;N;;;;;
+C67F;HANGUL SYLLABLE OED;Lo;0;L;;;;;N;;;;;
+C680;HANGUL SYLLABLE OEL;Lo;0;L;;;;;N;;;;;
+C681;HANGUL SYLLABLE OELG;Lo;0;L;;;;;N;;;;;
+C682;HANGUL SYLLABLE OELM;Lo;0;L;;;;;N;;;;;
+C683;HANGUL SYLLABLE OELB;Lo;0;L;;;;;N;;;;;
+C684;HANGUL SYLLABLE OELS;Lo;0;L;;;;;N;;;;;
+C685;HANGUL SYLLABLE OELT;Lo;0;L;;;;;N;;;;;
+C686;HANGUL SYLLABLE OELP;Lo;0;L;;;;;N;;;;;
+C687;HANGUL SYLLABLE OELH;Lo;0;L;;;;;N;;;;;
+C688;HANGUL SYLLABLE OEM;Lo;0;L;;;;;N;;;;;
+C689;HANGUL SYLLABLE OEB;Lo;0;L;;;;;N;;;;;
+C68A;HANGUL SYLLABLE OEBS;Lo;0;L;;;;;N;;;;;
+C68B;HANGUL SYLLABLE OES;Lo;0;L;;;;;N;;;;;
+C68C;HANGUL SYLLABLE OESS;Lo;0;L;;;;;N;;;;;
+C68D;HANGUL SYLLABLE OENG;Lo;0;L;;;;;N;;;;;
+C68E;HANGUL SYLLABLE OEJ;Lo;0;L;;;;;N;;;;;
+C68F;HANGUL SYLLABLE OEC;Lo;0;L;;;;;N;;;;;
+C690;HANGUL SYLLABLE OEK;Lo;0;L;;;;;N;;;;;
+C691;HANGUL SYLLABLE OET;Lo;0;L;;;;;N;;;;;
+C692;HANGUL SYLLABLE OEP;Lo;0;L;;;;;N;;;;;
+C693;HANGUL SYLLABLE OEH;Lo;0;L;;;;;N;;;;;
+C694;HANGUL SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+C695;HANGUL SYLLABLE YOG;Lo;0;L;;;;;N;;;;;
+C696;HANGUL SYLLABLE YOGG;Lo;0;L;;;;;N;;;;;
+C697;HANGUL SYLLABLE YOGS;Lo;0;L;;;;;N;;;;;
+C698;HANGUL SYLLABLE YON;Lo;0;L;;;;;N;;;;;
+C699;HANGUL SYLLABLE YONI;Lo;0;L;;;;;N;;;;;
+C69A;HANGUL SYLLABLE YONH;Lo;0;L;;;;;N;;;;;
+C69B;HANGUL SYLLABLE YOD;Lo;0;L;;;;;N;;;;;
+C69C;HANGUL SYLLABLE YOL;Lo;0;L;;;;;N;;;;;
+C69D;HANGUL SYLLABLE YOLG;Lo;0;L;;;;;N;;;;;
+C69E;HANGUL SYLLABLE YOLM;Lo;0;L;;;;;N;;;;;
+C69F;HANGUL SYLLABLE YOLB;Lo;0;L;;;;;N;;;;;
+C6A0;HANGUL SYLLABLE YOLS;Lo;0;L;;;;;N;;;;;
+C6A1;HANGUL SYLLABLE YOLT;Lo;0;L;;;;;N;;;;;
+C6A2;HANGUL SYLLABLE YOLP;Lo;0;L;;;;;N;;;;;
+C6A3;HANGUL SYLLABLE YOLH;Lo;0;L;;;;;N;;;;;
+C6A4;HANGUL SYLLABLE YOM;Lo;0;L;;;;;N;;;;;
+C6A5;HANGUL SYLLABLE YOB;Lo;0;L;;;;;N;;;;;
+C6A6;HANGUL SYLLABLE YOBS;Lo;0;L;;;;;N;;;;;
+C6A7;HANGUL SYLLABLE YOS;Lo;0;L;;;;;N;;;;;
+C6A8;HANGUL SYLLABLE YOSS;Lo;0;L;;;;;N;;;;;
+C6A9;HANGUL SYLLABLE YONG;Lo;0;L;;;;;N;;;;;
+C6AA;HANGUL SYLLABLE YOJ;Lo;0;L;;;;;N;;;;;
+C6AB;HANGUL SYLLABLE YOC;Lo;0;L;;;;;N;;;;;
+C6AC;HANGUL SYLLABLE YOK;Lo;0;L;;;;;N;;;;;
+C6AD;HANGUL SYLLABLE YOT;Lo;0;L;;;;;N;;;;;
+C6AE;HANGUL SYLLABLE YOP;Lo;0;L;;;;;N;;;;;
+C6AF;HANGUL SYLLABLE YOH;Lo;0;L;;;;;N;;;;;
+C6B0;HANGUL SYLLABLE U;Lo;0;L;;;;;N;;;;;
+C6B1;HANGUL SYLLABLE UG;Lo;0;L;;;;;N;;;;;
+C6B2;HANGUL SYLLABLE UGG;Lo;0;L;;;;;N;;;;;
+C6B3;HANGUL SYLLABLE UGS;Lo;0;L;;;;;N;;;;;
+C6B4;HANGUL SYLLABLE UN;Lo;0;L;;;;;N;;;;;
+C6B5;HANGUL SYLLABLE UNI;Lo;0;L;;;;;N;;;;;
+C6B6;HANGUL SYLLABLE UNH;Lo;0;L;;;;;N;;;;;
+C6B7;HANGUL SYLLABLE UD;Lo;0;L;;;;;N;;;;;
+C6B8;HANGUL SYLLABLE UL;Lo;0;L;;;;;N;;;;;
+C6B9;HANGUL SYLLABLE ULG;Lo;0;L;;;;;N;;;;;
+C6BA;HANGUL SYLLABLE ULM;Lo;0;L;;;;;N;;;;;
+C6BB;HANGUL SYLLABLE ULB;Lo;0;L;;;;;N;;;;;
+C6BC;HANGUL SYLLABLE ULS;Lo;0;L;;;;;N;;;;;
+C6BD;HANGUL SYLLABLE ULT;Lo;0;L;;;;;N;;;;;
+C6BE;HANGUL SYLLABLE ULP;Lo;0;L;;;;;N;;;;;
+C6BF;HANGUL SYLLABLE ULH;Lo;0;L;;;;;N;;;;;
+C6C0;HANGUL SYLLABLE UM;Lo;0;L;;;;;N;;;;;
+C6C1;HANGUL SYLLABLE UB;Lo;0;L;;;;;N;;;;;
+C6C2;HANGUL SYLLABLE UBS;Lo;0;L;;;;;N;;;;;
+C6C3;HANGUL SYLLABLE US;Lo;0;L;;;;;N;;;;;
+C6C4;HANGUL SYLLABLE USS;Lo;0;L;;;;;N;;;;;
+C6C5;HANGUL SYLLABLE UNG;Lo;0;L;;;;;N;;;;;
+C6C6;HANGUL SYLLABLE UJ;Lo;0;L;;;;;N;;;;;
+C6C7;HANGUL SYLLABLE UC;Lo;0;L;;;;;N;;;;;
+C6C8;HANGUL SYLLABLE UK;Lo;0;L;;;;;N;;;;;
+C6C9;HANGUL SYLLABLE UT;Lo;0;L;;;;;N;;;;;
+C6CA;HANGUL SYLLABLE UP;Lo;0;L;;;;;N;;;;;
+C6CB;HANGUL SYLLABLE UH;Lo;0;L;;;;;N;;;;;
+C6CC;HANGUL SYLLABLE WEO;Lo;0;L;;;;;N;;;;;
+C6CD;HANGUL SYLLABLE WEOG;Lo;0;L;;;;;N;;;;;
+C6CE;HANGUL SYLLABLE WEOGG;Lo;0;L;;;;;N;;;;;
+C6CF;HANGUL SYLLABLE WEOGS;Lo;0;L;;;;;N;;;;;
+C6D0;HANGUL SYLLABLE WEON;Lo;0;L;;;;;N;;;;;
+C6D1;HANGUL SYLLABLE WEONI;Lo;0;L;;;;;N;;;;;
+C6D2;HANGUL SYLLABLE WEONH;Lo;0;L;;;;;N;;;;;
+C6D3;HANGUL SYLLABLE WEOD;Lo;0;L;;;;;N;;;;;
+C6D4;HANGUL SYLLABLE WEOL;Lo;0;L;;;;;N;;;;;
+C6D5;HANGUL SYLLABLE WEOLG;Lo;0;L;;;;;N;;;;;
+C6D6;HANGUL SYLLABLE WEOLM;Lo;0;L;;;;;N;;;;;
+C6D7;HANGUL SYLLABLE WEOLB;Lo;0;L;;;;;N;;;;;
+C6D8;HANGUL SYLLABLE WEOLS;Lo;0;L;;;;;N;;;;;
+C6D9;HANGUL SYLLABLE WEOLT;Lo;0;L;;;;;N;;;;;
+C6DA;HANGUL SYLLABLE WEOLP;Lo;0;L;;;;;N;;;;;
+C6DB;HANGUL SYLLABLE WEOLH;Lo;0;L;;;;;N;;;;;
+C6DC;HANGUL SYLLABLE WEOM;Lo;0;L;;;;;N;;;;;
+C6DD;HANGUL SYLLABLE WEOB;Lo;0;L;;;;;N;;;;;
+C6DE;HANGUL SYLLABLE WEOBS;Lo;0;L;;;;;N;;;;;
+C6DF;HANGUL SYLLABLE WEOS;Lo;0;L;;;;;N;;;;;
+C6E0;HANGUL SYLLABLE WEOSS;Lo;0;L;;;;;N;;;;;
+C6E1;HANGUL SYLLABLE WEONG;Lo;0;L;;;;;N;;;;;
+C6E2;HANGUL SYLLABLE WEOJ;Lo;0;L;;;;;N;;;;;
+C6E3;HANGUL SYLLABLE WEOC;Lo;0;L;;;;;N;;;;;
+C6E4;HANGUL SYLLABLE WEOK;Lo;0;L;;;;;N;;;;;
+C6E5;HANGUL SYLLABLE WEOT;Lo;0;L;;;;;N;;;;;
+C6E6;HANGUL SYLLABLE WEOP;Lo;0;L;;;;;N;;;;;
+C6E7;HANGUL SYLLABLE WEOH;Lo;0;L;;;;;N;;;;;
+C6E8;HANGUL SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+C6E9;HANGUL SYLLABLE WEG;Lo;0;L;;;;;N;;;;;
+C6EA;HANGUL SYLLABLE WEGG;Lo;0;L;;;;;N;;;;;
+C6EB;HANGUL SYLLABLE WEGS;Lo;0;L;;;;;N;;;;;
+C6EC;HANGUL SYLLABLE WEN;Lo;0;L;;;;;N;;;;;
+C6ED;HANGUL SYLLABLE WENI;Lo;0;L;;;;;N;;;;;
+C6EE;HANGUL SYLLABLE WENH;Lo;0;L;;;;;N;;;;;
+C6EF;HANGUL SYLLABLE WED;Lo;0;L;;;;;N;;;;;
+C6F0;HANGUL SYLLABLE WEL;Lo;0;L;;;;;N;;;;;
+C6F1;HANGUL SYLLABLE WELG;Lo;0;L;;;;;N;;;;;
+C6F2;HANGUL SYLLABLE WELM;Lo;0;L;;;;;N;;;;;
+C6F3;HANGUL SYLLABLE WELB;Lo;0;L;;;;;N;;;;;
+C6F4;HANGUL SYLLABLE WELS;Lo;0;L;;;;;N;;;;;
+C6F5;HANGUL SYLLABLE WELT;Lo;0;L;;;;;N;;;;;
+C6F6;HANGUL SYLLABLE WELP;Lo;0;L;;;;;N;;;;;
+C6F7;HANGUL SYLLABLE WELH;Lo;0;L;;;;;N;;;;;
+C6F8;HANGUL SYLLABLE WEM;Lo;0;L;;;;;N;;;;;
+C6F9;HANGUL SYLLABLE WEB;Lo;0;L;;;;;N;;;;;
+C6FA;HANGUL SYLLABLE WEBS;Lo;0;L;;;;;N;;;;;
+C6FB;HANGUL SYLLABLE WES;Lo;0;L;;;;;N;;;;;
+C6FC;HANGUL SYLLABLE WESS;Lo;0;L;;;;;N;;;;;
+C6FD;HANGUL SYLLABLE WENG;Lo;0;L;;;;;N;;;;;
+C6FE;HANGUL SYLLABLE WEJ;Lo;0;L;;;;;N;;;;;
+C6FF;HANGUL SYLLABLE WEC;Lo;0;L;;;;;N;;;;;
+C700;HANGUL SYLLABLE WEK;Lo;0;L;;;;;N;;;;;
+C701;HANGUL SYLLABLE WET;Lo;0;L;;;;;N;;;;;
+C702;HANGUL SYLLABLE WEP;Lo;0;L;;;;;N;;;;;
+C703;HANGUL SYLLABLE WEH;Lo;0;L;;;;;N;;;;;
+C704;HANGUL SYLLABLE WI;Lo;0;L;;;;;N;;;;;
+C705;HANGUL SYLLABLE WIG;Lo;0;L;;;;;N;;;;;
+C706;HANGUL SYLLABLE WIGG;Lo;0;L;;;;;N;;;;;
+C707;HANGUL SYLLABLE WIGS;Lo;0;L;;;;;N;;;;;
+C708;HANGUL SYLLABLE WIN;Lo;0;L;;;;;N;;;;;
+C709;HANGUL SYLLABLE WINI;Lo;0;L;;;;;N;;;;;
+C70A;HANGUL SYLLABLE WINH;Lo;0;L;;;;;N;;;;;
+C70B;HANGUL SYLLABLE WID;Lo;0;L;;;;;N;;;;;
+C70C;HANGUL SYLLABLE WIL;Lo;0;L;;;;;N;;;;;
+C70D;HANGUL SYLLABLE WILG;Lo;0;L;;;;;N;;;;;
+C70E;HANGUL SYLLABLE WILM;Lo;0;L;;;;;N;;;;;
+C70F;HANGUL SYLLABLE WILB;Lo;0;L;;;;;N;;;;;
+C710;HANGUL SYLLABLE WILS;Lo;0;L;;;;;N;;;;;
+C711;HANGUL SYLLABLE WILT;Lo;0;L;;;;;N;;;;;
+C712;HANGUL SYLLABLE WILP;Lo;0;L;;;;;N;;;;;
+C713;HANGUL SYLLABLE WILH;Lo;0;L;;;;;N;;;;;
+C714;HANGUL SYLLABLE WIM;Lo;0;L;;;;;N;;;;;
+C715;HANGUL SYLLABLE WIB;Lo;0;L;;;;;N;;;;;
+C716;HANGUL SYLLABLE WIBS;Lo;0;L;;;;;N;;;;;
+C717;HANGUL SYLLABLE WIS;Lo;0;L;;;;;N;;;;;
+C718;HANGUL SYLLABLE WISS;Lo;0;L;;;;;N;;;;;
+C719;HANGUL SYLLABLE WING;Lo;0;L;;;;;N;;;;;
+C71A;HANGUL SYLLABLE WIJ;Lo;0;L;;;;;N;;;;;
+C71B;HANGUL SYLLABLE WIC;Lo;0;L;;;;;N;;;;;
+C71C;HANGUL SYLLABLE WIK;Lo;0;L;;;;;N;;;;;
+C71D;HANGUL SYLLABLE WIT;Lo;0;L;;;;;N;;;;;
+C71E;HANGUL SYLLABLE WIP;Lo;0;L;;;;;N;;;;;
+C71F;HANGUL SYLLABLE WIH;Lo;0;L;;;;;N;;;;;
+C720;HANGUL SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+C721;HANGUL SYLLABLE YUG;Lo;0;L;;;;;N;;;;;
+C722;HANGUL SYLLABLE YUGG;Lo;0;L;;;;;N;;;;;
+C723;HANGUL SYLLABLE YUGS;Lo;0;L;;;;;N;;;;;
+C724;HANGUL SYLLABLE YUN;Lo;0;L;;;;;N;;;;;
+C725;HANGUL SYLLABLE YUNI;Lo;0;L;;;;;N;;;;;
+C726;HANGUL SYLLABLE YUNH;Lo;0;L;;;;;N;;;;;
+C727;HANGUL SYLLABLE YUD;Lo;0;L;;;;;N;;;;;
+C728;HANGUL SYLLABLE YUL;Lo;0;L;;;;;N;;;;;
+C729;HANGUL SYLLABLE YULG;Lo;0;L;;;;;N;;;;;
+C72A;HANGUL SYLLABLE YULM;Lo;0;L;;;;;N;;;;;
+C72B;HANGUL SYLLABLE YULB;Lo;0;L;;;;;N;;;;;
+C72C;HANGUL SYLLABLE YULS;Lo;0;L;;;;;N;;;;;
+C72D;HANGUL SYLLABLE YULT;Lo;0;L;;;;;N;;;;;
+C72E;HANGUL SYLLABLE YULP;Lo;0;L;;;;;N;;;;;
+C72F;HANGUL SYLLABLE YULH;Lo;0;L;;;;;N;;;;;
+C730;HANGUL SYLLABLE YUM;Lo;0;L;;;;;N;;;;;
+C731;HANGUL SYLLABLE YUB;Lo;0;L;;;;;N;;;;;
+C732;HANGUL SYLLABLE YUBS;Lo;0;L;;;;;N;;;;;
+C733;HANGUL SYLLABLE YUS;Lo;0;L;;;;;N;;;;;
+C734;HANGUL SYLLABLE YUSS;Lo;0;L;;;;;N;;;;;
+C735;HANGUL SYLLABLE YUNG;Lo;0;L;;;;;N;;;;;
+C736;HANGUL SYLLABLE YUJ;Lo;0;L;;;;;N;;;;;
+C737;HANGUL SYLLABLE YUC;Lo;0;L;;;;;N;;;;;
+C738;HANGUL SYLLABLE YUK;Lo;0;L;;;;;N;;;;;
+C739;HANGUL SYLLABLE YUT;Lo;0;L;;;;;N;;;;;
+C73A;HANGUL SYLLABLE YUP;Lo;0;L;;;;;N;;;;;
+C73B;HANGUL SYLLABLE YUH;Lo;0;L;;;;;N;;;;;
+C73C;HANGUL SYLLABLE EU;Lo;0;L;;;;;N;;;;;
+C73D;HANGUL SYLLABLE EUG;Lo;0;L;;;;;N;;;;;
+C73E;HANGUL SYLLABLE EUGG;Lo;0;L;;;;;N;;;;;
+C73F;HANGUL SYLLABLE EUGS;Lo;0;L;;;;;N;;;;;
+C740;HANGUL SYLLABLE EUN;Lo;0;L;;;;;N;;;;;
+C741;HANGUL SYLLABLE EUNI;Lo;0;L;;;;;N;;;;;
+C742;HANGUL SYLLABLE EUNH;Lo;0;L;;;;;N;;;;;
+C743;HANGUL SYLLABLE EUD;Lo;0;L;;;;;N;;;;;
+C744;HANGUL SYLLABLE EUL;Lo;0;L;;;;;N;;;;;
+C745;HANGUL SYLLABLE EULG;Lo;0;L;;;;;N;;;;;
+C746;HANGUL SYLLABLE EULM;Lo;0;L;;;;;N;;;;;
+C747;HANGUL SYLLABLE EULB;Lo;0;L;;;;;N;;;;;
+C748;HANGUL SYLLABLE EULS;Lo;0;L;;;;;N;;;;;
+C749;HANGUL SYLLABLE EULT;Lo;0;L;;;;;N;;;;;
+C74A;HANGUL SYLLABLE EULP;Lo;0;L;;;;;N;;;;;
+C74B;HANGUL SYLLABLE EULH;Lo;0;L;;;;;N;;;;;
+C74C;HANGUL SYLLABLE EUM;Lo;0;L;;;;;N;;;;;
+C74D;HANGUL SYLLABLE EUB;Lo;0;L;;;;;N;;;;;
+C74E;HANGUL SYLLABLE EUBS;Lo;0;L;;;;;N;;;;;
+C74F;HANGUL SYLLABLE EUS;Lo;0;L;;;;;N;;;;;
+C750;HANGUL SYLLABLE EUSS;Lo;0;L;;;;;N;;;;;
+C751;HANGUL SYLLABLE EUNG;Lo;0;L;;;;;N;;;;;
+C752;HANGUL SYLLABLE EUJ;Lo;0;L;;;;;N;;;;;
+C753;HANGUL SYLLABLE EUC;Lo;0;L;;;;;N;;;;;
+C754;HANGUL SYLLABLE EUK;Lo;0;L;;;;;N;;;;;
+C755;HANGUL SYLLABLE EUT;Lo;0;L;;;;;N;;;;;
+C756;HANGUL SYLLABLE EUP;Lo;0;L;;;;;N;;;;;
+C757;HANGUL SYLLABLE EUH;Lo;0;L;;;;;N;;;;;
+C758;HANGUL SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+C759;HANGUL SYLLABLE YIG;Lo;0;L;;;;;N;;;;;
+C75A;HANGUL SYLLABLE YIGG;Lo;0;L;;;;;N;;;;;
+C75B;HANGUL SYLLABLE YIGS;Lo;0;L;;;;;N;;;;;
+C75C;HANGUL SYLLABLE YIN;Lo;0;L;;;;;N;;;;;
+C75D;HANGUL SYLLABLE YINI;Lo;0;L;;;;;N;;;;;
+C75E;HANGUL SYLLABLE YINH;Lo;0;L;;;;;N;;;;;
+C75F;HANGUL SYLLABLE YID;Lo;0;L;;;;;N;;;;;
+C760;HANGUL SYLLABLE YIL;Lo;0;L;;;;;N;;;;;
+C761;HANGUL SYLLABLE YILG;Lo;0;L;;;;;N;;;;;
+C762;HANGUL SYLLABLE YILM;Lo;0;L;;;;;N;;;;;
+C763;HANGUL SYLLABLE YILB;Lo;0;L;;;;;N;;;;;
+C764;HANGUL SYLLABLE YILS;Lo;0;L;;;;;N;;;;;
+C765;HANGUL SYLLABLE YILT;Lo;0;L;;;;;N;;;;;
+C766;HANGUL SYLLABLE YILP;Lo;0;L;;;;;N;;;;;
+C767;HANGUL SYLLABLE YILH;Lo;0;L;;;;;N;;;;;
+C768;HANGUL SYLLABLE YIM;Lo;0;L;;;;;N;;;;;
+C769;HANGUL SYLLABLE YIB;Lo;0;L;;;;;N;;;;;
+C76A;HANGUL SYLLABLE YIBS;Lo;0;L;;;;;N;;;;;
+C76B;HANGUL SYLLABLE YIS;Lo;0;L;;;;;N;;;;;
+C76C;HANGUL SYLLABLE YISS;Lo;0;L;;;;;N;;;;;
+C76D;HANGUL SYLLABLE YING;Lo;0;L;;;;;N;;;;;
+C76E;HANGUL SYLLABLE YIJ;Lo;0;L;;;;;N;;;;;
+C76F;HANGUL SYLLABLE YIC;Lo;0;L;;;;;N;;;;;
+C770;HANGUL SYLLABLE YIK;Lo;0;L;;;;;N;;;;;
+C771;HANGUL SYLLABLE YIT;Lo;0;L;;;;;N;;;;;
+C772;HANGUL SYLLABLE YIP;Lo;0;L;;;;;N;;;;;
+C773;HANGUL SYLLABLE YIH;Lo;0;L;;;;;N;;;;;
+C774;HANGUL SYLLABLE I;Lo;0;L;;;;;N;;;;;
+C775;HANGUL SYLLABLE IG;Lo;0;L;;;;;N;;;;;
+C776;HANGUL SYLLABLE IGG;Lo;0;L;;;;;N;;;;;
+C777;HANGUL SYLLABLE IGS;Lo;0;L;;;;;N;;;;;
+C778;HANGUL SYLLABLE IN;Lo;0;L;;;;;N;;;;;
+C779;HANGUL SYLLABLE INI;Lo;0;L;;;;;N;;;;;
+C77A;HANGUL SYLLABLE INH;Lo;0;L;;;;;N;;;;;
+C77B;HANGUL SYLLABLE ID;Lo;0;L;;;;;N;;;;;
+C77C;HANGUL SYLLABLE IL;Lo;0;L;;;;;N;;;;;
+C77D;HANGUL SYLLABLE ILG;Lo;0;L;;;;;N;;;;;
+C77E;HANGUL SYLLABLE ILM;Lo;0;L;;;;;N;;;;;
+C77F;HANGUL SYLLABLE ILB;Lo;0;L;;;;;N;;;;;
+C780;HANGUL SYLLABLE ILS;Lo;0;L;;;;;N;;;;;
+C781;HANGUL SYLLABLE ILT;Lo;0;L;;;;;N;;;;;
+C782;HANGUL SYLLABLE ILP;Lo;0;L;;;;;N;;;;;
+C783;HANGUL SYLLABLE ILH;Lo;0;L;;;;;N;;;;;
+C784;HANGUL SYLLABLE IM;Lo;0;L;;;;;N;;;;;
+C785;HANGUL SYLLABLE IB;Lo;0;L;;;;;N;;;;;
+C786;HANGUL SYLLABLE IBS;Lo;0;L;;;;;N;;;;;
+C787;HANGUL SYLLABLE IS;Lo;0;L;;;;;N;;;;;
+C788;HANGUL SYLLABLE ISS;Lo;0;L;;;;;N;;;;;
+C789;HANGUL SYLLABLE ING;Lo;0;L;;;;;N;;;;;
+C78A;HANGUL SYLLABLE IJ;Lo;0;L;;;;;N;;;;;
+C78B;HANGUL SYLLABLE IC;Lo;0;L;;;;;N;;;;;
+C78C;HANGUL SYLLABLE IK;Lo;0;L;;;;;N;;;;;
+C78D;HANGUL SYLLABLE IT;Lo;0;L;;;;;N;;;;;
+C78E;HANGUL SYLLABLE IP;Lo;0;L;;;;;N;;;;;
+C78F;HANGUL SYLLABLE IH;Lo;0;L;;;;;N;;;;;
+C790;HANGUL SYLLABLE JA;Lo;0;L;;;;;N;;;;;
+C791;HANGUL SYLLABLE JAG;Lo;0;L;;;;;N;;;;;
+C792;HANGUL SYLLABLE JAGG;Lo;0;L;;;;;N;;;;;
+C793;HANGUL SYLLABLE JAGS;Lo;0;L;;;;;N;;;;;
+C794;HANGUL SYLLABLE JAN;Lo;0;L;;;;;N;;;;;
+C795;HANGUL SYLLABLE JANI;Lo;0;L;;;;;N;;;;;
+C796;HANGUL SYLLABLE JANH;Lo;0;L;;;;;N;;;;;
+C797;HANGUL SYLLABLE JAD;Lo;0;L;;;;;N;;;;;
+C798;HANGUL SYLLABLE JAL;Lo;0;L;;;;;N;;;;;
+C799;HANGUL SYLLABLE JALG;Lo;0;L;;;;;N;;;;;
+C79A;HANGUL SYLLABLE JALM;Lo;0;L;;;;;N;;;;;
+C79B;HANGUL SYLLABLE JALB;Lo;0;L;;;;;N;;;;;
+C79C;HANGUL SYLLABLE JALS;Lo;0;L;;;;;N;;;;;
+C79D;HANGUL SYLLABLE JALT;Lo;0;L;;;;;N;;;;;
+C79E;HANGUL SYLLABLE JALP;Lo;0;L;;;;;N;;;;;
+C79F;HANGUL SYLLABLE JALH;Lo;0;L;;;;;N;;;;;
+C7A0;HANGUL SYLLABLE JAM;Lo;0;L;;;;;N;;;;;
+C7A1;HANGUL SYLLABLE JAB;Lo;0;L;;;;;N;;;;;
+C7A2;HANGUL SYLLABLE JABS;Lo;0;L;;;;;N;;;;;
+C7A3;HANGUL SYLLABLE JAS;Lo;0;L;;;;;N;;;;;
+C7A4;HANGUL SYLLABLE JASS;Lo;0;L;;;;;N;;;;;
+C7A5;HANGUL SYLLABLE JANG;Lo;0;L;;;;;N;;;;;
+C7A6;HANGUL SYLLABLE JAJ;Lo;0;L;;;;;N;;;;;
+C7A7;HANGUL SYLLABLE JAC;Lo;0;L;;;;;N;;;;;
+C7A8;HANGUL SYLLABLE JAK;Lo;0;L;;;;;N;;;;;
+C7A9;HANGUL SYLLABLE JAT;Lo;0;L;;;;;N;;;;;
+C7AA;HANGUL SYLLABLE JAP;Lo;0;L;;;;;N;;;;;
+C7AB;HANGUL SYLLABLE JAH;Lo;0;L;;;;;N;;;;;
+C7AC;HANGUL SYLLABLE JAE;Lo;0;L;;;;;N;;;;;
+C7AD;HANGUL SYLLABLE JAEG;Lo;0;L;;;;;N;;;;;
+C7AE;HANGUL SYLLABLE JAEGG;Lo;0;L;;;;;N;;;;;
+C7AF;HANGUL SYLLABLE JAEGS;Lo;0;L;;;;;N;;;;;
+C7B0;HANGUL SYLLABLE JAEN;Lo;0;L;;;;;N;;;;;
+C7B1;HANGUL SYLLABLE JAENI;Lo;0;L;;;;;N;;;;;
+C7B2;HANGUL SYLLABLE JAENH;Lo;0;L;;;;;N;;;;;
+C7B3;HANGUL SYLLABLE JAED;Lo;0;L;;;;;N;;;;;
+C7B4;HANGUL SYLLABLE JAEL;Lo;0;L;;;;;N;;;;;
+C7B5;HANGUL SYLLABLE JAELG;Lo;0;L;;;;;N;;;;;
+C7B6;HANGUL SYLLABLE JAELM;Lo;0;L;;;;;N;;;;;
+C7B7;HANGUL SYLLABLE JAELB;Lo;0;L;;;;;N;;;;;
+C7B8;HANGUL SYLLABLE JAELS;Lo;0;L;;;;;N;;;;;
+C7B9;HANGUL SYLLABLE JAELT;Lo;0;L;;;;;N;;;;;
+C7BA;HANGUL SYLLABLE JAELP;Lo;0;L;;;;;N;;;;;
+C7BB;HANGUL SYLLABLE JAELH;Lo;0;L;;;;;N;;;;;
+C7BC;HANGUL SYLLABLE JAEM;Lo;0;L;;;;;N;;;;;
+C7BD;HANGUL SYLLABLE JAEB;Lo;0;L;;;;;N;;;;;
+C7BE;HANGUL SYLLABLE JAEBS;Lo;0;L;;;;;N;;;;;
+C7BF;HANGUL SYLLABLE JAES;Lo;0;L;;;;;N;;;;;
+C7C0;HANGUL SYLLABLE JAESS;Lo;0;L;;;;;N;;;;;
+C7C1;HANGUL SYLLABLE JAENG;Lo;0;L;;;;;N;;;;;
+C7C2;HANGUL SYLLABLE JAEJ;Lo;0;L;;;;;N;;;;;
+C7C3;HANGUL SYLLABLE JAEC;Lo;0;L;;;;;N;;;;;
+C7C4;HANGUL SYLLABLE JAEK;Lo;0;L;;;;;N;;;;;
+C7C5;HANGUL SYLLABLE JAET;Lo;0;L;;;;;N;;;;;
+C7C6;HANGUL SYLLABLE JAEP;Lo;0;L;;;;;N;;;;;
+C7C7;HANGUL SYLLABLE JAEH;Lo;0;L;;;;;N;;;;;
+C7C8;HANGUL SYLLABLE JYA;Lo;0;L;;;;;N;;;;;
+C7C9;HANGUL SYLLABLE JYAG;Lo;0;L;;;;;N;;;;;
+C7CA;HANGUL SYLLABLE JYAGG;Lo;0;L;;;;;N;;;;;
+C7CB;HANGUL SYLLABLE JYAGS;Lo;0;L;;;;;N;;;;;
+C7CC;HANGUL SYLLABLE JYAN;Lo;0;L;;;;;N;;;;;
+C7CD;HANGUL SYLLABLE JYANI;Lo;0;L;;;;;N;;;;;
+C7CE;HANGUL SYLLABLE JYANH;Lo;0;L;;;;;N;;;;;
+C7CF;HANGUL SYLLABLE JYAD;Lo;0;L;;;;;N;;;;;
+C7D0;HANGUL SYLLABLE JYAL;Lo;0;L;;;;;N;;;;;
+C7D1;HANGUL SYLLABLE JYALG;Lo;0;L;;;;;N;;;;;
+C7D2;HANGUL SYLLABLE JYALM;Lo;0;L;;;;;N;;;;;
+C7D3;HANGUL SYLLABLE JYALB;Lo;0;L;;;;;N;;;;;
+C7D4;HANGUL SYLLABLE JYALS;Lo;0;L;;;;;N;;;;;
+C7D5;HANGUL SYLLABLE JYALT;Lo;0;L;;;;;N;;;;;
+C7D6;HANGUL SYLLABLE JYALP;Lo;0;L;;;;;N;;;;;
+C7D7;HANGUL SYLLABLE JYALH;Lo;0;L;;;;;N;;;;;
+C7D8;HANGUL SYLLABLE JYAM;Lo;0;L;;;;;N;;;;;
+C7D9;HANGUL SYLLABLE JYAB;Lo;0;L;;;;;N;;;;;
+C7DA;HANGUL SYLLABLE JYABS;Lo;0;L;;;;;N;;;;;
+C7DB;HANGUL SYLLABLE JYAS;Lo;0;L;;;;;N;;;;;
+C7DC;HANGUL SYLLABLE JYASS;Lo;0;L;;;;;N;;;;;
+C7DD;HANGUL SYLLABLE JYANG;Lo;0;L;;;;;N;;;;;
+C7DE;HANGUL SYLLABLE JYAJ;Lo;0;L;;;;;N;;;;;
+C7DF;HANGUL SYLLABLE JYAC;Lo;0;L;;;;;N;;;;;
+C7E0;HANGUL SYLLABLE JYAK;Lo;0;L;;;;;N;;;;;
+C7E1;HANGUL SYLLABLE JYAT;Lo;0;L;;;;;N;;;;;
+C7E2;HANGUL SYLLABLE JYAP;Lo;0;L;;;;;N;;;;;
+C7E3;HANGUL SYLLABLE JYAH;Lo;0;L;;;;;N;;;;;
+C7E4;HANGUL SYLLABLE JYAE;Lo;0;L;;;;;N;;;;;
+C7E5;HANGUL SYLLABLE JYAEG;Lo;0;L;;;;;N;;;;;
+C7E6;HANGUL SYLLABLE JYAEGG;Lo;0;L;;;;;N;;;;;
+C7E7;HANGUL SYLLABLE JYAEGS;Lo;0;L;;;;;N;;;;;
+C7E8;HANGUL SYLLABLE JYAEN;Lo;0;L;;;;;N;;;;;
+C7E9;HANGUL SYLLABLE JYAENI;Lo;0;L;;;;;N;;;;;
+C7EA;HANGUL SYLLABLE JYAENH;Lo;0;L;;;;;N;;;;;
+C7EB;HANGUL SYLLABLE JYAED;Lo;0;L;;;;;N;;;;;
+C7EC;HANGUL SYLLABLE JYAEL;Lo;0;L;;;;;N;;;;;
+C7ED;HANGUL SYLLABLE JYAELG;Lo;0;L;;;;;N;;;;;
+C7EE;HANGUL SYLLABLE JYAELM;Lo;0;L;;;;;N;;;;;
+C7EF;HANGUL SYLLABLE JYAELB;Lo;0;L;;;;;N;;;;;
+C7F0;HANGUL SYLLABLE JYAELS;Lo;0;L;;;;;N;;;;;
+C7F1;HANGUL SYLLABLE JYAELT;Lo;0;L;;;;;N;;;;;
+C7F2;HANGUL SYLLABLE JYAELP;Lo;0;L;;;;;N;;;;;
+C7F3;HANGUL SYLLABLE JYAELH;Lo;0;L;;;;;N;;;;;
+C7F4;HANGUL SYLLABLE JYAEM;Lo;0;L;;;;;N;;;;;
+C7F5;HANGUL SYLLABLE JYAEB;Lo;0;L;;;;;N;;;;;
+C7F6;HANGUL SYLLABLE JYAEBS;Lo;0;L;;;;;N;;;;;
+C7F7;HANGUL SYLLABLE JYAES;Lo;0;L;;;;;N;;;;;
+C7F8;HANGUL SYLLABLE JYAESS;Lo;0;L;;;;;N;;;;;
+C7F9;HANGUL SYLLABLE JYAENG;Lo;0;L;;;;;N;;;;;
+C7FA;HANGUL SYLLABLE JYAEJ;Lo;0;L;;;;;N;;;;;
+C7FB;HANGUL SYLLABLE JYAEC;Lo;0;L;;;;;N;;;;;
+C7FC;HANGUL SYLLABLE JYAEK;Lo;0;L;;;;;N;;;;;
+C7FD;HANGUL SYLLABLE JYAET;Lo;0;L;;;;;N;;;;;
+C7FE;HANGUL SYLLABLE JYAEP;Lo;0;L;;;;;N;;;;;
+C7FF;HANGUL SYLLABLE JYAEH;Lo;0;L;;;;;N;;;;;
+C800;HANGUL SYLLABLE JEO;Lo;0;L;;;;;N;;;;;
+C801;HANGUL SYLLABLE JEOG;Lo;0;L;;;;;N;;;;;
+C802;HANGUL SYLLABLE JEOGG;Lo;0;L;;;;;N;;;;;
+C803;HANGUL SYLLABLE JEOGS;Lo;0;L;;;;;N;;;;;
+C804;HANGUL SYLLABLE JEON;Lo;0;L;;;;;N;;;;;
+C805;HANGUL SYLLABLE JEONI;Lo;0;L;;;;;N;;;;;
+C806;HANGUL SYLLABLE JEONH;Lo;0;L;;;;;N;;;;;
+C807;HANGUL SYLLABLE JEOD;Lo;0;L;;;;;N;;;;;
+C808;HANGUL SYLLABLE JEOL;Lo;0;L;;;;;N;;;;;
+C809;HANGUL SYLLABLE JEOLG;Lo;0;L;;;;;N;;;;;
+C80A;HANGUL SYLLABLE JEOLM;Lo;0;L;;;;;N;;;;;
+C80B;HANGUL SYLLABLE JEOLB;Lo;0;L;;;;;N;;;;;
+C80C;HANGUL SYLLABLE JEOLS;Lo;0;L;;;;;N;;;;;
+C80D;HANGUL SYLLABLE JEOLT;Lo;0;L;;;;;N;;;;;
+C80E;HANGUL SYLLABLE JEOLP;Lo;0;L;;;;;N;;;;;
+C80F;HANGUL SYLLABLE JEOLH;Lo;0;L;;;;;N;;;;;
+C810;HANGUL SYLLABLE JEOM;Lo;0;L;;;;;N;;;;;
+C811;HANGUL SYLLABLE JEOB;Lo;0;L;;;;;N;;;;;
+C812;HANGUL SYLLABLE JEOBS;Lo;0;L;;;;;N;;;;;
+C813;HANGUL SYLLABLE JEOS;Lo;0;L;;;;;N;;;;;
+C814;HANGUL SYLLABLE JEOSS;Lo;0;L;;;;;N;;;;;
+C815;HANGUL SYLLABLE JEONG;Lo;0;L;;;;;N;;;;;
+C816;HANGUL SYLLABLE JEOJ;Lo;0;L;;;;;N;;;;;
+C817;HANGUL SYLLABLE JEOC;Lo;0;L;;;;;N;;;;;
+C818;HANGUL SYLLABLE JEOK;Lo;0;L;;;;;N;;;;;
+C819;HANGUL SYLLABLE JEOT;Lo;0;L;;;;;N;;;;;
+C81A;HANGUL SYLLABLE JEOP;Lo;0;L;;;;;N;;;;;
+C81B;HANGUL SYLLABLE JEOH;Lo;0;L;;;;;N;;;;;
+C81C;HANGUL SYLLABLE JE;Lo;0;L;;;;;N;;;;;
+C81D;HANGUL SYLLABLE JEG;Lo;0;L;;;;;N;;;;;
+C81E;HANGUL SYLLABLE JEGG;Lo;0;L;;;;;N;;;;;
+C81F;HANGUL SYLLABLE JEGS;Lo;0;L;;;;;N;;;;;
+C820;HANGUL SYLLABLE JEN;Lo;0;L;;;;;N;;;;;
+C821;HANGUL SYLLABLE JENI;Lo;0;L;;;;;N;;;;;
+C822;HANGUL SYLLABLE JENH;Lo;0;L;;;;;N;;;;;
+C823;HANGUL SYLLABLE JED;Lo;0;L;;;;;N;;;;;
+C824;HANGUL SYLLABLE JEL;Lo;0;L;;;;;N;;;;;
+C825;HANGUL SYLLABLE JELG;Lo;0;L;;;;;N;;;;;
+C826;HANGUL SYLLABLE JELM;Lo;0;L;;;;;N;;;;;
+C827;HANGUL SYLLABLE JELB;Lo;0;L;;;;;N;;;;;
+C828;HANGUL SYLLABLE JELS;Lo;0;L;;;;;N;;;;;
+C829;HANGUL SYLLABLE JELT;Lo;0;L;;;;;N;;;;;
+C82A;HANGUL SYLLABLE JELP;Lo;0;L;;;;;N;;;;;
+C82B;HANGUL SYLLABLE JELH;Lo;0;L;;;;;N;;;;;
+C82C;HANGUL SYLLABLE JEM;Lo;0;L;;;;;N;;;;;
+C82D;HANGUL SYLLABLE JEB;Lo;0;L;;;;;N;;;;;
+C82E;HANGUL SYLLABLE JEBS;Lo;0;L;;;;;N;;;;;
+C82F;HANGUL SYLLABLE JES;Lo;0;L;;;;;N;;;;;
+C830;HANGUL SYLLABLE JESS;Lo;0;L;;;;;N;;;;;
+C831;HANGUL SYLLABLE JENG;Lo;0;L;;;;;N;;;;;
+C832;HANGUL SYLLABLE JEJ;Lo;0;L;;;;;N;;;;;
+C833;HANGUL SYLLABLE JEC;Lo;0;L;;;;;N;;;;;
+C834;HANGUL SYLLABLE JEK;Lo;0;L;;;;;N;;;;;
+C835;HANGUL SYLLABLE JET;Lo;0;L;;;;;N;;;;;
+C836;HANGUL SYLLABLE JEP;Lo;0;L;;;;;N;;;;;
+C837;HANGUL SYLLABLE JEH;Lo;0;L;;;;;N;;;;;
+C838;HANGUL SYLLABLE JYEO;Lo;0;L;;;;;N;;;;;
+C839;HANGUL SYLLABLE JYEOG;Lo;0;L;;;;;N;;;;;
+C83A;HANGUL SYLLABLE JYEOGG;Lo;0;L;;;;;N;;;;;
+C83B;HANGUL SYLLABLE JYEOGS;Lo;0;L;;;;;N;;;;;
+C83C;HANGUL SYLLABLE JYEON;Lo;0;L;;;;;N;;;;;
+C83D;HANGUL SYLLABLE JYEONI;Lo;0;L;;;;;N;;;;;
+C83E;HANGUL SYLLABLE JYEONH;Lo;0;L;;;;;N;;;;;
+C83F;HANGUL SYLLABLE JYEOD;Lo;0;L;;;;;N;;;;;
+C840;HANGUL SYLLABLE JYEOL;Lo;0;L;;;;;N;;;;;
+C841;HANGUL SYLLABLE JYEOLG;Lo;0;L;;;;;N;;;;;
+C842;HANGUL SYLLABLE JYEOLM;Lo;0;L;;;;;N;;;;;
+C843;HANGUL SYLLABLE JYEOLB;Lo;0;L;;;;;N;;;;;
+C844;HANGUL SYLLABLE JYEOLS;Lo;0;L;;;;;N;;;;;
+C845;HANGUL SYLLABLE JYEOLT;Lo;0;L;;;;;N;;;;;
+C846;HANGUL SYLLABLE JYEOLP;Lo;0;L;;;;;N;;;;;
+C847;HANGUL SYLLABLE JYEOLH;Lo;0;L;;;;;N;;;;;
+C848;HANGUL SYLLABLE JYEOM;Lo;0;L;;;;;N;;;;;
+C849;HANGUL SYLLABLE JYEOB;Lo;0;L;;;;;N;;;;;
+C84A;HANGUL SYLLABLE JYEOBS;Lo;0;L;;;;;N;;;;;
+C84B;HANGUL SYLLABLE JYEOS;Lo;0;L;;;;;N;;;;;
+C84C;HANGUL SYLLABLE JYEOSS;Lo;0;L;;;;;N;;;;;
+C84D;HANGUL SYLLABLE JYEONG;Lo;0;L;;;;;N;;;;;
+C84E;HANGUL SYLLABLE JYEOJ;Lo;0;L;;;;;N;;;;;
+C84F;HANGUL SYLLABLE JYEOC;Lo;0;L;;;;;N;;;;;
+C850;HANGUL SYLLABLE JYEOK;Lo;0;L;;;;;N;;;;;
+C851;HANGUL SYLLABLE JYEOT;Lo;0;L;;;;;N;;;;;
+C852;HANGUL SYLLABLE JYEOP;Lo;0;L;;;;;N;;;;;
+C853;HANGUL SYLLABLE JYEOH;Lo;0;L;;;;;N;;;;;
+C854;HANGUL SYLLABLE JYE;Lo;0;L;;;;;N;;;;;
+C855;HANGUL SYLLABLE JYEG;Lo;0;L;;;;;N;;;;;
+C856;HANGUL SYLLABLE JYEGG;Lo;0;L;;;;;N;;;;;
+C857;HANGUL SYLLABLE JYEGS;Lo;0;L;;;;;N;;;;;
+C858;HANGUL SYLLABLE JYEN;Lo;0;L;;;;;N;;;;;
+C859;HANGUL SYLLABLE JYENI;Lo;0;L;;;;;N;;;;;
+C85A;HANGUL SYLLABLE JYENH;Lo;0;L;;;;;N;;;;;
+C85B;HANGUL SYLLABLE JYED;Lo;0;L;;;;;N;;;;;
+C85C;HANGUL SYLLABLE JYEL;Lo;0;L;;;;;N;;;;;
+C85D;HANGUL SYLLABLE JYELG;Lo;0;L;;;;;N;;;;;
+C85E;HANGUL SYLLABLE JYELM;Lo;0;L;;;;;N;;;;;
+C85F;HANGUL SYLLABLE JYELB;Lo;0;L;;;;;N;;;;;
+C860;HANGUL SYLLABLE JYELS;Lo;0;L;;;;;N;;;;;
+C861;HANGUL SYLLABLE JYELT;Lo;0;L;;;;;N;;;;;
+C862;HANGUL SYLLABLE JYELP;Lo;0;L;;;;;N;;;;;
+C863;HANGUL SYLLABLE JYELH;Lo;0;L;;;;;N;;;;;
+C864;HANGUL SYLLABLE JYEM;Lo;0;L;;;;;N;;;;;
+C865;HANGUL SYLLABLE JYEB;Lo;0;L;;;;;N;;;;;
+C866;HANGUL SYLLABLE JYEBS;Lo;0;L;;;;;N;;;;;
+C867;HANGUL SYLLABLE JYES;Lo;0;L;;;;;N;;;;;
+C868;HANGUL SYLLABLE JYESS;Lo;0;L;;;;;N;;;;;
+C869;HANGUL SYLLABLE JYENG;Lo;0;L;;;;;N;;;;;
+C86A;HANGUL SYLLABLE JYEJ;Lo;0;L;;;;;N;;;;;
+C86B;HANGUL SYLLABLE JYEC;Lo;0;L;;;;;N;;;;;
+C86C;HANGUL SYLLABLE JYEK;Lo;0;L;;;;;N;;;;;
+C86D;HANGUL SYLLABLE JYET;Lo;0;L;;;;;N;;;;;
+C86E;HANGUL SYLLABLE JYEP;Lo;0;L;;;;;N;;;;;
+C86F;HANGUL SYLLABLE JYEH;Lo;0;L;;;;;N;;;;;
+C870;HANGUL SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+C871;HANGUL SYLLABLE JOG;Lo;0;L;;;;;N;;;;;
+C872;HANGUL SYLLABLE JOGG;Lo;0;L;;;;;N;;;;;
+C873;HANGUL SYLLABLE JOGS;Lo;0;L;;;;;N;;;;;
+C874;HANGUL SYLLABLE JON;Lo;0;L;;;;;N;;;;;
+C875;HANGUL SYLLABLE JONI;Lo;0;L;;;;;N;;;;;
+C876;HANGUL SYLLABLE JONH;Lo;0;L;;;;;N;;;;;
+C877;HANGUL SYLLABLE JOD;Lo;0;L;;;;;N;;;;;
+C878;HANGUL SYLLABLE JOL;Lo;0;L;;;;;N;;;;;
+C879;HANGUL SYLLABLE JOLG;Lo;0;L;;;;;N;;;;;
+C87A;HANGUL SYLLABLE JOLM;Lo;0;L;;;;;N;;;;;
+C87B;HANGUL SYLLABLE JOLB;Lo;0;L;;;;;N;;;;;
+C87C;HANGUL SYLLABLE JOLS;Lo;0;L;;;;;N;;;;;
+C87D;HANGUL SYLLABLE JOLT;Lo;0;L;;;;;N;;;;;
+C87E;HANGUL SYLLABLE JOLP;Lo;0;L;;;;;N;;;;;
+C87F;HANGUL SYLLABLE JOLH;Lo;0;L;;;;;N;;;;;
+C880;HANGUL SYLLABLE JOM;Lo;0;L;;;;;N;;;;;
+C881;HANGUL SYLLABLE JOB;Lo;0;L;;;;;N;;;;;
+C882;HANGUL SYLLABLE JOBS;Lo;0;L;;;;;N;;;;;
+C883;HANGUL SYLLABLE JOS;Lo;0;L;;;;;N;;;;;
+C884;HANGUL SYLLABLE JOSS;Lo;0;L;;;;;N;;;;;
+C885;HANGUL SYLLABLE JONG;Lo;0;L;;;;;N;;;;;
+C886;HANGUL SYLLABLE JOJ;Lo;0;L;;;;;N;;;;;
+C887;HANGUL SYLLABLE JOC;Lo;0;L;;;;;N;;;;;
+C888;HANGUL SYLLABLE JOK;Lo;0;L;;;;;N;;;;;
+C889;HANGUL SYLLABLE JOT;Lo;0;L;;;;;N;;;;;
+C88A;HANGUL SYLLABLE JOP;Lo;0;L;;;;;N;;;;;
+C88B;HANGUL SYLLABLE JOH;Lo;0;L;;;;;N;;;;;
+C88C;HANGUL SYLLABLE JWA;Lo;0;L;;;;;N;;;;;
+C88D;HANGUL SYLLABLE JWAG;Lo;0;L;;;;;N;;;;;
+C88E;HANGUL SYLLABLE JWAGG;Lo;0;L;;;;;N;;;;;
+C88F;HANGUL SYLLABLE JWAGS;Lo;0;L;;;;;N;;;;;
+C890;HANGUL SYLLABLE JWAN;Lo;0;L;;;;;N;;;;;
+C891;HANGUL SYLLABLE JWANI;Lo;0;L;;;;;N;;;;;
+C892;HANGUL SYLLABLE JWANH;Lo;0;L;;;;;N;;;;;
+C893;HANGUL SYLLABLE JWAD;Lo;0;L;;;;;N;;;;;
+C894;HANGUL SYLLABLE JWAL;Lo;0;L;;;;;N;;;;;
+C895;HANGUL SYLLABLE JWALG;Lo;0;L;;;;;N;;;;;
+C896;HANGUL SYLLABLE JWALM;Lo;0;L;;;;;N;;;;;
+C897;HANGUL SYLLABLE JWALB;Lo;0;L;;;;;N;;;;;
+C898;HANGUL SYLLABLE JWALS;Lo;0;L;;;;;N;;;;;
+C899;HANGUL SYLLABLE JWALT;Lo;0;L;;;;;N;;;;;
+C89A;HANGUL SYLLABLE JWALP;Lo;0;L;;;;;N;;;;;
+C89B;HANGUL SYLLABLE JWALH;Lo;0;L;;;;;N;;;;;
+C89C;HANGUL SYLLABLE JWAM;Lo;0;L;;;;;N;;;;;
+C89D;HANGUL SYLLABLE JWAB;Lo;0;L;;;;;N;;;;;
+C89E;HANGUL SYLLABLE JWABS;Lo;0;L;;;;;N;;;;;
+C89F;HANGUL SYLLABLE JWAS;Lo;0;L;;;;;N;;;;;
+C8A0;HANGUL SYLLABLE JWASS;Lo;0;L;;;;;N;;;;;
+C8A1;HANGUL SYLLABLE JWANG;Lo;0;L;;;;;N;;;;;
+C8A2;HANGUL SYLLABLE JWAJ;Lo;0;L;;;;;N;;;;;
+C8A3;HANGUL SYLLABLE JWAC;Lo;0;L;;;;;N;;;;;
+C8A4;HANGUL SYLLABLE JWAK;Lo;0;L;;;;;N;;;;;
+C8A5;HANGUL SYLLABLE JWAT;Lo;0;L;;;;;N;;;;;
+C8A6;HANGUL SYLLABLE JWAP;Lo;0;L;;;;;N;;;;;
+C8A7;HANGUL SYLLABLE JWAH;Lo;0;L;;;;;N;;;;;
+C8A8;HANGUL SYLLABLE JWAE;Lo;0;L;;;;;N;;;;;
+C8A9;HANGUL SYLLABLE JWAEG;Lo;0;L;;;;;N;;;;;
+C8AA;HANGUL SYLLABLE JWAEGG;Lo;0;L;;;;;N;;;;;
+C8AB;HANGUL SYLLABLE JWAEGS;Lo;0;L;;;;;N;;;;;
+C8AC;HANGUL SYLLABLE JWAEN;Lo;0;L;;;;;N;;;;;
+C8AD;HANGUL SYLLABLE JWAENI;Lo;0;L;;;;;N;;;;;
+C8AE;HANGUL SYLLABLE JWAENH;Lo;0;L;;;;;N;;;;;
+C8AF;HANGUL SYLLABLE JWAED;Lo;0;L;;;;;N;;;;;
+C8B0;HANGUL SYLLABLE JWAEL;Lo;0;L;;;;;N;;;;;
+C8B1;HANGUL SYLLABLE JWAELG;Lo;0;L;;;;;N;;;;;
+C8B2;HANGUL SYLLABLE JWAELM;Lo;0;L;;;;;N;;;;;
+C8B3;HANGUL SYLLABLE JWAELB;Lo;0;L;;;;;N;;;;;
+C8B4;HANGUL SYLLABLE JWAELS;Lo;0;L;;;;;N;;;;;
+C8B5;HANGUL SYLLABLE JWAELT;Lo;0;L;;;;;N;;;;;
+C8B6;HANGUL SYLLABLE JWAELP;Lo;0;L;;;;;N;;;;;
+C8B7;HANGUL SYLLABLE JWAELH;Lo;0;L;;;;;N;;;;;
+C8B8;HANGUL SYLLABLE JWAEM;Lo;0;L;;;;;N;;;;;
+C8B9;HANGUL SYLLABLE JWAEB;Lo;0;L;;;;;N;;;;;
+C8BA;HANGUL SYLLABLE JWAEBS;Lo;0;L;;;;;N;;;;;
+C8BB;HANGUL SYLLABLE JWAES;Lo;0;L;;;;;N;;;;;
+C8BC;HANGUL SYLLABLE JWAESS;Lo;0;L;;;;;N;;;;;
+C8BD;HANGUL SYLLABLE JWAENG;Lo;0;L;;;;;N;;;;;
+C8BE;HANGUL SYLLABLE JWAEJ;Lo;0;L;;;;;N;;;;;
+C8BF;HANGUL SYLLABLE JWAEC;Lo;0;L;;;;;N;;;;;
+C8C0;HANGUL SYLLABLE JWAEK;Lo;0;L;;;;;N;;;;;
+C8C1;HANGUL SYLLABLE JWAET;Lo;0;L;;;;;N;;;;;
+C8C2;HANGUL SYLLABLE JWAEP;Lo;0;L;;;;;N;;;;;
+C8C3;HANGUL SYLLABLE JWAEH;Lo;0;L;;;;;N;;;;;
+C8C4;HANGUL SYLLABLE JOE;Lo;0;L;;;;;N;;;;;
+C8C5;HANGUL SYLLABLE JOEG;Lo;0;L;;;;;N;;;;;
+C8C6;HANGUL SYLLABLE JOEGG;Lo;0;L;;;;;N;;;;;
+C8C7;HANGUL SYLLABLE JOEGS;Lo;0;L;;;;;N;;;;;
+C8C8;HANGUL SYLLABLE JOEN;Lo;0;L;;;;;N;;;;;
+C8C9;HANGUL SYLLABLE JOENI;Lo;0;L;;;;;N;;;;;
+C8CA;HANGUL SYLLABLE JOENH;Lo;0;L;;;;;N;;;;;
+C8CB;HANGUL SYLLABLE JOED;Lo;0;L;;;;;N;;;;;
+C8CC;HANGUL SYLLABLE JOEL;Lo;0;L;;;;;N;;;;;
+C8CD;HANGUL SYLLABLE JOELG;Lo;0;L;;;;;N;;;;;
+C8CE;HANGUL SYLLABLE JOELM;Lo;0;L;;;;;N;;;;;
+C8CF;HANGUL SYLLABLE JOELB;Lo;0;L;;;;;N;;;;;
+C8D0;HANGUL SYLLABLE JOELS;Lo;0;L;;;;;N;;;;;
+C8D1;HANGUL SYLLABLE JOELT;Lo;0;L;;;;;N;;;;;
+C8D2;HANGUL SYLLABLE JOELP;Lo;0;L;;;;;N;;;;;
+C8D3;HANGUL SYLLABLE JOELH;Lo;0;L;;;;;N;;;;;
+C8D4;HANGUL SYLLABLE JOEM;Lo;0;L;;;;;N;;;;;
+C8D5;HANGUL SYLLABLE JOEB;Lo;0;L;;;;;N;;;;;
+C8D6;HANGUL SYLLABLE JOEBS;Lo;0;L;;;;;N;;;;;
+C8D7;HANGUL SYLLABLE JOES;Lo;0;L;;;;;N;;;;;
+C8D8;HANGUL SYLLABLE JOESS;Lo;0;L;;;;;N;;;;;
+C8D9;HANGUL SYLLABLE JOENG;Lo;0;L;;;;;N;;;;;
+C8DA;HANGUL SYLLABLE JOEJ;Lo;0;L;;;;;N;;;;;
+C8DB;HANGUL SYLLABLE JOEC;Lo;0;L;;;;;N;;;;;
+C8DC;HANGUL SYLLABLE JOEK;Lo;0;L;;;;;N;;;;;
+C8DD;HANGUL SYLLABLE JOET;Lo;0;L;;;;;N;;;;;
+C8DE;HANGUL SYLLABLE JOEP;Lo;0;L;;;;;N;;;;;
+C8DF;HANGUL SYLLABLE JOEH;Lo;0;L;;;;;N;;;;;
+C8E0;HANGUL SYLLABLE JYO;Lo;0;L;;;;;N;;;;;
+C8E1;HANGUL SYLLABLE JYOG;Lo;0;L;;;;;N;;;;;
+C8E2;HANGUL SYLLABLE JYOGG;Lo;0;L;;;;;N;;;;;
+C8E3;HANGUL SYLLABLE JYOGS;Lo;0;L;;;;;N;;;;;
+C8E4;HANGUL SYLLABLE JYON;Lo;0;L;;;;;N;;;;;
+C8E5;HANGUL SYLLABLE JYONI;Lo;0;L;;;;;N;;;;;
+C8E6;HANGUL SYLLABLE JYONH;Lo;0;L;;;;;N;;;;;
+C8E7;HANGUL SYLLABLE JYOD;Lo;0;L;;;;;N;;;;;
+C8E8;HANGUL SYLLABLE JYOL;Lo;0;L;;;;;N;;;;;
+C8E9;HANGUL SYLLABLE JYOLG;Lo;0;L;;;;;N;;;;;
+C8EA;HANGUL SYLLABLE JYOLM;Lo;0;L;;;;;N;;;;;
+C8EB;HANGUL SYLLABLE JYOLB;Lo;0;L;;;;;N;;;;;
+C8EC;HANGUL SYLLABLE JYOLS;Lo;0;L;;;;;N;;;;;
+C8ED;HANGUL SYLLABLE JYOLT;Lo;0;L;;;;;N;;;;;
+C8EE;HANGUL SYLLABLE JYOLP;Lo;0;L;;;;;N;;;;;
+C8EF;HANGUL SYLLABLE JYOLH;Lo;0;L;;;;;N;;;;;
+C8F0;HANGUL SYLLABLE JYOM;Lo;0;L;;;;;N;;;;;
+C8F1;HANGUL SYLLABLE JYOB;Lo;0;L;;;;;N;;;;;
+C8F2;HANGUL SYLLABLE JYOBS;Lo;0;L;;;;;N;;;;;
+C8F3;HANGUL SYLLABLE JYOS;Lo;0;L;;;;;N;;;;;
+C8F4;HANGUL SYLLABLE JYOSS;Lo;0;L;;;;;N;;;;;
+C8F5;HANGUL SYLLABLE JYONG;Lo;0;L;;;;;N;;;;;
+C8F6;HANGUL SYLLABLE JYOJ;Lo;0;L;;;;;N;;;;;
+C8F7;HANGUL SYLLABLE JYOC;Lo;0;L;;;;;N;;;;;
+C8F8;HANGUL SYLLABLE JYOK;Lo;0;L;;;;;N;;;;;
+C8F9;HANGUL SYLLABLE JYOT;Lo;0;L;;;;;N;;;;;
+C8FA;HANGUL SYLLABLE JYOP;Lo;0;L;;;;;N;;;;;
+C8FB;HANGUL SYLLABLE JYOH;Lo;0;L;;;;;N;;;;;
+C8FC;HANGUL SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+C8FD;HANGUL SYLLABLE JUG;Lo;0;L;;;;;N;;;;;
+C8FE;HANGUL SYLLABLE JUGG;Lo;0;L;;;;;N;;;;;
+C8FF;HANGUL SYLLABLE JUGS;Lo;0;L;;;;;N;;;;;
+C900;HANGUL SYLLABLE JUN;Lo;0;L;;;;;N;;;;;
+C901;HANGUL SYLLABLE JUNI;Lo;0;L;;;;;N;;;;;
+C902;HANGUL SYLLABLE JUNH;Lo;0;L;;;;;N;;;;;
+C903;HANGUL SYLLABLE JUD;Lo;0;L;;;;;N;;;;;
+C904;HANGUL SYLLABLE JUL;Lo;0;L;;;;;N;;;;;
+C905;HANGUL SYLLABLE JULG;Lo;0;L;;;;;N;;;;;
+C906;HANGUL SYLLABLE JULM;Lo;0;L;;;;;N;;;;;
+C907;HANGUL SYLLABLE JULB;Lo;0;L;;;;;N;;;;;
+C908;HANGUL SYLLABLE JULS;Lo;0;L;;;;;N;;;;;
+C909;HANGUL SYLLABLE JULT;Lo;0;L;;;;;N;;;;;
+C90A;HANGUL SYLLABLE JULP;Lo;0;L;;;;;N;;;;;
+C90B;HANGUL SYLLABLE JULH;Lo;0;L;;;;;N;;;;;
+C90C;HANGUL SYLLABLE JUM;Lo;0;L;;;;;N;;;;;
+C90D;HANGUL SYLLABLE JUB;Lo;0;L;;;;;N;;;;;
+C90E;HANGUL SYLLABLE JUBS;Lo;0;L;;;;;N;;;;;
+C90F;HANGUL SYLLABLE JUS;Lo;0;L;;;;;N;;;;;
+C910;HANGUL SYLLABLE JUSS;Lo;0;L;;;;;N;;;;;
+C911;HANGUL SYLLABLE JUNG;Lo;0;L;;;;;N;;;;;
+C912;HANGUL SYLLABLE JUJ;Lo;0;L;;;;;N;;;;;
+C913;HANGUL SYLLABLE JUC;Lo;0;L;;;;;N;;;;;
+C914;HANGUL SYLLABLE JUK;Lo;0;L;;;;;N;;;;;
+C915;HANGUL SYLLABLE JUT;Lo;0;L;;;;;N;;;;;
+C916;HANGUL SYLLABLE JUP;Lo;0;L;;;;;N;;;;;
+C917;HANGUL SYLLABLE JUH;Lo;0;L;;;;;N;;;;;
+C918;HANGUL SYLLABLE JWEO;Lo;0;L;;;;;N;;;;;
+C919;HANGUL SYLLABLE JWEOG;Lo;0;L;;;;;N;;;;;
+C91A;HANGUL SYLLABLE JWEOGG;Lo;0;L;;;;;N;;;;;
+C91B;HANGUL SYLLABLE JWEOGS;Lo;0;L;;;;;N;;;;;
+C91C;HANGUL SYLLABLE JWEON;Lo;0;L;;;;;N;;;;;
+C91D;HANGUL SYLLABLE JWEONI;Lo;0;L;;;;;N;;;;;
+C91E;HANGUL SYLLABLE JWEONH;Lo;0;L;;;;;N;;;;;
+C91F;HANGUL SYLLABLE JWEOD;Lo;0;L;;;;;N;;;;;
+C920;HANGUL SYLLABLE JWEOL;Lo;0;L;;;;;N;;;;;
+C921;HANGUL SYLLABLE JWEOLG;Lo;0;L;;;;;N;;;;;
+C922;HANGUL SYLLABLE JWEOLM;Lo;0;L;;;;;N;;;;;
+C923;HANGUL SYLLABLE JWEOLB;Lo;0;L;;;;;N;;;;;
+C924;HANGUL SYLLABLE JWEOLS;Lo;0;L;;;;;N;;;;;
+C925;HANGUL SYLLABLE JWEOLT;Lo;0;L;;;;;N;;;;;
+C926;HANGUL SYLLABLE JWEOLP;Lo;0;L;;;;;N;;;;;
+C927;HANGUL SYLLABLE JWEOLH;Lo;0;L;;;;;N;;;;;
+C928;HANGUL SYLLABLE JWEOM;Lo;0;L;;;;;N;;;;;
+C929;HANGUL SYLLABLE JWEOB;Lo;0;L;;;;;N;;;;;
+C92A;HANGUL SYLLABLE JWEOBS;Lo;0;L;;;;;N;;;;;
+C92B;HANGUL SYLLABLE JWEOS;Lo;0;L;;;;;N;;;;;
+C92C;HANGUL SYLLABLE JWEOSS;Lo;0;L;;;;;N;;;;;
+C92D;HANGUL SYLLABLE JWEONG;Lo;0;L;;;;;N;;;;;
+C92E;HANGUL SYLLABLE JWEOJ;Lo;0;L;;;;;N;;;;;
+C92F;HANGUL SYLLABLE JWEOC;Lo;0;L;;;;;N;;;;;
+C930;HANGUL SYLLABLE JWEOK;Lo;0;L;;;;;N;;;;;
+C931;HANGUL SYLLABLE JWEOT;Lo;0;L;;;;;N;;;;;
+C932;HANGUL SYLLABLE JWEOP;Lo;0;L;;;;;N;;;;;
+C933;HANGUL SYLLABLE JWEOH;Lo;0;L;;;;;N;;;;;
+C934;HANGUL SYLLABLE JWE;Lo;0;L;;;;;N;;;;;
+C935;HANGUL SYLLABLE JWEG;Lo;0;L;;;;;N;;;;;
+C936;HANGUL SYLLABLE JWEGG;Lo;0;L;;;;;N;;;;;
+C937;HANGUL SYLLABLE JWEGS;Lo;0;L;;;;;N;;;;;
+C938;HANGUL SYLLABLE JWEN;Lo;0;L;;;;;N;;;;;
+C939;HANGUL SYLLABLE JWENI;Lo;0;L;;;;;N;;;;;
+C93A;HANGUL SYLLABLE JWENH;Lo;0;L;;;;;N;;;;;
+C93B;HANGUL SYLLABLE JWED;Lo;0;L;;;;;N;;;;;
+C93C;HANGUL SYLLABLE JWEL;Lo;0;L;;;;;N;;;;;
+C93D;HANGUL SYLLABLE JWELG;Lo;0;L;;;;;N;;;;;
+C93E;HANGUL SYLLABLE JWELM;Lo;0;L;;;;;N;;;;;
+C93F;HANGUL SYLLABLE JWELB;Lo;0;L;;;;;N;;;;;
+C940;HANGUL SYLLABLE JWELS;Lo;0;L;;;;;N;;;;;
+C941;HANGUL SYLLABLE JWELT;Lo;0;L;;;;;N;;;;;
+C942;HANGUL SYLLABLE JWELP;Lo;0;L;;;;;N;;;;;
+C943;HANGUL SYLLABLE JWELH;Lo;0;L;;;;;N;;;;;
+C944;HANGUL SYLLABLE JWEM;Lo;0;L;;;;;N;;;;;
+C945;HANGUL SYLLABLE JWEB;Lo;0;L;;;;;N;;;;;
+C946;HANGUL SYLLABLE JWEBS;Lo;0;L;;;;;N;;;;;
+C947;HANGUL SYLLABLE JWES;Lo;0;L;;;;;N;;;;;
+C948;HANGUL SYLLABLE JWESS;Lo;0;L;;;;;N;;;;;
+C949;HANGUL SYLLABLE JWENG;Lo;0;L;;;;;N;;;;;
+C94A;HANGUL SYLLABLE JWEJ;Lo;0;L;;;;;N;;;;;
+C94B;HANGUL SYLLABLE JWEC;Lo;0;L;;;;;N;;;;;
+C94C;HANGUL SYLLABLE JWEK;Lo;0;L;;;;;N;;;;;
+C94D;HANGUL SYLLABLE JWET;Lo;0;L;;;;;N;;;;;
+C94E;HANGUL SYLLABLE JWEP;Lo;0;L;;;;;N;;;;;
+C94F;HANGUL SYLLABLE JWEH;Lo;0;L;;;;;N;;;;;
+C950;HANGUL SYLLABLE JWI;Lo;0;L;;;;;N;;;;;
+C951;HANGUL SYLLABLE JWIG;Lo;0;L;;;;;N;;;;;
+C952;HANGUL SYLLABLE JWIGG;Lo;0;L;;;;;N;;;;;
+C953;HANGUL SYLLABLE JWIGS;Lo;0;L;;;;;N;;;;;
+C954;HANGUL SYLLABLE JWIN;Lo;0;L;;;;;N;;;;;
+C955;HANGUL SYLLABLE JWINI;Lo;0;L;;;;;N;;;;;
+C956;HANGUL SYLLABLE JWINH;Lo;0;L;;;;;N;;;;;
+C957;HANGUL SYLLABLE JWID;Lo;0;L;;;;;N;;;;;
+C958;HANGUL SYLLABLE JWIL;Lo;0;L;;;;;N;;;;;
+C959;HANGUL SYLLABLE JWILG;Lo;0;L;;;;;N;;;;;
+C95A;HANGUL SYLLABLE JWILM;Lo;0;L;;;;;N;;;;;
+C95B;HANGUL SYLLABLE JWILB;Lo;0;L;;;;;N;;;;;
+C95C;HANGUL SYLLABLE JWILS;Lo;0;L;;;;;N;;;;;
+C95D;HANGUL SYLLABLE JWILT;Lo;0;L;;;;;N;;;;;
+C95E;HANGUL SYLLABLE JWILP;Lo;0;L;;;;;N;;;;;
+C95F;HANGUL SYLLABLE JWILH;Lo;0;L;;;;;N;;;;;
+C960;HANGUL SYLLABLE JWIM;Lo;0;L;;;;;N;;;;;
+C961;HANGUL SYLLABLE JWIB;Lo;0;L;;;;;N;;;;;
+C962;HANGUL SYLLABLE JWIBS;Lo;0;L;;;;;N;;;;;
+C963;HANGUL SYLLABLE JWIS;Lo;0;L;;;;;N;;;;;
+C964;HANGUL SYLLABLE JWISS;Lo;0;L;;;;;N;;;;;
+C965;HANGUL SYLLABLE JWING;Lo;0;L;;;;;N;;;;;
+C966;HANGUL SYLLABLE JWIJ;Lo;0;L;;;;;N;;;;;
+C967;HANGUL SYLLABLE JWIC;Lo;0;L;;;;;N;;;;;
+C968;HANGUL SYLLABLE JWIK;Lo;0;L;;;;;N;;;;;
+C969;HANGUL SYLLABLE JWIT;Lo;0;L;;;;;N;;;;;
+C96A;HANGUL SYLLABLE JWIP;Lo;0;L;;;;;N;;;;;
+C96B;HANGUL SYLLABLE JWIH;Lo;0;L;;;;;N;;;;;
+C96C;HANGUL SYLLABLE JYU;Lo;0;L;;;;;N;;;;;
+C96D;HANGUL SYLLABLE JYUG;Lo;0;L;;;;;N;;;;;
+C96E;HANGUL SYLLABLE JYUGG;Lo;0;L;;;;;N;;;;;
+C96F;HANGUL SYLLABLE JYUGS;Lo;0;L;;;;;N;;;;;
+C970;HANGUL SYLLABLE JYUN;Lo;0;L;;;;;N;;;;;
+C971;HANGUL SYLLABLE JYUNI;Lo;0;L;;;;;N;;;;;
+C972;HANGUL SYLLABLE JYUNH;Lo;0;L;;;;;N;;;;;
+C973;HANGUL SYLLABLE JYUD;Lo;0;L;;;;;N;;;;;
+C974;HANGUL SYLLABLE JYUL;Lo;0;L;;;;;N;;;;;
+C975;HANGUL SYLLABLE JYULG;Lo;0;L;;;;;N;;;;;
+C976;HANGUL SYLLABLE JYULM;Lo;0;L;;;;;N;;;;;
+C977;HANGUL SYLLABLE JYULB;Lo;0;L;;;;;N;;;;;
+C978;HANGUL SYLLABLE JYULS;Lo;0;L;;;;;N;;;;;
+C979;HANGUL SYLLABLE JYULT;Lo;0;L;;;;;N;;;;;
+C97A;HANGUL SYLLABLE JYULP;Lo;0;L;;;;;N;;;;;
+C97B;HANGUL SYLLABLE JYULH;Lo;0;L;;;;;N;;;;;
+C97C;HANGUL SYLLABLE JYUM;Lo;0;L;;;;;N;;;;;
+C97D;HANGUL SYLLABLE JYUB;Lo;0;L;;;;;N;;;;;
+C97E;HANGUL SYLLABLE JYUBS;Lo;0;L;;;;;N;;;;;
+C97F;HANGUL SYLLABLE JYUS;Lo;0;L;;;;;N;;;;;
+C980;HANGUL SYLLABLE JYUSS;Lo;0;L;;;;;N;;;;;
+C981;HANGUL SYLLABLE JYUNG;Lo;0;L;;;;;N;;;;;
+C982;HANGUL SYLLABLE JYUJ;Lo;0;L;;;;;N;;;;;
+C983;HANGUL SYLLABLE JYUC;Lo;0;L;;;;;N;;;;;
+C984;HANGUL SYLLABLE JYUK;Lo;0;L;;;;;N;;;;;
+C985;HANGUL SYLLABLE JYUT;Lo;0;L;;;;;N;;;;;
+C986;HANGUL SYLLABLE JYUP;Lo;0;L;;;;;N;;;;;
+C987;HANGUL SYLLABLE JYUH;Lo;0;L;;;;;N;;;;;
+C988;HANGUL SYLLABLE JEU;Lo;0;L;;;;;N;;;;;
+C989;HANGUL SYLLABLE JEUG;Lo;0;L;;;;;N;;;;;
+C98A;HANGUL SYLLABLE JEUGG;Lo;0;L;;;;;N;;;;;
+C98B;HANGUL SYLLABLE JEUGS;Lo;0;L;;;;;N;;;;;
+C98C;HANGUL SYLLABLE JEUN;Lo;0;L;;;;;N;;;;;
+C98D;HANGUL SYLLABLE JEUNI;Lo;0;L;;;;;N;;;;;
+C98E;HANGUL SYLLABLE JEUNH;Lo;0;L;;;;;N;;;;;
+C98F;HANGUL SYLLABLE JEUD;Lo;0;L;;;;;N;;;;;
+C990;HANGUL SYLLABLE JEUL;Lo;0;L;;;;;N;;;;;
+C991;HANGUL SYLLABLE JEULG;Lo;0;L;;;;;N;;;;;
+C992;HANGUL SYLLABLE JEULM;Lo;0;L;;;;;N;;;;;
+C993;HANGUL SYLLABLE JEULB;Lo;0;L;;;;;N;;;;;
+C994;HANGUL SYLLABLE JEULS;Lo;0;L;;;;;N;;;;;
+C995;HANGUL SYLLABLE JEULT;Lo;0;L;;;;;N;;;;;
+C996;HANGUL SYLLABLE JEULP;Lo;0;L;;;;;N;;;;;
+C997;HANGUL SYLLABLE JEULH;Lo;0;L;;;;;N;;;;;
+C998;HANGUL SYLLABLE JEUM;Lo;0;L;;;;;N;;;;;
+C999;HANGUL SYLLABLE JEUB;Lo;0;L;;;;;N;;;;;
+C99A;HANGUL SYLLABLE JEUBS;Lo;0;L;;;;;N;;;;;
+C99B;HANGUL SYLLABLE JEUS;Lo;0;L;;;;;N;;;;;
+C99C;HANGUL SYLLABLE JEUSS;Lo;0;L;;;;;N;;;;;
+C99D;HANGUL SYLLABLE JEUNG;Lo;0;L;;;;;N;;;;;
+C99E;HANGUL SYLLABLE JEUJ;Lo;0;L;;;;;N;;;;;
+C99F;HANGUL SYLLABLE JEUC;Lo;0;L;;;;;N;;;;;
+C9A0;HANGUL SYLLABLE JEUK;Lo;0;L;;;;;N;;;;;
+C9A1;HANGUL SYLLABLE JEUT;Lo;0;L;;;;;N;;;;;
+C9A2;HANGUL SYLLABLE JEUP;Lo;0;L;;;;;N;;;;;
+C9A3;HANGUL SYLLABLE JEUH;Lo;0;L;;;;;N;;;;;
+C9A4;HANGUL SYLLABLE JYI;Lo;0;L;;;;;N;;;;;
+C9A5;HANGUL SYLLABLE JYIG;Lo;0;L;;;;;N;;;;;
+C9A6;HANGUL SYLLABLE JYIGG;Lo;0;L;;;;;N;;;;;
+C9A7;HANGUL SYLLABLE JYIGS;Lo;0;L;;;;;N;;;;;
+C9A8;HANGUL SYLLABLE JYIN;Lo;0;L;;;;;N;;;;;
+C9A9;HANGUL SYLLABLE JYINI;Lo;0;L;;;;;N;;;;;
+C9AA;HANGUL SYLLABLE JYINH;Lo;0;L;;;;;N;;;;;
+C9AB;HANGUL SYLLABLE JYID;Lo;0;L;;;;;N;;;;;
+C9AC;HANGUL SYLLABLE JYIL;Lo;0;L;;;;;N;;;;;
+C9AD;HANGUL SYLLABLE JYILG;Lo;0;L;;;;;N;;;;;
+C9AE;HANGUL SYLLABLE JYILM;Lo;0;L;;;;;N;;;;;
+C9AF;HANGUL SYLLABLE JYILB;Lo;0;L;;;;;N;;;;;
+C9B0;HANGUL SYLLABLE JYILS;Lo;0;L;;;;;N;;;;;
+C9B1;HANGUL SYLLABLE JYILT;Lo;0;L;;;;;N;;;;;
+C9B2;HANGUL SYLLABLE JYILP;Lo;0;L;;;;;N;;;;;
+C9B3;HANGUL SYLLABLE JYILH;Lo;0;L;;;;;N;;;;;
+C9B4;HANGUL SYLLABLE JYIM;Lo;0;L;;;;;N;;;;;
+C9B5;HANGUL SYLLABLE JYIB;Lo;0;L;;;;;N;;;;;
+C9B6;HANGUL SYLLABLE JYIBS;Lo;0;L;;;;;N;;;;;
+C9B7;HANGUL SYLLABLE JYIS;Lo;0;L;;;;;N;;;;;
+C9B8;HANGUL SYLLABLE JYISS;Lo;0;L;;;;;N;;;;;
+C9B9;HANGUL SYLLABLE JYING;Lo;0;L;;;;;N;;;;;
+C9BA;HANGUL SYLLABLE JYIJ;Lo;0;L;;;;;N;;;;;
+C9BB;HANGUL SYLLABLE JYIC;Lo;0;L;;;;;N;;;;;
+C9BC;HANGUL SYLLABLE JYIK;Lo;0;L;;;;;N;;;;;
+C9BD;HANGUL SYLLABLE JYIT;Lo;0;L;;;;;N;;;;;
+C9BE;HANGUL SYLLABLE JYIP;Lo;0;L;;;;;N;;;;;
+C9BF;HANGUL SYLLABLE JYIH;Lo;0;L;;;;;N;;;;;
+C9C0;HANGUL SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+C9C1;HANGUL SYLLABLE JIG;Lo;0;L;;;;;N;;;;;
+C9C2;HANGUL SYLLABLE JIGG;Lo;0;L;;;;;N;;;;;
+C9C3;HANGUL SYLLABLE JIGS;Lo;0;L;;;;;N;;;;;
+C9C4;HANGUL SYLLABLE JIN;Lo;0;L;;;;;N;;;;;
+C9C5;HANGUL SYLLABLE JINI;Lo;0;L;;;;;N;;;;;
+C9C6;HANGUL SYLLABLE JINH;Lo;0;L;;;;;N;;;;;
+C9C7;HANGUL SYLLABLE JID;Lo;0;L;;;;;N;;;;;
+C9C8;HANGUL SYLLABLE JIL;Lo;0;L;;;;;N;;;;;
+C9C9;HANGUL SYLLABLE JILG;Lo;0;L;;;;;N;;;;;
+C9CA;HANGUL SYLLABLE JILM;Lo;0;L;;;;;N;;;;;
+C9CB;HANGUL SYLLABLE JILB;Lo;0;L;;;;;N;;;;;
+C9CC;HANGUL SYLLABLE JILS;Lo;0;L;;;;;N;;;;;
+C9CD;HANGUL SYLLABLE JILT;Lo;0;L;;;;;N;;;;;
+C9CE;HANGUL SYLLABLE JILP;Lo;0;L;;;;;N;;;;;
+C9CF;HANGUL SYLLABLE JILH;Lo;0;L;;;;;N;;;;;
+C9D0;HANGUL SYLLABLE JIM;Lo;0;L;;;;;N;;;;;
+C9D1;HANGUL SYLLABLE JIB;Lo;0;L;;;;;N;;;;;
+C9D2;HANGUL SYLLABLE JIBS;Lo;0;L;;;;;N;;;;;
+C9D3;HANGUL SYLLABLE JIS;Lo;0;L;;;;;N;;;;;
+C9D4;HANGUL SYLLABLE JISS;Lo;0;L;;;;;N;;;;;
+C9D5;HANGUL SYLLABLE JING;Lo;0;L;;;;;N;;;;;
+C9D6;HANGUL SYLLABLE JIJ;Lo;0;L;;;;;N;;;;;
+C9D7;HANGUL SYLLABLE JIC;Lo;0;L;;;;;N;;;;;
+C9D8;HANGUL SYLLABLE JIK;Lo;0;L;;;;;N;;;;;
+C9D9;HANGUL SYLLABLE JIT;Lo;0;L;;;;;N;;;;;
+C9DA;HANGUL SYLLABLE JIP;Lo;0;L;;;;;N;;;;;
+C9DB;HANGUL SYLLABLE JIH;Lo;0;L;;;;;N;;;;;
+C9DC;HANGUL SYLLABLE JJA;Lo;0;L;;;;;N;;;;;
+C9DD;HANGUL SYLLABLE JJAG;Lo;0;L;;;;;N;;;;;
+C9DE;HANGUL SYLLABLE JJAGG;Lo;0;L;;;;;N;;;;;
+C9DF;HANGUL SYLLABLE JJAGS;Lo;0;L;;;;;N;;;;;
+C9E0;HANGUL SYLLABLE JJAN;Lo;0;L;;;;;N;;;;;
+C9E1;HANGUL SYLLABLE JJANI;Lo;0;L;;;;;N;;;;;
+C9E2;HANGUL SYLLABLE JJANH;Lo;0;L;;;;;N;;;;;
+C9E3;HANGUL SYLLABLE JJAD;Lo;0;L;;;;;N;;;;;
+C9E4;HANGUL SYLLABLE JJAL;Lo;0;L;;;;;N;;;;;
+C9E5;HANGUL SYLLABLE JJALG;Lo;0;L;;;;;N;;;;;
+C9E6;HANGUL SYLLABLE JJALM;Lo;0;L;;;;;N;;;;;
+C9E7;HANGUL SYLLABLE JJALB;Lo;0;L;;;;;N;;;;;
+C9E8;HANGUL SYLLABLE JJALS;Lo;0;L;;;;;N;;;;;
+C9E9;HANGUL SYLLABLE JJALT;Lo;0;L;;;;;N;;;;;
+C9EA;HANGUL SYLLABLE JJALP;Lo;0;L;;;;;N;;;;;
+C9EB;HANGUL SYLLABLE JJALH;Lo;0;L;;;;;N;;;;;
+C9EC;HANGUL SYLLABLE JJAM;Lo;0;L;;;;;N;;;;;
+C9ED;HANGUL SYLLABLE JJAB;Lo;0;L;;;;;N;;;;;
+C9EE;HANGUL SYLLABLE JJABS;Lo;0;L;;;;;N;;;;;
+C9EF;HANGUL SYLLABLE JJAS;Lo;0;L;;;;;N;;;;;
+C9F0;HANGUL SYLLABLE JJASS;Lo;0;L;;;;;N;;;;;
+C9F1;HANGUL SYLLABLE JJANG;Lo;0;L;;;;;N;;;;;
+C9F2;HANGUL SYLLABLE JJAJ;Lo;0;L;;;;;N;;;;;
+C9F3;HANGUL SYLLABLE JJAC;Lo;0;L;;;;;N;;;;;
+C9F4;HANGUL SYLLABLE JJAK;Lo;0;L;;;;;N;;;;;
+C9F5;HANGUL SYLLABLE JJAT;Lo;0;L;;;;;N;;;;;
+C9F6;HANGUL SYLLABLE JJAP;Lo;0;L;;;;;N;;;;;
+C9F7;HANGUL SYLLABLE JJAH;Lo;0;L;;;;;N;;;;;
+C9F8;HANGUL SYLLABLE JJAE;Lo;0;L;;;;;N;;;;;
+C9F9;HANGUL SYLLABLE JJAEG;Lo;0;L;;;;;N;;;;;
+C9FA;HANGUL SYLLABLE JJAEGG;Lo;0;L;;;;;N;;;;;
+C9FB;HANGUL SYLLABLE JJAEGS;Lo;0;L;;;;;N;;;;;
+C9FC;HANGUL SYLLABLE JJAEN;Lo;0;L;;;;;N;;;;;
+C9FD;HANGUL SYLLABLE JJAENI;Lo;0;L;;;;;N;;;;;
+C9FE;HANGUL SYLLABLE JJAENH;Lo;0;L;;;;;N;;;;;
+C9FF;HANGUL SYLLABLE JJAED;Lo;0;L;;;;;N;;;;;
+CA00;HANGUL SYLLABLE JJAEL;Lo;0;L;;;;;N;;;;;
+CA01;HANGUL SYLLABLE JJAELG;Lo;0;L;;;;;N;;;;;
+CA02;HANGUL SYLLABLE JJAELM;Lo;0;L;;;;;N;;;;;
+CA03;HANGUL SYLLABLE JJAELB;Lo;0;L;;;;;N;;;;;
+CA04;HANGUL SYLLABLE JJAELS;Lo;0;L;;;;;N;;;;;
+CA05;HANGUL SYLLABLE JJAELT;Lo;0;L;;;;;N;;;;;
+CA06;HANGUL SYLLABLE JJAELP;Lo;0;L;;;;;N;;;;;
+CA07;HANGUL SYLLABLE JJAELH;Lo;0;L;;;;;N;;;;;
+CA08;HANGUL SYLLABLE JJAEM;Lo;0;L;;;;;N;;;;;
+CA09;HANGUL SYLLABLE JJAEB;Lo;0;L;;;;;N;;;;;
+CA0A;HANGUL SYLLABLE JJAEBS;Lo;0;L;;;;;N;;;;;
+CA0B;HANGUL SYLLABLE JJAES;Lo;0;L;;;;;N;;;;;
+CA0C;HANGUL SYLLABLE JJAESS;Lo;0;L;;;;;N;;;;;
+CA0D;HANGUL SYLLABLE JJAENG;Lo;0;L;;;;;N;;;;;
+CA0E;HANGUL SYLLABLE JJAEJ;Lo;0;L;;;;;N;;;;;
+CA0F;HANGUL SYLLABLE JJAEC;Lo;0;L;;;;;N;;;;;
+CA10;HANGUL SYLLABLE JJAEK;Lo;0;L;;;;;N;;;;;
+CA11;HANGUL SYLLABLE JJAET;Lo;0;L;;;;;N;;;;;
+CA12;HANGUL SYLLABLE JJAEP;Lo;0;L;;;;;N;;;;;
+CA13;HANGUL SYLLABLE JJAEH;Lo;0;L;;;;;N;;;;;
+CA14;HANGUL SYLLABLE JJYA;Lo;0;L;;;;;N;;;;;
+CA15;HANGUL SYLLABLE JJYAG;Lo;0;L;;;;;N;;;;;
+CA16;HANGUL SYLLABLE JJYAGG;Lo;0;L;;;;;N;;;;;
+CA17;HANGUL SYLLABLE JJYAGS;Lo;0;L;;;;;N;;;;;
+CA18;HANGUL SYLLABLE JJYAN;Lo;0;L;;;;;N;;;;;
+CA19;HANGUL SYLLABLE JJYANI;Lo;0;L;;;;;N;;;;;
+CA1A;HANGUL SYLLABLE JJYANH;Lo;0;L;;;;;N;;;;;
+CA1B;HANGUL SYLLABLE JJYAD;Lo;0;L;;;;;N;;;;;
+CA1C;HANGUL SYLLABLE JJYAL;Lo;0;L;;;;;N;;;;;
+CA1D;HANGUL SYLLABLE JJYALG;Lo;0;L;;;;;N;;;;;
+CA1E;HANGUL SYLLABLE JJYALM;Lo;0;L;;;;;N;;;;;
+CA1F;HANGUL SYLLABLE JJYALB;Lo;0;L;;;;;N;;;;;
+CA20;HANGUL SYLLABLE JJYALS;Lo;0;L;;;;;N;;;;;
+CA21;HANGUL SYLLABLE JJYALT;Lo;0;L;;;;;N;;;;;
+CA22;HANGUL SYLLABLE JJYALP;Lo;0;L;;;;;N;;;;;
+CA23;HANGUL SYLLABLE JJYALH;Lo;0;L;;;;;N;;;;;
+CA24;HANGUL SYLLABLE JJYAM;Lo;0;L;;;;;N;;;;;
+CA25;HANGUL SYLLABLE JJYAB;Lo;0;L;;;;;N;;;;;
+CA26;HANGUL SYLLABLE JJYABS;Lo;0;L;;;;;N;;;;;
+CA27;HANGUL SYLLABLE JJYAS;Lo;0;L;;;;;N;;;;;
+CA28;HANGUL SYLLABLE JJYASS;Lo;0;L;;;;;N;;;;;
+CA29;HANGUL SYLLABLE JJYANG;Lo;0;L;;;;;N;;;;;
+CA2A;HANGUL SYLLABLE JJYAJ;Lo;0;L;;;;;N;;;;;
+CA2B;HANGUL SYLLABLE JJYAC;Lo;0;L;;;;;N;;;;;
+CA2C;HANGUL SYLLABLE JJYAK;Lo;0;L;;;;;N;;;;;
+CA2D;HANGUL SYLLABLE JJYAT;Lo;0;L;;;;;N;;;;;
+CA2E;HANGUL SYLLABLE JJYAP;Lo;0;L;;;;;N;;;;;
+CA2F;HANGUL SYLLABLE JJYAH;Lo;0;L;;;;;N;;;;;
+CA30;HANGUL SYLLABLE JJYAE;Lo;0;L;;;;;N;;;;;
+CA31;HANGUL SYLLABLE JJYAEG;Lo;0;L;;;;;N;;;;;
+CA32;HANGUL SYLLABLE JJYAEGG;Lo;0;L;;;;;N;;;;;
+CA33;HANGUL SYLLABLE JJYAEGS;Lo;0;L;;;;;N;;;;;
+CA34;HANGUL SYLLABLE JJYAEN;Lo;0;L;;;;;N;;;;;
+CA35;HANGUL SYLLABLE JJYAENI;Lo;0;L;;;;;N;;;;;
+CA36;HANGUL SYLLABLE JJYAENH;Lo;0;L;;;;;N;;;;;
+CA37;HANGUL SYLLABLE JJYAED;Lo;0;L;;;;;N;;;;;
+CA38;HANGUL SYLLABLE JJYAEL;Lo;0;L;;;;;N;;;;;
+CA39;HANGUL SYLLABLE JJYAELG;Lo;0;L;;;;;N;;;;;
+CA3A;HANGUL SYLLABLE JJYAELM;Lo;0;L;;;;;N;;;;;
+CA3B;HANGUL SYLLABLE JJYAELB;Lo;0;L;;;;;N;;;;;
+CA3C;HANGUL SYLLABLE JJYAELS;Lo;0;L;;;;;N;;;;;
+CA3D;HANGUL SYLLABLE JJYAELT;Lo;0;L;;;;;N;;;;;
+CA3E;HANGUL SYLLABLE JJYAELP;Lo;0;L;;;;;N;;;;;
+CA3F;HANGUL SYLLABLE JJYAELH;Lo;0;L;;;;;N;;;;;
+CA40;HANGUL SYLLABLE JJYAEM;Lo;0;L;;;;;N;;;;;
+CA41;HANGUL SYLLABLE JJYAEB;Lo;0;L;;;;;N;;;;;
+CA42;HANGUL SYLLABLE JJYAEBS;Lo;0;L;;;;;N;;;;;
+CA43;HANGUL SYLLABLE JJYAES;Lo;0;L;;;;;N;;;;;
+CA44;HANGUL SYLLABLE JJYAESS;Lo;0;L;;;;;N;;;;;
+CA45;HANGUL SYLLABLE JJYAENG;Lo;0;L;;;;;N;;;;;
+CA46;HANGUL SYLLABLE JJYAEJ;Lo;0;L;;;;;N;;;;;
+CA47;HANGUL SYLLABLE JJYAEC;Lo;0;L;;;;;N;;;;;
+CA48;HANGUL SYLLABLE JJYAEK;Lo;0;L;;;;;N;;;;;
+CA49;HANGUL SYLLABLE JJYAET;Lo;0;L;;;;;N;;;;;
+CA4A;HANGUL SYLLABLE JJYAEP;Lo;0;L;;;;;N;;;;;
+CA4B;HANGUL SYLLABLE JJYAEH;Lo;0;L;;;;;N;;;;;
+CA4C;HANGUL SYLLABLE JJEO;Lo;0;L;;;;;N;;;;;
+CA4D;HANGUL SYLLABLE JJEOG;Lo;0;L;;;;;N;;;;;
+CA4E;HANGUL SYLLABLE JJEOGG;Lo;0;L;;;;;N;;;;;
+CA4F;HANGUL SYLLABLE JJEOGS;Lo;0;L;;;;;N;;;;;
+CA50;HANGUL SYLLABLE JJEON;Lo;0;L;;;;;N;;;;;
+CA51;HANGUL SYLLABLE JJEONI;Lo;0;L;;;;;N;;;;;
+CA52;HANGUL SYLLABLE JJEONH;Lo;0;L;;;;;N;;;;;
+CA53;HANGUL SYLLABLE JJEOD;Lo;0;L;;;;;N;;;;;
+CA54;HANGUL SYLLABLE JJEOL;Lo;0;L;;;;;N;;;;;
+CA55;HANGUL SYLLABLE JJEOLG;Lo;0;L;;;;;N;;;;;
+CA56;HANGUL SYLLABLE JJEOLM;Lo;0;L;;;;;N;;;;;
+CA57;HANGUL SYLLABLE JJEOLB;Lo;0;L;;;;;N;;;;;
+CA58;HANGUL SYLLABLE JJEOLS;Lo;0;L;;;;;N;;;;;
+CA59;HANGUL SYLLABLE JJEOLT;Lo;0;L;;;;;N;;;;;
+CA5A;HANGUL SYLLABLE JJEOLP;Lo;0;L;;;;;N;;;;;
+CA5B;HANGUL SYLLABLE JJEOLH;Lo;0;L;;;;;N;;;;;
+CA5C;HANGUL SYLLABLE JJEOM;Lo;0;L;;;;;N;;;;;
+CA5D;HANGUL SYLLABLE JJEOB;Lo;0;L;;;;;N;;;;;
+CA5E;HANGUL SYLLABLE JJEOBS;Lo;0;L;;;;;N;;;;;
+CA5F;HANGUL SYLLABLE JJEOS;Lo;0;L;;;;;N;;;;;
+CA60;HANGUL SYLLABLE JJEOSS;Lo;0;L;;;;;N;;;;;
+CA61;HANGUL SYLLABLE JJEONG;Lo;0;L;;;;;N;;;;;
+CA62;HANGUL SYLLABLE JJEOJ;Lo;0;L;;;;;N;;;;;
+CA63;HANGUL SYLLABLE JJEOC;Lo;0;L;;;;;N;;;;;
+CA64;HANGUL SYLLABLE JJEOK;Lo;0;L;;;;;N;;;;;
+CA65;HANGUL SYLLABLE JJEOT;Lo;0;L;;;;;N;;;;;
+CA66;HANGUL SYLLABLE JJEOP;Lo;0;L;;;;;N;;;;;
+CA67;HANGUL SYLLABLE JJEOH;Lo;0;L;;;;;N;;;;;
+CA68;HANGUL SYLLABLE JJE;Lo;0;L;;;;;N;;;;;
+CA69;HANGUL SYLLABLE JJEG;Lo;0;L;;;;;N;;;;;
+CA6A;HANGUL SYLLABLE JJEGG;Lo;0;L;;;;;N;;;;;
+CA6B;HANGUL SYLLABLE JJEGS;Lo;0;L;;;;;N;;;;;
+CA6C;HANGUL SYLLABLE JJEN;Lo;0;L;;;;;N;;;;;
+CA6D;HANGUL SYLLABLE JJENI;Lo;0;L;;;;;N;;;;;
+CA6E;HANGUL SYLLABLE JJENH;Lo;0;L;;;;;N;;;;;
+CA6F;HANGUL SYLLABLE JJED;Lo;0;L;;;;;N;;;;;
+CA70;HANGUL SYLLABLE JJEL;Lo;0;L;;;;;N;;;;;
+CA71;HANGUL SYLLABLE JJELG;Lo;0;L;;;;;N;;;;;
+CA72;HANGUL SYLLABLE JJELM;Lo;0;L;;;;;N;;;;;
+CA73;HANGUL SYLLABLE JJELB;Lo;0;L;;;;;N;;;;;
+CA74;HANGUL SYLLABLE JJELS;Lo;0;L;;;;;N;;;;;
+CA75;HANGUL SYLLABLE JJELT;Lo;0;L;;;;;N;;;;;
+CA76;HANGUL SYLLABLE JJELP;Lo;0;L;;;;;N;;;;;
+CA77;HANGUL SYLLABLE JJELH;Lo;0;L;;;;;N;;;;;
+CA78;HANGUL SYLLABLE JJEM;Lo;0;L;;;;;N;;;;;
+CA79;HANGUL SYLLABLE JJEB;Lo;0;L;;;;;N;;;;;
+CA7A;HANGUL SYLLABLE JJEBS;Lo;0;L;;;;;N;;;;;
+CA7B;HANGUL SYLLABLE JJES;Lo;0;L;;;;;N;;;;;
+CA7C;HANGUL SYLLABLE JJESS;Lo;0;L;;;;;N;;;;;
+CA7D;HANGUL SYLLABLE JJENG;Lo;0;L;;;;;N;;;;;
+CA7E;HANGUL SYLLABLE JJEJ;Lo;0;L;;;;;N;;;;;
+CA7F;HANGUL SYLLABLE JJEC;Lo;0;L;;;;;N;;;;;
+CA80;HANGUL SYLLABLE JJEK;Lo;0;L;;;;;N;;;;;
+CA81;HANGUL SYLLABLE JJET;Lo;0;L;;;;;N;;;;;
+CA82;HANGUL SYLLABLE JJEP;Lo;0;L;;;;;N;;;;;
+CA83;HANGUL SYLLABLE JJEH;Lo;0;L;;;;;N;;;;;
+CA84;HANGUL SYLLABLE JJYEO;Lo;0;L;;;;;N;;;;;
+CA85;HANGUL SYLLABLE JJYEOG;Lo;0;L;;;;;N;;;;;
+CA86;HANGUL SYLLABLE JJYEOGG;Lo;0;L;;;;;N;;;;;
+CA87;HANGUL SYLLABLE JJYEOGS;Lo;0;L;;;;;N;;;;;
+CA88;HANGUL SYLLABLE JJYEON;Lo;0;L;;;;;N;;;;;
+CA89;HANGUL SYLLABLE JJYEONI;Lo;0;L;;;;;N;;;;;
+CA8A;HANGUL SYLLABLE JJYEONH;Lo;0;L;;;;;N;;;;;
+CA8B;HANGUL SYLLABLE JJYEOD;Lo;0;L;;;;;N;;;;;
+CA8C;HANGUL SYLLABLE JJYEOL;Lo;0;L;;;;;N;;;;;
+CA8D;HANGUL SYLLABLE JJYEOLG;Lo;0;L;;;;;N;;;;;
+CA8E;HANGUL SYLLABLE JJYEOLM;Lo;0;L;;;;;N;;;;;
+CA8F;HANGUL SYLLABLE JJYEOLB;Lo;0;L;;;;;N;;;;;
+CA90;HANGUL SYLLABLE JJYEOLS;Lo;0;L;;;;;N;;;;;
+CA91;HANGUL SYLLABLE JJYEOLT;Lo;0;L;;;;;N;;;;;
+CA92;HANGUL SYLLABLE JJYEOLP;Lo;0;L;;;;;N;;;;;
+CA93;HANGUL SYLLABLE JJYEOLH;Lo;0;L;;;;;N;;;;;
+CA94;HANGUL SYLLABLE JJYEOM;Lo;0;L;;;;;N;;;;;
+CA95;HANGUL SYLLABLE JJYEOB;Lo;0;L;;;;;N;;;;;
+CA96;HANGUL SYLLABLE JJYEOBS;Lo;0;L;;;;;N;;;;;
+CA97;HANGUL SYLLABLE JJYEOS;Lo;0;L;;;;;N;;;;;
+CA98;HANGUL SYLLABLE JJYEOSS;Lo;0;L;;;;;N;;;;;
+CA99;HANGUL SYLLABLE JJYEONG;Lo;0;L;;;;;N;;;;;
+CA9A;HANGUL SYLLABLE JJYEOJ;Lo;0;L;;;;;N;;;;;
+CA9B;HANGUL SYLLABLE JJYEOC;Lo;0;L;;;;;N;;;;;
+CA9C;HANGUL SYLLABLE JJYEOK;Lo;0;L;;;;;N;;;;;
+CA9D;HANGUL SYLLABLE JJYEOT;Lo;0;L;;;;;N;;;;;
+CA9E;HANGUL SYLLABLE JJYEOP;Lo;0;L;;;;;N;;;;;
+CA9F;HANGUL SYLLABLE JJYEOH;Lo;0;L;;;;;N;;;;;
+CAA0;HANGUL SYLLABLE JJYE;Lo;0;L;;;;;N;;;;;
+CAA1;HANGUL SYLLABLE JJYEG;Lo;0;L;;;;;N;;;;;
+CAA2;HANGUL SYLLABLE JJYEGG;Lo;0;L;;;;;N;;;;;
+CAA3;HANGUL SYLLABLE JJYEGS;Lo;0;L;;;;;N;;;;;
+CAA4;HANGUL SYLLABLE JJYEN;Lo;0;L;;;;;N;;;;;
+CAA5;HANGUL SYLLABLE JJYENI;Lo;0;L;;;;;N;;;;;
+CAA6;HANGUL SYLLABLE JJYENH;Lo;0;L;;;;;N;;;;;
+CAA7;HANGUL SYLLABLE JJYED;Lo;0;L;;;;;N;;;;;
+CAA8;HANGUL SYLLABLE JJYEL;Lo;0;L;;;;;N;;;;;
+CAA9;HANGUL SYLLABLE JJYELG;Lo;0;L;;;;;N;;;;;
+CAAA;HANGUL SYLLABLE JJYELM;Lo;0;L;;;;;N;;;;;
+CAAB;HANGUL SYLLABLE JJYELB;Lo;0;L;;;;;N;;;;;
+CAAC;HANGUL SYLLABLE JJYELS;Lo;0;L;;;;;N;;;;;
+CAAD;HANGUL SYLLABLE JJYELT;Lo;0;L;;;;;N;;;;;
+CAAE;HANGUL SYLLABLE JJYELP;Lo;0;L;;;;;N;;;;;
+CAAF;HANGUL SYLLABLE JJYELH;Lo;0;L;;;;;N;;;;;
+CAB0;HANGUL SYLLABLE JJYEM;Lo;0;L;;;;;N;;;;;
+CAB1;HANGUL SYLLABLE JJYEB;Lo;0;L;;;;;N;;;;;
+CAB2;HANGUL SYLLABLE JJYEBS;Lo;0;L;;;;;N;;;;;
+CAB3;HANGUL SYLLABLE JJYES;Lo;0;L;;;;;N;;;;;
+CAB4;HANGUL SYLLABLE JJYESS;Lo;0;L;;;;;N;;;;;
+CAB5;HANGUL SYLLABLE JJYENG;Lo;0;L;;;;;N;;;;;
+CAB6;HANGUL SYLLABLE JJYEJ;Lo;0;L;;;;;N;;;;;
+CAB7;HANGUL SYLLABLE JJYEC;Lo;0;L;;;;;N;;;;;
+CAB8;HANGUL SYLLABLE JJYEK;Lo;0;L;;;;;N;;;;;
+CAB9;HANGUL SYLLABLE JJYET;Lo;0;L;;;;;N;;;;;
+CABA;HANGUL SYLLABLE JJYEP;Lo;0;L;;;;;N;;;;;
+CABB;HANGUL SYLLABLE JJYEH;Lo;0;L;;;;;N;;;;;
+CABC;HANGUL SYLLABLE JJO;Lo;0;L;;;;;N;;;;;
+CABD;HANGUL SYLLABLE JJOG;Lo;0;L;;;;;N;;;;;
+CABE;HANGUL SYLLABLE JJOGG;Lo;0;L;;;;;N;;;;;
+CABF;HANGUL SYLLABLE JJOGS;Lo;0;L;;;;;N;;;;;
+CAC0;HANGUL SYLLABLE JJON;Lo;0;L;;;;;N;;;;;
+CAC1;HANGUL SYLLABLE JJONI;Lo;0;L;;;;;N;;;;;
+CAC2;HANGUL SYLLABLE JJONH;Lo;0;L;;;;;N;;;;;
+CAC3;HANGUL SYLLABLE JJOD;Lo;0;L;;;;;N;;;;;
+CAC4;HANGUL SYLLABLE JJOL;Lo;0;L;;;;;N;;;;;
+CAC5;HANGUL SYLLABLE JJOLG;Lo;0;L;;;;;N;;;;;
+CAC6;HANGUL SYLLABLE JJOLM;Lo;0;L;;;;;N;;;;;
+CAC7;HANGUL SYLLABLE JJOLB;Lo;0;L;;;;;N;;;;;
+CAC8;HANGUL SYLLABLE JJOLS;Lo;0;L;;;;;N;;;;;
+CAC9;HANGUL SYLLABLE JJOLT;Lo;0;L;;;;;N;;;;;
+CACA;HANGUL SYLLABLE JJOLP;Lo;0;L;;;;;N;;;;;
+CACB;HANGUL SYLLABLE JJOLH;Lo;0;L;;;;;N;;;;;
+CACC;HANGUL SYLLABLE JJOM;Lo;0;L;;;;;N;;;;;
+CACD;HANGUL SYLLABLE JJOB;Lo;0;L;;;;;N;;;;;
+CACE;HANGUL SYLLABLE JJOBS;Lo;0;L;;;;;N;;;;;
+CACF;HANGUL SYLLABLE JJOS;Lo;0;L;;;;;N;;;;;
+CAD0;HANGUL SYLLABLE JJOSS;Lo;0;L;;;;;N;;;;;
+CAD1;HANGUL SYLLABLE JJONG;Lo;0;L;;;;;N;;;;;
+CAD2;HANGUL SYLLABLE JJOJ;Lo;0;L;;;;;N;;;;;
+CAD3;HANGUL SYLLABLE JJOC;Lo;0;L;;;;;N;;;;;
+CAD4;HANGUL SYLLABLE JJOK;Lo;0;L;;;;;N;;;;;
+CAD5;HANGUL SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;
+CAD6;HANGUL SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;
+CAD7;HANGUL SYLLABLE JJOH;Lo;0;L;;;;;N;;;;;
+CAD8;HANGUL SYLLABLE JJWA;Lo;0;L;;;;;N;;;;;
+CAD9;HANGUL SYLLABLE JJWAG;Lo;0;L;;;;;N;;;;;
+CADA;HANGUL SYLLABLE JJWAGG;Lo;0;L;;;;;N;;;;;
+CADB;HANGUL SYLLABLE JJWAGS;Lo;0;L;;;;;N;;;;;
+CADC;HANGUL SYLLABLE JJWAN;Lo;0;L;;;;;N;;;;;
+CADD;HANGUL SYLLABLE JJWANI;Lo;0;L;;;;;N;;;;;
+CADE;HANGUL SYLLABLE JJWANH;Lo;0;L;;;;;N;;;;;
+CADF;HANGUL SYLLABLE JJWAD;Lo;0;L;;;;;N;;;;;
+CAE0;HANGUL SYLLABLE JJWAL;Lo;0;L;;;;;N;;;;;
+CAE1;HANGUL SYLLABLE JJWALG;Lo;0;L;;;;;N;;;;;
+CAE2;HANGUL SYLLABLE JJWALM;Lo;0;L;;;;;N;;;;;
+CAE3;HANGUL SYLLABLE JJWALB;Lo;0;L;;;;;N;;;;;
+CAE4;HANGUL SYLLABLE JJWALS;Lo;0;L;;;;;N;;;;;
+CAE5;HANGUL SYLLABLE JJWALT;Lo;0;L;;;;;N;;;;;
+CAE6;HANGUL SYLLABLE JJWALP;Lo;0;L;;;;;N;;;;;
+CAE7;HANGUL SYLLABLE JJWALH;Lo;0;L;;;;;N;;;;;
+CAE8;HANGUL SYLLABLE JJWAM;Lo;0;L;;;;;N;;;;;
+CAE9;HANGUL SYLLABLE JJWAB;Lo;0;L;;;;;N;;;;;
+CAEA;HANGUL SYLLABLE JJWABS;Lo;0;L;;;;;N;;;;;
+CAEB;HANGUL SYLLABLE JJWAS;Lo;0;L;;;;;N;;;;;
+CAEC;HANGUL SYLLABLE JJWASS;Lo;0;L;;;;;N;;;;;
+CAED;HANGUL SYLLABLE JJWANG;Lo;0;L;;;;;N;;;;;
+CAEE;HANGUL SYLLABLE JJWAJ;Lo;0;L;;;;;N;;;;;
+CAEF;HANGUL SYLLABLE JJWAC;Lo;0;L;;;;;N;;;;;
+CAF0;HANGUL SYLLABLE JJWAK;Lo;0;L;;;;;N;;;;;
+CAF1;HANGUL SYLLABLE JJWAT;Lo;0;L;;;;;N;;;;;
+CAF2;HANGUL SYLLABLE JJWAP;Lo;0;L;;;;;N;;;;;
+CAF3;HANGUL SYLLABLE JJWAH;Lo;0;L;;;;;N;;;;;
+CAF4;HANGUL SYLLABLE JJWAE;Lo;0;L;;;;;N;;;;;
+CAF5;HANGUL SYLLABLE JJWAEG;Lo;0;L;;;;;N;;;;;
+CAF6;HANGUL SYLLABLE JJWAEGG;Lo;0;L;;;;;N;;;;;
+CAF7;HANGUL SYLLABLE JJWAEGS;Lo;0;L;;;;;N;;;;;
+CAF8;HANGUL SYLLABLE JJWAEN;Lo;0;L;;;;;N;;;;;
+CAF9;HANGUL SYLLABLE JJWAENI;Lo;0;L;;;;;N;;;;;
+CAFA;HANGUL SYLLABLE JJWAENH;Lo;0;L;;;;;N;;;;;
+CAFB;HANGUL SYLLABLE JJWAED;Lo;0;L;;;;;N;;;;;
+CAFC;HANGUL SYLLABLE JJWAEL;Lo;0;L;;;;;N;;;;;
+CAFD;HANGUL SYLLABLE JJWAELG;Lo;0;L;;;;;N;;;;;
+CAFE;HANGUL SYLLABLE JJWAELM;Lo;0;L;;;;;N;;;;;
+CAFF;HANGUL SYLLABLE JJWAELB;Lo;0;L;;;;;N;;;;;
+CB00;HANGUL SYLLABLE JJWAELS;Lo;0;L;;;;;N;;;;;
+CB01;HANGUL SYLLABLE JJWAELT;Lo;0;L;;;;;N;;;;;
+CB02;HANGUL SYLLABLE JJWAELP;Lo;0;L;;;;;N;;;;;
+CB03;HANGUL SYLLABLE JJWAELH;Lo;0;L;;;;;N;;;;;
+CB04;HANGUL SYLLABLE JJWAEM;Lo;0;L;;;;;N;;;;;
+CB05;HANGUL SYLLABLE JJWAEB;Lo;0;L;;;;;N;;;;;
+CB06;HANGUL SYLLABLE JJWAEBS;Lo;0;L;;;;;N;;;;;
+CB07;HANGUL SYLLABLE JJWAES;Lo;0;L;;;;;N;;;;;
+CB08;HANGUL SYLLABLE JJWAESS;Lo;0;L;;;;;N;;;;;
+CB09;HANGUL SYLLABLE JJWAENG;Lo;0;L;;;;;N;;;;;
+CB0A;HANGUL SYLLABLE JJWAEJ;Lo;0;L;;;;;N;;;;;
+CB0B;HANGUL SYLLABLE JJWAEC;Lo;0;L;;;;;N;;;;;
+CB0C;HANGUL SYLLABLE JJWAEK;Lo;0;L;;;;;N;;;;;
+CB0D;HANGUL SYLLABLE JJWAET;Lo;0;L;;;;;N;;;;;
+CB0E;HANGUL SYLLABLE JJWAEP;Lo;0;L;;;;;N;;;;;
+CB0F;HANGUL SYLLABLE JJWAEH;Lo;0;L;;;;;N;;;;;
+CB10;HANGUL SYLLABLE JJOE;Lo;0;L;;;;;N;;;;;
+CB11;HANGUL SYLLABLE JJOEG;Lo;0;L;;;;;N;;;;;
+CB12;HANGUL SYLLABLE JJOEGG;Lo;0;L;;;;;N;;;;;
+CB13;HANGUL SYLLABLE JJOEGS;Lo;0;L;;;;;N;;;;;
+CB14;HANGUL SYLLABLE JJOEN;Lo;0;L;;;;;N;;;;;
+CB15;HANGUL SYLLABLE JJOENI;Lo;0;L;;;;;N;;;;;
+CB16;HANGUL SYLLABLE JJOENH;Lo;0;L;;;;;N;;;;;
+CB17;HANGUL SYLLABLE JJOED;Lo;0;L;;;;;N;;;;;
+CB18;HANGUL SYLLABLE JJOEL;Lo;0;L;;;;;N;;;;;
+CB19;HANGUL SYLLABLE JJOELG;Lo;0;L;;;;;N;;;;;
+CB1A;HANGUL SYLLABLE JJOELM;Lo;0;L;;;;;N;;;;;
+CB1B;HANGUL SYLLABLE JJOELB;Lo;0;L;;;;;N;;;;;
+CB1C;HANGUL SYLLABLE JJOELS;Lo;0;L;;;;;N;;;;;
+CB1D;HANGUL SYLLABLE JJOELT;Lo;0;L;;;;;N;;;;;
+CB1E;HANGUL SYLLABLE JJOELP;Lo;0;L;;;;;N;;;;;
+CB1F;HANGUL SYLLABLE JJOELH;Lo;0;L;;;;;N;;;;;
+CB20;HANGUL SYLLABLE JJOEM;Lo;0;L;;;;;N;;;;;
+CB21;HANGUL SYLLABLE JJOEB;Lo;0;L;;;;;N;;;;;
+CB22;HANGUL SYLLABLE JJOEBS;Lo;0;L;;;;;N;;;;;
+CB23;HANGUL SYLLABLE JJOES;Lo;0;L;;;;;N;;;;;
+CB24;HANGUL SYLLABLE JJOESS;Lo;0;L;;;;;N;;;;;
+CB25;HANGUL SYLLABLE JJOENG;Lo;0;L;;;;;N;;;;;
+CB26;HANGUL SYLLABLE JJOEJ;Lo;0;L;;;;;N;;;;;
+CB27;HANGUL SYLLABLE JJOEC;Lo;0;L;;;;;N;;;;;
+CB28;HANGUL SYLLABLE JJOEK;Lo;0;L;;;;;N;;;;;
+CB29;HANGUL SYLLABLE JJOET;Lo;0;L;;;;;N;;;;;
+CB2A;HANGUL SYLLABLE JJOEP;Lo;0;L;;;;;N;;;;;
+CB2B;HANGUL SYLLABLE JJOEH;Lo;0;L;;;;;N;;;;;
+CB2C;HANGUL SYLLABLE JJYO;Lo;0;L;;;;;N;;;;;
+CB2D;HANGUL SYLLABLE JJYOG;Lo;0;L;;;;;N;;;;;
+CB2E;HANGUL SYLLABLE JJYOGG;Lo;0;L;;;;;N;;;;;
+CB2F;HANGUL SYLLABLE JJYOGS;Lo;0;L;;;;;N;;;;;
+CB30;HANGUL SYLLABLE JJYON;Lo;0;L;;;;;N;;;;;
+CB31;HANGUL SYLLABLE JJYONI;Lo;0;L;;;;;N;;;;;
+CB32;HANGUL SYLLABLE JJYONH;Lo;0;L;;;;;N;;;;;
+CB33;HANGUL SYLLABLE JJYOD;Lo;0;L;;;;;N;;;;;
+CB34;HANGUL SYLLABLE JJYOL;Lo;0;L;;;;;N;;;;;
+CB35;HANGUL SYLLABLE JJYOLG;Lo;0;L;;;;;N;;;;;
+CB36;HANGUL SYLLABLE JJYOLM;Lo;0;L;;;;;N;;;;;
+CB37;HANGUL SYLLABLE JJYOLB;Lo;0;L;;;;;N;;;;;
+CB38;HANGUL SYLLABLE JJYOLS;Lo;0;L;;;;;N;;;;;
+CB39;HANGUL SYLLABLE JJYOLT;Lo;0;L;;;;;N;;;;;
+CB3A;HANGUL SYLLABLE JJYOLP;Lo;0;L;;;;;N;;;;;
+CB3B;HANGUL SYLLABLE JJYOLH;Lo;0;L;;;;;N;;;;;
+CB3C;HANGUL SYLLABLE JJYOM;Lo;0;L;;;;;N;;;;;
+CB3D;HANGUL SYLLABLE JJYOB;Lo;0;L;;;;;N;;;;;
+CB3E;HANGUL SYLLABLE JJYOBS;Lo;0;L;;;;;N;;;;;
+CB3F;HANGUL SYLLABLE JJYOS;Lo;0;L;;;;;N;;;;;
+CB40;HANGUL SYLLABLE JJYOSS;Lo;0;L;;;;;N;;;;;
+CB41;HANGUL SYLLABLE JJYONG;Lo;0;L;;;;;N;;;;;
+CB42;HANGUL SYLLABLE JJYOJ;Lo;0;L;;;;;N;;;;;
+CB43;HANGUL SYLLABLE JJYOC;Lo;0;L;;;;;N;;;;;
+CB44;HANGUL SYLLABLE JJYOK;Lo;0;L;;;;;N;;;;;
+CB45;HANGUL SYLLABLE JJYOT;Lo;0;L;;;;;N;;;;;
+CB46;HANGUL SYLLABLE JJYOP;Lo;0;L;;;;;N;;;;;
+CB47;HANGUL SYLLABLE JJYOH;Lo;0;L;;;;;N;;;;;
+CB48;HANGUL SYLLABLE JJU;Lo;0;L;;;;;N;;;;;
+CB49;HANGUL SYLLABLE JJUG;Lo;0;L;;;;;N;;;;;
+CB4A;HANGUL SYLLABLE JJUGG;Lo;0;L;;;;;N;;;;;
+CB4B;HANGUL SYLLABLE JJUGS;Lo;0;L;;;;;N;;;;;
+CB4C;HANGUL SYLLABLE JJUN;Lo;0;L;;;;;N;;;;;
+CB4D;HANGUL SYLLABLE JJUNI;Lo;0;L;;;;;N;;;;;
+CB4E;HANGUL SYLLABLE JJUNH;Lo;0;L;;;;;N;;;;;
+CB4F;HANGUL SYLLABLE JJUD;Lo;0;L;;;;;N;;;;;
+CB50;HANGUL SYLLABLE JJUL;Lo;0;L;;;;;N;;;;;
+CB51;HANGUL SYLLABLE JJULG;Lo;0;L;;;;;N;;;;;
+CB52;HANGUL SYLLABLE JJULM;Lo;0;L;;;;;N;;;;;
+CB53;HANGUL SYLLABLE JJULB;Lo;0;L;;;;;N;;;;;
+CB54;HANGUL SYLLABLE JJULS;Lo;0;L;;;;;N;;;;;
+CB55;HANGUL SYLLABLE JJULT;Lo;0;L;;;;;N;;;;;
+CB56;HANGUL SYLLABLE JJULP;Lo;0;L;;;;;N;;;;;
+CB57;HANGUL SYLLABLE JJULH;Lo;0;L;;;;;N;;;;;
+CB58;HANGUL SYLLABLE JJUM;Lo;0;L;;;;;N;;;;;
+CB59;HANGUL SYLLABLE JJUB;Lo;0;L;;;;;N;;;;;
+CB5A;HANGUL SYLLABLE JJUBS;Lo;0;L;;;;;N;;;;;
+CB5B;HANGUL SYLLABLE JJUS;Lo;0;L;;;;;N;;;;;
+CB5C;HANGUL SYLLABLE JJUSS;Lo;0;L;;;;;N;;;;;
+CB5D;HANGUL SYLLABLE JJUNG;Lo;0;L;;;;;N;;;;;
+CB5E;HANGUL SYLLABLE JJUJ;Lo;0;L;;;;;N;;;;;
+CB5F;HANGUL SYLLABLE JJUC;Lo;0;L;;;;;N;;;;;
+CB60;HANGUL SYLLABLE JJUK;Lo;0;L;;;;;N;;;;;
+CB61;HANGUL SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;
+CB62;HANGUL SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;
+CB63;HANGUL SYLLABLE JJUH;Lo;0;L;;;;;N;;;;;
+CB64;HANGUL SYLLABLE JJWEO;Lo;0;L;;;;;N;;;;;
+CB65;HANGUL SYLLABLE JJWEOG;Lo;0;L;;;;;N;;;;;
+CB66;HANGUL SYLLABLE JJWEOGG;Lo;0;L;;;;;N;;;;;
+CB67;HANGUL SYLLABLE JJWEOGS;Lo;0;L;;;;;N;;;;;
+CB68;HANGUL SYLLABLE JJWEON;Lo;0;L;;;;;N;;;;;
+CB69;HANGUL SYLLABLE JJWEONI;Lo;0;L;;;;;N;;;;;
+CB6A;HANGUL SYLLABLE JJWEONH;Lo;0;L;;;;;N;;;;;
+CB6B;HANGUL SYLLABLE JJWEOD;Lo;0;L;;;;;N;;;;;
+CB6C;HANGUL SYLLABLE JJWEOL;Lo;0;L;;;;;N;;;;;
+CB6D;HANGUL SYLLABLE JJWEOLG;Lo;0;L;;;;;N;;;;;
+CB6E;HANGUL SYLLABLE JJWEOLM;Lo;0;L;;;;;N;;;;;
+CB6F;HANGUL SYLLABLE JJWEOLB;Lo;0;L;;;;;N;;;;;
+CB70;HANGUL SYLLABLE JJWEOLS;Lo;0;L;;;;;N;;;;;
+CB71;HANGUL SYLLABLE JJWEOLT;Lo;0;L;;;;;N;;;;;
+CB72;HANGUL SYLLABLE JJWEOLP;Lo;0;L;;;;;N;;;;;
+CB73;HANGUL SYLLABLE JJWEOLH;Lo;0;L;;;;;N;;;;;
+CB74;HANGUL SYLLABLE JJWEOM;Lo;0;L;;;;;N;;;;;
+CB75;HANGUL SYLLABLE JJWEOB;Lo;0;L;;;;;N;;;;;
+CB76;HANGUL SYLLABLE JJWEOBS;Lo;0;L;;;;;N;;;;;
+CB77;HANGUL SYLLABLE JJWEOS;Lo;0;L;;;;;N;;;;;
+CB78;HANGUL SYLLABLE JJWEOSS;Lo;0;L;;;;;N;;;;;
+CB79;HANGUL SYLLABLE JJWEONG;Lo;0;L;;;;;N;;;;;
+CB7A;HANGUL SYLLABLE JJWEOJ;Lo;0;L;;;;;N;;;;;
+CB7B;HANGUL SYLLABLE JJWEOC;Lo;0;L;;;;;N;;;;;
+CB7C;HANGUL SYLLABLE JJWEOK;Lo;0;L;;;;;N;;;;;
+CB7D;HANGUL SYLLABLE JJWEOT;Lo;0;L;;;;;N;;;;;
+CB7E;HANGUL SYLLABLE JJWEOP;Lo;0;L;;;;;N;;;;;
+CB7F;HANGUL SYLLABLE JJWEOH;Lo;0;L;;;;;N;;;;;
+CB80;HANGUL SYLLABLE JJWE;Lo;0;L;;;;;N;;;;;
+CB81;HANGUL SYLLABLE JJWEG;Lo;0;L;;;;;N;;;;;
+CB82;HANGUL SYLLABLE JJWEGG;Lo;0;L;;;;;N;;;;;
+CB83;HANGUL SYLLABLE JJWEGS;Lo;0;L;;;;;N;;;;;
+CB84;HANGUL SYLLABLE JJWEN;Lo;0;L;;;;;N;;;;;
+CB85;HANGUL SYLLABLE JJWENI;Lo;0;L;;;;;N;;;;;
+CB86;HANGUL SYLLABLE JJWENH;Lo;0;L;;;;;N;;;;;
+CB87;HANGUL SYLLABLE JJWED;Lo;0;L;;;;;N;;;;;
+CB88;HANGUL SYLLABLE JJWEL;Lo;0;L;;;;;N;;;;;
+CB89;HANGUL SYLLABLE JJWELG;Lo;0;L;;;;;N;;;;;
+CB8A;HANGUL SYLLABLE JJWELM;Lo;0;L;;;;;N;;;;;
+CB8B;HANGUL SYLLABLE JJWELB;Lo;0;L;;;;;N;;;;;
+CB8C;HANGUL SYLLABLE JJWELS;Lo;0;L;;;;;N;;;;;
+CB8D;HANGUL SYLLABLE JJWELT;Lo;0;L;;;;;N;;;;;
+CB8E;HANGUL SYLLABLE JJWELP;Lo;0;L;;;;;N;;;;;
+CB8F;HANGUL SYLLABLE JJWELH;Lo;0;L;;;;;N;;;;;
+CB90;HANGUL SYLLABLE JJWEM;Lo;0;L;;;;;N;;;;;
+CB91;HANGUL SYLLABLE JJWEB;Lo;0;L;;;;;N;;;;;
+CB92;HANGUL SYLLABLE JJWEBS;Lo;0;L;;;;;N;;;;;
+CB93;HANGUL SYLLABLE JJWES;Lo;0;L;;;;;N;;;;;
+CB94;HANGUL SYLLABLE JJWESS;Lo;0;L;;;;;N;;;;;
+CB95;HANGUL SYLLABLE JJWENG;Lo;0;L;;;;;N;;;;;
+CB96;HANGUL SYLLABLE JJWEJ;Lo;0;L;;;;;N;;;;;
+CB97;HANGUL SYLLABLE JJWEC;Lo;0;L;;;;;N;;;;;
+CB98;HANGUL SYLLABLE JJWEK;Lo;0;L;;;;;N;;;;;
+CB99;HANGUL SYLLABLE JJWET;Lo;0;L;;;;;N;;;;;
+CB9A;HANGUL SYLLABLE JJWEP;Lo;0;L;;;;;N;;;;;
+CB9B;HANGUL SYLLABLE JJWEH;Lo;0;L;;;;;N;;;;;
+CB9C;HANGUL SYLLABLE JJWI;Lo;0;L;;;;;N;;;;;
+CB9D;HANGUL SYLLABLE JJWIG;Lo;0;L;;;;;N;;;;;
+CB9E;HANGUL SYLLABLE JJWIGG;Lo;0;L;;;;;N;;;;;
+CB9F;HANGUL SYLLABLE JJWIGS;Lo;0;L;;;;;N;;;;;
+CBA0;HANGUL SYLLABLE JJWIN;Lo;0;L;;;;;N;;;;;
+CBA1;HANGUL SYLLABLE JJWINI;Lo;0;L;;;;;N;;;;;
+CBA2;HANGUL SYLLABLE JJWINH;Lo;0;L;;;;;N;;;;;
+CBA3;HANGUL SYLLABLE JJWID;Lo;0;L;;;;;N;;;;;
+CBA4;HANGUL SYLLABLE JJWIL;Lo;0;L;;;;;N;;;;;
+CBA5;HANGUL SYLLABLE JJWILG;Lo;0;L;;;;;N;;;;;
+CBA6;HANGUL SYLLABLE JJWILM;Lo;0;L;;;;;N;;;;;
+CBA7;HANGUL SYLLABLE JJWILB;Lo;0;L;;;;;N;;;;;
+CBA8;HANGUL SYLLABLE JJWILS;Lo;0;L;;;;;N;;;;;
+CBA9;HANGUL SYLLABLE JJWILT;Lo;0;L;;;;;N;;;;;
+CBAA;HANGUL SYLLABLE JJWILP;Lo;0;L;;;;;N;;;;;
+CBAB;HANGUL SYLLABLE JJWILH;Lo;0;L;;;;;N;;;;;
+CBAC;HANGUL SYLLABLE JJWIM;Lo;0;L;;;;;N;;;;;
+CBAD;HANGUL SYLLABLE JJWIB;Lo;0;L;;;;;N;;;;;
+CBAE;HANGUL SYLLABLE JJWIBS;Lo;0;L;;;;;N;;;;;
+CBAF;HANGUL SYLLABLE JJWIS;Lo;0;L;;;;;N;;;;;
+CBB0;HANGUL SYLLABLE JJWISS;Lo;0;L;;;;;N;;;;;
+CBB1;HANGUL SYLLABLE JJWING;Lo;0;L;;;;;N;;;;;
+CBB2;HANGUL SYLLABLE JJWIJ;Lo;0;L;;;;;N;;;;;
+CBB3;HANGUL SYLLABLE JJWIC;Lo;0;L;;;;;N;;;;;
+CBB4;HANGUL SYLLABLE JJWIK;Lo;0;L;;;;;N;;;;;
+CBB5;HANGUL SYLLABLE JJWIT;Lo;0;L;;;;;N;;;;;
+CBB6;HANGUL SYLLABLE JJWIP;Lo;0;L;;;;;N;;;;;
+CBB7;HANGUL SYLLABLE JJWIH;Lo;0;L;;;;;N;;;;;
+CBB8;HANGUL SYLLABLE JJYU;Lo;0;L;;;;;N;;;;;
+CBB9;HANGUL SYLLABLE JJYUG;Lo;0;L;;;;;N;;;;;
+CBBA;HANGUL SYLLABLE JJYUGG;Lo;0;L;;;;;N;;;;;
+CBBB;HANGUL SYLLABLE JJYUGS;Lo;0;L;;;;;N;;;;;
+CBBC;HANGUL SYLLABLE JJYUN;Lo;0;L;;;;;N;;;;;
+CBBD;HANGUL SYLLABLE JJYUNI;Lo;0;L;;;;;N;;;;;
+CBBE;HANGUL SYLLABLE JJYUNH;Lo;0;L;;;;;N;;;;;
+CBBF;HANGUL SYLLABLE JJYUD;Lo;0;L;;;;;N;;;;;
+CBC0;HANGUL SYLLABLE JJYUL;Lo;0;L;;;;;N;;;;;
+CBC1;HANGUL SYLLABLE JJYULG;Lo;0;L;;;;;N;;;;;
+CBC2;HANGUL SYLLABLE JJYULM;Lo;0;L;;;;;N;;;;;
+CBC3;HANGUL SYLLABLE JJYULB;Lo;0;L;;;;;N;;;;;
+CBC4;HANGUL SYLLABLE JJYULS;Lo;0;L;;;;;N;;;;;
+CBC5;HANGUL SYLLABLE JJYULT;Lo;0;L;;;;;N;;;;;
+CBC6;HANGUL SYLLABLE JJYULP;Lo;0;L;;;;;N;;;;;
+CBC7;HANGUL SYLLABLE JJYULH;Lo;0;L;;;;;N;;;;;
+CBC8;HANGUL SYLLABLE JJYUM;Lo;0;L;;;;;N;;;;;
+CBC9;HANGUL SYLLABLE JJYUB;Lo;0;L;;;;;N;;;;;
+CBCA;HANGUL SYLLABLE JJYUBS;Lo;0;L;;;;;N;;;;;
+CBCB;HANGUL SYLLABLE JJYUS;Lo;0;L;;;;;N;;;;;
+CBCC;HANGUL SYLLABLE JJYUSS;Lo;0;L;;;;;N;;;;;
+CBCD;HANGUL SYLLABLE JJYUNG;Lo;0;L;;;;;N;;;;;
+CBCE;HANGUL SYLLABLE JJYUJ;Lo;0;L;;;;;N;;;;;
+CBCF;HANGUL SYLLABLE JJYUC;Lo;0;L;;;;;N;;;;;
+CBD0;HANGUL SYLLABLE JJYUK;Lo;0;L;;;;;N;;;;;
+CBD1;HANGUL SYLLABLE JJYUT;Lo;0;L;;;;;N;;;;;
+CBD2;HANGUL SYLLABLE JJYUP;Lo;0;L;;;;;N;;;;;
+CBD3;HANGUL SYLLABLE JJYUH;Lo;0;L;;;;;N;;;;;
+CBD4;HANGUL SYLLABLE JJEU;Lo;0;L;;;;;N;;;;;
+CBD5;HANGUL SYLLABLE JJEUG;Lo;0;L;;;;;N;;;;;
+CBD6;HANGUL SYLLABLE JJEUGG;Lo;0;L;;;;;N;;;;;
+CBD7;HANGUL SYLLABLE JJEUGS;Lo;0;L;;;;;N;;;;;
+CBD8;HANGUL SYLLABLE JJEUN;Lo;0;L;;;;;N;;;;;
+CBD9;HANGUL SYLLABLE JJEUNI;Lo;0;L;;;;;N;;;;;
+CBDA;HANGUL SYLLABLE JJEUNH;Lo;0;L;;;;;N;;;;;
+CBDB;HANGUL SYLLABLE JJEUD;Lo;0;L;;;;;N;;;;;
+CBDC;HANGUL SYLLABLE JJEUL;Lo;0;L;;;;;N;;;;;
+CBDD;HANGUL SYLLABLE JJEULG;Lo;0;L;;;;;N;;;;;
+CBDE;HANGUL SYLLABLE JJEULM;Lo;0;L;;;;;N;;;;;
+CBDF;HANGUL SYLLABLE JJEULB;Lo;0;L;;;;;N;;;;;
+CBE0;HANGUL SYLLABLE JJEULS;Lo;0;L;;;;;N;;;;;
+CBE1;HANGUL SYLLABLE JJEULT;Lo;0;L;;;;;N;;;;;
+CBE2;HANGUL SYLLABLE JJEULP;Lo;0;L;;;;;N;;;;;
+CBE3;HANGUL SYLLABLE JJEULH;Lo;0;L;;;;;N;;;;;
+CBE4;HANGUL SYLLABLE JJEUM;Lo;0;L;;;;;N;;;;;
+CBE5;HANGUL SYLLABLE JJEUB;Lo;0;L;;;;;N;;;;;
+CBE6;HANGUL SYLLABLE JJEUBS;Lo;0;L;;;;;N;;;;;
+CBE7;HANGUL SYLLABLE JJEUS;Lo;0;L;;;;;N;;;;;
+CBE8;HANGUL SYLLABLE JJEUSS;Lo;0;L;;;;;N;;;;;
+CBE9;HANGUL SYLLABLE JJEUNG;Lo;0;L;;;;;N;;;;;
+CBEA;HANGUL SYLLABLE JJEUJ;Lo;0;L;;;;;N;;;;;
+CBEB;HANGUL SYLLABLE JJEUC;Lo;0;L;;;;;N;;;;;
+CBEC;HANGUL SYLLABLE JJEUK;Lo;0;L;;;;;N;;;;;
+CBED;HANGUL SYLLABLE JJEUT;Lo;0;L;;;;;N;;;;;
+CBEE;HANGUL SYLLABLE JJEUP;Lo;0;L;;;;;N;;;;;
+CBEF;HANGUL SYLLABLE JJEUH;Lo;0;L;;;;;N;;;;;
+CBF0;HANGUL SYLLABLE JJYI;Lo;0;L;;;;;N;;;;;
+CBF1;HANGUL SYLLABLE JJYIG;Lo;0;L;;;;;N;;;;;
+CBF2;HANGUL SYLLABLE JJYIGG;Lo;0;L;;;;;N;;;;;
+CBF3;HANGUL SYLLABLE JJYIGS;Lo;0;L;;;;;N;;;;;
+CBF4;HANGUL SYLLABLE JJYIN;Lo;0;L;;;;;N;;;;;
+CBF5;HANGUL SYLLABLE JJYINI;Lo;0;L;;;;;N;;;;;
+CBF6;HANGUL SYLLABLE JJYINH;Lo;0;L;;;;;N;;;;;
+CBF7;HANGUL SYLLABLE JJYID;Lo;0;L;;;;;N;;;;;
+CBF8;HANGUL SYLLABLE JJYIL;Lo;0;L;;;;;N;;;;;
+CBF9;HANGUL SYLLABLE JJYILG;Lo;0;L;;;;;N;;;;;
+CBFA;HANGUL SYLLABLE JJYILM;Lo;0;L;;;;;N;;;;;
+CBFB;HANGUL SYLLABLE JJYILB;Lo;0;L;;;;;N;;;;;
+CBFC;HANGUL SYLLABLE JJYILS;Lo;0;L;;;;;N;;;;;
+CBFD;HANGUL SYLLABLE JJYILT;Lo;0;L;;;;;N;;;;;
+CBFE;HANGUL SYLLABLE JJYILP;Lo;0;L;;;;;N;;;;;
+CBFF;HANGUL SYLLABLE JJYILH;Lo;0;L;;;;;N;;;;;
+CC00;HANGUL SYLLABLE JJYIM;Lo;0;L;;;;;N;;;;;
+CC01;HANGUL SYLLABLE JJYIB;Lo;0;L;;;;;N;;;;;
+CC02;HANGUL SYLLABLE JJYIBS;Lo;0;L;;;;;N;;;;;
+CC03;HANGUL SYLLABLE JJYIS;Lo;0;L;;;;;N;;;;;
+CC04;HANGUL SYLLABLE JJYISS;Lo;0;L;;;;;N;;;;;
+CC05;HANGUL SYLLABLE JJYING;Lo;0;L;;;;;N;;;;;
+CC06;HANGUL SYLLABLE JJYIJ;Lo;0;L;;;;;N;;;;;
+CC07;HANGUL SYLLABLE JJYIC;Lo;0;L;;;;;N;;;;;
+CC08;HANGUL SYLLABLE JJYIK;Lo;0;L;;;;;N;;;;;
+CC09;HANGUL SYLLABLE JJYIT;Lo;0;L;;;;;N;;;;;
+CC0A;HANGUL SYLLABLE JJYIP;Lo;0;L;;;;;N;;;;;
+CC0B;HANGUL SYLLABLE JJYIH;Lo;0;L;;;;;N;;;;;
+CC0C;HANGUL SYLLABLE JJI;Lo;0;L;;;;;N;;;;;
+CC0D;HANGUL SYLLABLE JJIG;Lo;0;L;;;;;N;;;;;
+CC0E;HANGUL SYLLABLE JJIGG;Lo;0;L;;;;;N;;;;;
+CC0F;HANGUL SYLLABLE JJIGS;Lo;0;L;;;;;N;;;;;
+CC10;HANGUL SYLLABLE JJIN;Lo;0;L;;;;;N;;;;;
+CC11;HANGUL SYLLABLE JJINI;Lo;0;L;;;;;N;;;;;
+CC12;HANGUL SYLLABLE JJINH;Lo;0;L;;;;;N;;;;;
+CC13;HANGUL SYLLABLE JJID;Lo;0;L;;;;;N;;;;;
+CC14;HANGUL SYLLABLE JJIL;Lo;0;L;;;;;N;;;;;
+CC15;HANGUL SYLLABLE JJILG;Lo;0;L;;;;;N;;;;;
+CC16;HANGUL SYLLABLE JJILM;Lo;0;L;;;;;N;;;;;
+CC17;HANGUL SYLLABLE JJILB;Lo;0;L;;;;;N;;;;;
+CC18;HANGUL SYLLABLE JJILS;Lo;0;L;;;;;N;;;;;
+CC19;HANGUL SYLLABLE JJILT;Lo;0;L;;;;;N;;;;;
+CC1A;HANGUL SYLLABLE JJILP;Lo;0;L;;;;;N;;;;;
+CC1B;HANGUL SYLLABLE JJILH;Lo;0;L;;;;;N;;;;;
+CC1C;HANGUL SYLLABLE JJIM;Lo;0;L;;;;;N;;;;;
+CC1D;HANGUL SYLLABLE JJIB;Lo;0;L;;;;;N;;;;;
+CC1E;HANGUL SYLLABLE JJIBS;Lo;0;L;;;;;N;;;;;
+CC1F;HANGUL SYLLABLE JJIS;Lo;0;L;;;;;N;;;;;
+CC20;HANGUL SYLLABLE JJISS;Lo;0;L;;;;;N;;;;;
+CC21;HANGUL SYLLABLE JJING;Lo;0;L;;;;;N;;;;;
+CC22;HANGUL SYLLABLE JJIJ;Lo;0;L;;;;;N;;;;;
+CC23;HANGUL SYLLABLE JJIC;Lo;0;L;;;;;N;;;;;
+CC24;HANGUL SYLLABLE JJIK;Lo;0;L;;;;;N;;;;;
+CC25;HANGUL SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;
+CC26;HANGUL SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;
+CC27;HANGUL SYLLABLE JJIH;Lo;0;L;;;;;N;;;;;
+CC28;HANGUL SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+CC29;HANGUL SYLLABLE CAG;Lo;0;L;;;;;N;;;;;
+CC2A;HANGUL SYLLABLE CAGG;Lo;0;L;;;;;N;;;;;
+CC2B;HANGUL SYLLABLE CAGS;Lo;0;L;;;;;N;;;;;
+CC2C;HANGUL SYLLABLE CAN;Lo;0;L;;;;;N;;;;;
+CC2D;HANGUL SYLLABLE CANI;Lo;0;L;;;;;N;;;;;
+CC2E;HANGUL SYLLABLE CANH;Lo;0;L;;;;;N;;;;;
+CC2F;HANGUL SYLLABLE CAD;Lo;0;L;;;;;N;;;;;
+CC30;HANGUL SYLLABLE CAL;Lo;0;L;;;;;N;;;;;
+CC31;HANGUL SYLLABLE CALG;Lo;0;L;;;;;N;;;;;
+CC32;HANGUL SYLLABLE CALM;Lo;0;L;;;;;N;;;;;
+CC33;HANGUL SYLLABLE CALB;Lo;0;L;;;;;N;;;;;
+CC34;HANGUL SYLLABLE CALS;Lo;0;L;;;;;N;;;;;
+CC35;HANGUL SYLLABLE CALT;Lo;0;L;;;;;N;;;;;
+CC36;HANGUL SYLLABLE CALP;Lo;0;L;;;;;N;;;;;
+CC37;HANGUL SYLLABLE CALH;Lo;0;L;;;;;N;;;;;
+CC38;HANGUL SYLLABLE CAM;Lo;0;L;;;;;N;;;;;
+CC39;HANGUL SYLLABLE CAB;Lo;0;L;;;;;N;;;;;
+CC3A;HANGUL SYLLABLE CABS;Lo;0;L;;;;;N;;;;;
+CC3B;HANGUL SYLLABLE CAS;Lo;0;L;;;;;N;;;;;
+CC3C;HANGUL SYLLABLE CASS;Lo;0;L;;;;;N;;;;;
+CC3D;HANGUL SYLLABLE CANG;Lo;0;L;;;;;N;;;;;
+CC3E;HANGUL SYLLABLE CAJ;Lo;0;L;;;;;N;;;;;
+CC3F;HANGUL SYLLABLE CAC;Lo;0;L;;;;;N;;;;;
+CC40;HANGUL SYLLABLE CAK;Lo;0;L;;;;;N;;;;;
+CC41;HANGUL SYLLABLE CAT;Lo;0;L;;;;;N;;;;;
+CC42;HANGUL SYLLABLE CAP;Lo;0;L;;;;;N;;;;;
+CC43;HANGUL SYLLABLE CAH;Lo;0;L;;;;;N;;;;;
+CC44;HANGUL SYLLABLE CAE;Lo;0;L;;;;;N;;;;;
+CC45;HANGUL SYLLABLE CAEG;Lo;0;L;;;;;N;;;;;
+CC46;HANGUL SYLLABLE CAEGG;Lo;0;L;;;;;N;;;;;
+CC47;HANGUL SYLLABLE CAEGS;Lo;0;L;;;;;N;;;;;
+CC48;HANGUL SYLLABLE CAEN;Lo;0;L;;;;;N;;;;;
+CC49;HANGUL SYLLABLE CAENI;Lo;0;L;;;;;N;;;;;
+CC4A;HANGUL SYLLABLE CAENH;Lo;0;L;;;;;N;;;;;
+CC4B;HANGUL SYLLABLE CAED;Lo;0;L;;;;;N;;;;;
+CC4C;HANGUL SYLLABLE CAEL;Lo;0;L;;;;;N;;;;;
+CC4D;HANGUL SYLLABLE CAELG;Lo;0;L;;;;;N;;;;;
+CC4E;HANGUL SYLLABLE CAELM;Lo;0;L;;;;;N;;;;;
+CC4F;HANGUL SYLLABLE CAELB;Lo;0;L;;;;;N;;;;;
+CC50;HANGUL SYLLABLE CAELS;Lo;0;L;;;;;N;;;;;
+CC51;HANGUL SYLLABLE CAELT;Lo;0;L;;;;;N;;;;;
+CC52;HANGUL SYLLABLE CAELP;Lo;0;L;;;;;N;;;;;
+CC53;HANGUL SYLLABLE CAELH;Lo;0;L;;;;;N;;;;;
+CC54;HANGUL SYLLABLE CAEM;Lo;0;L;;;;;N;;;;;
+CC55;HANGUL SYLLABLE CAEB;Lo;0;L;;;;;N;;;;;
+CC56;HANGUL SYLLABLE CAEBS;Lo;0;L;;;;;N;;;;;
+CC57;HANGUL SYLLABLE CAES;Lo;0;L;;;;;N;;;;;
+CC58;HANGUL SYLLABLE CAESS;Lo;0;L;;;;;N;;;;;
+CC59;HANGUL SYLLABLE CAENG;Lo;0;L;;;;;N;;;;;
+CC5A;HANGUL SYLLABLE CAEJ;Lo;0;L;;;;;N;;;;;
+CC5B;HANGUL SYLLABLE CAEC;Lo;0;L;;;;;N;;;;;
+CC5C;HANGUL SYLLABLE CAEK;Lo;0;L;;;;;N;;;;;
+CC5D;HANGUL SYLLABLE CAET;Lo;0;L;;;;;N;;;;;
+CC5E;HANGUL SYLLABLE CAEP;Lo;0;L;;;;;N;;;;;
+CC5F;HANGUL SYLLABLE CAEH;Lo;0;L;;;;;N;;;;;
+CC60;HANGUL SYLLABLE CYA;Lo;0;L;;;;;N;;;;;
+CC61;HANGUL SYLLABLE CYAG;Lo;0;L;;;;;N;;;;;
+CC62;HANGUL SYLLABLE CYAGG;Lo;0;L;;;;;N;;;;;
+CC63;HANGUL SYLLABLE CYAGS;Lo;0;L;;;;;N;;;;;
+CC64;HANGUL SYLLABLE CYAN;Lo;0;L;;;;;N;;;;;
+CC65;HANGUL SYLLABLE CYANI;Lo;0;L;;;;;N;;;;;
+CC66;HANGUL SYLLABLE CYANH;Lo;0;L;;;;;N;;;;;
+CC67;HANGUL SYLLABLE CYAD;Lo;0;L;;;;;N;;;;;
+CC68;HANGUL SYLLABLE CYAL;Lo;0;L;;;;;N;;;;;
+CC69;HANGUL SYLLABLE CYALG;Lo;0;L;;;;;N;;;;;
+CC6A;HANGUL SYLLABLE CYALM;Lo;0;L;;;;;N;;;;;
+CC6B;HANGUL SYLLABLE CYALB;Lo;0;L;;;;;N;;;;;
+CC6C;HANGUL SYLLABLE CYALS;Lo;0;L;;;;;N;;;;;
+CC6D;HANGUL SYLLABLE CYALT;Lo;0;L;;;;;N;;;;;
+CC6E;HANGUL SYLLABLE CYALP;Lo;0;L;;;;;N;;;;;
+CC6F;HANGUL SYLLABLE CYALH;Lo;0;L;;;;;N;;;;;
+CC70;HANGUL SYLLABLE CYAM;Lo;0;L;;;;;N;;;;;
+CC71;HANGUL SYLLABLE CYAB;Lo;0;L;;;;;N;;;;;
+CC72;HANGUL SYLLABLE CYABS;Lo;0;L;;;;;N;;;;;
+CC73;HANGUL SYLLABLE CYAS;Lo;0;L;;;;;N;;;;;
+CC74;HANGUL SYLLABLE CYASS;Lo;0;L;;;;;N;;;;;
+CC75;HANGUL SYLLABLE CYANG;Lo;0;L;;;;;N;;;;;
+CC76;HANGUL SYLLABLE CYAJ;Lo;0;L;;;;;N;;;;;
+CC77;HANGUL SYLLABLE CYAC;Lo;0;L;;;;;N;;;;;
+CC78;HANGUL SYLLABLE CYAK;Lo;0;L;;;;;N;;;;;
+CC79;HANGUL SYLLABLE CYAT;Lo;0;L;;;;;N;;;;;
+CC7A;HANGUL SYLLABLE CYAP;Lo;0;L;;;;;N;;;;;
+CC7B;HANGUL SYLLABLE CYAH;Lo;0;L;;;;;N;;;;;
+CC7C;HANGUL SYLLABLE CYAE;Lo;0;L;;;;;N;;;;;
+CC7D;HANGUL SYLLABLE CYAEG;Lo;0;L;;;;;N;;;;;
+CC7E;HANGUL SYLLABLE CYAEGG;Lo;0;L;;;;;N;;;;;
+CC7F;HANGUL SYLLABLE CYAEGS;Lo;0;L;;;;;N;;;;;
+CC80;HANGUL SYLLABLE CYAEN;Lo;0;L;;;;;N;;;;;
+CC81;HANGUL SYLLABLE CYAENI;Lo;0;L;;;;;N;;;;;
+CC82;HANGUL SYLLABLE CYAENH;Lo;0;L;;;;;N;;;;;
+CC83;HANGUL SYLLABLE CYAED;Lo;0;L;;;;;N;;;;;
+CC84;HANGUL SYLLABLE CYAEL;Lo;0;L;;;;;N;;;;;
+CC85;HANGUL SYLLABLE CYAELG;Lo;0;L;;;;;N;;;;;
+CC86;HANGUL SYLLABLE CYAELM;Lo;0;L;;;;;N;;;;;
+CC87;HANGUL SYLLABLE CYAELB;Lo;0;L;;;;;N;;;;;
+CC88;HANGUL SYLLABLE CYAELS;Lo;0;L;;;;;N;;;;;
+CC89;HANGUL SYLLABLE CYAELT;Lo;0;L;;;;;N;;;;;
+CC8A;HANGUL SYLLABLE CYAELP;Lo;0;L;;;;;N;;;;;
+CC8B;HANGUL SYLLABLE CYAELH;Lo;0;L;;;;;N;;;;;
+CC8C;HANGUL SYLLABLE CYAEM;Lo;0;L;;;;;N;;;;;
+CC8D;HANGUL SYLLABLE CYAEB;Lo;0;L;;;;;N;;;;;
+CC8E;HANGUL SYLLABLE CYAEBS;Lo;0;L;;;;;N;;;;;
+CC8F;HANGUL SYLLABLE CYAES;Lo;0;L;;;;;N;;;;;
+CC90;HANGUL SYLLABLE CYAESS;Lo;0;L;;;;;N;;;;;
+CC91;HANGUL SYLLABLE CYAENG;Lo;0;L;;;;;N;;;;;
+CC92;HANGUL SYLLABLE CYAEJ;Lo;0;L;;;;;N;;;;;
+CC93;HANGUL SYLLABLE CYAEC;Lo;0;L;;;;;N;;;;;
+CC94;HANGUL SYLLABLE CYAEK;Lo;0;L;;;;;N;;;;;
+CC95;HANGUL SYLLABLE CYAET;Lo;0;L;;;;;N;;;;;
+CC96;HANGUL SYLLABLE CYAEP;Lo;0;L;;;;;N;;;;;
+CC97;HANGUL SYLLABLE CYAEH;Lo;0;L;;;;;N;;;;;
+CC98;HANGUL SYLLABLE CEO;Lo;0;L;;;;;N;;;;;
+CC99;HANGUL SYLLABLE CEOG;Lo;0;L;;;;;N;;;;;
+CC9A;HANGUL SYLLABLE CEOGG;Lo;0;L;;;;;N;;;;;
+CC9B;HANGUL SYLLABLE CEOGS;Lo;0;L;;;;;N;;;;;
+CC9C;HANGUL SYLLABLE CEON;Lo;0;L;;;;;N;;;;;
+CC9D;HANGUL SYLLABLE CEONI;Lo;0;L;;;;;N;;;;;
+CC9E;HANGUL SYLLABLE CEONH;Lo;0;L;;;;;N;;;;;
+CC9F;HANGUL SYLLABLE CEOD;Lo;0;L;;;;;N;;;;;
+CCA0;HANGUL SYLLABLE CEOL;Lo;0;L;;;;;N;;;;;
+CCA1;HANGUL SYLLABLE CEOLG;Lo;0;L;;;;;N;;;;;
+CCA2;HANGUL SYLLABLE CEOLM;Lo;0;L;;;;;N;;;;;
+CCA3;HANGUL SYLLABLE CEOLB;Lo;0;L;;;;;N;;;;;
+CCA4;HANGUL SYLLABLE CEOLS;Lo;0;L;;;;;N;;;;;
+CCA5;HANGUL SYLLABLE CEOLT;Lo;0;L;;;;;N;;;;;
+CCA6;HANGUL SYLLABLE CEOLP;Lo;0;L;;;;;N;;;;;
+CCA7;HANGUL SYLLABLE CEOLH;Lo;0;L;;;;;N;;;;;
+CCA8;HANGUL SYLLABLE CEOM;Lo;0;L;;;;;N;;;;;
+CCA9;HANGUL SYLLABLE CEOB;Lo;0;L;;;;;N;;;;;
+CCAA;HANGUL SYLLABLE CEOBS;Lo;0;L;;;;;N;;;;;
+CCAB;HANGUL SYLLABLE CEOS;Lo;0;L;;;;;N;;;;;
+CCAC;HANGUL SYLLABLE CEOSS;Lo;0;L;;;;;N;;;;;
+CCAD;HANGUL SYLLABLE CEONG;Lo;0;L;;;;;N;;;;;
+CCAE;HANGUL SYLLABLE CEOJ;Lo;0;L;;;;;N;;;;;
+CCAF;HANGUL SYLLABLE CEOC;Lo;0;L;;;;;N;;;;;
+CCB0;HANGUL SYLLABLE CEOK;Lo;0;L;;;;;N;;;;;
+CCB1;HANGUL SYLLABLE CEOT;Lo;0;L;;;;;N;;;;;
+CCB2;HANGUL SYLLABLE CEOP;Lo;0;L;;;;;N;;;;;
+CCB3;HANGUL SYLLABLE CEOH;Lo;0;L;;;;;N;;;;;
+CCB4;HANGUL SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+CCB5;HANGUL SYLLABLE CEG;Lo;0;L;;;;;N;;;;;
+CCB6;HANGUL SYLLABLE CEGG;Lo;0;L;;;;;N;;;;;
+CCB7;HANGUL SYLLABLE CEGS;Lo;0;L;;;;;N;;;;;
+CCB8;HANGUL SYLLABLE CEN;Lo;0;L;;;;;N;;;;;
+CCB9;HANGUL SYLLABLE CENI;Lo;0;L;;;;;N;;;;;
+CCBA;HANGUL SYLLABLE CENH;Lo;0;L;;;;;N;;;;;
+CCBB;HANGUL SYLLABLE CED;Lo;0;L;;;;;N;;;;;
+CCBC;HANGUL SYLLABLE CEL;Lo;0;L;;;;;N;;;;;
+CCBD;HANGUL SYLLABLE CELG;Lo;0;L;;;;;N;;;;;
+CCBE;HANGUL SYLLABLE CELM;Lo;0;L;;;;;N;;;;;
+CCBF;HANGUL SYLLABLE CELB;Lo;0;L;;;;;N;;;;;
+CCC0;HANGUL SYLLABLE CELS;Lo;0;L;;;;;N;;;;;
+CCC1;HANGUL SYLLABLE CELT;Lo;0;L;;;;;N;;;;;
+CCC2;HANGUL SYLLABLE CELP;Lo;0;L;;;;;N;;;;;
+CCC3;HANGUL SYLLABLE CELH;Lo;0;L;;;;;N;;;;;
+CCC4;HANGUL SYLLABLE CEM;Lo;0;L;;;;;N;;;;;
+CCC5;HANGUL SYLLABLE CEB;Lo;0;L;;;;;N;;;;;
+CCC6;HANGUL SYLLABLE CEBS;Lo;0;L;;;;;N;;;;;
+CCC7;HANGUL SYLLABLE CES;Lo;0;L;;;;;N;;;;;
+CCC8;HANGUL SYLLABLE CESS;Lo;0;L;;;;;N;;;;;
+CCC9;HANGUL SYLLABLE CENG;Lo;0;L;;;;;N;;;;;
+CCCA;HANGUL SYLLABLE CEJ;Lo;0;L;;;;;N;;;;;
+CCCB;HANGUL SYLLABLE CEC;Lo;0;L;;;;;N;;;;;
+CCCC;HANGUL SYLLABLE CEK;Lo;0;L;;;;;N;;;;;
+CCCD;HANGUL SYLLABLE CET;Lo;0;L;;;;;N;;;;;
+CCCE;HANGUL SYLLABLE CEP;Lo;0;L;;;;;N;;;;;
+CCCF;HANGUL SYLLABLE CEH;Lo;0;L;;;;;N;;;;;
+CCD0;HANGUL SYLLABLE CYEO;Lo;0;L;;;;;N;;;;;
+CCD1;HANGUL SYLLABLE CYEOG;Lo;0;L;;;;;N;;;;;
+CCD2;HANGUL SYLLABLE CYEOGG;Lo;0;L;;;;;N;;;;;
+CCD3;HANGUL SYLLABLE CYEOGS;Lo;0;L;;;;;N;;;;;
+CCD4;HANGUL SYLLABLE CYEON;Lo;0;L;;;;;N;;;;;
+CCD5;HANGUL SYLLABLE CYEONI;Lo;0;L;;;;;N;;;;;
+CCD6;HANGUL SYLLABLE CYEONH;Lo;0;L;;;;;N;;;;;
+CCD7;HANGUL SYLLABLE CYEOD;Lo;0;L;;;;;N;;;;;
+CCD8;HANGUL SYLLABLE CYEOL;Lo;0;L;;;;;N;;;;;
+CCD9;HANGUL SYLLABLE CYEOLG;Lo;0;L;;;;;N;;;;;
+CCDA;HANGUL SYLLABLE CYEOLM;Lo;0;L;;;;;N;;;;;
+CCDB;HANGUL SYLLABLE CYEOLB;Lo;0;L;;;;;N;;;;;
+CCDC;HANGUL SYLLABLE CYEOLS;Lo;0;L;;;;;N;;;;;
+CCDD;HANGUL SYLLABLE CYEOLT;Lo;0;L;;;;;N;;;;;
+CCDE;HANGUL SYLLABLE CYEOLP;Lo;0;L;;;;;N;;;;;
+CCDF;HANGUL SYLLABLE CYEOLH;Lo;0;L;;;;;N;;;;;
+CCE0;HANGUL SYLLABLE CYEOM;Lo;0;L;;;;;N;;;;;
+CCE1;HANGUL SYLLABLE CYEOB;Lo;0;L;;;;;N;;;;;
+CCE2;HANGUL SYLLABLE CYEOBS;Lo;0;L;;;;;N;;;;;
+CCE3;HANGUL SYLLABLE CYEOS;Lo;0;L;;;;;N;;;;;
+CCE4;HANGUL SYLLABLE CYEOSS;Lo;0;L;;;;;N;;;;;
+CCE5;HANGUL SYLLABLE CYEONG;Lo;0;L;;;;;N;;;;;
+CCE6;HANGUL SYLLABLE CYEOJ;Lo;0;L;;;;;N;;;;;
+CCE7;HANGUL SYLLABLE CYEOC;Lo;0;L;;;;;N;;;;;
+CCE8;HANGUL SYLLABLE CYEOK;Lo;0;L;;;;;N;;;;;
+CCE9;HANGUL SYLLABLE CYEOT;Lo;0;L;;;;;N;;;;;
+CCEA;HANGUL SYLLABLE CYEOP;Lo;0;L;;;;;N;;;;;
+CCEB;HANGUL SYLLABLE CYEOH;Lo;0;L;;;;;N;;;;;
+CCEC;HANGUL SYLLABLE CYE;Lo;0;L;;;;;N;;;;;
+CCED;HANGUL SYLLABLE CYEG;Lo;0;L;;;;;N;;;;;
+CCEE;HANGUL SYLLABLE CYEGG;Lo;0;L;;;;;N;;;;;
+CCEF;HANGUL SYLLABLE CYEGS;Lo;0;L;;;;;N;;;;;
+CCF0;HANGUL SYLLABLE CYEN;Lo;0;L;;;;;N;;;;;
+CCF1;HANGUL SYLLABLE CYENI;Lo;0;L;;;;;N;;;;;
+CCF2;HANGUL SYLLABLE CYENH;Lo;0;L;;;;;N;;;;;
+CCF3;HANGUL SYLLABLE CYED;Lo;0;L;;;;;N;;;;;
+CCF4;HANGUL SYLLABLE CYEL;Lo;0;L;;;;;N;;;;;
+CCF5;HANGUL SYLLABLE CYELG;Lo;0;L;;;;;N;;;;;
+CCF6;HANGUL SYLLABLE CYELM;Lo;0;L;;;;;N;;;;;
+CCF7;HANGUL SYLLABLE CYELB;Lo;0;L;;;;;N;;;;;
+CCF8;HANGUL SYLLABLE CYELS;Lo;0;L;;;;;N;;;;;
+CCF9;HANGUL SYLLABLE CYELT;Lo;0;L;;;;;N;;;;;
+CCFA;HANGUL SYLLABLE CYELP;Lo;0;L;;;;;N;;;;;
+CCFB;HANGUL SYLLABLE CYELH;Lo;0;L;;;;;N;;;;;
+CCFC;HANGUL SYLLABLE CYEM;Lo;0;L;;;;;N;;;;;
+CCFD;HANGUL SYLLABLE CYEB;Lo;0;L;;;;;N;;;;;
+CCFE;HANGUL SYLLABLE CYEBS;Lo;0;L;;;;;N;;;;;
+CCFF;HANGUL SYLLABLE CYES;Lo;0;L;;;;;N;;;;;
+CD00;HANGUL SYLLABLE CYESS;Lo;0;L;;;;;N;;;;;
+CD01;HANGUL SYLLABLE CYENG;Lo;0;L;;;;;N;;;;;
+CD02;HANGUL SYLLABLE CYEJ;Lo;0;L;;;;;N;;;;;
+CD03;HANGUL SYLLABLE CYEC;Lo;0;L;;;;;N;;;;;
+CD04;HANGUL SYLLABLE CYEK;Lo;0;L;;;;;N;;;;;
+CD05;HANGUL SYLLABLE CYET;Lo;0;L;;;;;N;;;;;
+CD06;HANGUL SYLLABLE CYEP;Lo;0;L;;;;;N;;;;;
+CD07;HANGUL SYLLABLE CYEH;Lo;0;L;;;;;N;;;;;
+CD08;HANGUL SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+CD09;HANGUL SYLLABLE COG;Lo;0;L;;;;;N;;;;;
+CD0A;HANGUL SYLLABLE COGG;Lo;0;L;;;;;N;;;;;
+CD0B;HANGUL SYLLABLE COGS;Lo;0;L;;;;;N;;;;;
+CD0C;HANGUL SYLLABLE CON;Lo;0;L;;;;;N;;;;;
+CD0D;HANGUL SYLLABLE CONI;Lo;0;L;;;;;N;;;;;
+CD0E;HANGUL SYLLABLE CONH;Lo;0;L;;;;;N;;;;;
+CD0F;HANGUL SYLLABLE COD;Lo;0;L;;;;;N;;;;;
+CD10;HANGUL SYLLABLE COL;Lo;0;L;;;;;N;;;;;
+CD11;HANGUL SYLLABLE COLG;Lo;0;L;;;;;N;;;;;
+CD12;HANGUL SYLLABLE COLM;Lo;0;L;;;;;N;;;;;
+CD13;HANGUL SYLLABLE COLB;Lo;0;L;;;;;N;;;;;
+CD14;HANGUL SYLLABLE COLS;Lo;0;L;;;;;N;;;;;
+CD15;HANGUL SYLLABLE COLT;Lo;0;L;;;;;N;;;;;
+CD16;HANGUL SYLLABLE COLP;Lo;0;L;;;;;N;;;;;
+CD17;HANGUL SYLLABLE COLH;Lo;0;L;;;;;N;;;;;
+CD18;HANGUL SYLLABLE COM;Lo;0;L;;;;;N;;;;;
+CD19;HANGUL SYLLABLE COB;Lo;0;L;;;;;N;;;;;
+CD1A;HANGUL SYLLABLE COBS;Lo;0;L;;;;;N;;;;;
+CD1B;HANGUL SYLLABLE COS;Lo;0;L;;;;;N;;;;;
+CD1C;HANGUL SYLLABLE COSS;Lo;0;L;;;;;N;;;;;
+CD1D;HANGUL SYLLABLE CONG;Lo;0;L;;;;;N;;;;;
+CD1E;HANGUL SYLLABLE COJ;Lo;0;L;;;;;N;;;;;
+CD1F;HANGUL SYLLABLE COC;Lo;0;L;;;;;N;;;;;
+CD20;HANGUL SYLLABLE COK;Lo;0;L;;;;;N;;;;;
+CD21;HANGUL SYLLABLE COT;Lo;0;L;;;;;N;;;;;
+CD22;HANGUL SYLLABLE COP;Lo;0;L;;;;;N;;;;;
+CD23;HANGUL SYLLABLE COH;Lo;0;L;;;;;N;;;;;
+CD24;HANGUL SYLLABLE CWA;Lo;0;L;;;;;N;;;;;
+CD25;HANGUL SYLLABLE CWAG;Lo;0;L;;;;;N;;;;;
+CD26;HANGUL SYLLABLE CWAGG;Lo;0;L;;;;;N;;;;;
+CD27;HANGUL SYLLABLE CWAGS;Lo;0;L;;;;;N;;;;;
+CD28;HANGUL SYLLABLE CWAN;Lo;0;L;;;;;N;;;;;
+CD29;HANGUL SYLLABLE CWANI;Lo;0;L;;;;;N;;;;;
+CD2A;HANGUL SYLLABLE CWANH;Lo;0;L;;;;;N;;;;;
+CD2B;HANGUL SYLLABLE CWAD;Lo;0;L;;;;;N;;;;;
+CD2C;HANGUL SYLLABLE CWAL;Lo;0;L;;;;;N;;;;;
+CD2D;HANGUL SYLLABLE CWALG;Lo;0;L;;;;;N;;;;;
+CD2E;HANGUL SYLLABLE CWALM;Lo;0;L;;;;;N;;;;;
+CD2F;HANGUL SYLLABLE CWALB;Lo;0;L;;;;;N;;;;;
+CD30;HANGUL SYLLABLE CWALS;Lo;0;L;;;;;N;;;;;
+CD31;HANGUL SYLLABLE CWALT;Lo;0;L;;;;;N;;;;;
+CD32;HANGUL SYLLABLE CWALP;Lo;0;L;;;;;N;;;;;
+CD33;HANGUL SYLLABLE CWALH;Lo;0;L;;;;;N;;;;;
+CD34;HANGUL SYLLABLE CWAM;Lo;0;L;;;;;N;;;;;
+CD35;HANGUL SYLLABLE CWAB;Lo;0;L;;;;;N;;;;;
+CD36;HANGUL SYLLABLE CWABS;Lo;0;L;;;;;N;;;;;
+CD37;HANGUL SYLLABLE CWAS;Lo;0;L;;;;;N;;;;;
+CD38;HANGUL SYLLABLE CWASS;Lo;0;L;;;;;N;;;;;
+CD39;HANGUL SYLLABLE CWANG;Lo;0;L;;;;;N;;;;;
+CD3A;HANGUL SYLLABLE CWAJ;Lo;0;L;;;;;N;;;;;
+CD3B;HANGUL SYLLABLE CWAC;Lo;0;L;;;;;N;;;;;
+CD3C;HANGUL SYLLABLE CWAK;Lo;0;L;;;;;N;;;;;
+CD3D;HANGUL SYLLABLE CWAT;Lo;0;L;;;;;N;;;;;
+CD3E;HANGUL SYLLABLE CWAP;Lo;0;L;;;;;N;;;;;
+CD3F;HANGUL SYLLABLE CWAH;Lo;0;L;;;;;N;;;;;
+CD40;HANGUL SYLLABLE CWAE;Lo;0;L;;;;;N;;;;;
+CD41;HANGUL SYLLABLE CWAEG;Lo;0;L;;;;;N;;;;;
+CD42;HANGUL SYLLABLE CWAEGG;Lo;0;L;;;;;N;;;;;
+CD43;HANGUL SYLLABLE CWAEGS;Lo;0;L;;;;;N;;;;;
+CD44;HANGUL SYLLABLE CWAEN;Lo;0;L;;;;;N;;;;;
+CD45;HANGUL SYLLABLE CWAENI;Lo;0;L;;;;;N;;;;;
+CD46;HANGUL SYLLABLE CWAENH;Lo;0;L;;;;;N;;;;;
+CD47;HANGUL SYLLABLE CWAED;Lo;0;L;;;;;N;;;;;
+CD48;HANGUL SYLLABLE CWAEL;Lo;0;L;;;;;N;;;;;
+CD49;HANGUL SYLLABLE CWAELG;Lo;0;L;;;;;N;;;;;
+CD4A;HANGUL SYLLABLE CWAELM;Lo;0;L;;;;;N;;;;;
+CD4B;HANGUL SYLLABLE CWAELB;Lo;0;L;;;;;N;;;;;
+CD4C;HANGUL SYLLABLE CWAELS;Lo;0;L;;;;;N;;;;;
+CD4D;HANGUL SYLLABLE CWAELT;Lo;0;L;;;;;N;;;;;
+CD4E;HANGUL SYLLABLE CWAELP;Lo;0;L;;;;;N;;;;;
+CD4F;HANGUL SYLLABLE CWAELH;Lo;0;L;;;;;N;;;;;
+CD50;HANGUL SYLLABLE CWAEM;Lo;0;L;;;;;N;;;;;
+CD51;HANGUL SYLLABLE CWAEB;Lo;0;L;;;;;N;;;;;
+CD52;HANGUL SYLLABLE CWAEBS;Lo;0;L;;;;;N;;;;;
+CD53;HANGUL SYLLABLE CWAES;Lo;0;L;;;;;N;;;;;
+CD54;HANGUL SYLLABLE CWAESS;Lo;0;L;;;;;N;;;;;
+CD55;HANGUL SYLLABLE CWAENG;Lo;0;L;;;;;N;;;;;
+CD56;HANGUL SYLLABLE CWAEJ;Lo;0;L;;;;;N;;;;;
+CD57;HANGUL SYLLABLE CWAEC;Lo;0;L;;;;;N;;;;;
+CD58;HANGUL SYLLABLE CWAEK;Lo;0;L;;;;;N;;;;;
+CD59;HANGUL SYLLABLE CWAET;Lo;0;L;;;;;N;;;;;
+CD5A;HANGUL SYLLABLE CWAEP;Lo;0;L;;;;;N;;;;;
+CD5B;HANGUL SYLLABLE CWAEH;Lo;0;L;;;;;N;;;;;
+CD5C;HANGUL SYLLABLE COE;Lo;0;L;;;;;N;;;;;
+CD5D;HANGUL SYLLABLE COEG;Lo;0;L;;;;;N;;;;;
+CD5E;HANGUL SYLLABLE COEGG;Lo;0;L;;;;;N;;;;;
+CD5F;HANGUL SYLLABLE COEGS;Lo;0;L;;;;;N;;;;;
+CD60;HANGUL SYLLABLE COEN;Lo;0;L;;;;;N;;;;;
+CD61;HANGUL SYLLABLE COENI;Lo;0;L;;;;;N;;;;;
+CD62;HANGUL SYLLABLE COENH;Lo;0;L;;;;;N;;;;;
+CD63;HANGUL SYLLABLE COED;Lo;0;L;;;;;N;;;;;
+CD64;HANGUL SYLLABLE COEL;Lo;0;L;;;;;N;;;;;
+CD65;HANGUL SYLLABLE COELG;Lo;0;L;;;;;N;;;;;
+CD66;HANGUL SYLLABLE COELM;Lo;0;L;;;;;N;;;;;
+CD67;HANGUL SYLLABLE COELB;Lo;0;L;;;;;N;;;;;
+CD68;HANGUL SYLLABLE COELS;Lo;0;L;;;;;N;;;;;
+CD69;HANGUL SYLLABLE COELT;Lo;0;L;;;;;N;;;;;
+CD6A;HANGUL SYLLABLE COELP;Lo;0;L;;;;;N;;;;;
+CD6B;HANGUL SYLLABLE COELH;Lo;0;L;;;;;N;;;;;
+CD6C;HANGUL SYLLABLE COEM;Lo;0;L;;;;;N;;;;;
+CD6D;HANGUL SYLLABLE COEB;Lo;0;L;;;;;N;;;;;
+CD6E;HANGUL SYLLABLE COEBS;Lo;0;L;;;;;N;;;;;
+CD6F;HANGUL SYLLABLE COES;Lo;0;L;;;;;N;;;;;
+CD70;HANGUL SYLLABLE COESS;Lo;0;L;;;;;N;;;;;
+CD71;HANGUL SYLLABLE COENG;Lo;0;L;;;;;N;;;;;
+CD72;HANGUL SYLLABLE COEJ;Lo;0;L;;;;;N;;;;;
+CD73;HANGUL SYLLABLE COEC;Lo;0;L;;;;;N;;;;;
+CD74;HANGUL SYLLABLE COEK;Lo;0;L;;;;;N;;;;;
+CD75;HANGUL SYLLABLE COET;Lo;0;L;;;;;N;;;;;
+CD76;HANGUL SYLLABLE COEP;Lo;0;L;;;;;N;;;;;
+CD77;HANGUL SYLLABLE COEH;Lo;0;L;;;;;N;;;;;
+CD78;HANGUL SYLLABLE CYO;Lo;0;L;;;;;N;;;;;
+CD79;HANGUL SYLLABLE CYOG;Lo;0;L;;;;;N;;;;;
+CD7A;HANGUL SYLLABLE CYOGG;Lo;0;L;;;;;N;;;;;
+CD7B;HANGUL SYLLABLE CYOGS;Lo;0;L;;;;;N;;;;;
+CD7C;HANGUL SYLLABLE CYON;Lo;0;L;;;;;N;;;;;
+CD7D;HANGUL SYLLABLE CYONI;Lo;0;L;;;;;N;;;;;
+CD7E;HANGUL SYLLABLE CYONH;Lo;0;L;;;;;N;;;;;
+CD7F;HANGUL SYLLABLE CYOD;Lo;0;L;;;;;N;;;;;
+CD80;HANGUL SYLLABLE CYOL;Lo;0;L;;;;;N;;;;;
+CD81;HANGUL SYLLABLE CYOLG;Lo;0;L;;;;;N;;;;;
+CD82;HANGUL SYLLABLE CYOLM;Lo;0;L;;;;;N;;;;;
+CD83;HANGUL SYLLABLE CYOLB;Lo;0;L;;;;;N;;;;;
+CD84;HANGUL SYLLABLE CYOLS;Lo;0;L;;;;;N;;;;;
+CD85;HANGUL SYLLABLE CYOLT;Lo;0;L;;;;;N;;;;;
+CD86;HANGUL SYLLABLE CYOLP;Lo;0;L;;;;;N;;;;;
+CD87;HANGUL SYLLABLE CYOLH;Lo;0;L;;;;;N;;;;;
+CD88;HANGUL SYLLABLE CYOM;Lo;0;L;;;;;N;;;;;
+CD89;HANGUL SYLLABLE CYOB;Lo;0;L;;;;;N;;;;;
+CD8A;HANGUL SYLLABLE CYOBS;Lo;0;L;;;;;N;;;;;
+CD8B;HANGUL SYLLABLE CYOS;Lo;0;L;;;;;N;;;;;
+CD8C;HANGUL SYLLABLE CYOSS;Lo;0;L;;;;;N;;;;;
+CD8D;HANGUL SYLLABLE CYONG;Lo;0;L;;;;;N;;;;;
+CD8E;HANGUL SYLLABLE CYOJ;Lo;0;L;;;;;N;;;;;
+CD8F;HANGUL SYLLABLE CYOC;Lo;0;L;;;;;N;;;;;
+CD90;HANGUL SYLLABLE CYOK;Lo;0;L;;;;;N;;;;;
+CD91;HANGUL SYLLABLE CYOT;Lo;0;L;;;;;N;;;;;
+CD92;HANGUL SYLLABLE CYOP;Lo;0;L;;;;;N;;;;;
+CD93;HANGUL SYLLABLE CYOH;Lo;0;L;;;;;N;;;;;
+CD94;HANGUL SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+CD95;HANGUL SYLLABLE CUG;Lo;0;L;;;;;N;;;;;
+CD96;HANGUL SYLLABLE CUGG;Lo;0;L;;;;;N;;;;;
+CD97;HANGUL SYLLABLE CUGS;Lo;0;L;;;;;N;;;;;
+CD98;HANGUL SYLLABLE CUN;Lo;0;L;;;;;N;;;;;
+CD99;HANGUL SYLLABLE CUNI;Lo;0;L;;;;;N;;;;;
+CD9A;HANGUL SYLLABLE CUNH;Lo;0;L;;;;;N;;;;;
+CD9B;HANGUL SYLLABLE CUD;Lo;0;L;;;;;N;;;;;
+CD9C;HANGUL SYLLABLE CUL;Lo;0;L;;;;;N;;;;;
+CD9D;HANGUL SYLLABLE CULG;Lo;0;L;;;;;N;;;;;
+CD9E;HANGUL SYLLABLE CULM;Lo;0;L;;;;;N;;;;;
+CD9F;HANGUL SYLLABLE CULB;Lo;0;L;;;;;N;;;;;
+CDA0;HANGUL SYLLABLE CULS;Lo;0;L;;;;;N;;;;;
+CDA1;HANGUL SYLLABLE CULT;Lo;0;L;;;;;N;;;;;
+CDA2;HANGUL SYLLABLE CULP;Lo;0;L;;;;;N;;;;;
+CDA3;HANGUL SYLLABLE CULH;Lo;0;L;;;;;N;;;;;
+CDA4;HANGUL SYLLABLE CUM;Lo;0;L;;;;;N;;;;;
+CDA5;HANGUL SYLLABLE CUB;Lo;0;L;;;;;N;;;;;
+CDA6;HANGUL SYLLABLE CUBS;Lo;0;L;;;;;N;;;;;
+CDA7;HANGUL SYLLABLE CUS;Lo;0;L;;;;;N;;;;;
+CDA8;HANGUL SYLLABLE CUSS;Lo;0;L;;;;;N;;;;;
+CDA9;HANGUL SYLLABLE CUNG;Lo;0;L;;;;;N;;;;;
+CDAA;HANGUL SYLLABLE CUJ;Lo;0;L;;;;;N;;;;;
+CDAB;HANGUL SYLLABLE CUC;Lo;0;L;;;;;N;;;;;
+CDAC;HANGUL SYLLABLE CUK;Lo;0;L;;;;;N;;;;;
+CDAD;HANGUL SYLLABLE CUT;Lo;0;L;;;;;N;;;;;
+CDAE;HANGUL SYLLABLE CUP;Lo;0;L;;;;;N;;;;;
+CDAF;HANGUL SYLLABLE CUH;Lo;0;L;;;;;N;;;;;
+CDB0;HANGUL SYLLABLE CWEO;Lo;0;L;;;;;N;;;;;
+CDB1;HANGUL SYLLABLE CWEOG;Lo;0;L;;;;;N;;;;;
+CDB2;HANGUL SYLLABLE CWEOGG;Lo;0;L;;;;;N;;;;;
+CDB3;HANGUL SYLLABLE CWEOGS;Lo;0;L;;;;;N;;;;;
+CDB4;HANGUL SYLLABLE CWEON;Lo;0;L;;;;;N;;;;;
+CDB5;HANGUL SYLLABLE CWEONI;Lo;0;L;;;;;N;;;;;
+CDB6;HANGUL SYLLABLE CWEONH;Lo;0;L;;;;;N;;;;;
+CDB7;HANGUL SYLLABLE CWEOD;Lo;0;L;;;;;N;;;;;
+CDB8;HANGUL SYLLABLE CWEOL;Lo;0;L;;;;;N;;;;;
+CDB9;HANGUL SYLLABLE CWEOLG;Lo;0;L;;;;;N;;;;;
+CDBA;HANGUL SYLLABLE CWEOLM;Lo;0;L;;;;;N;;;;;
+CDBB;HANGUL SYLLABLE CWEOLB;Lo;0;L;;;;;N;;;;;
+CDBC;HANGUL SYLLABLE CWEOLS;Lo;0;L;;;;;N;;;;;
+CDBD;HANGUL SYLLABLE CWEOLT;Lo;0;L;;;;;N;;;;;
+CDBE;HANGUL SYLLABLE CWEOLP;Lo;0;L;;;;;N;;;;;
+CDBF;HANGUL SYLLABLE CWEOLH;Lo;0;L;;;;;N;;;;;
+CDC0;HANGUL SYLLABLE CWEOM;Lo;0;L;;;;;N;;;;;
+CDC1;HANGUL SYLLABLE CWEOB;Lo;0;L;;;;;N;;;;;
+CDC2;HANGUL SYLLABLE CWEOBS;Lo;0;L;;;;;N;;;;;
+CDC3;HANGUL SYLLABLE CWEOS;Lo;0;L;;;;;N;;;;;
+CDC4;HANGUL SYLLABLE CWEOSS;Lo;0;L;;;;;N;;;;;
+CDC5;HANGUL SYLLABLE CWEONG;Lo;0;L;;;;;N;;;;;
+CDC6;HANGUL SYLLABLE CWEOJ;Lo;0;L;;;;;N;;;;;
+CDC7;HANGUL SYLLABLE CWEOC;Lo;0;L;;;;;N;;;;;
+CDC8;HANGUL SYLLABLE CWEOK;Lo;0;L;;;;;N;;;;;
+CDC9;HANGUL SYLLABLE CWEOT;Lo;0;L;;;;;N;;;;;
+CDCA;HANGUL SYLLABLE CWEOP;Lo;0;L;;;;;N;;;;;
+CDCB;HANGUL SYLLABLE CWEOH;Lo;0;L;;;;;N;;;;;
+CDCC;HANGUL SYLLABLE CWE;Lo;0;L;;;;;N;;;;;
+CDCD;HANGUL SYLLABLE CWEG;Lo;0;L;;;;;N;;;;;
+CDCE;HANGUL SYLLABLE CWEGG;Lo;0;L;;;;;N;;;;;
+CDCF;HANGUL SYLLABLE CWEGS;Lo;0;L;;;;;N;;;;;
+CDD0;HANGUL SYLLABLE CWEN;Lo;0;L;;;;;N;;;;;
+CDD1;HANGUL SYLLABLE CWENI;Lo;0;L;;;;;N;;;;;
+CDD2;HANGUL SYLLABLE CWENH;Lo;0;L;;;;;N;;;;;
+CDD3;HANGUL SYLLABLE CWED;Lo;0;L;;;;;N;;;;;
+CDD4;HANGUL SYLLABLE CWEL;Lo;0;L;;;;;N;;;;;
+CDD5;HANGUL SYLLABLE CWELG;Lo;0;L;;;;;N;;;;;
+CDD6;HANGUL SYLLABLE CWELM;Lo;0;L;;;;;N;;;;;
+CDD7;HANGUL SYLLABLE CWELB;Lo;0;L;;;;;N;;;;;
+CDD8;HANGUL SYLLABLE CWELS;Lo;0;L;;;;;N;;;;;
+CDD9;HANGUL SYLLABLE CWELT;Lo;0;L;;;;;N;;;;;
+CDDA;HANGUL SYLLABLE CWELP;Lo;0;L;;;;;N;;;;;
+CDDB;HANGUL SYLLABLE CWELH;Lo;0;L;;;;;N;;;;;
+CDDC;HANGUL SYLLABLE CWEM;Lo;0;L;;;;;N;;;;;
+CDDD;HANGUL SYLLABLE CWEB;Lo;0;L;;;;;N;;;;;
+CDDE;HANGUL SYLLABLE CWEBS;Lo;0;L;;;;;N;;;;;
+CDDF;HANGUL SYLLABLE CWES;Lo;0;L;;;;;N;;;;;
+CDE0;HANGUL SYLLABLE CWESS;Lo;0;L;;;;;N;;;;;
+CDE1;HANGUL SYLLABLE CWENG;Lo;0;L;;;;;N;;;;;
+CDE2;HANGUL SYLLABLE CWEJ;Lo;0;L;;;;;N;;;;;
+CDE3;HANGUL SYLLABLE CWEC;Lo;0;L;;;;;N;;;;;
+CDE4;HANGUL SYLLABLE CWEK;Lo;0;L;;;;;N;;;;;
+CDE5;HANGUL SYLLABLE CWET;Lo;0;L;;;;;N;;;;;
+CDE6;HANGUL SYLLABLE CWEP;Lo;0;L;;;;;N;;;;;
+CDE7;HANGUL SYLLABLE CWEH;Lo;0;L;;;;;N;;;;;
+CDE8;HANGUL SYLLABLE CWI;Lo;0;L;;;;;N;;;;;
+CDE9;HANGUL SYLLABLE CWIG;Lo;0;L;;;;;N;;;;;
+CDEA;HANGUL SYLLABLE CWIGG;Lo;0;L;;;;;N;;;;;
+CDEB;HANGUL SYLLABLE CWIGS;Lo;0;L;;;;;N;;;;;
+CDEC;HANGUL SYLLABLE CWIN;Lo;0;L;;;;;N;;;;;
+CDED;HANGUL SYLLABLE CWINI;Lo;0;L;;;;;N;;;;;
+CDEE;HANGUL SYLLABLE CWINH;Lo;0;L;;;;;N;;;;;
+CDEF;HANGUL SYLLABLE CWID;Lo;0;L;;;;;N;;;;;
+CDF0;HANGUL SYLLABLE CWIL;Lo;0;L;;;;;N;;;;;
+CDF1;HANGUL SYLLABLE CWILG;Lo;0;L;;;;;N;;;;;
+CDF2;HANGUL SYLLABLE CWILM;Lo;0;L;;;;;N;;;;;
+CDF3;HANGUL SYLLABLE CWILB;Lo;0;L;;;;;N;;;;;
+CDF4;HANGUL SYLLABLE CWILS;Lo;0;L;;;;;N;;;;;
+CDF5;HANGUL SYLLABLE CWILT;Lo;0;L;;;;;N;;;;;
+CDF6;HANGUL SYLLABLE CWILP;Lo;0;L;;;;;N;;;;;
+CDF7;HANGUL SYLLABLE CWILH;Lo;0;L;;;;;N;;;;;
+CDF8;HANGUL SYLLABLE CWIM;Lo;0;L;;;;;N;;;;;
+CDF9;HANGUL SYLLABLE CWIB;Lo;0;L;;;;;N;;;;;
+CDFA;HANGUL SYLLABLE CWIBS;Lo;0;L;;;;;N;;;;;
+CDFB;HANGUL SYLLABLE CWIS;Lo;0;L;;;;;N;;;;;
+CDFC;HANGUL SYLLABLE CWISS;Lo;0;L;;;;;N;;;;;
+CDFD;HANGUL SYLLABLE CWING;Lo;0;L;;;;;N;;;;;
+CDFE;HANGUL SYLLABLE CWIJ;Lo;0;L;;;;;N;;;;;
+CDFF;HANGUL SYLLABLE CWIC;Lo;0;L;;;;;N;;;;;
+CE00;HANGUL SYLLABLE CWIK;Lo;0;L;;;;;N;;;;;
+CE01;HANGUL SYLLABLE CWIT;Lo;0;L;;;;;N;;;;;
+CE02;HANGUL SYLLABLE CWIP;Lo;0;L;;;;;N;;;;;
+CE03;HANGUL SYLLABLE CWIH;Lo;0;L;;;;;N;;;;;
+CE04;HANGUL SYLLABLE CYU;Lo;0;L;;;;;N;;;;;
+CE05;HANGUL SYLLABLE CYUG;Lo;0;L;;;;;N;;;;;
+CE06;HANGUL SYLLABLE CYUGG;Lo;0;L;;;;;N;;;;;
+CE07;HANGUL SYLLABLE CYUGS;Lo;0;L;;;;;N;;;;;
+CE08;HANGUL SYLLABLE CYUN;Lo;0;L;;;;;N;;;;;
+CE09;HANGUL SYLLABLE CYUNI;Lo;0;L;;;;;N;;;;;
+CE0A;HANGUL SYLLABLE CYUNH;Lo;0;L;;;;;N;;;;;
+CE0B;HANGUL SYLLABLE CYUD;Lo;0;L;;;;;N;;;;;
+CE0C;HANGUL SYLLABLE CYUL;Lo;0;L;;;;;N;;;;;
+CE0D;HANGUL SYLLABLE CYULG;Lo;0;L;;;;;N;;;;;
+CE0E;HANGUL SYLLABLE CYULM;Lo;0;L;;;;;N;;;;;
+CE0F;HANGUL SYLLABLE CYULB;Lo;0;L;;;;;N;;;;;
+CE10;HANGUL SYLLABLE CYULS;Lo;0;L;;;;;N;;;;;
+CE11;HANGUL SYLLABLE CYULT;Lo;0;L;;;;;N;;;;;
+CE12;HANGUL SYLLABLE CYULP;Lo;0;L;;;;;N;;;;;
+CE13;HANGUL SYLLABLE CYULH;Lo;0;L;;;;;N;;;;;
+CE14;HANGUL SYLLABLE CYUM;Lo;0;L;;;;;N;;;;;
+CE15;HANGUL SYLLABLE CYUB;Lo;0;L;;;;;N;;;;;
+CE16;HANGUL SYLLABLE CYUBS;Lo;0;L;;;;;N;;;;;
+CE17;HANGUL SYLLABLE CYUS;Lo;0;L;;;;;N;;;;;
+CE18;HANGUL SYLLABLE CYUSS;Lo;0;L;;;;;N;;;;;
+CE19;HANGUL SYLLABLE CYUNG;Lo;0;L;;;;;N;;;;;
+CE1A;HANGUL SYLLABLE CYUJ;Lo;0;L;;;;;N;;;;;
+CE1B;HANGUL SYLLABLE CYUC;Lo;0;L;;;;;N;;;;;
+CE1C;HANGUL SYLLABLE CYUK;Lo;0;L;;;;;N;;;;;
+CE1D;HANGUL SYLLABLE CYUT;Lo;0;L;;;;;N;;;;;
+CE1E;HANGUL SYLLABLE CYUP;Lo;0;L;;;;;N;;;;;
+CE1F;HANGUL SYLLABLE CYUH;Lo;0;L;;;;;N;;;;;
+CE20;HANGUL SYLLABLE CEU;Lo;0;L;;;;;N;;;;;
+CE21;HANGUL SYLLABLE CEUG;Lo;0;L;;;;;N;;;;;
+CE22;HANGUL SYLLABLE CEUGG;Lo;0;L;;;;;N;;;;;
+CE23;HANGUL SYLLABLE CEUGS;Lo;0;L;;;;;N;;;;;
+CE24;HANGUL SYLLABLE CEUN;Lo;0;L;;;;;N;;;;;
+CE25;HANGUL SYLLABLE CEUNI;Lo;0;L;;;;;N;;;;;
+CE26;HANGUL SYLLABLE CEUNH;Lo;0;L;;;;;N;;;;;
+CE27;HANGUL SYLLABLE CEUD;Lo;0;L;;;;;N;;;;;
+CE28;HANGUL SYLLABLE CEUL;Lo;0;L;;;;;N;;;;;
+CE29;HANGUL SYLLABLE CEULG;Lo;0;L;;;;;N;;;;;
+CE2A;HANGUL SYLLABLE CEULM;Lo;0;L;;;;;N;;;;;
+CE2B;HANGUL SYLLABLE CEULB;Lo;0;L;;;;;N;;;;;
+CE2C;HANGUL SYLLABLE CEULS;Lo;0;L;;;;;N;;;;;
+CE2D;HANGUL SYLLABLE CEULT;Lo;0;L;;;;;N;;;;;
+CE2E;HANGUL SYLLABLE CEULP;Lo;0;L;;;;;N;;;;;
+CE2F;HANGUL SYLLABLE CEULH;Lo;0;L;;;;;N;;;;;
+CE30;HANGUL SYLLABLE CEUM;Lo;0;L;;;;;N;;;;;
+CE31;HANGUL SYLLABLE CEUB;Lo;0;L;;;;;N;;;;;
+CE32;HANGUL SYLLABLE CEUBS;Lo;0;L;;;;;N;;;;;
+CE33;HANGUL SYLLABLE CEUS;Lo;0;L;;;;;N;;;;;
+CE34;HANGUL SYLLABLE CEUSS;Lo;0;L;;;;;N;;;;;
+CE35;HANGUL SYLLABLE CEUNG;Lo;0;L;;;;;N;;;;;
+CE36;HANGUL SYLLABLE CEUJ;Lo;0;L;;;;;N;;;;;
+CE37;HANGUL SYLLABLE CEUC;Lo;0;L;;;;;N;;;;;
+CE38;HANGUL SYLLABLE CEUK;Lo;0;L;;;;;N;;;;;
+CE39;HANGUL SYLLABLE CEUT;Lo;0;L;;;;;N;;;;;
+CE3A;HANGUL SYLLABLE CEUP;Lo;0;L;;;;;N;;;;;
+CE3B;HANGUL SYLLABLE CEUH;Lo;0;L;;;;;N;;;;;
+CE3C;HANGUL SYLLABLE CYI;Lo;0;L;;;;;N;;;;;
+CE3D;HANGUL SYLLABLE CYIG;Lo;0;L;;;;;N;;;;;
+CE3E;HANGUL SYLLABLE CYIGG;Lo;0;L;;;;;N;;;;;
+CE3F;HANGUL SYLLABLE CYIGS;Lo;0;L;;;;;N;;;;;
+CE40;HANGUL SYLLABLE CYIN;Lo;0;L;;;;;N;;;;;
+CE41;HANGUL SYLLABLE CYINI;Lo;0;L;;;;;N;;;;;
+CE42;HANGUL SYLLABLE CYINH;Lo;0;L;;;;;N;;;;;
+CE43;HANGUL SYLLABLE CYID;Lo;0;L;;;;;N;;;;;
+CE44;HANGUL SYLLABLE CYIL;Lo;0;L;;;;;N;;;;;
+CE45;HANGUL SYLLABLE CYILG;Lo;0;L;;;;;N;;;;;
+CE46;HANGUL SYLLABLE CYILM;Lo;0;L;;;;;N;;;;;
+CE47;HANGUL SYLLABLE CYILB;Lo;0;L;;;;;N;;;;;
+CE48;HANGUL SYLLABLE CYILS;Lo;0;L;;;;;N;;;;;
+CE49;HANGUL SYLLABLE CYILT;Lo;0;L;;;;;N;;;;;
+CE4A;HANGUL SYLLABLE CYILP;Lo;0;L;;;;;N;;;;;
+CE4B;HANGUL SYLLABLE CYILH;Lo;0;L;;;;;N;;;;;
+CE4C;HANGUL SYLLABLE CYIM;Lo;0;L;;;;;N;;;;;
+CE4D;HANGUL SYLLABLE CYIB;Lo;0;L;;;;;N;;;;;
+CE4E;HANGUL SYLLABLE CYIBS;Lo;0;L;;;;;N;;;;;
+CE4F;HANGUL SYLLABLE CYIS;Lo;0;L;;;;;N;;;;;
+CE50;HANGUL SYLLABLE CYISS;Lo;0;L;;;;;N;;;;;
+CE51;HANGUL SYLLABLE CYING;Lo;0;L;;;;;N;;;;;
+CE52;HANGUL SYLLABLE CYIJ;Lo;0;L;;;;;N;;;;;
+CE53;HANGUL SYLLABLE CYIC;Lo;0;L;;;;;N;;;;;
+CE54;HANGUL SYLLABLE CYIK;Lo;0;L;;;;;N;;;;;
+CE55;HANGUL SYLLABLE CYIT;Lo;0;L;;;;;N;;;;;
+CE56;HANGUL SYLLABLE CYIP;Lo;0;L;;;;;N;;;;;
+CE57;HANGUL SYLLABLE CYIH;Lo;0;L;;;;;N;;;;;
+CE58;HANGUL SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+CE59;HANGUL SYLLABLE CIG;Lo;0;L;;;;;N;;;;;
+CE5A;HANGUL SYLLABLE CIGG;Lo;0;L;;;;;N;;;;;
+CE5B;HANGUL SYLLABLE CIGS;Lo;0;L;;;;;N;;;;;
+CE5C;HANGUL SYLLABLE CIN;Lo;0;L;;;;;N;;;;;
+CE5D;HANGUL SYLLABLE CINI;Lo;0;L;;;;;N;;;;;
+CE5E;HANGUL SYLLABLE CINH;Lo;0;L;;;;;N;;;;;
+CE5F;HANGUL SYLLABLE CID;Lo;0;L;;;;;N;;;;;
+CE60;HANGUL SYLLABLE CIL;Lo;0;L;;;;;N;;;;;
+CE61;HANGUL SYLLABLE CILG;Lo;0;L;;;;;N;;;;;
+CE62;HANGUL SYLLABLE CILM;Lo;0;L;;;;;N;;;;;
+CE63;HANGUL SYLLABLE CILB;Lo;0;L;;;;;N;;;;;
+CE64;HANGUL SYLLABLE CILS;Lo;0;L;;;;;N;;;;;
+CE65;HANGUL SYLLABLE CILT;Lo;0;L;;;;;N;;;;;
+CE66;HANGUL SYLLABLE CILP;Lo;0;L;;;;;N;;;;;
+CE67;HANGUL SYLLABLE CILH;Lo;0;L;;;;;N;;;;;
+CE68;HANGUL SYLLABLE CIM;Lo;0;L;;;;;N;;;;;
+CE69;HANGUL SYLLABLE CIB;Lo;0;L;;;;;N;;;;;
+CE6A;HANGUL SYLLABLE CIBS;Lo;0;L;;;;;N;;;;;
+CE6B;HANGUL SYLLABLE CIS;Lo;0;L;;;;;N;;;;;
+CE6C;HANGUL SYLLABLE CISS;Lo;0;L;;;;;N;;;;;
+CE6D;HANGUL SYLLABLE CING;Lo;0;L;;;;;N;;;;;
+CE6E;HANGUL SYLLABLE CIJ;Lo;0;L;;;;;N;;;;;
+CE6F;HANGUL SYLLABLE CIC;Lo;0;L;;;;;N;;;;;
+CE70;HANGUL SYLLABLE CIK;Lo;0;L;;;;;N;;;;;
+CE71;HANGUL SYLLABLE CIT;Lo;0;L;;;;;N;;;;;
+CE72;HANGUL SYLLABLE CIP;Lo;0;L;;;;;N;;;;;
+CE73;HANGUL SYLLABLE CIH;Lo;0;L;;;;;N;;;;;
+CE74;HANGUL SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+CE75;HANGUL SYLLABLE KAG;Lo;0;L;;;;;N;;;;;
+CE76;HANGUL SYLLABLE KAGG;Lo;0;L;;;;;N;;;;;
+CE77;HANGUL SYLLABLE KAGS;Lo;0;L;;;;;N;;;;;
+CE78;HANGUL SYLLABLE KAN;Lo;0;L;;;;;N;;;;;
+CE79;HANGUL SYLLABLE KANI;Lo;0;L;;;;;N;;;;;
+CE7A;HANGUL SYLLABLE KANH;Lo;0;L;;;;;N;;;;;
+CE7B;HANGUL SYLLABLE KAD;Lo;0;L;;;;;N;;;;;
+CE7C;HANGUL SYLLABLE KAL;Lo;0;L;;;;;N;;;;;
+CE7D;HANGUL SYLLABLE KALG;Lo;0;L;;;;;N;;;;;
+CE7E;HANGUL SYLLABLE KALM;Lo;0;L;;;;;N;;;;;
+CE7F;HANGUL SYLLABLE KALB;Lo;0;L;;;;;N;;;;;
+CE80;HANGUL SYLLABLE KALS;Lo;0;L;;;;;N;;;;;
+CE81;HANGUL SYLLABLE KALT;Lo;0;L;;;;;N;;;;;
+CE82;HANGUL SYLLABLE KALP;Lo;0;L;;;;;N;;;;;
+CE83;HANGUL SYLLABLE KALH;Lo;0;L;;;;;N;;;;;
+CE84;HANGUL SYLLABLE KAM;Lo;0;L;;;;;N;;;;;
+CE85;HANGUL SYLLABLE KAB;Lo;0;L;;;;;N;;;;;
+CE86;HANGUL SYLLABLE KABS;Lo;0;L;;;;;N;;;;;
+CE87;HANGUL SYLLABLE KAS;Lo;0;L;;;;;N;;;;;
+CE88;HANGUL SYLLABLE KASS;Lo;0;L;;;;;N;;;;;
+CE89;HANGUL SYLLABLE KANG;Lo;0;L;;;;;N;;;;;
+CE8A;HANGUL SYLLABLE KAJ;Lo;0;L;;;;;N;;;;;
+CE8B;HANGUL SYLLABLE KAC;Lo;0;L;;;;;N;;;;;
+CE8C;HANGUL SYLLABLE KAK;Lo;0;L;;;;;N;;;;;
+CE8D;HANGUL SYLLABLE KAT;Lo;0;L;;;;;N;;;;;
+CE8E;HANGUL SYLLABLE KAP;Lo;0;L;;;;;N;;;;;
+CE8F;HANGUL SYLLABLE KAH;Lo;0;L;;;;;N;;;;;
+CE90;HANGUL SYLLABLE KAE;Lo;0;L;;;;;N;;;;;
+CE91;HANGUL SYLLABLE KAEG;Lo;0;L;;;;;N;;;;;
+CE92;HANGUL SYLLABLE KAEGG;Lo;0;L;;;;;N;;;;;
+CE93;HANGUL SYLLABLE KAEGS;Lo;0;L;;;;;N;;;;;
+CE94;HANGUL SYLLABLE KAEN;Lo;0;L;;;;;N;;;;;
+CE95;HANGUL SYLLABLE KAENI;Lo;0;L;;;;;N;;;;;
+CE96;HANGUL SYLLABLE KAENH;Lo;0;L;;;;;N;;;;;
+CE97;HANGUL SYLLABLE KAED;Lo;0;L;;;;;N;;;;;
+CE98;HANGUL SYLLABLE KAEL;Lo;0;L;;;;;N;;;;;
+CE99;HANGUL SYLLABLE KAELG;Lo;0;L;;;;;N;;;;;
+CE9A;HANGUL SYLLABLE KAELM;Lo;0;L;;;;;N;;;;;
+CE9B;HANGUL SYLLABLE KAELB;Lo;0;L;;;;;N;;;;;
+CE9C;HANGUL SYLLABLE KAELS;Lo;0;L;;;;;N;;;;;
+CE9D;HANGUL SYLLABLE KAELT;Lo;0;L;;;;;N;;;;;
+CE9E;HANGUL SYLLABLE KAELP;Lo;0;L;;;;;N;;;;;
+CE9F;HANGUL SYLLABLE KAELH;Lo;0;L;;;;;N;;;;;
+CEA0;HANGUL SYLLABLE KAEM;Lo;0;L;;;;;N;;;;;
+CEA1;HANGUL SYLLABLE KAEB;Lo;0;L;;;;;N;;;;;
+CEA2;HANGUL SYLLABLE KAEBS;Lo;0;L;;;;;N;;;;;
+CEA3;HANGUL SYLLABLE KAES;Lo;0;L;;;;;N;;;;;
+CEA4;HANGUL SYLLABLE KAESS;Lo;0;L;;;;;N;;;;;
+CEA5;HANGUL SYLLABLE KAENG;Lo;0;L;;;;;N;;;;;
+CEA6;HANGUL SYLLABLE KAEJ;Lo;0;L;;;;;N;;;;;
+CEA7;HANGUL SYLLABLE KAEC;Lo;0;L;;;;;N;;;;;
+CEA8;HANGUL SYLLABLE KAEK;Lo;0;L;;;;;N;;;;;
+CEA9;HANGUL SYLLABLE KAET;Lo;0;L;;;;;N;;;;;
+CEAA;HANGUL SYLLABLE KAEP;Lo;0;L;;;;;N;;;;;
+CEAB;HANGUL SYLLABLE KAEH;Lo;0;L;;;;;N;;;;;
+CEAC;HANGUL SYLLABLE KYA;Lo;0;L;;;;;N;;;;;
+CEAD;HANGUL SYLLABLE KYAG;Lo;0;L;;;;;N;;;;;
+CEAE;HANGUL SYLLABLE KYAGG;Lo;0;L;;;;;N;;;;;
+CEAF;HANGUL SYLLABLE KYAGS;Lo;0;L;;;;;N;;;;;
+CEB0;HANGUL SYLLABLE KYAN;Lo;0;L;;;;;N;;;;;
+CEB1;HANGUL SYLLABLE KYANI;Lo;0;L;;;;;N;;;;;
+CEB2;HANGUL SYLLABLE KYANH;Lo;0;L;;;;;N;;;;;
+CEB3;HANGUL SYLLABLE KYAD;Lo;0;L;;;;;N;;;;;
+CEB4;HANGUL SYLLABLE KYAL;Lo;0;L;;;;;N;;;;;
+CEB5;HANGUL SYLLABLE KYALG;Lo;0;L;;;;;N;;;;;
+CEB6;HANGUL SYLLABLE KYALM;Lo;0;L;;;;;N;;;;;
+CEB7;HANGUL SYLLABLE KYALB;Lo;0;L;;;;;N;;;;;
+CEB8;HANGUL SYLLABLE KYALS;Lo;0;L;;;;;N;;;;;
+CEB9;HANGUL SYLLABLE KYALT;Lo;0;L;;;;;N;;;;;
+CEBA;HANGUL SYLLABLE KYALP;Lo;0;L;;;;;N;;;;;
+CEBB;HANGUL SYLLABLE KYALH;Lo;0;L;;;;;N;;;;;
+CEBC;HANGUL SYLLABLE KYAM;Lo;0;L;;;;;N;;;;;
+CEBD;HANGUL SYLLABLE KYAB;Lo;0;L;;;;;N;;;;;
+CEBE;HANGUL SYLLABLE KYABS;Lo;0;L;;;;;N;;;;;
+CEBF;HANGUL SYLLABLE KYAS;Lo;0;L;;;;;N;;;;;
+CEC0;HANGUL SYLLABLE KYASS;Lo;0;L;;;;;N;;;;;
+CEC1;HANGUL SYLLABLE KYANG;Lo;0;L;;;;;N;;;;;
+CEC2;HANGUL SYLLABLE KYAJ;Lo;0;L;;;;;N;;;;;
+CEC3;HANGUL SYLLABLE KYAC;Lo;0;L;;;;;N;;;;;
+CEC4;HANGUL SYLLABLE KYAK;Lo;0;L;;;;;N;;;;;
+CEC5;HANGUL SYLLABLE KYAT;Lo;0;L;;;;;N;;;;;
+CEC6;HANGUL SYLLABLE KYAP;Lo;0;L;;;;;N;;;;;
+CEC7;HANGUL SYLLABLE KYAH;Lo;0;L;;;;;N;;;;;
+CEC8;HANGUL SYLLABLE KYAE;Lo;0;L;;;;;N;;;;;
+CEC9;HANGUL SYLLABLE KYAEG;Lo;0;L;;;;;N;;;;;
+CECA;HANGUL SYLLABLE KYAEGG;Lo;0;L;;;;;N;;;;;
+CECB;HANGUL SYLLABLE KYAEGS;Lo;0;L;;;;;N;;;;;
+CECC;HANGUL SYLLABLE KYAEN;Lo;0;L;;;;;N;;;;;
+CECD;HANGUL SYLLABLE KYAENI;Lo;0;L;;;;;N;;;;;
+CECE;HANGUL SYLLABLE KYAENH;Lo;0;L;;;;;N;;;;;
+CECF;HANGUL SYLLABLE KYAED;Lo;0;L;;;;;N;;;;;
+CED0;HANGUL SYLLABLE KYAEL;Lo;0;L;;;;;N;;;;;
+CED1;HANGUL SYLLABLE KYAELG;Lo;0;L;;;;;N;;;;;
+CED2;HANGUL SYLLABLE KYAELM;Lo;0;L;;;;;N;;;;;
+CED3;HANGUL SYLLABLE KYAELB;Lo;0;L;;;;;N;;;;;
+CED4;HANGUL SYLLABLE KYAELS;Lo;0;L;;;;;N;;;;;
+CED5;HANGUL SYLLABLE KYAELT;Lo;0;L;;;;;N;;;;;
+CED6;HANGUL SYLLABLE KYAELP;Lo;0;L;;;;;N;;;;;
+CED7;HANGUL SYLLABLE KYAELH;Lo;0;L;;;;;N;;;;;
+CED8;HANGUL SYLLABLE KYAEM;Lo;0;L;;;;;N;;;;;
+CED9;HANGUL SYLLABLE KYAEB;Lo;0;L;;;;;N;;;;;
+CEDA;HANGUL SYLLABLE KYAEBS;Lo;0;L;;;;;N;;;;;
+CEDB;HANGUL SYLLABLE KYAES;Lo;0;L;;;;;N;;;;;
+CEDC;HANGUL SYLLABLE KYAESS;Lo;0;L;;;;;N;;;;;
+CEDD;HANGUL SYLLABLE KYAENG;Lo;0;L;;;;;N;;;;;
+CEDE;HANGUL SYLLABLE KYAEJ;Lo;0;L;;;;;N;;;;;
+CEDF;HANGUL SYLLABLE KYAEC;Lo;0;L;;;;;N;;;;;
+CEE0;HANGUL SYLLABLE KYAEK;Lo;0;L;;;;;N;;;;;
+CEE1;HANGUL SYLLABLE KYAET;Lo;0;L;;;;;N;;;;;
+CEE2;HANGUL SYLLABLE KYAEP;Lo;0;L;;;;;N;;;;;
+CEE3;HANGUL SYLLABLE KYAEH;Lo;0;L;;;;;N;;;;;
+CEE4;HANGUL SYLLABLE KEO;Lo;0;L;;;;;N;;;;;
+CEE5;HANGUL SYLLABLE KEOG;Lo;0;L;;;;;N;;;;;
+CEE6;HANGUL SYLLABLE KEOGG;Lo;0;L;;;;;N;;;;;
+CEE7;HANGUL SYLLABLE KEOGS;Lo;0;L;;;;;N;;;;;
+CEE8;HANGUL SYLLABLE KEON;Lo;0;L;;;;;N;;;;;
+CEE9;HANGUL SYLLABLE KEONI;Lo;0;L;;;;;N;;;;;
+CEEA;HANGUL SYLLABLE KEONH;Lo;0;L;;;;;N;;;;;
+CEEB;HANGUL SYLLABLE KEOD;Lo;0;L;;;;;N;;;;;
+CEEC;HANGUL SYLLABLE KEOL;Lo;0;L;;;;;N;;;;;
+CEED;HANGUL SYLLABLE KEOLG;Lo;0;L;;;;;N;;;;;
+CEEE;HANGUL SYLLABLE KEOLM;Lo;0;L;;;;;N;;;;;
+CEEF;HANGUL SYLLABLE KEOLB;Lo;0;L;;;;;N;;;;;
+CEF0;HANGUL SYLLABLE KEOLS;Lo;0;L;;;;;N;;;;;
+CEF1;HANGUL SYLLABLE KEOLT;Lo;0;L;;;;;N;;;;;
+CEF2;HANGUL SYLLABLE KEOLP;Lo;0;L;;;;;N;;;;;
+CEF3;HANGUL SYLLABLE KEOLH;Lo;0;L;;;;;N;;;;;
+CEF4;HANGUL SYLLABLE KEOM;Lo;0;L;;;;;N;;;;;
+CEF5;HANGUL SYLLABLE KEOB;Lo;0;L;;;;;N;;;;;
+CEF6;HANGUL SYLLABLE KEOBS;Lo;0;L;;;;;N;;;;;
+CEF7;HANGUL SYLLABLE KEOS;Lo;0;L;;;;;N;;;;;
+CEF8;HANGUL SYLLABLE KEOSS;Lo;0;L;;;;;N;;;;;
+CEF9;HANGUL SYLLABLE KEONG;Lo;0;L;;;;;N;;;;;
+CEFA;HANGUL SYLLABLE KEOJ;Lo;0;L;;;;;N;;;;;
+CEFB;HANGUL SYLLABLE KEOC;Lo;0;L;;;;;N;;;;;
+CEFC;HANGUL SYLLABLE KEOK;Lo;0;L;;;;;N;;;;;
+CEFD;HANGUL SYLLABLE KEOT;Lo;0;L;;;;;N;;;;;
+CEFE;HANGUL SYLLABLE KEOP;Lo;0;L;;;;;N;;;;;
+CEFF;HANGUL SYLLABLE KEOH;Lo;0;L;;;;;N;;;;;
+CF00;HANGUL SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+CF01;HANGUL SYLLABLE KEG;Lo;0;L;;;;;N;;;;;
+CF02;HANGUL SYLLABLE KEGG;Lo;0;L;;;;;N;;;;;
+CF03;HANGUL SYLLABLE KEGS;Lo;0;L;;;;;N;;;;;
+CF04;HANGUL SYLLABLE KEN;Lo;0;L;;;;;N;;;;;
+CF05;HANGUL SYLLABLE KENI;Lo;0;L;;;;;N;;;;;
+CF06;HANGUL SYLLABLE KENH;Lo;0;L;;;;;N;;;;;
+CF07;HANGUL SYLLABLE KED;Lo;0;L;;;;;N;;;;;
+CF08;HANGUL SYLLABLE KEL;Lo;0;L;;;;;N;;;;;
+CF09;HANGUL SYLLABLE KELG;Lo;0;L;;;;;N;;;;;
+CF0A;HANGUL SYLLABLE KELM;Lo;0;L;;;;;N;;;;;
+CF0B;HANGUL SYLLABLE KELB;Lo;0;L;;;;;N;;;;;
+CF0C;HANGUL SYLLABLE KELS;Lo;0;L;;;;;N;;;;;
+CF0D;HANGUL SYLLABLE KELT;Lo;0;L;;;;;N;;;;;
+CF0E;HANGUL SYLLABLE KELP;Lo;0;L;;;;;N;;;;;
+CF0F;HANGUL SYLLABLE KELH;Lo;0;L;;;;;N;;;;;
+CF10;HANGUL SYLLABLE KEM;Lo;0;L;;;;;N;;;;;
+CF11;HANGUL SYLLABLE KEB;Lo;0;L;;;;;N;;;;;
+CF12;HANGUL SYLLABLE KEBS;Lo;0;L;;;;;N;;;;;
+CF13;HANGUL SYLLABLE KES;Lo;0;L;;;;;N;;;;;
+CF14;HANGUL SYLLABLE KESS;Lo;0;L;;;;;N;;;;;
+CF15;HANGUL SYLLABLE KENG;Lo;0;L;;;;;N;;;;;
+CF16;HANGUL SYLLABLE KEJ;Lo;0;L;;;;;N;;;;;
+CF17;HANGUL SYLLABLE KEC;Lo;0;L;;;;;N;;;;;
+CF18;HANGUL SYLLABLE KEK;Lo;0;L;;;;;N;;;;;
+CF19;HANGUL SYLLABLE KET;Lo;0;L;;;;;N;;;;;
+CF1A;HANGUL SYLLABLE KEP;Lo;0;L;;;;;N;;;;;
+CF1B;HANGUL SYLLABLE KEH;Lo;0;L;;;;;N;;;;;
+CF1C;HANGUL SYLLABLE KYEO;Lo;0;L;;;;;N;;;;;
+CF1D;HANGUL SYLLABLE KYEOG;Lo;0;L;;;;;N;;;;;
+CF1E;HANGUL SYLLABLE KYEOGG;Lo;0;L;;;;;N;;;;;
+CF1F;HANGUL SYLLABLE KYEOGS;Lo;0;L;;;;;N;;;;;
+CF20;HANGUL SYLLABLE KYEON;Lo;0;L;;;;;N;;;;;
+CF21;HANGUL SYLLABLE KYEONI;Lo;0;L;;;;;N;;;;;
+CF22;HANGUL SYLLABLE KYEONH;Lo;0;L;;;;;N;;;;;
+CF23;HANGUL SYLLABLE KYEOD;Lo;0;L;;;;;N;;;;;
+CF24;HANGUL SYLLABLE KYEOL;Lo;0;L;;;;;N;;;;;
+CF25;HANGUL SYLLABLE KYEOLG;Lo;0;L;;;;;N;;;;;
+CF26;HANGUL SYLLABLE KYEOLM;Lo;0;L;;;;;N;;;;;
+CF27;HANGUL SYLLABLE KYEOLB;Lo;0;L;;;;;N;;;;;
+CF28;HANGUL SYLLABLE KYEOLS;Lo;0;L;;;;;N;;;;;
+CF29;HANGUL SYLLABLE KYEOLT;Lo;0;L;;;;;N;;;;;
+CF2A;HANGUL SYLLABLE KYEOLP;Lo;0;L;;;;;N;;;;;
+CF2B;HANGUL SYLLABLE KYEOLH;Lo;0;L;;;;;N;;;;;
+CF2C;HANGUL SYLLABLE KYEOM;Lo;0;L;;;;;N;;;;;
+CF2D;HANGUL SYLLABLE KYEOB;Lo;0;L;;;;;N;;;;;
+CF2E;HANGUL SYLLABLE KYEOBS;Lo;0;L;;;;;N;;;;;
+CF2F;HANGUL SYLLABLE KYEOS;Lo;0;L;;;;;N;;;;;
+CF30;HANGUL SYLLABLE KYEOSS;Lo;0;L;;;;;N;;;;;
+CF31;HANGUL SYLLABLE KYEONG;Lo;0;L;;;;;N;;;;;
+CF32;HANGUL SYLLABLE KYEOJ;Lo;0;L;;;;;N;;;;;
+CF33;HANGUL SYLLABLE KYEOC;Lo;0;L;;;;;N;;;;;
+CF34;HANGUL SYLLABLE KYEOK;Lo;0;L;;;;;N;;;;;
+CF35;HANGUL SYLLABLE KYEOT;Lo;0;L;;;;;N;;;;;
+CF36;HANGUL SYLLABLE KYEOP;Lo;0;L;;;;;N;;;;;
+CF37;HANGUL SYLLABLE KYEOH;Lo;0;L;;;;;N;;;;;
+CF38;HANGUL SYLLABLE KYE;Lo;0;L;;;;;N;;;;;
+CF39;HANGUL SYLLABLE KYEG;Lo;0;L;;;;;N;;;;;
+CF3A;HANGUL SYLLABLE KYEGG;Lo;0;L;;;;;N;;;;;
+CF3B;HANGUL SYLLABLE KYEGS;Lo;0;L;;;;;N;;;;;
+CF3C;HANGUL SYLLABLE KYEN;Lo;0;L;;;;;N;;;;;
+CF3D;HANGUL SYLLABLE KYENI;Lo;0;L;;;;;N;;;;;
+CF3E;HANGUL SYLLABLE KYENH;Lo;0;L;;;;;N;;;;;
+CF3F;HANGUL SYLLABLE KYED;Lo;0;L;;;;;N;;;;;
+CF40;HANGUL SYLLABLE KYEL;Lo;0;L;;;;;N;;;;;
+CF41;HANGUL SYLLABLE KYELG;Lo;0;L;;;;;N;;;;;
+CF42;HANGUL SYLLABLE KYELM;Lo;0;L;;;;;N;;;;;
+CF43;HANGUL SYLLABLE KYELB;Lo;0;L;;;;;N;;;;;
+CF44;HANGUL SYLLABLE KYELS;Lo;0;L;;;;;N;;;;;
+CF45;HANGUL SYLLABLE KYELT;Lo;0;L;;;;;N;;;;;
+CF46;HANGUL SYLLABLE KYELP;Lo;0;L;;;;;N;;;;;
+CF47;HANGUL SYLLABLE KYELH;Lo;0;L;;;;;N;;;;;
+CF48;HANGUL SYLLABLE KYEM;Lo;0;L;;;;;N;;;;;
+CF49;HANGUL SYLLABLE KYEB;Lo;0;L;;;;;N;;;;;
+CF4A;HANGUL SYLLABLE KYEBS;Lo;0;L;;;;;N;;;;;
+CF4B;HANGUL SYLLABLE KYES;Lo;0;L;;;;;N;;;;;
+CF4C;HANGUL SYLLABLE KYESS;Lo;0;L;;;;;N;;;;;
+CF4D;HANGUL SYLLABLE KYENG;Lo;0;L;;;;;N;;;;;
+CF4E;HANGUL SYLLABLE KYEJ;Lo;0;L;;;;;N;;;;;
+CF4F;HANGUL SYLLABLE KYEC;Lo;0;L;;;;;N;;;;;
+CF50;HANGUL SYLLABLE KYEK;Lo;0;L;;;;;N;;;;;
+CF51;HANGUL SYLLABLE KYET;Lo;0;L;;;;;N;;;;;
+CF52;HANGUL SYLLABLE KYEP;Lo;0;L;;;;;N;;;;;
+CF53;HANGUL SYLLABLE KYEH;Lo;0;L;;;;;N;;;;;
+CF54;HANGUL SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+CF55;HANGUL SYLLABLE KOG;Lo;0;L;;;;;N;;;;;
+CF56;HANGUL SYLLABLE KOGG;Lo;0;L;;;;;N;;;;;
+CF57;HANGUL SYLLABLE KOGS;Lo;0;L;;;;;N;;;;;
+CF58;HANGUL SYLLABLE KON;Lo;0;L;;;;;N;;;;;
+CF59;HANGUL SYLLABLE KONI;Lo;0;L;;;;;N;;;;;
+CF5A;HANGUL SYLLABLE KONH;Lo;0;L;;;;;N;;;;;
+CF5B;HANGUL SYLLABLE KOD;Lo;0;L;;;;;N;;;;;
+CF5C;HANGUL SYLLABLE KOL;Lo;0;L;;;;;N;;;;;
+CF5D;HANGUL SYLLABLE KOLG;Lo;0;L;;;;;N;;;;;
+CF5E;HANGUL SYLLABLE KOLM;Lo;0;L;;;;;N;;;;;
+CF5F;HANGUL SYLLABLE KOLB;Lo;0;L;;;;;N;;;;;
+CF60;HANGUL SYLLABLE KOLS;Lo;0;L;;;;;N;;;;;
+CF61;HANGUL SYLLABLE KOLT;Lo;0;L;;;;;N;;;;;
+CF62;HANGUL SYLLABLE KOLP;Lo;0;L;;;;;N;;;;;
+CF63;HANGUL SYLLABLE KOLH;Lo;0;L;;;;;N;;;;;
+CF64;HANGUL SYLLABLE KOM;Lo;0;L;;;;;N;;;;;
+CF65;HANGUL SYLLABLE KOB;Lo;0;L;;;;;N;;;;;
+CF66;HANGUL SYLLABLE KOBS;Lo;0;L;;;;;N;;;;;
+CF67;HANGUL SYLLABLE KOS;Lo;0;L;;;;;N;;;;;
+CF68;HANGUL SYLLABLE KOSS;Lo;0;L;;;;;N;;;;;
+CF69;HANGUL SYLLABLE KONG;Lo;0;L;;;;;N;;;;;
+CF6A;HANGUL SYLLABLE KOJ;Lo;0;L;;;;;N;;;;;
+CF6B;HANGUL SYLLABLE KOC;Lo;0;L;;;;;N;;;;;
+CF6C;HANGUL SYLLABLE KOK;Lo;0;L;;;;;N;;;;;
+CF6D;HANGUL SYLLABLE KOT;Lo;0;L;;;;;N;;;;;
+CF6E;HANGUL SYLLABLE KOP;Lo;0;L;;;;;N;;;;;
+CF6F;HANGUL SYLLABLE KOH;Lo;0;L;;;;;N;;;;;
+CF70;HANGUL SYLLABLE KWA;Lo;0;L;;;;;N;;;;;
+CF71;HANGUL SYLLABLE KWAG;Lo;0;L;;;;;N;;;;;
+CF72;HANGUL SYLLABLE KWAGG;Lo;0;L;;;;;N;;;;;
+CF73;HANGUL SYLLABLE KWAGS;Lo;0;L;;;;;N;;;;;
+CF74;HANGUL SYLLABLE KWAN;Lo;0;L;;;;;N;;;;;
+CF75;HANGUL SYLLABLE KWANI;Lo;0;L;;;;;N;;;;;
+CF76;HANGUL SYLLABLE KWANH;Lo;0;L;;;;;N;;;;;
+CF77;HANGUL SYLLABLE KWAD;Lo;0;L;;;;;N;;;;;
+CF78;HANGUL SYLLABLE KWAL;Lo;0;L;;;;;N;;;;;
+CF79;HANGUL SYLLABLE KWALG;Lo;0;L;;;;;N;;;;;
+CF7A;HANGUL SYLLABLE KWALM;Lo;0;L;;;;;N;;;;;
+CF7B;HANGUL SYLLABLE KWALB;Lo;0;L;;;;;N;;;;;
+CF7C;HANGUL SYLLABLE KWALS;Lo;0;L;;;;;N;;;;;
+CF7D;HANGUL SYLLABLE KWALT;Lo;0;L;;;;;N;;;;;
+CF7E;HANGUL SYLLABLE KWALP;Lo;0;L;;;;;N;;;;;
+CF7F;HANGUL SYLLABLE KWALH;Lo;0;L;;;;;N;;;;;
+CF80;HANGUL SYLLABLE KWAM;Lo;0;L;;;;;N;;;;;
+CF81;HANGUL SYLLABLE KWAB;Lo;0;L;;;;;N;;;;;
+CF82;HANGUL SYLLABLE KWABS;Lo;0;L;;;;;N;;;;;
+CF83;HANGUL SYLLABLE KWAS;Lo;0;L;;;;;N;;;;;
+CF84;HANGUL SYLLABLE KWASS;Lo;0;L;;;;;N;;;;;
+CF85;HANGUL SYLLABLE KWANG;Lo;0;L;;;;;N;;;;;
+CF86;HANGUL SYLLABLE KWAJ;Lo;0;L;;;;;N;;;;;
+CF87;HANGUL SYLLABLE KWAC;Lo;0;L;;;;;N;;;;;
+CF88;HANGUL SYLLABLE KWAK;Lo;0;L;;;;;N;;;;;
+CF89;HANGUL SYLLABLE KWAT;Lo;0;L;;;;;N;;;;;
+CF8A;HANGUL SYLLABLE KWAP;Lo;0;L;;;;;N;;;;;
+CF8B;HANGUL SYLLABLE KWAH;Lo;0;L;;;;;N;;;;;
+CF8C;HANGUL SYLLABLE KWAE;Lo;0;L;;;;;N;;;;;
+CF8D;HANGUL SYLLABLE KWAEG;Lo;0;L;;;;;N;;;;;
+CF8E;HANGUL SYLLABLE KWAEGG;Lo;0;L;;;;;N;;;;;
+CF8F;HANGUL SYLLABLE KWAEGS;Lo;0;L;;;;;N;;;;;
+CF90;HANGUL SYLLABLE KWAEN;Lo;0;L;;;;;N;;;;;
+CF91;HANGUL SYLLABLE KWAENI;Lo;0;L;;;;;N;;;;;
+CF92;HANGUL SYLLABLE KWAENH;Lo;0;L;;;;;N;;;;;
+CF93;HANGUL SYLLABLE KWAED;Lo;0;L;;;;;N;;;;;
+CF94;HANGUL SYLLABLE KWAEL;Lo;0;L;;;;;N;;;;;
+CF95;HANGUL SYLLABLE KWAELG;Lo;0;L;;;;;N;;;;;
+CF96;HANGUL SYLLABLE KWAELM;Lo;0;L;;;;;N;;;;;
+CF97;HANGUL SYLLABLE KWAELB;Lo;0;L;;;;;N;;;;;
+CF98;HANGUL SYLLABLE KWAELS;Lo;0;L;;;;;N;;;;;
+CF99;HANGUL SYLLABLE KWAELT;Lo;0;L;;;;;N;;;;;
+CF9A;HANGUL SYLLABLE KWAELP;Lo;0;L;;;;;N;;;;;
+CF9B;HANGUL SYLLABLE KWAELH;Lo;0;L;;;;;N;;;;;
+CF9C;HANGUL SYLLABLE KWAEM;Lo;0;L;;;;;N;;;;;
+CF9D;HANGUL SYLLABLE KWAEB;Lo;0;L;;;;;N;;;;;
+CF9E;HANGUL SYLLABLE KWAEBS;Lo;0;L;;;;;N;;;;;
+CF9F;HANGUL SYLLABLE KWAES;Lo;0;L;;;;;N;;;;;
+CFA0;HANGUL SYLLABLE KWAESS;Lo;0;L;;;;;N;;;;;
+CFA1;HANGUL SYLLABLE KWAENG;Lo;0;L;;;;;N;;;;;
+CFA2;HANGUL SYLLABLE KWAEJ;Lo;0;L;;;;;N;;;;;
+CFA3;HANGUL SYLLABLE KWAEC;Lo;0;L;;;;;N;;;;;
+CFA4;HANGUL SYLLABLE KWAEK;Lo;0;L;;;;;N;;;;;
+CFA5;HANGUL SYLLABLE KWAET;Lo;0;L;;;;;N;;;;;
+CFA6;HANGUL SYLLABLE KWAEP;Lo;0;L;;;;;N;;;;;
+CFA7;HANGUL SYLLABLE KWAEH;Lo;0;L;;;;;N;;;;;
+CFA8;HANGUL SYLLABLE KOE;Lo;0;L;;;;;N;;;;;
+CFA9;HANGUL SYLLABLE KOEG;Lo;0;L;;;;;N;;;;;
+CFAA;HANGUL SYLLABLE KOEGG;Lo;0;L;;;;;N;;;;;
+CFAB;HANGUL SYLLABLE KOEGS;Lo;0;L;;;;;N;;;;;
+CFAC;HANGUL SYLLABLE KOEN;Lo;0;L;;;;;N;;;;;
+CFAD;HANGUL SYLLABLE KOENI;Lo;0;L;;;;;N;;;;;
+CFAE;HANGUL SYLLABLE KOENH;Lo;0;L;;;;;N;;;;;
+CFAF;HANGUL SYLLABLE KOED;Lo;0;L;;;;;N;;;;;
+CFB0;HANGUL SYLLABLE KOEL;Lo;0;L;;;;;N;;;;;
+CFB1;HANGUL SYLLABLE KOELG;Lo;0;L;;;;;N;;;;;
+CFB2;HANGUL SYLLABLE KOELM;Lo;0;L;;;;;N;;;;;
+CFB3;HANGUL SYLLABLE KOELB;Lo;0;L;;;;;N;;;;;
+CFB4;HANGUL SYLLABLE KOELS;Lo;0;L;;;;;N;;;;;
+CFB5;HANGUL SYLLABLE KOELT;Lo;0;L;;;;;N;;;;;
+CFB6;HANGUL SYLLABLE KOELP;Lo;0;L;;;;;N;;;;;
+CFB7;HANGUL SYLLABLE KOELH;Lo;0;L;;;;;N;;;;;
+CFB8;HANGUL SYLLABLE KOEM;Lo;0;L;;;;;N;;;;;
+CFB9;HANGUL SYLLABLE KOEB;Lo;0;L;;;;;N;;;;;
+CFBA;HANGUL SYLLABLE KOEBS;Lo;0;L;;;;;N;;;;;
+CFBB;HANGUL SYLLABLE KOES;Lo;0;L;;;;;N;;;;;
+CFBC;HANGUL SYLLABLE KOESS;Lo;0;L;;;;;N;;;;;
+CFBD;HANGUL SYLLABLE KOENG;Lo;0;L;;;;;N;;;;;
+CFBE;HANGUL SYLLABLE KOEJ;Lo;0;L;;;;;N;;;;;
+CFBF;HANGUL SYLLABLE KOEC;Lo;0;L;;;;;N;;;;;
+CFC0;HANGUL SYLLABLE KOEK;Lo;0;L;;;;;N;;;;;
+CFC1;HANGUL SYLLABLE KOET;Lo;0;L;;;;;N;;;;;
+CFC2;HANGUL SYLLABLE KOEP;Lo;0;L;;;;;N;;;;;
+CFC3;HANGUL SYLLABLE KOEH;Lo;0;L;;;;;N;;;;;
+CFC4;HANGUL SYLLABLE KYO;Lo;0;L;;;;;N;;;;;
+CFC5;HANGUL SYLLABLE KYOG;Lo;0;L;;;;;N;;;;;
+CFC6;HANGUL SYLLABLE KYOGG;Lo;0;L;;;;;N;;;;;
+CFC7;HANGUL SYLLABLE KYOGS;Lo;0;L;;;;;N;;;;;
+CFC8;HANGUL SYLLABLE KYON;Lo;0;L;;;;;N;;;;;
+CFC9;HANGUL SYLLABLE KYONI;Lo;0;L;;;;;N;;;;;
+CFCA;HANGUL SYLLABLE KYONH;Lo;0;L;;;;;N;;;;;
+CFCB;HANGUL SYLLABLE KYOD;Lo;0;L;;;;;N;;;;;
+CFCC;HANGUL SYLLABLE KYOL;Lo;0;L;;;;;N;;;;;
+CFCD;HANGUL SYLLABLE KYOLG;Lo;0;L;;;;;N;;;;;
+CFCE;HANGUL SYLLABLE KYOLM;Lo;0;L;;;;;N;;;;;
+CFCF;HANGUL SYLLABLE KYOLB;Lo;0;L;;;;;N;;;;;
+CFD0;HANGUL SYLLABLE KYOLS;Lo;0;L;;;;;N;;;;;
+CFD1;HANGUL SYLLABLE KYOLT;Lo;0;L;;;;;N;;;;;
+CFD2;HANGUL SYLLABLE KYOLP;Lo;0;L;;;;;N;;;;;
+CFD3;HANGUL SYLLABLE KYOLH;Lo;0;L;;;;;N;;;;;
+CFD4;HANGUL SYLLABLE KYOM;Lo;0;L;;;;;N;;;;;
+CFD5;HANGUL SYLLABLE KYOB;Lo;0;L;;;;;N;;;;;
+CFD6;HANGUL SYLLABLE KYOBS;Lo;0;L;;;;;N;;;;;
+CFD7;HANGUL SYLLABLE KYOS;Lo;0;L;;;;;N;;;;;
+CFD8;HANGUL SYLLABLE KYOSS;Lo;0;L;;;;;N;;;;;
+CFD9;HANGUL SYLLABLE KYONG;Lo;0;L;;;;;N;;;;;
+CFDA;HANGUL SYLLABLE KYOJ;Lo;0;L;;;;;N;;;;;
+CFDB;HANGUL SYLLABLE KYOC;Lo;0;L;;;;;N;;;;;
+CFDC;HANGUL SYLLABLE KYOK;Lo;0;L;;;;;N;;;;;
+CFDD;HANGUL SYLLABLE KYOT;Lo;0;L;;;;;N;;;;;
+CFDE;HANGUL SYLLABLE KYOP;Lo;0;L;;;;;N;;;;;
+CFDF;HANGUL SYLLABLE KYOH;Lo;0;L;;;;;N;;;;;
+CFE0;HANGUL SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+CFE1;HANGUL SYLLABLE KUG;Lo;0;L;;;;;N;;;;;
+CFE2;HANGUL SYLLABLE KUGG;Lo;0;L;;;;;N;;;;;
+CFE3;HANGUL SYLLABLE KUGS;Lo;0;L;;;;;N;;;;;
+CFE4;HANGUL SYLLABLE KUN;Lo;0;L;;;;;N;;;;;
+CFE5;HANGUL SYLLABLE KUNI;Lo;0;L;;;;;N;;;;;
+CFE6;HANGUL SYLLABLE KUNH;Lo;0;L;;;;;N;;;;;
+CFE7;HANGUL SYLLABLE KUD;Lo;0;L;;;;;N;;;;;
+CFE8;HANGUL SYLLABLE KUL;Lo;0;L;;;;;N;;;;;
+CFE9;HANGUL SYLLABLE KULG;Lo;0;L;;;;;N;;;;;
+CFEA;HANGUL SYLLABLE KULM;Lo;0;L;;;;;N;;;;;
+CFEB;HANGUL SYLLABLE KULB;Lo;0;L;;;;;N;;;;;
+CFEC;HANGUL SYLLABLE KULS;Lo;0;L;;;;;N;;;;;
+CFED;HANGUL SYLLABLE KULT;Lo;0;L;;;;;N;;;;;
+CFEE;HANGUL SYLLABLE KULP;Lo;0;L;;;;;N;;;;;
+CFEF;HANGUL SYLLABLE KULH;Lo;0;L;;;;;N;;;;;
+CFF0;HANGUL SYLLABLE KUM;Lo;0;L;;;;;N;;;;;
+CFF1;HANGUL SYLLABLE KUB;Lo;0;L;;;;;N;;;;;
+CFF2;HANGUL SYLLABLE KUBS;Lo;0;L;;;;;N;;;;;
+CFF3;HANGUL SYLLABLE KUS;Lo;0;L;;;;;N;;;;;
+CFF4;HANGUL SYLLABLE KUSS;Lo;0;L;;;;;N;;;;;
+CFF5;HANGUL SYLLABLE KUNG;Lo;0;L;;;;;N;;;;;
+CFF6;HANGUL SYLLABLE KUJ;Lo;0;L;;;;;N;;;;;
+CFF7;HANGUL SYLLABLE KUC;Lo;0;L;;;;;N;;;;;
+CFF8;HANGUL SYLLABLE KUK;Lo;0;L;;;;;N;;;;;
+CFF9;HANGUL SYLLABLE KUT;Lo;0;L;;;;;N;;;;;
+CFFA;HANGUL SYLLABLE KUP;Lo;0;L;;;;;N;;;;;
+CFFB;HANGUL SYLLABLE KUH;Lo;0;L;;;;;N;;;;;
+CFFC;HANGUL SYLLABLE KWEO;Lo;0;L;;;;;N;;;;;
+CFFD;HANGUL SYLLABLE KWEOG;Lo;0;L;;;;;N;;;;;
+CFFE;HANGUL SYLLABLE KWEOGG;Lo;0;L;;;;;N;;;;;
+CFFF;HANGUL SYLLABLE KWEOGS;Lo;0;L;;;;;N;;;;;
+D000;HANGUL SYLLABLE KWEON;Lo;0;L;;;;;N;;;;;
+D001;HANGUL SYLLABLE KWEONI;Lo;0;L;;;;;N;;;;;
+D002;HANGUL SYLLABLE KWEONH;Lo;0;L;;;;;N;;;;;
+D003;HANGUL SYLLABLE KWEOD;Lo;0;L;;;;;N;;;;;
+D004;HANGUL SYLLABLE KWEOL;Lo;0;L;;;;;N;;;;;
+D005;HANGUL SYLLABLE KWEOLG;Lo;0;L;;;;;N;;;;;
+D006;HANGUL SYLLABLE KWEOLM;Lo;0;L;;;;;N;;;;;
+D007;HANGUL SYLLABLE KWEOLB;Lo;0;L;;;;;N;;;;;
+D008;HANGUL SYLLABLE KWEOLS;Lo;0;L;;;;;N;;;;;
+D009;HANGUL SYLLABLE KWEOLT;Lo;0;L;;;;;N;;;;;
+D00A;HANGUL SYLLABLE KWEOLP;Lo;0;L;;;;;N;;;;;
+D00B;HANGUL SYLLABLE KWEOLH;Lo;0;L;;;;;N;;;;;
+D00C;HANGUL SYLLABLE KWEOM;Lo;0;L;;;;;N;;;;;
+D00D;HANGUL SYLLABLE KWEOB;Lo;0;L;;;;;N;;;;;
+D00E;HANGUL SYLLABLE KWEOBS;Lo;0;L;;;;;N;;;;;
+D00F;HANGUL SYLLABLE KWEOS;Lo;0;L;;;;;N;;;;;
+D010;HANGUL SYLLABLE KWEOSS;Lo;0;L;;;;;N;;;;;
+D011;HANGUL SYLLABLE KWEONG;Lo;0;L;;;;;N;;;;;
+D012;HANGUL SYLLABLE KWEOJ;Lo;0;L;;;;;N;;;;;
+D013;HANGUL SYLLABLE KWEOC;Lo;0;L;;;;;N;;;;;
+D014;HANGUL SYLLABLE KWEOK;Lo;0;L;;;;;N;;;;;
+D015;HANGUL SYLLABLE KWEOT;Lo;0;L;;;;;N;;;;;
+D016;HANGUL SYLLABLE KWEOP;Lo;0;L;;;;;N;;;;;
+D017;HANGUL SYLLABLE KWEOH;Lo;0;L;;;;;N;;;;;
+D018;HANGUL SYLLABLE KWE;Lo;0;L;;;;;N;;;;;
+D019;HANGUL SYLLABLE KWEG;Lo;0;L;;;;;N;;;;;
+D01A;HANGUL SYLLABLE KWEGG;Lo;0;L;;;;;N;;;;;
+D01B;HANGUL SYLLABLE KWEGS;Lo;0;L;;;;;N;;;;;
+D01C;HANGUL SYLLABLE KWEN;Lo;0;L;;;;;N;;;;;
+D01D;HANGUL SYLLABLE KWENI;Lo;0;L;;;;;N;;;;;
+D01E;HANGUL SYLLABLE KWENH;Lo;0;L;;;;;N;;;;;
+D01F;HANGUL SYLLABLE KWED;Lo;0;L;;;;;N;;;;;
+D020;HANGUL SYLLABLE KWEL;Lo;0;L;;;;;N;;;;;
+D021;HANGUL SYLLABLE KWELG;Lo;0;L;;;;;N;;;;;
+D022;HANGUL SYLLABLE KWELM;Lo;0;L;;;;;N;;;;;
+D023;HANGUL SYLLABLE KWELB;Lo;0;L;;;;;N;;;;;
+D024;HANGUL SYLLABLE KWELS;Lo;0;L;;;;;N;;;;;
+D025;HANGUL SYLLABLE KWELT;Lo;0;L;;;;;N;;;;;
+D026;HANGUL SYLLABLE KWELP;Lo;0;L;;;;;N;;;;;
+D027;HANGUL SYLLABLE KWELH;Lo;0;L;;;;;N;;;;;
+D028;HANGUL SYLLABLE KWEM;Lo;0;L;;;;;N;;;;;
+D029;HANGUL SYLLABLE KWEB;Lo;0;L;;;;;N;;;;;
+D02A;HANGUL SYLLABLE KWEBS;Lo;0;L;;;;;N;;;;;
+D02B;HANGUL SYLLABLE KWES;Lo;0;L;;;;;N;;;;;
+D02C;HANGUL SYLLABLE KWESS;Lo;0;L;;;;;N;;;;;
+D02D;HANGUL SYLLABLE KWENG;Lo;0;L;;;;;N;;;;;
+D02E;HANGUL SYLLABLE KWEJ;Lo;0;L;;;;;N;;;;;
+D02F;HANGUL SYLLABLE KWEC;Lo;0;L;;;;;N;;;;;
+D030;HANGUL SYLLABLE KWEK;Lo;0;L;;;;;N;;;;;
+D031;HANGUL SYLLABLE KWET;Lo;0;L;;;;;N;;;;;
+D032;HANGUL SYLLABLE KWEP;Lo;0;L;;;;;N;;;;;
+D033;HANGUL SYLLABLE KWEH;Lo;0;L;;;;;N;;;;;
+D034;HANGUL SYLLABLE KWI;Lo;0;L;;;;;N;;;;;
+D035;HANGUL SYLLABLE KWIG;Lo;0;L;;;;;N;;;;;
+D036;HANGUL SYLLABLE KWIGG;Lo;0;L;;;;;N;;;;;
+D037;HANGUL SYLLABLE KWIGS;Lo;0;L;;;;;N;;;;;
+D038;HANGUL SYLLABLE KWIN;Lo;0;L;;;;;N;;;;;
+D039;HANGUL SYLLABLE KWINI;Lo;0;L;;;;;N;;;;;
+D03A;HANGUL SYLLABLE KWINH;Lo;0;L;;;;;N;;;;;
+D03B;HANGUL SYLLABLE KWID;Lo;0;L;;;;;N;;;;;
+D03C;HANGUL SYLLABLE KWIL;Lo;0;L;;;;;N;;;;;
+D03D;HANGUL SYLLABLE KWILG;Lo;0;L;;;;;N;;;;;
+D03E;HANGUL SYLLABLE KWILM;Lo;0;L;;;;;N;;;;;
+D03F;HANGUL SYLLABLE KWILB;Lo;0;L;;;;;N;;;;;
+D040;HANGUL SYLLABLE KWILS;Lo;0;L;;;;;N;;;;;
+D041;HANGUL SYLLABLE KWILT;Lo;0;L;;;;;N;;;;;
+D042;HANGUL SYLLABLE KWILP;Lo;0;L;;;;;N;;;;;
+D043;HANGUL SYLLABLE KWILH;Lo;0;L;;;;;N;;;;;
+D044;HANGUL SYLLABLE KWIM;Lo;0;L;;;;;N;;;;;
+D045;HANGUL SYLLABLE KWIB;Lo;0;L;;;;;N;;;;;
+D046;HANGUL SYLLABLE KWIBS;Lo;0;L;;;;;N;;;;;
+D047;HANGUL SYLLABLE KWIS;Lo;0;L;;;;;N;;;;;
+D048;HANGUL SYLLABLE KWISS;Lo;0;L;;;;;N;;;;;
+D049;HANGUL SYLLABLE KWING;Lo;0;L;;;;;N;;;;;
+D04A;HANGUL SYLLABLE KWIJ;Lo;0;L;;;;;N;;;;;
+D04B;HANGUL SYLLABLE KWIC;Lo;0;L;;;;;N;;;;;
+D04C;HANGUL SYLLABLE KWIK;Lo;0;L;;;;;N;;;;;
+D04D;HANGUL SYLLABLE KWIT;Lo;0;L;;;;;N;;;;;
+D04E;HANGUL SYLLABLE KWIP;Lo;0;L;;;;;N;;;;;
+D04F;HANGUL SYLLABLE KWIH;Lo;0;L;;;;;N;;;;;
+D050;HANGUL SYLLABLE KYU;Lo;0;L;;;;;N;;;;;
+D051;HANGUL SYLLABLE KYUG;Lo;0;L;;;;;N;;;;;
+D052;HANGUL SYLLABLE KYUGG;Lo;0;L;;;;;N;;;;;
+D053;HANGUL SYLLABLE KYUGS;Lo;0;L;;;;;N;;;;;
+D054;HANGUL SYLLABLE KYUN;Lo;0;L;;;;;N;;;;;
+D055;HANGUL SYLLABLE KYUNI;Lo;0;L;;;;;N;;;;;
+D056;HANGUL SYLLABLE KYUNH;Lo;0;L;;;;;N;;;;;
+D057;HANGUL SYLLABLE KYUD;Lo;0;L;;;;;N;;;;;
+D058;HANGUL SYLLABLE KYUL;Lo;0;L;;;;;N;;;;;
+D059;HANGUL SYLLABLE KYULG;Lo;0;L;;;;;N;;;;;
+D05A;HANGUL SYLLABLE KYULM;Lo;0;L;;;;;N;;;;;
+D05B;HANGUL SYLLABLE KYULB;Lo;0;L;;;;;N;;;;;
+D05C;HANGUL SYLLABLE KYULS;Lo;0;L;;;;;N;;;;;
+D05D;HANGUL SYLLABLE KYULT;Lo;0;L;;;;;N;;;;;
+D05E;HANGUL SYLLABLE KYULP;Lo;0;L;;;;;N;;;;;
+D05F;HANGUL SYLLABLE KYULH;Lo;0;L;;;;;N;;;;;
+D060;HANGUL SYLLABLE KYUM;Lo;0;L;;;;;N;;;;;
+D061;HANGUL SYLLABLE KYUB;Lo;0;L;;;;;N;;;;;
+D062;HANGUL SYLLABLE KYUBS;Lo;0;L;;;;;N;;;;;
+D063;HANGUL SYLLABLE KYUS;Lo;0;L;;;;;N;;;;;
+D064;HANGUL SYLLABLE KYUSS;Lo;0;L;;;;;N;;;;;
+D065;HANGUL SYLLABLE KYUNG;Lo;0;L;;;;;N;;;;;
+D066;HANGUL SYLLABLE KYUJ;Lo;0;L;;;;;N;;;;;
+D067;HANGUL SYLLABLE KYUC;Lo;0;L;;;;;N;;;;;
+D068;HANGUL SYLLABLE KYUK;Lo;0;L;;;;;N;;;;;
+D069;HANGUL SYLLABLE KYUT;Lo;0;L;;;;;N;;;;;
+D06A;HANGUL SYLLABLE KYUP;Lo;0;L;;;;;N;;;;;
+D06B;HANGUL SYLLABLE KYUH;Lo;0;L;;;;;N;;;;;
+D06C;HANGUL SYLLABLE KEU;Lo;0;L;;;;;N;;;;;
+D06D;HANGUL SYLLABLE KEUG;Lo;0;L;;;;;N;;;;;
+D06E;HANGUL SYLLABLE KEUGG;Lo;0;L;;;;;N;;;;;
+D06F;HANGUL SYLLABLE KEUGS;Lo;0;L;;;;;N;;;;;
+D070;HANGUL SYLLABLE KEUN;Lo;0;L;;;;;N;;;;;
+D071;HANGUL SYLLABLE KEUNI;Lo;0;L;;;;;N;;;;;
+D072;HANGUL SYLLABLE KEUNH;Lo;0;L;;;;;N;;;;;
+D073;HANGUL SYLLABLE KEUD;Lo;0;L;;;;;N;;;;;
+D074;HANGUL SYLLABLE KEUL;Lo;0;L;;;;;N;;;;;
+D075;HANGUL SYLLABLE KEULG;Lo;0;L;;;;;N;;;;;
+D076;HANGUL SYLLABLE KEULM;Lo;0;L;;;;;N;;;;;
+D077;HANGUL SYLLABLE KEULB;Lo;0;L;;;;;N;;;;;
+D078;HANGUL SYLLABLE KEULS;Lo;0;L;;;;;N;;;;;
+D079;HANGUL SYLLABLE KEULT;Lo;0;L;;;;;N;;;;;
+D07A;HANGUL SYLLABLE KEULP;Lo;0;L;;;;;N;;;;;
+D07B;HANGUL SYLLABLE KEULH;Lo;0;L;;;;;N;;;;;
+D07C;HANGUL SYLLABLE KEUM;Lo;0;L;;;;;N;;;;;
+D07D;HANGUL SYLLABLE KEUB;Lo;0;L;;;;;N;;;;;
+D07E;HANGUL SYLLABLE KEUBS;Lo;0;L;;;;;N;;;;;
+D07F;HANGUL SYLLABLE KEUS;Lo;0;L;;;;;N;;;;;
+D080;HANGUL SYLLABLE KEUSS;Lo;0;L;;;;;N;;;;;
+D081;HANGUL SYLLABLE KEUNG;Lo;0;L;;;;;N;;;;;
+D082;HANGUL SYLLABLE KEUJ;Lo;0;L;;;;;N;;;;;
+D083;HANGUL SYLLABLE KEUC;Lo;0;L;;;;;N;;;;;
+D084;HANGUL SYLLABLE KEUK;Lo;0;L;;;;;N;;;;;
+D085;HANGUL SYLLABLE KEUT;Lo;0;L;;;;;N;;;;;
+D086;HANGUL SYLLABLE KEUP;Lo;0;L;;;;;N;;;;;
+D087;HANGUL SYLLABLE KEUH;Lo;0;L;;;;;N;;;;;
+D088;HANGUL SYLLABLE KYI;Lo;0;L;;;;;N;;;;;
+D089;HANGUL SYLLABLE KYIG;Lo;0;L;;;;;N;;;;;
+D08A;HANGUL SYLLABLE KYIGG;Lo;0;L;;;;;N;;;;;
+D08B;HANGUL SYLLABLE KYIGS;Lo;0;L;;;;;N;;;;;
+D08C;HANGUL SYLLABLE KYIN;Lo;0;L;;;;;N;;;;;
+D08D;HANGUL SYLLABLE KYINI;Lo;0;L;;;;;N;;;;;
+D08E;HANGUL SYLLABLE KYINH;Lo;0;L;;;;;N;;;;;
+D08F;HANGUL SYLLABLE KYID;Lo;0;L;;;;;N;;;;;
+D090;HANGUL SYLLABLE KYIL;Lo;0;L;;;;;N;;;;;
+D091;HANGUL SYLLABLE KYILG;Lo;0;L;;;;;N;;;;;
+D092;HANGUL SYLLABLE KYILM;Lo;0;L;;;;;N;;;;;
+D093;HANGUL SYLLABLE KYILB;Lo;0;L;;;;;N;;;;;
+D094;HANGUL SYLLABLE KYILS;Lo;0;L;;;;;N;;;;;
+D095;HANGUL SYLLABLE KYILT;Lo;0;L;;;;;N;;;;;
+D096;HANGUL SYLLABLE KYILP;Lo;0;L;;;;;N;;;;;
+D097;HANGUL SYLLABLE KYILH;Lo;0;L;;;;;N;;;;;
+D098;HANGUL SYLLABLE KYIM;Lo;0;L;;;;;N;;;;;
+D099;HANGUL SYLLABLE KYIB;Lo;0;L;;;;;N;;;;;
+D09A;HANGUL SYLLABLE KYIBS;Lo;0;L;;;;;N;;;;;
+D09B;HANGUL SYLLABLE KYIS;Lo;0;L;;;;;N;;;;;
+D09C;HANGUL SYLLABLE KYISS;Lo;0;L;;;;;N;;;;;
+D09D;HANGUL SYLLABLE KYING;Lo;0;L;;;;;N;;;;;
+D09E;HANGUL SYLLABLE KYIJ;Lo;0;L;;;;;N;;;;;
+D09F;HANGUL SYLLABLE KYIC;Lo;0;L;;;;;N;;;;;
+D0A0;HANGUL SYLLABLE KYIK;Lo;0;L;;;;;N;;;;;
+D0A1;HANGUL SYLLABLE KYIT;Lo;0;L;;;;;N;;;;;
+D0A2;HANGUL SYLLABLE KYIP;Lo;0;L;;;;;N;;;;;
+D0A3;HANGUL SYLLABLE KYIH;Lo;0;L;;;;;N;;;;;
+D0A4;HANGUL SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+D0A5;HANGUL SYLLABLE KIG;Lo;0;L;;;;;N;;;;;
+D0A6;HANGUL SYLLABLE KIGG;Lo;0;L;;;;;N;;;;;
+D0A7;HANGUL SYLLABLE KIGS;Lo;0;L;;;;;N;;;;;
+D0A8;HANGUL SYLLABLE KIN;Lo;0;L;;;;;N;;;;;
+D0A9;HANGUL SYLLABLE KINI;Lo;0;L;;;;;N;;;;;
+D0AA;HANGUL SYLLABLE KINH;Lo;0;L;;;;;N;;;;;
+D0AB;HANGUL SYLLABLE KID;Lo;0;L;;;;;N;;;;;
+D0AC;HANGUL SYLLABLE KIL;Lo;0;L;;;;;N;;;;;
+D0AD;HANGUL SYLLABLE KILG;Lo;0;L;;;;;N;;;;;
+D0AE;HANGUL SYLLABLE KILM;Lo;0;L;;;;;N;;;;;
+D0AF;HANGUL SYLLABLE KILB;Lo;0;L;;;;;N;;;;;
+D0B0;HANGUL SYLLABLE KILS;Lo;0;L;;;;;N;;;;;
+D0B1;HANGUL SYLLABLE KILT;Lo;0;L;;;;;N;;;;;
+D0B2;HANGUL SYLLABLE KILP;Lo;0;L;;;;;N;;;;;
+D0B3;HANGUL SYLLABLE KILH;Lo;0;L;;;;;N;;;;;
+D0B4;HANGUL SYLLABLE KIM;Lo;0;L;;;;;N;;;;;
+D0B5;HANGUL SYLLABLE KIB;Lo;0;L;;;;;N;;;;;
+D0B6;HANGUL SYLLABLE KIBS;Lo;0;L;;;;;N;;;;;
+D0B7;HANGUL SYLLABLE KIS;Lo;0;L;;;;;N;;;;;
+D0B8;HANGUL SYLLABLE KISS;Lo;0;L;;;;;N;;;;;
+D0B9;HANGUL SYLLABLE KING;Lo;0;L;;;;;N;;;;;
+D0BA;HANGUL SYLLABLE KIJ;Lo;0;L;;;;;N;;;;;
+D0BB;HANGUL SYLLABLE KIC;Lo;0;L;;;;;N;;;;;
+D0BC;HANGUL SYLLABLE KIK;Lo;0;L;;;;;N;;;;;
+D0BD;HANGUL SYLLABLE KIT;Lo;0;L;;;;;N;;;;;
+D0BE;HANGUL SYLLABLE KIP;Lo;0;L;;;;;N;;;;;
+D0BF;HANGUL SYLLABLE KIH;Lo;0;L;;;;;N;;;;;
+D0C0;HANGUL SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+D0C1;HANGUL SYLLABLE TAG;Lo;0;L;;;;;N;;;;;
+D0C2;HANGUL SYLLABLE TAGG;Lo;0;L;;;;;N;;;;;
+D0C3;HANGUL SYLLABLE TAGS;Lo;0;L;;;;;N;;;;;
+D0C4;HANGUL SYLLABLE TAN;Lo;0;L;;;;;N;;;;;
+D0C5;HANGUL SYLLABLE TANI;Lo;0;L;;;;;N;;;;;
+D0C6;HANGUL SYLLABLE TANH;Lo;0;L;;;;;N;;;;;
+D0C7;HANGUL SYLLABLE TAD;Lo;0;L;;;;;N;;;;;
+D0C8;HANGUL SYLLABLE TAL;Lo;0;L;;;;;N;;;;;
+D0C9;HANGUL SYLLABLE TALG;Lo;0;L;;;;;N;;;;;
+D0CA;HANGUL SYLLABLE TALM;Lo;0;L;;;;;N;;;;;
+D0CB;HANGUL SYLLABLE TALB;Lo;0;L;;;;;N;;;;;
+D0CC;HANGUL SYLLABLE TALS;Lo;0;L;;;;;N;;;;;
+D0CD;HANGUL SYLLABLE TALT;Lo;0;L;;;;;N;;;;;
+D0CE;HANGUL SYLLABLE TALP;Lo;0;L;;;;;N;;;;;
+D0CF;HANGUL SYLLABLE TALH;Lo;0;L;;;;;N;;;;;
+D0D0;HANGUL SYLLABLE TAM;Lo;0;L;;;;;N;;;;;
+D0D1;HANGUL SYLLABLE TAB;Lo;0;L;;;;;N;;;;;
+D0D2;HANGUL SYLLABLE TABS;Lo;0;L;;;;;N;;;;;
+D0D3;HANGUL SYLLABLE TAS;Lo;0;L;;;;;N;;;;;
+D0D4;HANGUL SYLLABLE TASS;Lo;0;L;;;;;N;;;;;
+D0D5;HANGUL SYLLABLE TANG;Lo;0;L;;;;;N;;;;;
+D0D6;HANGUL SYLLABLE TAJ;Lo;0;L;;;;;N;;;;;
+D0D7;HANGUL SYLLABLE TAC;Lo;0;L;;;;;N;;;;;
+D0D8;HANGUL SYLLABLE TAK;Lo;0;L;;;;;N;;;;;
+D0D9;HANGUL SYLLABLE TAT;Lo;0;L;;;;;N;;;;;
+D0DA;HANGUL SYLLABLE TAP;Lo;0;L;;;;;N;;;;;
+D0DB;HANGUL SYLLABLE TAH;Lo;0;L;;;;;N;;;;;
+D0DC;HANGUL SYLLABLE TAE;Lo;0;L;;;;;N;;;;;
+D0DD;HANGUL SYLLABLE TAEG;Lo;0;L;;;;;N;;;;;
+D0DE;HANGUL SYLLABLE TAEGG;Lo;0;L;;;;;N;;;;;
+D0DF;HANGUL SYLLABLE TAEGS;Lo;0;L;;;;;N;;;;;
+D0E0;HANGUL SYLLABLE TAEN;Lo;0;L;;;;;N;;;;;
+D0E1;HANGUL SYLLABLE TAENI;Lo;0;L;;;;;N;;;;;
+D0E2;HANGUL SYLLABLE TAENH;Lo;0;L;;;;;N;;;;;
+D0E3;HANGUL SYLLABLE TAED;Lo;0;L;;;;;N;;;;;
+D0E4;HANGUL SYLLABLE TAEL;Lo;0;L;;;;;N;;;;;
+D0E5;HANGUL SYLLABLE TAELG;Lo;0;L;;;;;N;;;;;
+D0E6;HANGUL SYLLABLE TAELM;Lo;0;L;;;;;N;;;;;
+D0E7;HANGUL SYLLABLE TAELB;Lo;0;L;;;;;N;;;;;
+D0E8;HANGUL SYLLABLE TAELS;Lo;0;L;;;;;N;;;;;
+D0E9;HANGUL SYLLABLE TAELT;Lo;0;L;;;;;N;;;;;
+D0EA;HANGUL SYLLABLE TAELP;Lo;0;L;;;;;N;;;;;
+D0EB;HANGUL SYLLABLE TAELH;Lo;0;L;;;;;N;;;;;
+D0EC;HANGUL SYLLABLE TAEM;Lo;0;L;;;;;N;;;;;
+D0ED;HANGUL SYLLABLE TAEB;Lo;0;L;;;;;N;;;;;
+D0EE;HANGUL SYLLABLE TAEBS;Lo;0;L;;;;;N;;;;;
+D0EF;HANGUL SYLLABLE TAES;Lo;0;L;;;;;N;;;;;
+D0F0;HANGUL SYLLABLE TAESS;Lo;0;L;;;;;N;;;;;
+D0F1;HANGUL SYLLABLE TAENG;Lo;0;L;;;;;N;;;;;
+D0F2;HANGUL SYLLABLE TAEJ;Lo;0;L;;;;;N;;;;;
+D0F3;HANGUL SYLLABLE TAEC;Lo;0;L;;;;;N;;;;;
+D0F4;HANGUL SYLLABLE TAEK;Lo;0;L;;;;;N;;;;;
+D0F5;HANGUL SYLLABLE TAET;Lo;0;L;;;;;N;;;;;
+D0F6;HANGUL SYLLABLE TAEP;Lo;0;L;;;;;N;;;;;
+D0F7;HANGUL SYLLABLE TAEH;Lo;0;L;;;;;N;;;;;
+D0F8;HANGUL SYLLABLE TYA;Lo;0;L;;;;;N;;;;;
+D0F9;HANGUL SYLLABLE TYAG;Lo;0;L;;;;;N;;;;;
+D0FA;HANGUL SYLLABLE TYAGG;Lo;0;L;;;;;N;;;;;
+D0FB;HANGUL SYLLABLE TYAGS;Lo;0;L;;;;;N;;;;;
+D0FC;HANGUL SYLLABLE TYAN;Lo;0;L;;;;;N;;;;;
+D0FD;HANGUL SYLLABLE TYANI;Lo;0;L;;;;;N;;;;;
+D0FE;HANGUL SYLLABLE TYANH;Lo;0;L;;;;;N;;;;;
+D0FF;HANGUL SYLLABLE TYAD;Lo;0;L;;;;;N;;;;;
+D100;HANGUL SYLLABLE TYAL;Lo;0;L;;;;;N;;;;;
+D101;HANGUL SYLLABLE TYALG;Lo;0;L;;;;;N;;;;;
+D102;HANGUL SYLLABLE TYALM;Lo;0;L;;;;;N;;;;;
+D103;HANGUL SYLLABLE TYALB;Lo;0;L;;;;;N;;;;;
+D104;HANGUL SYLLABLE TYALS;Lo;0;L;;;;;N;;;;;
+D105;HANGUL SYLLABLE TYALT;Lo;0;L;;;;;N;;;;;
+D106;HANGUL SYLLABLE TYALP;Lo;0;L;;;;;N;;;;;
+D107;HANGUL SYLLABLE TYALH;Lo;0;L;;;;;N;;;;;
+D108;HANGUL SYLLABLE TYAM;Lo;0;L;;;;;N;;;;;
+D109;HANGUL SYLLABLE TYAB;Lo;0;L;;;;;N;;;;;
+D10A;HANGUL SYLLABLE TYABS;Lo;0;L;;;;;N;;;;;
+D10B;HANGUL SYLLABLE TYAS;Lo;0;L;;;;;N;;;;;
+D10C;HANGUL SYLLABLE TYASS;Lo;0;L;;;;;N;;;;;
+D10D;HANGUL SYLLABLE TYANG;Lo;0;L;;;;;N;;;;;
+D10E;HANGUL SYLLABLE TYAJ;Lo;0;L;;;;;N;;;;;
+D10F;HANGUL SYLLABLE TYAC;Lo;0;L;;;;;N;;;;;
+D110;HANGUL SYLLABLE TYAK;Lo;0;L;;;;;N;;;;;
+D111;HANGUL SYLLABLE TYAT;Lo;0;L;;;;;N;;;;;
+D112;HANGUL SYLLABLE TYAP;Lo;0;L;;;;;N;;;;;
+D113;HANGUL SYLLABLE TYAH;Lo;0;L;;;;;N;;;;;
+D114;HANGUL SYLLABLE TYAE;Lo;0;L;;;;;N;;;;;
+D115;HANGUL SYLLABLE TYAEG;Lo;0;L;;;;;N;;;;;
+D116;HANGUL SYLLABLE TYAEGG;Lo;0;L;;;;;N;;;;;
+D117;HANGUL SYLLABLE TYAEGS;Lo;0;L;;;;;N;;;;;
+D118;HANGUL SYLLABLE TYAEN;Lo;0;L;;;;;N;;;;;
+D119;HANGUL SYLLABLE TYAENI;Lo;0;L;;;;;N;;;;;
+D11A;HANGUL SYLLABLE TYAENH;Lo;0;L;;;;;N;;;;;
+D11B;HANGUL SYLLABLE TYAED;Lo;0;L;;;;;N;;;;;
+D11C;HANGUL SYLLABLE TYAEL;Lo;0;L;;;;;N;;;;;
+D11D;HANGUL SYLLABLE TYAELG;Lo;0;L;;;;;N;;;;;
+D11E;HANGUL SYLLABLE TYAELM;Lo;0;L;;;;;N;;;;;
+D11F;HANGUL SYLLABLE TYAELB;Lo;0;L;;;;;N;;;;;
+D120;HANGUL SYLLABLE TYAELS;Lo;0;L;;;;;N;;;;;
+D121;HANGUL SYLLABLE TYAELT;Lo;0;L;;;;;N;;;;;
+D122;HANGUL SYLLABLE TYAELP;Lo;0;L;;;;;N;;;;;
+D123;HANGUL SYLLABLE TYAELH;Lo;0;L;;;;;N;;;;;
+D124;HANGUL SYLLABLE TYAEM;Lo;0;L;;;;;N;;;;;
+D125;HANGUL SYLLABLE TYAEB;Lo;0;L;;;;;N;;;;;
+D126;HANGUL SYLLABLE TYAEBS;Lo;0;L;;;;;N;;;;;
+D127;HANGUL SYLLABLE TYAES;Lo;0;L;;;;;N;;;;;
+D128;HANGUL SYLLABLE TYAESS;Lo;0;L;;;;;N;;;;;
+D129;HANGUL SYLLABLE TYAENG;Lo;0;L;;;;;N;;;;;
+D12A;HANGUL SYLLABLE TYAEJ;Lo;0;L;;;;;N;;;;;
+D12B;HANGUL SYLLABLE TYAEC;Lo;0;L;;;;;N;;;;;
+D12C;HANGUL SYLLABLE TYAEK;Lo;0;L;;;;;N;;;;;
+D12D;HANGUL SYLLABLE TYAET;Lo;0;L;;;;;N;;;;;
+D12E;HANGUL SYLLABLE TYAEP;Lo;0;L;;;;;N;;;;;
+D12F;HANGUL SYLLABLE TYAEH;Lo;0;L;;;;;N;;;;;
+D130;HANGUL SYLLABLE TEO;Lo;0;L;;;;;N;;;;;
+D131;HANGUL SYLLABLE TEOG;Lo;0;L;;;;;N;;;;;
+D132;HANGUL SYLLABLE TEOGG;Lo;0;L;;;;;N;;;;;
+D133;HANGUL SYLLABLE TEOGS;Lo;0;L;;;;;N;;;;;
+D134;HANGUL SYLLABLE TEON;Lo;0;L;;;;;N;;;;;
+D135;HANGUL SYLLABLE TEONI;Lo;0;L;;;;;N;;;;;
+D136;HANGUL SYLLABLE TEONH;Lo;0;L;;;;;N;;;;;
+D137;HANGUL SYLLABLE TEOD;Lo;0;L;;;;;N;;;;;
+D138;HANGUL SYLLABLE TEOL;Lo;0;L;;;;;N;;;;;
+D139;HANGUL SYLLABLE TEOLG;Lo;0;L;;;;;N;;;;;
+D13A;HANGUL SYLLABLE TEOLM;Lo;0;L;;;;;N;;;;;
+D13B;HANGUL SYLLABLE TEOLB;Lo;0;L;;;;;N;;;;;
+D13C;HANGUL SYLLABLE TEOLS;Lo;0;L;;;;;N;;;;;
+D13D;HANGUL SYLLABLE TEOLT;Lo;0;L;;;;;N;;;;;
+D13E;HANGUL SYLLABLE TEOLP;Lo;0;L;;;;;N;;;;;
+D13F;HANGUL SYLLABLE TEOLH;Lo;0;L;;;;;N;;;;;
+D140;HANGUL SYLLABLE TEOM;Lo;0;L;;;;;N;;;;;
+D141;HANGUL SYLLABLE TEOB;Lo;0;L;;;;;N;;;;;
+D142;HANGUL SYLLABLE TEOBS;Lo;0;L;;;;;N;;;;;
+D143;HANGUL SYLLABLE TEOS;Lo;0;L;;;;;N;;;;;
+D144;HANGUL SYLLABLE TEOSS;Lo;0;L;;;;;N;;;;;
+D145;HANGUL SYLLABLE TEONG;Lo;0;L;;;;;N;;;;;
+D146;HANGUL SYLLABLE TEOJ;Lo;0;L;;;;;N;;;;;
+D147;HANGUL SYLLABLE TEOC;Lo;0;L;;;;;N;;;;;
+D148;HANGUL SYLLABLE TEOK;Lo;0;L;;;;;N;;;;;
+D149;HANGUL SYLLABLE TEOT;Lo;0;L;;;;;N;;;;;
+D14A;HANGUL SYLLABLE TEOP;Lo;0;L;;;;;N;;;;;
+D14B;HANGUL SYLLABLE TEOH;Lo;0;L;;;;;N;;;;;
+D14C;HANGUL SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+D14D;HANGUL SYLLABLE TEG;Lo;0;L;;;;;N;;;;;
+D14E;HANGUL SYLLABLE TEGG;Lo;0;L;;;;;N;;;;;
+D14F;HANGUL SYLLABLE TEGS;Lo;0;L;;;;;N;;;;;
+D150;HANGUL SYLLABLE TEN;Lo;0;L;;;;;N;;;;;
+D151;HANGUL SYLLABLE TENI;Lo;0;L;;;;;N;;;;;
+D152;HANGUL SYLLABLE TENH;Lo;0;L;;;;;N;;;;;
+D153;HANGUL SYLLABLE TED;Lo;0;L;;;;;N;;;;;
+D154;HANGUL SYLLABLE TEL;Lo;0;L;;;;;N;;;;;
+D155;HANGUL SYLLABLE TELG;Lo;0;L;;;;;N;;;;;
+D156;HANGUL SYLLABLE TELM;Lo;0;L;;;;;N;;;;;
+D157;HANGUL SYLLABLE TELB;Lo;0;L;;;;;N;;;;;
+D158;HANGUL SYLLABLE TELS;Lo;0;L;;;;;N;;;;;
+D159;HANGUL SYLLABLE TELT;Lo;0;L;;;;;N;;;;;
+D15A;HANGUL SYLLABLE TELP;Lo;0;L;;;;;N;;;;;
+D15B;HANGUL SYLLABLE TELH;Lo;0;L;;;;;N;;;;;
+D15C;HANGUL SYLLABLE TEM;Lo;0;L;;;;;N;;;;;
+D15D;HANGUL SYLLABLE TEB;Lo;0;L;;;;;N;;;;;
+D15E;HANGUL SYLLABLE TEBS;Lo;0;L;;;;;N;;;;;
+D15F;HANGUL SYLLABLE TES;Lo;0;L;;;;;N;;;;;
+D160;HANGUL SYLLABLE TESS;Lo;0;L;;;;;N;;;;;
+D161;HANGUL SYLLABLE TENG;Lo;0;L;;;;;N;;;;;
+D162;HANGUL SYLLABLE TEJ;Lo;0;L;;;;;N;;;;;
+D163;HANGUL SYLLABLE TEC;Lo;0;L;;;;;N;;;;;
+D164;HANGUL SYLLABLE TEK;Lo;0;L;;;;;N;;;;;
+D165;HANGUL SYLLABLE TET;Lo;0;L;;;;;N;;;;;
+D166;HANGUL SYLLABLE TEP;Lo;0;L;;;;;N;;;;;
+D167;HANGUL SYLLABLE TEH;Lo;0;L;;;;;N;;;;;
+D168;HANGUL SYLLABLE TYEO;Lo;0;L;;;;;N;;;;;
+D169;HANGUL SYLLABLE TYEOG;Lo;0;L;;;;;N;;;;;
+D16A;HANGUL SYLLABLE TYEOGG;Lo;0;L;;;;;N;;;;;
+D16B;HANGUL SYLLABLE TYEOGS;Lo;0;L;;;;;N;;;;;
+D16C;HANGUL SYLLABLE TYEON;Lo;0;L;;;;;N;;;;;
+D16D;HANGUL SYLLABLE TYEONI;Lo;0;L;;;;;N;;;;;
+D16E;HANGUL SYLLABLE TYEONH;Lo;0;L;;;;;N;;;;;
+D16F;HANGUL SYLLABLE TYEOD;Lo;0;L;;;;;N;;;;;
+D170;HANGUL SYLLABLE TYEOL;Lo;0;L;;;;;N;;;;;
+D171;HANGUL SYLLABLE TYEOLG;Lo;0;L;;;;;N;;;;;
+D172;HANGUL SYLLABLE TYEOLM;Lo;0;L;;;;;N;;;;;
+D173;HANGUL SYLLABLE TYEOLB;Lo;0;L;;;;;N;;;;;
+D174;HANGUL SYLLABLE TYEOLS;Lo;0;L;;;;;N;;;;;
+D175;HANGUL SYLLABLE TYEOLT;Lo;0;L;;;;;N;;;;;
+D176;HANGUL SYLLABLE TYEOLP;Lo;0;L;;;;;N;;;;;
+D177;HANGUL SYLLABLE TYEOLH;Lo;0;L;;;;;N;;;;;
+D178;HANGUL SYLLABLE TYEOM;Lo;0;L;;;;;N;;;;;
+D179;HANGUL SYLLABLE TYEOB;Lo;0;L;;;;;N;;;;;
+D17A;HANGUL SYLLABLE TYEOBS;Lo;0;L;;;;;N;;;;;
+D17B;HANGUL SYLLABLE TYEOS;Lo;0;L;;;;;N;;;;;
+D17C;HANGUL SYLLABLE TYEOSS;Lo;0;L;;;;;N;;;;;
+D17D;HANGUL SYLLABLE TYEONG;Lo;0;L;;;;;N;;;;;
+D17E;HANGUL SYLLABLE TYEOJ;Lo;0;L;;;;;N;;;;;
+D17F;HANGUL SYLLABLE TYEOC;Lo;0;L;;;;;N;;;;;
+D180;HANGUL SYLLABLE TYEOK;Lo;0;L;;;;;N;;;;;
+D181;HANGUL SYLLABLE TYEOT;Lo;0;L;;;;;N;;;;;
+D182;HANGUL SYLLABLE TYEOP;Lo;0;L;;;;;N;;;;;
+D183;HANGUL SYLLABLE TYEOH;Lo;0;L;;;;;N;;;;;
+D184;HANGUL SYLLABLE TYE;Lo;0;L;;;;;N;;;;;
+D185;HANGUL SYLLABLE TYEG;Lo;0;L;;;;;N;;;;;
+D186;HANGUL SYLLABLE TYEGG;Lo;0;L;;;;;N;;;;;
+D187;HANGUL SYLLABLE TYEGS;Lo;0;L;;;;;N;;;;;
+D188;HANGUL SYLLABLE TYEN;Lo;0;L;;;;;N;;;;;
+D189;HANGUL SYLLABLE TYENI;Lo;0;L;;;;;N;;;;;
+D18A;HANGUL SYLLABLE TYENH;Lo;0;L;;;;;N;;;;;
+D18B;HANGUL SYLLABLE TYED;Lo;0;L;;;;;N;;;;;
+D18C;HANGUL SYLLABLE TYEL;Lo;0;L;;;;;N;;;;;
+D18D;HANGUL SYLLABLE TYELG;Lo;0;L;;;;;N;;;;;
+D18E;HANGUL SYLLABLE TYELM;Lo;0;L;;;;;N;;;;;
+D18F;HANGUL SYLLABLE TYELB;Lo;0;L;;;;;N;;;;;
+D190;HANGUL SYLLABLE TYELS;Lo;0;L;;;;;N;;;;;
+D191;HANGUL SYLLABLE TYELT;Lo;0;L;;;;;N;;;;;
+D192;HANGUL SYLLABLE TYELP;Lo;0;L;;;;;N;;;;;
+D193;HANGUL SYLLABLE TYELH;Lo;0;L;;;;;N;;;;;
+D194;HANGUL SYLLABLE TYEM;Lo;0;L;;;;;N;;;;;
+D195;HANGUL SYLLABLE TYEB;Lo;0;L;;;;;N;;;;;
+D196;HANGUL SYLLABLE TYEBS;Lo;0;L;;;;;N;;;;;
+D197;HANGUL SYLLABLE TYES;Lo;0;L;;;;;N;;;;;
+D198;HANGUL SYLLABLE TYESS;Lo;0;L;;;;;N;;;;;
+D199;HANGUL SYLLABLE TYENG;Lo;0;L;;;;;N;;;;;
+D19A;HANGUL SYLLABLE TYEJ;Lo;0;L;;;;;N;;;;;
+D19B;HANGUL SYLLABLE TYEC;Lo;0;L;;;;;N;;;;;
+D19C;HANGUL SYLLABLE TYEK;Lo;0;L;;;;;N;;;;;
+D19D;HANGUL SYLLABLE TYET;Lo;0;L;;;;;N;;;;;
+D19E;HANGUL SYLLABLE TYEP;Lo;0;L;;;;;N;;;;;
+D19F;HANGUL SYLLABLE TYEH;Lo;0;L;;;;;N;;;;;
+D1A0;HANGUL SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+D1A1;HANGUL SYLLABLE TOG;Lo;0;L;;;;;N;;;;;
+D1A2;HANGUL SYLLABLE TOGG;Lo;0;L;;;;;N;;;;;
+D1A3;HANGUL SYLLABLE TOGS;Lo;0;L;;;;;N;;;;;
+D1A4;HANGUL SYLLABLE TON;Lo;0;L;;;;;N;;;;;
+D1A5;HANGUL SYLLABLE TONI;Lo;0;L;;;;;N;;;;;
+D1A6;HANGUL SYLLABLE TONH;Lo;0;L;;;;;N;;;;;
+D1A7;HANGUL SYLLABLE TOD;Lo;0;L;;;;;N;;;;;
+D1A8;HANGUL SYLLABLE TOL;Lo;0;L;;;;;N;;;;;
+D1A9;HANGUL SYLLABLE TOLG;Lo;0;L;;;;;N;;;;;
+D1AA;HANGUL SYLLABLE TOLM;Lo;0;L;;;;;N;;;;;
+D1AB;HANGUL SYLLABLE TOLB;Lo;0;L;;;;;N;;;;;
+D1AC;HANGUL SYLLABLE TOLS;Lo;0;L;;;;;N;;;;;
+D1AD;HANGUL SYLLABLE TOLT;Lo;0;L;;;;;N;;;;;
+D1AE;HANGUL SYLLABLE TOLP;Lo;0;L;;;;;N;;;;;
+D1AF;HANGUL SYLLABLE TOLH;Lo;0;L;;;;;N;;;;;
+D1B0;HANGUL SYLLABLE TOM;Lo;0;L;;;;;N;;;;;
+D1B1;HANGUL SYLLABLE TOB;Lo;0;L;;;;;N;;;;;
+D1B2;HANGUL SYLLABLE TOBS;Lo;0;L;;;;;N;;;;;
+D1B3;HANGUL SYLLABLE TOS;Lo;0;L;;;;;N;;;;;
+D1B4;HANGUL SYLLABLE TOSS;Lo;0;L;;;;;N;;;;;
+D1B5;HANGUL SYLLABLE TONG;Lo;0;L;;;;;N;;;;;
+D1B6;HANGUL SYLLABLE TOJ;Lo;0;L;;;;;N;;;;;
+D1B7;HANGUL SYLLABLE TOC;Lo;0;L;;;;;N;;;;;
+D1B8;HANGUL SYLLABLE TOK;Lo;0;L;;;;;N;;;;;
+D1B9;HANGUL SYLLABLE TOT;Lo;0;L;;;;;N;;;;;
+D1BA;HANGUL SYLLABLE TOP;Lo;0;L;;;;;N;;;;;
+D1BB;HANGUL SYLLABLE TOH;Lo;0;L;;;;;N;;;;;
+D1BC;HANGUL SYLLABLE TWA;Lo;0;L;;;;;N;;;;;
+D1BD;HANGUL SYLLABLE TWAG;Lo;0;L;;;;;N;;;;;
+D1BE;HANGUL SYLLABLE TWAGG;Lo;0;L;;;;;N;;;;;
+D1BF;HANGUL SYLLABLE TWAGS;Lo;0;L;;;;;N;;;;;
+D1C0;HANGUL SYLLABLE TWAN;Lo;0;L;;;;;N;;;;;
+D1C1;HANGUL SYLLABLE TWANI;Lo;0;L;;;;;N;;;;;
+D1C2;HANGUL SYLLABLE TWANH;Lo;0;L;;;;;N;;;;;
+D1C3;HANGUL SYLLABLE TWAD;Lo;0;L;;;;;N;;;;;
+D1C4;HANGUL SYLLABLE TWAL;Lo;0;L;;;;;N;;;;;
+D1C5;HANGUL SYLLABLE TWALG;Lo;0;L;;;;;N;;;;;
+D1C6;HANGUL SYLLABLE TWALM;Lo;0;L;;;;;N;;;;;
+D1C7;HANGUL SYLLABLE TWALB;Lo;0;L;;;;;N;;;;;
+D1C8;HANGUL SYLLABLE TWALS;Lo;0;L;;;;;N;;;;;
+D1C9;HANGUL SYLLABLE TWALT;Lo;0;L;;;;;N;;;;;
+D1CA;HANGUL SYLLABLE TWALP;Lo;0;L;;;;;N;;;;;
+D1CB;HANGUL SYLLABLE TWALH;Lo;0;L;;;;;N;;;;;
+D1CC;HANGUL SYLLABLE TWAM;Lo;0;L;;;;;N;;;;;
+D1CD;HANGUL SYLLABLE TWAB;Lo;0;L;;;;;N;;;;;
+D1CE;HANGUL SYLLABLE TWABS;Lo;0;L;;;;;N;;;;;
+D1CF;HANGUL SYLLABLE TWAS;Lo;0;L;;;;;N;;;;;
+D1D0;HANGUL SYLLABLE TWASS;Lo;0;L;;;;;N;;;;;
+D1D1;HANGUL SYLLABLE TWANG;Lo;0;L;;;;;N;;;;;
+D1D2;HANGUL SYLLABLE TWAJ;Lo;0;L;;;;;N;;;;;
+D1D3;HANGUL SYLLABLE TWAC;Lo;0;L;;;;;N;;;;;
+D1D4;HANGUL SYLLABLE TWAK;Lo;0;L;;;;;N;;;;;
+D1D5;HANGUL SYLLABLE TWAT;Lo;0;L;;;;;N;;;;;
+D1D6;HANGUL SYLLABLE TWAP;Lo;0;L;;;;;N;;;;;
+D1D7;HANGUL SYLLABLE TWAH;Lo;0;L;;;;;N;;;;;
+D1D8;HANGUL SYLLABLE TWAE;Lo;0;L;;;;;N;;;;;
+D1D9;HANGUL SYLLABLE TWAEG;Lo;0;L;;;;;N;;;;;
+D1DA;HANGUL SYLLABLE TWAEGG;Lo;0;L;;;;;N;;;;;
+D1DB;HANGUL SYLLABLE TWAEGS;Lo;0;L;;;;;N;;;;;
+D1DC;HANGUL SYLLABLE TWAEN;Lo;0;L;;;;;N;;;;;
+D1DD;HANGUL SYLLABLE TWAENI;Lo;0;L;;;;;N;;;;;
+D1DE;HANGUL SYLLABLE TWAENH;Lo;0;L;;;;;N;;;;;
+D1DF;HANGUL SYLLABLE TWAED;Lo;0;L;;;;;N;;;;;
+D1E0;HANGUL SYLLABLE TWAEL;Lo;0;L;;;;;N;;;;;
+D1E1;HANGUL SYLLABLE TWAELG;Lo;0;L;;;;;N;;;;;
+D1E2;HANGUL SYLLABLE TWAELM;Lo;0;L;;;;;N;;;;;
+D1E3;HANGUL SYLLABLE TWAELB;Lo;0;L;;;;;N;;;;;
+D1E4;HANGUL SYLLABLE TWAELS;Lo;0;L;;;;;N;;;;;
+D1E5;HANGUL SYLLABLE TWAELT;Lo;0;L;;;;;N;;;;;
+D1E6;HANGUL SYLLABLE TWAELP;Lo;0;L;;;;;N;;;;;
+D1E7;HANGUL SYLLABLE TWAELH;Lo;0;L;;;;;N;;;;;
+D1E8;HANGUL SYLLABLE TWAEM;Lo;0;L;;;;;N;;;;;
+D1E9;HANGUL SYLLABLE TWAEB;Lo;0;L;;;;;N;;;;;
+D1EA;HANGUL SYLLABLE TWAEBS;Lo;0;L;;;;;N;;;;;
+D1EB;HANGUL SYLLABLE TWAES;Lo;0;L;;;;;N;;;;;
+D1EC;HANGUL SYLLABLE TWAESS;Lo;0;L;;;;;N;;;;;
+D1ED;HANGUL SYLLABLE TWAENG;Lo;0;L;;;;;N;;;;;
+D1EE;HANGUL SYLLABLE TWAEJ;Lo;0;L;;;;;N;;;;;
+D1EF;HANGUL SYLLABLE TWAEC;Lo;0;L;;;;;N;;;;;
+D1F0;HANGUL SYLLABLE TWAEK;Lo;0;L;;;;;N;;;;;
+D1F1;HANGUL SYLLABLE TWAET;Lo;0;L;;;;;N;;;;;
+D1F2;HANGUL SYLLABLE TWAEP;Lo;0;L;;;;;N;;;;;
+D1F3;HANGUL SYLLABLE TWAEH;Lo;0;L;;;;;N;;;;;
+D1F4;HANGUL SYLLABLE TOE;Lo;0;L;;;;;N;;;;;
+D1F5;HANGUL SYLLABLE TOEG;Lo;0;L;;;;;N;;;;;
+D1F6;HANGUL SYLLABLE TOEGG;Lo;0;L;;;;;N;;;;;
+D1F7;HANGUL SYLLABLE TOEGS;Lo;0;L;;;;;N;;;;;
+D1F8;HANGUL SYLLABLE TOEN;Lo;0;L;;;;;N;;;;;
+D1F9;HANGUL SYLLABLE TOENI;Lo;0;L;;;;;N;;;;;
+D1FA;HANGUL SYLLABLE TOENH;Lo;0;L;;;;;N;;;;;
+D1FB;HANGUL SYLLABLE TOED;Lo;0;L;;;;;N;;;;;
+D1FC;HANGUL SYLLABLE TOEL;Lo;0;L;;;;;N;;;;;
+D1FD;HANGUL SYLLABLE TOELG;Lo;0;L;;;;;N;;;;;
+D1FE;HANGUL SYLLABLE TOELM;Lo;0;L;;;;;N;;;;;
+D1FF;HANGUL SYLLABLE TOELB;Lo;0;L;;;;;N;;;;;
+D200;HANGUL SYLLABLE TOELS;Lo;0;L;;;;;N;;;;;
+D201;HANGUL SYLLABLE TOELT;Lo;0;L;;;;;N;;;;;
+D202;HANGUL SYLLABLE TOELP;Lo;0;L;;;;;N;;;;;
+D203;HANGUL SYLLABLE TOELH;Lo;0;L;;;;;N;;;;;
+D204;HANGUL SYLLABLE TOEM;Lo;0;L;;;;;N;;;;;
+D205;HANGUL SYLLABLE TOEB;Lo;0;L;;;;;N;;;;;
+D206;HANGUL SYLLABLE TOEBS;Lo;0;L;;;;;N;;;;;
+D207;HANGUL SYLLABLE TOES;Lo;0;L;;;;;N;;;;;
+D208;HANGUL SYLLABLE TOESS;Lo;0;L;;;;;N;;;;;
+D209;HANGUL SYLLABLE TOENG;Lo;0;L;;;;;N;;;;;
+D20A;HANGUL SYLLABLE TOEJ;Lo;0;L;;;;;N;;;;;
+D20B;HANGUL SYLLABLE TOEC;Lo;0;L;;;;;N;;;;;
+D20C;HANGUL SYLLABLE TOEK;Lo;0;L;;;;;N;;;;;
+D20D;HANGUL SYLLABLE TOET;Lo;0;L;;;;;N;;;;;
+D20E;HANGUL SYLLABLE TOEP;Lo;0;L;;;;;N;;;;;
+D20F;HANGUL SYLLABLE TOEH;Lo;0;L;;;;;N;;;;;
+D210;HANGUL SYLLABLE TYO;Lo;0;L;;;;;N;;;;;
+D211;HANGUL SYLLABLE TYOG;Lo;0;L;;;;;N;;;;;
+D212;HANGUL SYLLABLE TYOGG;Lo;0;L;;;;;N;;;;;
+D213;HANGUL SYLLABLE TYOGS;Lo;0;L;;;;;N;;;;;
+D214;HANGUL SYLLABLE TYON;Lo;0;L;;;;;N;;;;;
+D215;HANGUL SYLLABLE TYONI;Lo;0;L;;;;;N;;;;;
+D216;HANGUL SYLLABLE TYONH;Lo;0;L;;;;;N;;;;;
+D217;HANGUL SYLLABLE TYOD;Lo;0;L;;;;;N;;;;;
+D218;HANGUL SYLLABLE TYOL;Lo;0;L;;;;;N;;;;;
+D219;HANGUL SYLLABLE TYOLG;Lo;0;L;;;;;N;;;;;
+D21A;HANGUL SYLLABLE TYOLM;Lo;0;L;;;;;N;;;;;
+D21B;HANGUL SYLLABLE TYOLB;Lo;0;L;;;;;N;;;;;
+D21C;HANGUL SYLLABLE TYOLS;Lo;0;L;;;;;N;;;;;
+D21D;HANGUL SYLLABLE TYOLT;Lo;0;L;;;;;N;;;;;
+D21E;HANGUL SYLLABLE TYOLP;Lo;0;L;;;;;N;;;;;
+D21F;HANGUL SYLLABLE TYOLH;Lo;0;L;;;;;N;;;;;
+D220;HANGUL SYLLABLE TYOM;Lo;0;L;;;;;N;;;;;
+D221;HANGUL SYLLABLE TYOB;Lo;0;L;;;;;N;;;;;
+D222;HANGUL SYLLABLE TYOBS;Lo;0;L;;;;;N;;;;;
+D223;HANGUL SYLLABLE TYOS;Lo;0;L;;;;;N;;;;;
+D224;HANGUL SYLLABLE TYOSS;Lo;0;L;;;;;N;;;;;
+D225;HANGUL SYLLABLE TYONG;Lo;0;L;;;;;N;;;;;
+D226;HANGUL SYLLABLE TYOJ;Lo;0;L;;;;;N;;;;;
+D227;HANGUL SYLLABLE TYOC;Lo;0;L;;;;;N;;;;;
+D228;HANGUL SYLLABLE TYOK;Lo;0;L;;;;;N;;;;;
+D229;HANGUL SYLLABLE TYOT;Lo;0;L;;;;;N;;;;;
+D22A;HANGUL SYLLABLE TYOP;Lo;0;L;;;;;N;;;;;
+D22B;HANGUL SYLLABLE TYOH;Lo;0;L;;;;;N;;;;;
+D22C;HANGUL SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+D22D;HANGUL SYLLABLE TUG;Lo;0;L;;;;;N;;;;;
+D22E;HANGUL SYLLABLE TUGG;Lo;0;L;;;;;N;;;;;
+D22F;HANGUL SYLLABLE TUGS;Lo;0;L;;;;;N;;;;;
+D230;HANGUL SYLLABLE TUN;Lo;0;L;;;;;N;;;;;
+D231;HANGUL SYLLABLE TUNI;Lo;0;L;;;;;N;;;;;
+D232;HANGUL SYLLABLE TUNH;Lo;0;L;;;;;N;;;;;
+D233;HANGUL SYLLABLE TUD;Lo;0;L;;;;;N;;;;;
+D234;HANGUL SYLLABLE TUL;Lo;0;L;;;;;N;;;;;
+D235;HANGUL SYLLABLE TULG;Lo;0;L;;;;;N;;;;;
+D236;HANGUL SYLLABLE TULM;Lo;0;L;;;;;N;;;;;
+D237;HANGUL SYLLABLE TULB;Lo;0;L;;;;;N;;;;;
+D238;HANGUL SYLLABLE TULS;Lo;0;L;;;;;N;;;;;
+D239;HANGUL SYLLABLE TULT;Lo;0;L;;;;;N;;;;;
+D23A;HANGUL SYLLABLE TULP;Lo;0;L;;;;;N;;;;;
+D23B;HANGUL SYLLABLE TULH;Lo;0;L;;;;;N;;;;;
+D23C;HANGUL SYLLABLE TUM;Lo;0;L;;;;;N;;;;;
+D23D;HANGUL SYLLABLE TUB;Lo;0;L;;;;;N;;;;;
+D23E;HANGUL SYLLABLE TUBS;Lo;0;L;;;;;N;;;;;
+D23F;HANGUL SYLLABLE TUS;Lo;0;L;;;;;N;;;;;
+D240;HANGUL SYLLABLE TUSS;Lo;0;L;;;;;N;;;;;
+D241;HANGUL SYLLABLE TUNG;Lo;0;L;;;;;N;;;;;
+D242;HANGUL SYLLABLE TUJ;Lo;0;L;;;;;N;;;;;
+D243;HANGUL SYLLABLE TUC;Lo;0;L;;;;;N;;;;;
+D244;HANGUL SYLLABLE TUK;Lo;0;L;;;;;N;;;;;
+D245;HANGUL SYLLABLE TUT;Lo;0;L;;;;;N;;;;;
+D246;HANGUL SYLLABLE TUP;Lo;0;L;;;;;N;;;;;
+D247;HANGUL SYLLABLE TUH;Lo;0;L;;;;;N;;;;;
+D248;HANGUL SYLLABLE TWEO;Lo;0;L;;;;;N;;;;;
+D249;HANGUL SYLLABLE TWEOG;Lo;0;L;;;;;N;;;;;
+D24A;HANGUL SYLLABLE TWEOGG;Lo;0;L;;;;;N;;;;;
+D24B;HANGUL SYLLABLE TWEOGS;Lo;0;L;;;;;N;;;;;
+D24C;HANGUL SYLLABLE TWEON;Lo;0;L;;;;;N;;;;;
+D24D;HANGUL SYLLABLE TWEONI;Lo;0;L;;;;;N;;;;;
+D24E;HANGUL SYLLABLE TWEONH;Lo;0;L;;;;;N;;;;;
+D24F;HANGUL SYLLABLE TWEOD;Lo;0;L;;;;;N;;;;;
+D250;HANGUL SYLLABLE TWEOL;Lo;0;L;;;;;N;;;;;
+D251;HANGUL SYLLABLE TWEOLG;Lo;0;L;;;;;N;;;;;
+D252;HANGUL SYLLABLE TWEOLM;Lo;0;L;;;;;N;;;;;
+D253;HANGUL SYLLABLE TWEOLB;Lo;0;L;;;;;N;;;;;
+D254;HANGUL SYLLABLE TWEOLS;Lo;0;L;;;;;N;;;;;
+D255;HANGUL SYLLABLE TWEOLT;Lo;0;L;;;;;N;;;;;
+D256;HANGUL SYLLABLE TWEOLP;Lo;0;L;;;;;N;;;;;
+D257;HANGUL SYLLABLE TWEOLH;Lo;0;L;;;;;N;;;;;
+D258;HANGUL SYLLABLE TWEOM;Lo;0;L;;;;;N;;;;;
+D259;HANGUL SYLLABLE TWEOB;Lo;0;L;;;;;N;;;;;
+D25A;HANGUL SYLLABLE TWEOBS;Lo;0;L;;;;;N;;;;;
+D25B;HANGUL SYLLABLE TWEOS;Lo;0;L;;;;;N;;;;;
+D25C;HANGUL SYLLABLE TWEOSS;Lo;0;L;;;;;N;;;;;
+D25D;HANGUL SYLLABLE TWEONG;Lo;0;L;;;;;N;;;;;
+D25E;HANGUL SYLLABLE TWEOJ;Lo;0;L;;;;;N;;;;;
+D25F;HANGUL SYLLABLE TWEOC;Lo;0;L;;;;;N;;;;;
+D260;HANGUL SYLLABLE TWEOK;Lo;0;L;;;;;N;;;;;
+D261;HANGUL SYLLABLE TWEOT;Lo;0;L;;;;;N;;;;;
+D262;HANGUL SYLLABLE TWEOP;Lo;0;L;;;;;N;;;;;
+D263;HANGUL SYLLABLE TWEOH;Lo;0;L;;;;;N;;;;;
+D264;HANGUL SYLLABLE TWE;Lo;0;L;;;;;N;;;;;
+D265;HANGUL SYLLABLE TWEG;Lo;0;L;;;;;N;;;;;
+D266;HANGUL SYLLABLE TWEGG;Lo;0;L;;;;;N;;;;;
+D267;HANGUL SYLLABLE TWEGS;Lo;0;L;;;;;N;;;;;
+D268;HANGUL SYLLABLE TWEN;Lo;0;L;;;;;N;;;;;
+D269;HANGUL SYLLABLE TWENI;Lo;0;L;;;;;N;;;;;
+D26A;HANGUL SYLLABLE TWENH;Lo;0;L;;;;;N;;;;;
+D26B;HANGUL SYLLABLE TWED;Lo;0;L;;;;;N;;;;;
+D26C;HANGUL SYLLABLE TWEL;Lo;0;L;;;;;N;;;;;
+D26D;HANGUL SYLLABLE TWELG;Lo;0;L;;;;;N;;;;;
+D26E;HANGUL SYLLABLE TWELM;Lo;0;L;;;;;N;;;;;
+D26F;HANGUL SYLLABLE TWELB;Lo;0;L;;;;;N;;;;;
+D270;HANGUL SYLLABLE TWELS;Lo;0;L;;;;;N;;;;;
+D271;HANGUL SYLLABLE TWELT;Lo;0;L;;;;;N;;;;;
+D272;HANGUL SYLLABLE TWELP;Lo;0;L;;;;;N;;;;;
+D273;HANGUL SYLLABLE TWELH;Lo;0;L;;;;;N;;;;;
+D274;HANGUL SYLLABLE TWEM;Lo;0;L;;;;;N;;;;;
+D275;HANGUL SYLLABLE TWEB;Lo;0;L;;;;;N;;;;;
+D276;HANGUL SYLLABLE TWEBS;Lo;0;L;;;;;N;;;;;
+D277;HANGUL SYLLABLE TWES;Lo;0;L;;;;;N;;;;;
+D278;HANGUL SYLLABLE TWESS;Lo;0;L;;;;;N;;;;;
+D279;HANGUL SYLLABLE TWENG;Lo;0;L;;;;;N;;;;;
+D27A;HANGUL SYLLABLE TWEJ;Lo;0;L;;;;;N;;;;;
+D27B;HANGUL SYLLABLE TWEC;Lo;0;L;;;;;N;;;;;
+D27C;HANGUL SYLLABLE TWEK;Lo;0;L;;;;;N;;;;;
+D27D;HANGUL SYLLABLE TWET;Lo;0;L;;;;;N;;;;;
+D27E;HANGUL SYLLABLE TWEP;Lo;0;L;;;;;N;;;;;
+D27F;HANGUL SYLLABLE TWEH;Lo;0;L;;;;;N;;;;;
+D280;HANGUL SYLLABLE TWI;Lo;0;L;;;;;N;;;;;
+D281;HANGUL SYLLABLE TWIG;Lo;0;L;;;;;N;;;;;
+D282;HANGUL SYLLABLE TWIGG;Lo;0;L;;;;;N;;;;;
+D283;HANGUL SYLLABLE TWIGS;Lo;0;L;;;;;N;;;;;
+D284;HANGUL SYLLABLE TWIN;Lo;0;L;;;;;N;;;;;
+D285;HANGUL SYLLABLE TWINI;Lo;0;L;;;;;N;;;;;
+D286;HANGUL SYLLABLE TWINH;Lo;0;L;;;;;N;;;;;
+D287;HANGUL SYLLABLE TWID;Lo;0;L;;;;;N;;;;;
+D288;HANGUL SYLLABLE TWIL;Lo;0;L;;;;;N;;;;;
+D289;HANGUL SYLLABLE TWILG;Lo;0;L;;;;;N;;;;;
+D28A;HANGUL SYLLABLE TWILM;Lo;0;L;;;;;N;;;;;
+D28B;HANGUL SYLLABLE TWILB;Lo;0;L;;;;;N;;;;;
+D28C;HANGUL SYLLABLE TWILS;Lo;0;L;;;;;N;;;;;
+D28D;HANGUL SYLLABLE TWILT;Lo;0;L;;;;;N;;;;;
+D28E;HANGUL SYLLABLE TWILP;Lo;0;L;;;;;N;;;;;
+D28F;HANGUL SYLLABLE TWILH;Lo;0;L;;;;;N;;;;;
+D290;HANGUL SYLLABLE TWIM;Lo;0;L;;;;;N;;;;;
+D291;HANGUL SYLLABLE TWIB;Lo;0;L;;;;;N;;;;;
+D292;HANGUL SYLLABLE TWIBS;Lo;0;L;;;;;N;;;;;
+D293;HANGUL SYLLABLE TWIS;Lo;0;L;;;;;N;;;;;
+D294;HANGUL SYLLABLE TWISS;Lo;0;L;;;;;N;;;;;
+D295;HANGUL SYLLABLE TWING;Lo;0;L;;;;;N;;;;;
+D296;HANGUL SYLLABLE TWIJ;Lo;0;L;;;;;N;;;;;
+D297;HANGUL SYLLABLE TWIC;Lo;0;L;;;;;N;;;;;
+D298;HANGUL SYLLABLE TWIK;Lo;0;L;;;;;N;;;;;
+D299;HANGUL SYLLABLE TWIT;Lo;0;L;;;;;N;;;;;
+D29A;HANGUL SYLLABLE TWIP;Lo;0;L;;;;;N;;;;;
+D29B;HANGUL SYLLABLE TWIH;Lo;0;L;;;;;N;;;;;
+D29C;HANGUL SYLLABLE TYU;Lo;0;L;;;;;N;;;;;
+D29D;HANGUL SYLLABLE TYUG;Lo;0;L;;;;;N;;;;;
+D29E;HANGUL SYLLABLE TYUGG;Lo;0;L;;;;;N;;;;;
+D29F;HANGUL SYLLABLE TYUGS;Lo;0;L;;;;;N;;;;;
+D2A0;HANGUL SYLLABLE TYUN;Lo;0;L;;;;;N;;;;;
+D2A1;HANGUL SYLLABLE TYUNI;Lo;0;L;;;;;N;;;;;
+D2A2;HANGUL SYLLABLE TYUNH;Lo;0;L;;;;;N;;;;;
+D2A3;HANGUL SYLLABLE TYUD;Lo;0;L;;;;;N;;;;;
+D2A4;HANGUL SYLLABLE TYUL;Lo;0;L;;;;;N;;;;;
+D2A5;HANGUL SYLLABLE TYULG;Lo;0;L;;;;;N;;;;;
+D2A6;HANGUL SYLLABLE TYULM;Lo;0;L;;;;;N;;;;;
+D2A7;HANGUL SYLLABLE TYULB;Lo;0;L;;;;;N;;;;;
+D2A8;HANGUL SYLLABLE TYULS;Lo;0;L;;;;;N;;;;;
+D2A9;HANGUL SYLLABLE TYULT;Lo;0;L;;;;;N;;;;;
+D2AA;HANGUL SYLLABLE TYULP;Lo;0;L;;;;;N;;;;;
+D2AB;HANGUL SYLLABLE TYULH;Lo;0;L;;;;;N;;;;;
+D2AC;HANGUL SYLLABLE TYUM;Lo;0;L;;;;;N;;;;;
+D2AD;HANGUL SYLLABLE TYUB;Lo;0;L;;;;;N;;;;;
+D2AE;HANGUL SYLLABLE TYUBS;Lo;0;L;;;;;N;;;;;
+D2AF;HANGUL SYLLABLE TYUS;Lo;0;L;;;;;N;;;;;
+D2B0;HANGUL SYLLABLE TYUSS;Lo;0;L;;;;;N;;;;;
+D2B1;HANGUL SYLLABLE TYUNG;Lo;0;L;;;;;N;;;;;
+D2B2;HANGUL SYLLABLE TYUJ;Lo;0;L;;;;;N;;;;;
+D2B3;HANGUL SYLLABLE TYUC;Lo;0;L;;;;;N;;;;;
+D2B4;HANGUL SYLLABLE TYUK;Lo;0;L;;;;;N;;;;;
+D2B5;HANGUL SYLLABLE TYUT;Lo;0;L;;;;;N;;;;;
+D2B6;HANGUL SYLLABLE TYUP;Lo;0;L;;;;;N;;;;;
+D2B7;HANGUL SYLLABLE TYUH;Lo;0;L;;;;;N;;;;;
+D2B8;HANGUL SYLLABLE TEU;Lo;0;L;;;;;N;;;;;
+D2B9;HANGUL SYLLABLE TEUG;Lo;0;L;;;;;N;;;;;
+D2BA;HANGUL SYLLABLE TEUGG;Lo;0;L;;;;;N;;;;;
+D2BB;HANGUL SYLLABLE TEUGS;Lo;0;L;;;;;N;;;;;
+D2BC;HANGUL SYLLABLE TEUN;Lo;0;L;;;;;N;;;;;
+D2BD;HANGUL SYLLABLE TEUNI;Lo;0;L;;;;;N;;;;;
+D2BE;HANGUL SYLLABLE TEUNH;Lo;0;L;;;;;N;;;;;
+D2BF;HANGUL SYLLABLE TEUD;Lo;0;L;;;;;N;;;;;
+D2C0;HANGUL SYLLABLE TEUL;Lo;0;L;;;;;N;;;;;
+D2C1;HANGUL SYLLABLE TEULG;Lo;0;L;;;;;N;;;;;
+D2C2;HANGUL SYLLABLE TEULM;Lo;0;L;;;;;N;;;;;
+D2C3;HANGUL SYLLABLE TEULB;Lo;0;L;;;;;N;;;;;
+D2C4;HANGUL SYLLABLE TEULS;Lo;0;L;;;;;N;;;;;
+D2C5;HANGUL SYLLABLE TEULT;Lo;0;L;;;;;N;;;;;
+D2C6;HANGUL SYLLABLE TEULP;Lo;0;L;;;;;N;;;;;
+D2C7;HANGUL SYLLABLE TEULH;Lo;0;L;;;;;N;;;;;
+D2C8;HANGUL SYLLABLE TEUM;Lo;0;L;;;;;N;;;;;
+D2C9;HANGUL SYLLABLE TEUB;Lo;0;L;;;;;N;;;;;
+D2CA;HANGUL SYLLABLE TEUBS;Lo;0;L;;;;;N;;;;;
+D2CB;HANGUL SYLLABLE TEUS;Lo;0;L;;;;;N;;;;;
+D2CC;HANGUL SYLLABLE TEUSS;Lo;0;L;;;;;N;;;;;
+D2CD;HANGUL SYLLABLE TEUNG;Lo;0;L;;;;;N;;;;;
+D2CE;HANGUL SYLLABLE TEUJ;Lo;0;L;;;;;N;;;;;
+D2CF;HANGUL SYLLABLE TEUC;Lo;0;L;;;;;N;;;;;
+D2D0;HANGUL SYLLABLE TEUK;Lo;0;L;;;;;N;;;;;
+D2D1;HANGUL SYLLABLE TEUT;Lo;0;L;;;;;N;;;;;
+D2D2;HANGUL SYLLABLE TEUP;Lo;0;L;;;;;N;;;;;
+D2D3;HANGUL SYLLABLE TEUH;Lo;0;L;;;;;N;;;;;
+D2D4;HANGUL SYLLABLE TYI;Lo;0;L;;;;;N;;;;;
+D2D5;HANGUL SYLLABLE TYIG;Lo;0;L;;;;;N;;;;;
+D2D6;HANGUL SYLLABLE TYIGG;Lo;0;L;;;;;N;;;;;
+D2D7;HANGUL SYLLABLE TYIGS;Lo;0;L;;;;;N;;;;;
+D2D8;HANGUL SYLLABLE TYIN;Lo;0;L;;;;;N;;;;;
+D2D9;HANGUL SYLLABLE TYINI;Lo;0;L;;;;;N;;;;;
+D2DA;HANGUL SYLLABLE TYINH;Lo;0;L;;;;;N;;;;;
+D2DB;HANGUL SYLLABLE TYID;Lo;0;L;;;;;N;;;;;
+D2DC;HANGUL SYLLABLE TYIL;Lo;0;L;;;;;N;;;;;
+D2DD;HANGUL SYLLABLE TYILG;Lo;0;L;;;;;N;;;;;
+D2DE;HANGUL SYLLABLE TYILM;Lo;0;L;;;;;N;;;;;
+D2DF;HANGUL SYLLABLE TYILB;Lo;0;L;;;;;N;;;;;
+D2E0;HANGUL SYLLABLE TYILS;Lo;0;L;;;;;N;;;;;
+D2E1;HANGUL SYLLABLE TYILT;Lo;0;L;;;;;N;;;;;
+D2E2;HANGUL SYLLABLE TYILP;Lo;0;L;;;;;N;;;;;
+D2E3;HANGUL SYLLABLE TYILH;Lo;0;L;;;;;N;;;;;
+D2E4;HANGUL SYLLABLE TYIM;Lo;0;L;;;;;N;;;;;
+D2E5;HANGUL SYLLABLE TYIB;Lo;0;L;;;;;N;;;;;
+D2E6;HANGUL SYLLABLE TYIBS;Lo;0;L;;;;;N;;;;;
+D2E7;HANGUL SYLLABLE TYIS;Lo;0;L;;;;;N;;;;;
+D2E8;HANGUL SYLLABLE TYISS;Lo;0;L;;;;;N;;;;;
+D2E9;HANGUL SYLLABLE TYING;Lo;0;L;;;;;N;;;;;
+D2EA;HANGUL SYLLABLE TYIJ;Lo;0;L;;;;;N;;;;;
+D2EB;HANGUL SYLLABLE TYIC;Lo;0;L;;;;;N;;;;;
+D2EC;HANGUL SYLLABLE TYIK;Lo;0;L;;;;;N;;;;;
+D2ED;HANGUL SYLLABLE TYIT;Lo;0;L;;;;;N;;;;;
+D2EE;HANGUL SYLLABLE TYIP;Lo;0;L;;;;;N;;;;;
+D2EF;HANGUL SYLLABLE TYIH;Lo;0;L;;;;;N;;;;;
+D2F0;HANGUL SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+D2F1;HANGUL SYLLABLE TIG;Lo;0;L;;;;;N;;;;;
+D2F2;HANGUL SYLLABLE TIGG;Lo;0;L;;;;;N;;;;;
+D2F3;HANGUL SYLLABLE TIGS;Lo;0;L;;;;;N;;;;;
+D2F4;HANGUL SYLLABLE TIN;Lo;0;L;;;;;N;;;;;
+D2F5;HANGUL SYLLABLE TINI;Lo;0;L;;;;;N;;;;;
+D2F6;HANGUL SYLLABLE TINH;Lo;0;L;;;;;N;;;;;
+D2F7;HANGUL SYLLABLE TID;Lo;0;L;;;;;N;;;;;
+D2F8;HANGUL SYLLABLE TIL;Lo;0;L;;;;;N;;;;;
+D2F9;HANGUL SYLLABLE TILG;Lo;0;L;;;;;N;;;;;
+D2FA;HANGUL SYLLABLE TILM;Lo;0;L;;;;;N;;;;;
+D2FB;HANGUL SYLLABLE TILB;Lo;0;L;;;;;N;;;;;
+D2FC;HANGUL SYLLABLE TILS;Lo;0;L;;;;;N;;;;;
+D2FD;HANGUL SYLLABLE TILT;Lo;0;L;;;;;N;;;;;
+D2FE;HANGUL SYLLABLE TILP;Lo;0;L;;;;;N;;;;;
+D2FF;HANGUL SYLLABLE TILH;Lo;0;L;;;;;N;;;;;
+D300;HANGUL SYLLABLE TIM;Lo;0;L;;;;;N;;;;;
+D301;HANGUL SYLLABLE TIB;Lo;0;L;;;;;N;;;;;
+D302;HANGUL SYLLABLE TIBS;Lo;0;L;;;;;N;;;;;
+D303;HANGUL SYLLABLE TIS;Lo;0;L;;;;;N;;;;;
+D304;HANGUL SYLLABLE TISS;Lo;0;L;;;;;N;;;;;
+D305;HANGUL SYLLABLE TING;Lo;0;L;;;;;N;;;;;
+D306;HANGUL SYLLABLE TIJ;Lo;0;L;;;;;N;;;;;
+D307;HANGUL SYLLABLE TIC;Lo;0;L;;;;;N;;;;;
+D308;HANGUL SYLLABLE TIK;Lo;0;L;;;;;N;;;;;
+D309;HANGUL SYLLABLE TIT;Lo;0;L;;;;;N;;;;;
+D30A;HANGUL SYLLABLE TIP;Lo;0;L;;;;;N;;;;;
+D30B;HANGUL SYLLABLE TIH;Lo;0;L;;;;;N;;;;;
+D30C;HANGUL SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+D30D;HANGUL SYLLABLE PAG;Lo;0;L;;;;;N;;;;;
+D30E;HANGUL SYLLABLE PAGG;Lo;0;L;;;;;N;;;;;
+D30F;HANGUL SYLLABLE PAGS;Lo;0;L;;;;;N;;;;;
+D310;HANGUL SYLLABLE PAN;Lo;0;L;;;;;N;;;;;
+D311;HANGUL SYLLABLE PANI;Lo;0;L;;;;;N;;;;;
+D312;HANGUL SYLLABLE PANH;Lo;0;L;;;;;N;;;;;
+D313;HANGUL SYLLABLE PAD;Lo;0;L;;;;;N;;;;;
+D314;HANGUL SYLLABLE PAL;Lo;0;L;;;;;N;;;;;
+D315;HANGUL SYLLABLE PALG;Lo;0;L;;;;;N;;;;;
+D316;HANGUL SYLLABLE PALM;Lo;0;L;;;;;N;;;;;
+D317;HANGUL SYLLABLE PALB;Lo;0;L;;;;;N;;;;;
+D318;HANGUL SYLLABLE PALS;Lo;0;L;;;;;N;;;;;
+D319;HANGUL SYLLABLE PALT;Lo;0;L;;;;;N;;;;;
+D31A;HANGUL SYLLABLE PALP;Lo;0;L;;;;;N;;;;;
+D31B;HANGUL SYLLABLE PALH;Lo;0;L;;;;;N;;;;;
+D31C;HANGUL SYLLABLE PAM;Lo;0;L;;;;;N;;;;;
+D31D;HANGUL SYLLABLE PAB;Lo;0;L;;;;;N;;;;;
+D31E;HANGUL SYLLABLE PABS;Lo;0;L;;;;;N;;;;;
+D31F;HANGUL SYLLABLE PAS;Lo;0;L;;;;;N;;;;;
+D320;HANGUL SYLLABLE PASS;Lo;0;L;;;;;N;;;;;
+D321;HANGUL SYLLABLE PANG;Lo;0;L;;;;;N;;;;;
+D322;HANGUL SYLLABLE PAJ;Lo;0;L;;;;;N;;;;;
+D323;HANGUL SYLLABLE PAC;Lo;0;L;;;;;N;;;;;
+D324;HANGUL SYLLABLE PAK;Lo;0;L;;;;;N;;;;;
+D325;HANGUL SYLLABLE PAT;Lo;0;L;;;;;N;;;;;
+D326;HANGUL SYLLABLE PAP;Lo;0;L;;;;;N;;;;;
+D327;HANGUL SYLLABLE PAH;Lo;0;L;;;;;N;;;;;
+D328;HANGUL SYLLABLE PAE;Lo;0;L;;;;;N;;;;;
+D329;HANGUL SYLLABLE PAEG;Lo;0;L;;;;;N;;;;;
+D32A;HANGUL SYLLABLE PAEGG;Lo;0;L;;;;;N;;;;;
+D32B;HANGUL SYLLABLE PAEGS;Lo;0;L;;;;;N;;;;;
+D32C;HANGUL SYLLABLE PAEN;Lo;0;L;;;;;N;;;;;
+D32D;HANGUL SYLLABLE PAENI;Lo;0;L;;;;;N;;;;;
+D32E;HANGUL SYLLABLE PAENH;Lo;0;L;;;;;N;;;;;
+D32F;HANGUL SYLLABLE PAED;Lo;0;L;;;;;N;;;;;
+D330;HANGUL SYLLABLE PAEL;Lo;0;L;;;;;N;;;;;
+D331;HANGUL SYLLABLE PAELG;Lo;0;L;;;;;N;;;;;
+D332;HANGUL SYLLABLE PAELM;Lo;0;L;;;;;N;;;;;
+D333;HANGUL SYLLABLE PAELB;Lo;0;L;;;;;N;;;;;
+D334;HANGUL SYLLABLE PAELS;Lo;0;L;;;;;N;;;;;
+D335;HANGUL SYLLABLE PAELT;Lo;0;L;;;;;N;;;;;
+D336;HANGUL SYLLABLE PAELP;Lo;0;L;;;;;N;;;;;
+D337;HANGUL SYLLABLE PAELH;Lo;0;L;;;;;N;;;;;
+D338;HANGUL SYLLABLE PAEM;Lo;0;L;;;;;N;;;;;
+D339;HANGUL SYLLABLE PAEB;Lo;0;L;;;;;N;;;;;
+D33A;HANGUL SYLLABLE PAEBS;Lo;0;L;;;;;N;;;;;
+D33B;HANGUL SYLLABLE PAES;Lo;0;L;;;;;N;;;;;
+D33C;HANGUL SYLLABLE PAESS;Lo;0;L;;;;;N;;;;;
+D33D;HANGUL SYLLABLE PAENG;Lo;0;L;;;;;N;;;;;
+D33E;HANGUL SYLLABLE PAEJ;Lo;0;L;;;;;N;;;;;
+D33F;HANGUL SYLLABLE PAEC;Lo;0;L;;;;;N;;;;;
+D340;HANGUL SYLLABLE PAEK;Lo;0;L;;;;;N;;;;;
+D341;HANGUL SYLLABLE PAET;Lo;0;L;;;;;N;;;;;
+D342;HANGUL SYLLABLE PAEP;Lo;0;L;;;;;N;;;;;
+D343;HANGUL SYLLABLE PAEH;Lo;0;L;;;;;N;;;;;
+D344;HANGUL SYLLABLE PYA;Lo;0;L;;;;;N;;;;;
+D345;HANGUL SYLLABLE PYAG;Lo;0;L;;;;;N;;;;;
+D346;HANGUL SYLLABLE PYAGG;Lo;0;L;;;;;N;;;;;
+D347;HANGUL SYLLABLE PYAGS;Lo;0;L;;;;;N;;;;;
+D348;HANGUL SYLLABLE PYAN;Lo;0;L;;;;;N;;;;;
+D349;HANGUL SYLLABLE PYANI;Lo;0;L;;;;;N;;;;;
+D34A;HANGUL SYLLABLE PYANH;Lo;0;L;;;;;N;;;;;
+D34B;HANGUL SYLLABLE PYAD;Lo;0;L;;;;;N;;;;;
+D34C;HANGUL SYLLABLE PYAL;Lo;0;L;;;;;N;;;;;
+D34D;HANGUL SYLLABLE PYALG;Lo;0;L;;;;;N;;;;;
+D34E;HANGUL SYLLABLE PYALM;Lo;0;L;;;;;N;;;;;
+D34F;HANGUL SYLLABLE PYALB;Lo;0;L;;;;;N;;;;;
+D350;HANGUL SYLLABLE PYALS;Lo;0;L;;;;;N;;;;;
+D351;HANGUL SYLLABLE PYALT;Lo;0;L;;;;;N;;;;;
+D352;HANGUL SYLLABLE PYALP;Lo;0;L;;;;;N;;;;;
+D353;HANGUL SYLLABLE PYALH;Lo;0;L;;;;;N;;;;;
+D354;HANGUL SYLLABLE PYAM;Lo;0;L;;;;;N;;;;;
+D355;HANGUL SYLLABLE PYAB;Lo;0;L;;;;;N;;;;;
+D356;HANGUL SYLLABLE PYABS;Lo;0;L;;;;;N;;;;;
+D357;HANGUL SYLLABLE PYAS;Lo;0;L;;;;;N;;;;;
+D358;HANGUL SYLLABLE PYASS;Lo;0;L;;;;;N;;;;;
+D359;HANGUL SYLLABLE PYANG;Lo;0;L;;;;;N;;;;;
+D35A;HANGUL SYLLABLE PYAJ;Lo;0;L;;;;;N;;;;;
+D35B;HANGUL SYLLABLE PYAC;Lo;0;L;;;;;N;;;;;
+D35C;HANGUL SYLLABLE PYAK;Lo;0;L;;;;;N;;;;;
+D35D;HANGUL SYLLABLE PYAT;Lo;0;L;;;;;N;;;;;
+D35E;HANGUL SYLLABLE PYAP;Lo;0;L;;;;;N;;;;;
+D35F;HANGUL SYLLABLE PYAH;Lo;0;L;;;;;N;;;;;
+D360;HANGUL SYLLABLE PYAE;Lo;0;L;;;;;N;;;;;
+D361;HANGUL SYLLABLE PYAEG;Lo;0;L;;;;;N;;;;;
+D362;HANGUL SYLLABLE PYAEGG;Lo;0;L;;;;;N;;;;;
+D363;HANGUL SYLLABLE PYAEGS;Lo;0;L;;;;;N;;;;;
+D364;HANGUL SYLLABLE PYAEN;Lo;0;L;;;;;N;;;;;
+D365;HANGUL SYLLABLE PYAENI;Lo;0;L;;;;;N;;;;;
+D366;HANGUL SYLLABLE PYAENH;Lo;0;L;;;;;N;;;;;
+D367;HANGUL SYLLABLE PYAED;Lo;0;L;;;;;N;;;;;
+D368;HANGUL SYLLABLE PYAEL;Lo;0;L;;;;;N;;;;;
+D369;HANGUL SYLLABLE PYAELG;Lo;0;L;;;;;N;;;;;
+D36A;HANGUL SYLLABLE PYAELM;Lo;0;L;;;;;N;;;;;
+D36B;HANGUL SYLLABLE PYAELB;Lo;0;L;;;;;N;;;;;
+D36C;HANGUL SYLLABLE PYAELS;Lo;0;L;;;;;N;;;;;
+D36D;HANGUL SYLLABLE PYAELT;Lo;0;L;;;;;N;;;;;
+D36E;HANGUL SYLLABLE PYAELP;Lo;0;L;;;;;N;;;;;
+D36F;HANGUL SYLLABLE PYAELH;Lo;0;L;;;;;N;;;;;
+D370;HANGUL SYLLABLE PYAEM;Lo;0;L;;;;;N;;;;;
+D371;HANGUL SYLLABLE PYAEB;Lo;0;L;;;;;N;;;;;
+D372;HANGUL SYLLABLE PYAEBS;Lo;0;L;;;;;N;;;;;
+D373;HANGUL SYLLABLE PYAES;Lo;0;L;;;;;N;;;;;
+D374;HANGUL SYLLABLE PYAESS;Lo;0;L;;;;;N;;;;;
+D375;HANGUL SYLLABLE PYAENG;Lo;0;L;;;;;N;;;;;
+D376;HANGUL SYLLABLE PYAEJ;Lo;0;L;;;;;N;;;;;
+D377;HANGUL SYLLABLE PYAEC;Lo;0;L;;;;;N;;;;;
+D378;HANGUL SYLLABLE PYAEK;Lo;0;L;;;;;N;;;;;
+D379;HANGUL SYLLABLE PYAET;Lo;0;L;;;;;N;;;;;
+D37A;HANGUL SYLLABLE PYAEP;Lo;0;L;;;;;N;;;;;
+D37B;HANGUL SYLLABLE PYAEH;Lo;0;L;;;;;N;;;;;
+D37C;HANGUL SYLLABLE PEO;Lo;0;L;;;;;N;;;;;
+D37D;HANGUL SYLLABLE PEOG;Lo;0;L;;;;;N;;;;;
+D37E;HANGUL SYLLABLE PEOGG;Lo;0;L;;;;;N;;;;;
+D37F;HANGUL SYLLABLE PEOGS;Lo;0;L;;;;;N;;;;;
+D380;HANGUL SYLLABLE PEON;Lo;0;L;;;;;N;;;;;
+D381;HANGUL SYLLABLE PEONI;Lo;0;L;;;;;N;;;;;
+D382;HANGUL SYLLABLE PEONH;Lo;0;L;;;;;N;;;;;
+D383;HANGUL SYLLABLE PEOD;Lo;0;L;;;;;N;;;;;
+D384;HANGUL SYLLABLE PEOL;Lo;0;L;;;;;N;;;;;
+D385;HANGUL SYLLABLE PEOLG;Lo;0;L;;;;;N;;;;;
+D386;HANGUL SYLLABLE PEOLM;Lo;0;L;;;;;N;;;;;
+D387;HANGUL SYLLABLE PEOLB;Lo;0;L;;;;;N;;;;;
+D388;HANGUL SYLLABLE PEOLS;Lo;0;L;;;;;N;;;;;
+D389;HANGUL SYLLABLE PEOLT;Lo;0;L;;;;;N;;;;;
+D38A;HANGUL SYLLABLE PEOLP;Lo;0;L;;;;;N;;;;;
+D38B;HANGUL SYLLABLE PEOLH;Lo;0;L;;;;;N;;;;;
+D38C;HANGUL SYLLABLE PEOM;Lo;0;L;;;;;N;;;;;
+D38D;HANGUL SYLLABLE PEOB;Lo;0;L;;;;;N;;;;;
+D38E;HANGUL SYLLABLE PEOBS;Lo;0;L;;;;;N;;;;;
+D38F;HANGUL SYLLABLE PEOS;Lo;0;L;;;;;N;;;;;
+D390;HANGUL SYLLABLE PEOSS;Lo;0;L;;;;;N;;;;;
+D391;HANGUL SYLLABLE PEONG;Lo;0;L;;;;;N;;;;;
+D392;HANGUL SYLLABLE PEOJ;Lo;0;L;;;;;N;;;;;
+D393;HANGUL SYLLABLE PEOC;Lo;0;L;;;;;N;;;;;
+D394;HANGUL SYLLABLE PEOK;Lo;0;L;;;;;N;;;;;
+D395;HANGUL SYLLABLE PEOT;Lo;0;L;;;;;N;;;;;
+D396;HANGUL SYLLABLE PEOP;Lo;0;L;;;;;N;;;;;
+D397;HANGUL SYLLABLE PEOH;Lo;0;L;;;;;N;;;;;
+D398;HANGUL SYLLABLE PE;Lo;0;L;;;;;N;;;;;
+D399;HANGUL SYLLABLE PEG;Lo;0;L;;;;;N;;;;;
+D39A;HANGUL SYLLABLE PEGG;Lo;0;L;;;;;N;;;;;
+D39B;HANGUL SYLLABLE PEGS;Lo;0;L;;;;;N;;;;;
+D39C;HANGUL SYLLABLE PEN;Lo;0;L;;;;;N;;;;;
+D39D;HANGUL SYLLABLE PENI;Lo;0;L;;;;;N;;;;;
+D39E;HANGUL SYLLABLE PENH;Lo;0;L;;;;;N;;;;;
+D39F;HANGUL SYLLABLE PED;Lo;0;L;;;;;N;;;;;
+D3A0;HANGUL SYLLABLE PEL;Lo;0;L;;;;;N;;;;;
+D3A1;HANGUL SYLLABLE PELG;Lo;0;L;;;;;N;;;;;
+D3A2;HANGUL SYLLABLE PELM;Lo;0;L;;;;;N;;;;;
+D3A3;HANGUL SYLLABLE PELB;Lo;0;L;;;;;N;;;;;
+D3A4;HANGUL SYLLABLE PELS;Lo;0;L;;;;;N;;;;;
+D3A5;HANGUL SYLLABLE PELT;Lo;0;L;;;;;N;;;;;
+D3A6;HANGUL SYLLABLE PELP;Lo;0;L;;;;;N;;;;;
+D3A7;HANGUL SYLLABLE PELH;Lo;0;L;;;;;N;;;;;
+D3A8;HANGUL SYLLABLE PEM;Lo;0;L;;;;;N;;;;;
+D3A9;HANGUL SYLLABLE PEB;Lo;0;L;;;;;N;;;;;
+D3AA;HANGUL SYLLABLE PEBS;Lo;0;L;;;;;N;;;;;
+D3AB;HANGUL SYLLABLE PES;Lo;0;L;;;;;N;;;;;
+D3AC;HANGUL SYLLABLE PESS;Lo;0;L;;;;;N;;;;;
+D3AD;HANGUL SYLLABLE PENG;Lo;0;L;;;;;N;;;;;
+D3AE;HANGUL SYLLABLE PEJ;Lo;0;L;;;;;N;;;;;
+D3AF;HANGUL SYLLABLE PEC;Lo;0;L;;;;;N;;;;;
+D3B0;HANGUL SYLLABLE PEK;Lo;0;L;;;;;N;;;;;
+D3B1;HANGUL SYLLABLE PET;Lo;0;L;;;;;N;;;;;
+D3B2;HANGUL SYLLABLE PEP;Lo;0;L;;;;;N;;;;;
+D3B3;HANGUL SYLLABLE PEH;Lo;0;L;;;;;N;;;;;
+D3B4;HANGUL SYLLABLE PYEO;Lo;0;L;;;;;N;;;;;
+D3B5;HANGUL SYLLABLE PYEOG;Lo;0;L;;;;;N;;;;;
+D3B6;HANGUL SYLLABLE PYEOGG;Lo;0;L;;;;;N;;;;;
+D3B7;HANGUL SYLLABLE PYEOGS;Lo;0;L;;;;;N;;;;;
+D3B8;HANGUL SYLLABLE PYEON;Lo;0;L;;;;;N;;;;;
+D3B9;HANGUL SYLLABLE PYEONI;Lo;0;L;;;;;N;;;;;
+D3BA;HANGUL SYLLABLE PYEONH;Lo;0;L;;;;;N;;;;;
+D3BB;HANGUL SYLLABLE PYEOD;Lo;0;L;;;;;N;;;;;
+D3BC;HANGUL SYLLABLE PYEOL;Lo;0;L;;;;;N;;;;;
+D3BD;HANGUL SYLLABLE PYEOLG;Lo;0;L;;;;;N;;;;;
+D3BE;HANGUL SYLLABLE PYEOLM;Lo;0;L;;;;;N;;;;;
+D3BF;HANGUL SYLLABLE PYEOLB;Lo;0;L;;;;;N;;;;;
+D3C0;HANGUL SYLLABLE PYEOLS;Lo;0;L;;;;;N;;;;;
+D3C1;HANGUL SYLLABLE PYEOLT;Lo;0;L;;;;;N;;;;;
+D3C2;HANGUL SYLLABLE PYEOLP;Lo;0;L;;;;;N;;;;;
+D3C3;HANGUL SYLLABLE PYEOLH;Lo;0;L;;;;;N;;;;;
+D3C4;HANGUL SYLLABLE PYEOM;Lo;0;L;;;;;N;;;;;
+D3C5;HANGUL SYLLABLE PYEOB;Lo;0;L;;;;;N;;;;;
+D3C6;HANGUL SYLLABLE PYEOBS;Lo;0;L;;;;;N;;;;;
+D3C7;HANGUL SYLLABLE PYEOS;Lo;0;L;;;;;N;;;;;
+D3C8;HANGUL SYLLABLE PYEOSS;Lo;0;L;;;;;N;;;;;
+D3C9;HANGUL SYLLABLE PYEONG;Lo;0;L;;;;;N;;;;;
+D3CA;HANGUL SYLLABLE PYEOJ;Lo;0;L;;;;;N;;;;;
+D3CB;HANGUL SYLLABLE PYEOC;Lo;0;L;;;;;N;;;;;
+D3CC;HANGUL SYLLABLE PYEOK;Lo;0;L;;;;;N;;;;;
+D3CD;HANGUL SYLLABLE PYEOT;Lo;0;L;;;;;N;;;;;
+D3CE;HANGUL SYLLABLE PYEOP;Lo;0;L;;;;;N;;;;;
+D3CF;HANGUL SYLLABLE PYEOH;Lo;0;L;;;;;N;;;;;
+D3D0;HANGUL SYLLABLE PYE;Lo;0;L;;;;;N;;;;;
+D3D1;HANGUL SYLLABLE PYEG;Lo;0;L;;;;;N;;;;;
+D3D2;HANGUL SYLLABLE PYEGG;Lo;0;L;;;;;N;;;;;
+D3D3;HANGUL SYLLABLE PYEGS;Lo;0;L;;;;;N;;;;;
+D3D4;HANGUL SYLLABLE PYEN;Lo;0;L;;;;;N;;;;;
+D3D5;HANGUL SYLLABLE PYENI;Lo;0;L;;;;;N;;;;;
+D3D6;HANGUL SYLLABLE PYENH;Lo;0;L;;;;;N;;;;;
+D3D7;HANGUL SYLLABLE PYED;Lo;0;L;;;;;N;;;;;
+D3D8;HANGUL SYLLABLE PYEL;Lo;0;L;;;;;N;;;;;
+D3D9;HANGUL SYLLABLE PYELG;Lo;0;L;;;;;N;;;;;
+D3DA;HANGUL SYLLABLE PYELM;Lo;0;L;;;;;N;;;;;
+D3DB;HANGUL SYLLABLE PYELB;Lo;0;L;;;;;N;;;;;
+D3DC;HANGUL SYLLABLE PYELS;Lo;0;L;;;;;N;;;;;
+D3DD;HANGUL SYLLABLE PYELT;Lo;0;L;;;;;N;;;;;
+D3DE;HANGUL SYLLABLE PYELP;Lo;0;L;;;;;N;;;;;
+D3DF;HANGUL SYLLABLE PYELH;Lo;0;L;;;;;N;;;;;
+D3E0;HANGUL SYLLABLE PYEM;Lo;0;L;;;;;N;;;;;
+D3E1;HANGUL SYLLABLE PYEB;Lo;0;L;;;;;N;;;;;
+D3E2;HANGUL SYLLABLE PYEBS;Lo;0;L;;;;;N;;;;;
+D3E3;HANGUL SYLLABLE PYES;Lo;0;L;;;;;N;;;;;
+D3E4;HANGUL SYLLABLE PYESS;Lo;0;L;;;;;N;;;;;
+D3E5;HANGUL SYLLABLE PYENG;Lo;0;L;;;;;N;;;;;
+D3E6;HANGUL SYLLABLE PYEJ;Lo;0;L;;;;;N;;;;;
+D3E7;HANGUL SYLLABLE PYEC;Lo;0;L;;;;;N;;;;;
+D3E8;HANGUL SYLLABLE PYEK;Lo;0;L;;;;;N;;;;;
+D3E9;HANGUL SYLLABLE PYET;Lo;0;L;;;;;N;;;;;
+D3EA;HANGUL SYLLABLE PYEP;Lo;0;L;;;;;N;;;;;
+D3EB;HANGUL SYLLABLE PYEH;Lo;0;L;;;;;N;;;;;
+D3EC;HANGUL SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+D3ED;HANGUL SYLLABLE POG;Lo;0;L;;;;;N;;;;;
+D3EE;HANGUL SYLLABLE POGG;Lo;0;L;;;;;N;;;;;
+D3EF;HANGUL SYLLABLE POGS;Lo;0;L;;;;;N;;;;;
+D3F0;HANGUL SYLLABLE PON;Lo;0;L;;;;;N;;;;;
+D3F1;HANGUL SYLLABLE PONI;Lo;0;L;;;;;N;;;;;
+D3F2;HANGUL SYLLABLE PONH;Lo;0;L;;;;;N;;;;;
+D3F3;HANGUL SYLLABLE POD;Lo;0;L;;;;;N;;;;;
+D3F4;HANGUL SYLLABLE POL;Lo;0;L;;;;;N;;;;;
+D3F5;HANGUL SYLLABLE POLG;Lo;0;L;;;;;N;;;;;
+D3F6;HANGUL SYLLABLE POLM;Lo;0;L;;;;;N;;;;;
+D3F7;HANGUL SYLLABLE POLB;Lo;0;L;;;;;N;;;;;
+D3F8;HANGUL SYLLABLE POLS;Lo;0;L;;;;;N;;;;;
+D3F9;HANGUL SYLLABLE POLT;Lo;0;L;;;;;N;;;;;
+D3FA;HANGUL SYLLABLE POLP;Lo;0;L;;;;;N;;;;;
+D3FB;HANGUL SYLLABLE POLH;Lo;0;L;;;;;N;;;;;
+D3FC;HANGUL SYLLABLE POM;Lo;0;L;;;;;N;;;;;
+D3FD;HANGUL SYLLABLE POB;Lo;0;L;;;;;N;;;;;
+D3FE;HANGUL SYLLABLE POBS;Lo;0;L;;;;;N;;;;;
+D3FF;HANGUL SYLLABLE POS;Lo;0;L;;;;;N;;;;;
+D400;HANGUL SYLLABLE POSS;Lo;0;L;;;;;N;;;;;
+D401;HANGUL SYLLABLE PONG;Lo;0;L;;;;;N;;;;;
+D402;HANGUL SYLLABLE POJ;Lo;0;L;;;;;N;;;;;
+D403;HANGUL SYLLABLE POC;Lo;0;L;;;;;N;;;;;
+D404;HANGUL SYLLABLE POK;Lo;0;L;;;;;N;;;;;
+D405;HANGUL SYLLABLE POT;Lo;0;L;;;;;N;;;;;
+D406;HANGUL SYLLABLE POP;Lo;0;L;;;;;N;;;;;
+D407;HANGUL SYLLABLE POH;Lo;0;L;;;;;N;;;;;
+D408;HANGUL SYLLABLE PWA;Lo;0;L;;;;;N;;;;;
+D409;HANGUL SYLLABLE PWAG;Lo;0;L;;;;;N;;;;;
+D40A;HANGUL SYLLABLE PWAGG;Lo;0;L;;;;;N;;;;;
+D40B;HANGUL SYLLABLE PWAGS;Lo;0;L;;;;;N;;;;;
+D40C;HANGUL SYLLABLE PWAN;Lo;0;L;;;;;N;;;;;
+D40D;HANGUL SYLLABLE PWANI;Lo;0;L;;;;;N;;;;;
+D40E;HANGUL SYLLABLE PWANH;Lo;0;L;;;;;N;;;;;
+D40F;HANGUL SYLLABLE PWAD;Lo;0;L;;;;;N;;;;;
+D410;HANGUL SYLLABLE PWAL;Lo;0;L;;;;;N;;;;;
+D411;HANGUL SYLLABLE PWALG;Lo;0;L;;;;;N;;;;;
+D412;HANGUL SYLLABLE PWALM;Lo;0;L;;;;;N;;;;;
+D413;HANGUL SYLLABLE PWALB;Lo;0;L;;;;;N;;;;;
+D414;HANGUL SYLLABLE PWALS;Lo;0;L;;;;;N;;;;;
+D415;HANGUL SYLLABLE PWALT;Lo;0;L;;;;;N;;;;;
+D416;HANGUL SYLLABLE PWALP;Lo;0;L;;;;;N;;;;;
+D417;HANGUL SYLLABLE PWALH;Lo;0;L;;;;;N;;;;;
+D418;HANGUL SYLLABLE PWAM;Lo;0;L;;;;;N;;;;;
+D419;HANGUL SYLLABLE PWAB;Lo;0;L;;;;;N;;;;;
+D41A;HANGUL SYLLABLE PWABS;Lo;0;L;;;;;N;;;;;
+D41B;HANGUL SYLLABLE PWAS;Lo;0;L;;;;;N;;;;;
+D41C;HANGUL SYLLABLE PWASS;Lo;0;L;;;;;N;;;;;
+D41D;HANGUL SYLLABLE PWANG;Lo;0;L;;;;;N;;;;;
+D41E;HANGUL SYLLABLE PWAJ;Lo;0;L;;;;;N;;;;;
+D41F;HANGUL SYLLABLE PWAC;Lo;0;L;;;;;N;;;;;
+D420;HANGUL SYLLABLE PWAK;Lo;0;L;;;;;N;;;;;
+D421;HANGUL SYLLABLE PWAT;Lo;0;L;;;;;N;;;;;
+D422;HANGUL SYLLABLE PWAP;Lo;0;L;;;;;N;;;;;
+D423;HANGUL SYLLABLE PWAH;Lo;0;L;;;;;N;;;;;
+D424;HANGUL SYLLABLE PWAE;Lo;0;L;;;;;N;;;;;
+D425;HANGUL SYLLABLE PWAEG;Lo;0;L;;;;;N;;;;;
+D426;HANGUL SYLLABLE PWAEGG;Lo;0;L;;;;;N;;;;;
+D427;HANGUL SYLLABLE PWAEGS;Lo;0;L;;;;;N;;;;;
+D428;HANGUL SYLLABLE PWAEN;Lo;0;L;;;;;N;;;;;
+D429;HANGUL SYLLABLE PWAENI;Lo;0;L;;;;;N;;;;;
+D42A;HANGUL SYLLABLE PWAENH;Lo;0;L;;;;;N;;;;;
+D42B;HANGUL SYLLABLE PWAED;Lo;0;L;;;;;N;;;;;
+D42C;HANGUL SYLLABLE PWAEL;Lo;0;L;;;;;N;;;;;
+D42D;HANGUL SYLLABLE PWAELG;Lo;0;L;;;;;N;;;;;
+D42E;HANGUL SYLLABLE PWAELM;Lo;0;L;;;;;N;;;;;
+D42F;HANGUL SYLLABLE PWAELB;Lo;0;L;;;;;N;;;;;
+D430;HANGUL SYLLABLE PWAELS;Lo;0;L;;;;;N;;;;;
+D431;HANGUL SYLLABLE PWAELT;Lo;0;L;;;;;N;;;;;
+D432;HANGUL SYLLABLE PWAELP;Lo;0;L;;;;;N;;;;;
+D433;HANGUL SYLLABLE PWAELH;Lo;0;L;;;;;N;;;;;
+D434;HANGUL SYLLABLE PWAEM;Lo;0;L;;;;;N;;;;;
+D435;HANGUL SYLLABLE PWAEB;Lo;0;L;;;;;N;;;;;
+D436;HANGUL SYLLABLE PWAEBS;Lo;0;L;;;;;N;;;;;
+D437;HANGUL SYLLABLE PWAES;Lo;0;L;;;;;N;;;;;
+D438;HANGUL SYLLABLE PWAESS;Lo;0;L;;;;;N;;;;;
+D439;HANGUL SYLLABLE PWAENG;Lo;0;L;;;;;N;;;;;
+D43A;HANGUL SYLLABLE PWAEJ;Lo;0;L;;;;;N;;;;;
+D43B;HANGUL SYLLABLE PWAEC;Lo;0;L;;;;;N;;;;;
+D43C;HANGUL SYLLABLE PWAEK;Lo;0;L;;;;;N;;;;;
+D43D;HANGUL SYLLABLE PWAET;Lo;0;L;;;;;N;;;;;
+D43E;HANGUL SYLLABLE PWAEP;Lo;0;L;;;;;N;;;;;
+D43F;HANGUL SYLLABLE PWAEH;Lo;0;L;;;;;N;;;;;
+D440;HANGUL SYLLABLE POE;Lo;0;L;;;;;N;;;;;
+D441;HANGUL SYLLABLE POEG;Lo;0;L;;;;;N;;;;;
+D442;HANGUL SYLLABLE POEGG;Lo;0;L;;;;;N;;;;;
+D443;HANGUL SYLLABLE POEGS;Lo;0;L;;;;;N;;;;;
+D444;HANGUL SYLLABLE POEN;Lo;0;L;;;;;N;;;;;
+D445;HANGUL SYLLABLE POENI;Lo;0;L;;;;;N;;;;;
+D446;HANGUL SYLLABLE POENH;Lo;0;L;;;;;N;;;;;
+D447;HANGUL SYLLABLE POED;Lo;0;L;;;;;N;;;;;
+D448;HANGUL SYLLABLE POEL;Lo;0;L;;;;;N;;;;;
+D449;HANGUL SYLLABLE POELG;Lo;0;L;;;;;N;;;;;
+D44A;HANGUL SYLLABLE POELM;Lo;0;L;;;;;N;;;;;
+D44B;HANGUL SYLLABLE POELB;Lo;0;L;;;;;N;;;;;
+D44C;HANGUL SYLLABLE POELS;Lo;0;L;;;;;N;;;;;
+D44D;HANGUL SYLLABLE POELT;Lo;0;L;;;;;N;;;;;
+D44E;HANGUL SYLLABLE POELP;Lo;0;L;;;;;N;;;;;
+D44F;HANGUL SYLLABLE POELH;Lo;0;L;;;;;N;;;;;
+D450;HANGUL SYLLABLE POEM;Lo;0;L;;;;;N;;;;;
+D451;HANGUL SYLLABLE POEB;Lo;0;L;;;;;N;;;;;
+D452;HANGUL SYLLABLE POEBS;Lo;0;L;;;;;N;;;;;
+D453;HANGUL SYLLABLE POES;Lo;0;L;;;;;N;;;;;
+D454;HANGUL SYLLABLE POESS;Lo;0;L;;;;;N;;;;;
+D455;HANGUL SYLLABLE POENG;Lo;0;L;;;;;N;;;;;
+D456;HANGUL SYLLABLE POEJ;Lo;0;L;;;;;N;;;;;
+D457;HANGUL SYLLABLE POEC;Lo;0;L;;;;;N;;;;;
+D458;HANGUL SYLLABLE POEK;Lo;0;L;;;;;N;;;;;
+D459;HANGUL SYLLABLE POET;Lo;0;L;;;;;N;;;;;
+D45A;HANGUL SYLLABLE POEP;Lo;0;L;;;;;N;;;;;
+D45B;HANGUL SYLLABLE POEH;Lo;0;L;;;;;N;;;;;
+D45C;HANGUL SYLLABLE PYO;Lo;0;L;;;;;N;;;;;
+D45D;HANGUL SYLLABLE PYOG;Lo;0;L;;;;;N;;;;;
+D45E;HANGUL SYLLABLE PYOGG;Lo;0;L;;;;;N;;;;;
+D45F;HANGUL SYLLABLE PYOGS;Lo;0;L;;;;;N;;;;;
+D460;HANGUL SYLLABLE PYON;Lo;0;L;;;;;N;;;;;
+D461;HANGUL SYLLABLE PYONI;Lo;0;L;;;;;N;;;;;
+D462;HANGUL SYLLABLE PYONH;Lo;0;L;;;;;N;;;;;
+D463;HANGUL SYLLABLE PYOD;Lo;0;L;;;;;N;;;;;
+D464;HANGUL SYLLABLE PYOL;Lo;0;L;;;;;N;;;;;
+D465;HANGUL SYLLABLE PYOLG;Lo;0;L;;;;;N;;;;;
+D466;HANGUL SYLLABLE PYOLM;Lo;0;L;;;;;N;;;;;
+D467;HANGUL SYLLABLE PYOLB;Lo;0;L;;;;;N;;;;;
+D468;HANGUL SYLLABLE PYOLS;Lo;0;L;;;;;N;;;;;
+D469;HANGUL SYLLABLE PYOLT;Lo;0;L;;;;;N;;;;;
+D46A;HANGUL SYLLABLE PYOLP;Lo;0;L;;;;;N;;;;;
+D46B;HANGUL SYLLABLE PYOLH;Lo;0;L;;;;;N;;;;;
+D46C;HANGUL SYLLABLE PYOM;Lo;0;L;;;;;N;;;;;
+D46D;HANGUL SYLLABLE PYOB;Lo;0;L;;;;;N;;;;;
+D46E;HANGUL SYLLABLE PYOBS;Lo;0;L;;;;;N;;;;;
+D46F;HANGUL SYLLABLE PYOS;Lo;0;L;;;;;N;;;;;
+D470;HANGUL SYLLABLE PYOSS;Lo;0;L;;;;;N;;;;;
+D471;HANGUL SYLLABLE PYONG;Lo;0;L;;;;;N;;;;;
+D472;HANGUL SYLLABLE PYOJ;Lo;0;L;;;;;N;;;;;
+D473;HANGUL SYLLABLE PYOC;Lo;0;L;;;;;N;;;;;
+D474;HANGUL SYLLABLE PYOK;Lo;0;L;;;;;N;;;;;
+D475;HANGUL SYLLABLE PYOT;Lo;0;L;;;;;N;;;;;
+D476;HANGUL SYLLABLE PYOP;Lo;0;L;;;;;N;;;;;
+D477;HANGUL SYLLABLE PYOH;Lo;0;L;;;;;N;;;;;
+D478;HANGUL SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+D479;HANGUL SYLLABLE PUG;Lo;0;L;;;;;N;;;;;
+D47A;HANGUL SYLLABLE PUGG;Lo;0;L;;;;;N;;;;;
+D47B;HANGUL SYLLABLE PUGS;Lo;0;L;;;;;N;;;;;
+D47C;HANGUL SYLLABLE PUN;Lo;0;L;;;;;N;;;;;
+D47D;HANGUL SYLLABLE PUNI;Lo;0;L;;;;;N;;;;;
+D47E;HANGUL SYLLABLE PUNH;Lo;0;L;;;;;N;;;;;
+D47F;HANGUL SYLLABLE PUD;Lo;0;L;;;;;N;;;;;
+D480;HANGUL SYLLABLE PUL;Lo;0;L;;;;;N;;;;;
+D481;HANGUL SYLLABLE PULG;Lo;0;L;;;;;N;;;;;
+D482;HANGUL SYLLABLE PULM;Lo;0;L;;;;;N;;;;;
+D483;HANGUL SYLLABLE PULB;Lo;0;L;;;;;N;;;;;
+D484;HANGUL SYLLABLE PULS;Lo;0;L;;;;;N;;;;;
+D485;HANGUL SYLLABLE PULT;Lo;0;L;;;;;N;;;;;
+D486;HANGUL SYLLABLE PULP;Lo;0;L;;;;;N;;;;;
+D487;HANGUL SYLLABLE PULH;Lo;0;L;;;;;N;;;;;
+D488;HANGUL SYLLABLE PUM;Lo;0;L;;;;;N;;;;;
+D489;HANGUL SYLLABLE PUB;Lo;0;L;;;;;N;;;;;
+D48A;HANGUL SYLLABLE PUBS;Lo;0;L;;;;;N;;;;;
+D48B;HANGUL SYLLABLE PUS;Lo;0;L;;;;;N;;;;;
+D48C;HANGUL SYLLABLE PUSS;Lo;0;L;;;;;N;;;;;
+D48D;HANGUL SYLLABLE PUNG;Lo;0;L;;;;;N;;;;;
+D48E;HANGUL SYLLABLE PUJ;Lo;0;L;;;;;N;;;;;
+D48F;HANGUL SYLLABLE PUC;Lo;0;L;;;;;N;;;;;
+D490;HANGUL SYLLABLE PUK;Lo;0;L;;;;;N;;;;;
+D491;HANGUL SYLLABLE PUT;Lo;0;L;;;;;N;;;;;
+D492;HANGUL SYLLABLE PUP;Lo;0;L;;;;;N;;;;;
+D493;HANGUL SYLLABLE PUH;Lo;0;L;;;;;N;;;;;
+D494;HANGUL SYLLABLE PWEO;Lo;0;L;;;;;N;;;;;
+D495;HANGUL SYLLABLE PWEOG;Lo;0;L;;;;;N;;;;;
+D496;HANGUL SYLLABLE PWEOGG;Lo;0;L;;;;;N;;;;;
+D497;HANGUL SYLLABLE PWEOGS;Lo;0;L;;;;;N;;;;;
+D498;HANGUL SYLLABLE PWEON;Lo;0;L;;;;;N;;;;;
+D499;HANGUL SYLLABLE PWEONI;Lo;0;L;;;;;N;;;;;
+D49A;HANGUL SYLLABLE PWEONH;Lo;0;L;;;;;N;;;;;
+D49B;HANGUL SYLLABLE PWEOD;Lo;0;L;;;;;N;;;;;
+D49C;HANGUL SYLLABLE PWEOL;Lo;0;L;;;;;N;;;;;
+D49D;HANGUL SYLLABLE PWEOLG;Lo;0;L;;;;;N;;;;;
+D49E;HANGUL SYLLABLE PWEOLM;Lo;0;L;;;;;N;;;;;
+D49F;HANGUL SYLLABLE PWEOLB;Lo;0;L;;;;;N;;;;;
+D4A0;HANGUL SYLLABLE PWEOLS;Lo;0;L;;;;;N;;;;;
+D4A1;HANGUL SYLLABLE PWEOLT;Lo;0;L;;;;;N;;;;;
+D4A2;HANGUL SYLLABLE PWEOLP;Lo;0;L;;;;;N;;;;;
+D4A3;HANGUL SYLLABLE PWEOLH;Lo;0;L;;;;;N;;;;;
+D4A4;HANGUL SYLLABLE PWEOM;Lo;0;L;;;;;N;;;;;
+D4A5;HANGUL SYLLABLE PWEOB;Lo;0;L;;;;;N;;;;;
+D4A6;HANGUL SYLLABLE PWEOBS;Lo;0;L;;;;;N;;;;;
+D4A7;HANGUL SYLLABLE PWEOS;Lo;0;L;;;;;N;;;;;
+D4A8;HANGUL SYLLABLE PWEOSS;Lo;0;L;;;;;N;;;;;
+D4A9;HANGUL SYLLABLE PWEONG;Lo;0;L;;;;;N;;;;;
+D4AA;HANGUL SYLLABLE PWEOJ;Lo;0;L;;;;;N;;;;;
+D4AB;HANGUL SYLLABLE PWEOC;Lo;0;L;;;;;N;;;;;
+D4AC;HANGUL SYLLABLE PWEOK;Lo;0;L;;;;;N;;;;;
+D4AD;HANGUL SYLLABLE PWEOT;Lo;0;L;;;;;N;;;;;
+D4AE;HANGUL SYLLABLE PWEOP;Lo;0;L;;;;;N;;;;;
+D4AF;HANGUL SYLLABLE PWEOH;Lo;0;L;;;;;N;;;;;
+D4B0;HANGUL SYLLABLE PWE;Lo;0;L;;;;;N;;;;;
+D4B1;HANGUL SYLLABLE PWEG;Lo;0;L;;;;;N;;;;;
+D4B2;HANGUL SYLLABLE PWEGG;Lo;0;L;;;;;N;;;;;
+D4B3;HANGUL SYLLABLE PWEGS;Lo;0;L;;;;;N;;;;;
+D4B4;HANGUL SYLLABLE PWEN;Lo;0;L;;;;;N;;;;;
+D4B5;HANGUL SYLLABLE PWENI;Lo;0;L;;;;;N;;;;;
+D4B6;HANGUL SYLLABLE PWENH;Lo;0;L;;;;;N;;;;;
+D4B7;HANGUL SYLLABLE PWED;Lo;0;L;;;;;N;;;;;
+D4B8;HANGUL SYLLABLE PWEL;Lo;0;L;;;;;N;;;;;
+D4B9;HANGUL SYLLABLE PWELG;Lo;0;L;;;;;N;;;;;
+D4BA;HANGUL SYLLABLE PWELM;Lo;0;L;;;;;N;;;;;
+D4BB;HANGUL SYLLABLE PWELB;Lo;0;L;;;;;N;;;;;
+D4BC;HANGUL SYLLABLE PWELS;Lo;0;L;;;;;N;;;;;
+D4BD;HANGUL SYLLABLE PWELT;Lo;0;L;;;;;N;;;;;
+D4BE;HANGUL SYLLABLE PWELP;Lo;0;L;;;;;N;;;;;
+D4BF;HANGUL SYLLABLE PWELH;Lo;0;L;;;;;N;;;;;
+D4C0;HANGUL SYLLABLE PWEM;Lo;0;L;;;;;N;;;;;
+D4C1;HANGUL SYLLABLE PWEB;Lo;0;L;;;;;N;;;;;
+D4C2;HANGUL SYLLABLE PWEBS;Lo;0;L;;;;;N;;;;;
+D4C3;HANGUL SYLLABLE PWES;Lo;0;L;;;;;N;;;;;
+D4C4;HANGUL SYLLABLE PWESS;Lo;0;L;;;;;N;;;;;
+D4C5;HANGUL SYLLABLE PWENG;Lo;0;L;;;;;N;;;;;
+D4C6;HANGUL SYLLABLE PWEJ;Lo;0;L;;;;;N;;;;;
+D4C7;HANGUL SYLLABLE PWEC;Lo;0;L;;;;;N;;;;;
+D4C8;HANGUL SYLLABLE PWEK;Lo;0;L;;;;;N;;;;;
+D4C9;HANGUL SYLLABLE PWET;Lo;0;L;;;;;N;;;;;
+D4CA;HANGUL SYLLABLE PWEP;Lo;0;L;;;;;N;;;;;
+D4CB;HANGUL SYLLABLE PWEH;Lo;0;L;;;;;N;;;;;
+D4CC;HANGUL SYLLABLE PWI;Lo;0;L;;;;;N;;;;;
+D4CD;HANGUL SYLLABLE PWIG;Lo;0;L;;;;;N;;;;;
+D4CE;HANGUL SYLLABLE PWIGG;Lo;0;L;;;;;N;;;;;
+D4CF;HANGUL SYLLABLE PWIGS;Lo;0;L;;;;;N;;;;;
+D4D0;HANGUL SYLLABLE PWIN;Lo;0;L;;;;;N;;;;;
+D4D1;HANGUL SYLLABLE PWINI;Lo;0;L;;;;;N;;;;;
+D4D2;HANGUL SYLLABLE PWINH;Lo;0;L;;;;;N;;;;;
+D4D3;HANGUL SYLLABLE PWID;Lo;0;L;;;;;N;;;;;
+D4D4;HANGUL SYLLABLE PWIL;Lo;0;L;;;;;N;;;;;
+D4D5;HANGUL SYLLABLE PWILG;Lo;0;L;;;;;N;;;;;
+D4D6;HANGUL SYLLABLE PWILM;Lo;0;L;;;;;N;;;;;
+D4D7;HANGUL SYLLABLE PWILB;Lo;0;L;;;;;N;;;;;
+D4D8;HANGUL SYLLABLE PWILS;Lo;0;L;;;;;N;;;;;
+D4D9;HANGUL SYLLABLE PWILT;Lo;0;L;;;;;N;;;;;
+D4DA;HANGUL SYLLABLE PWILP;Lo;0;L;;;;;N;;;;;
+D4DB;HANGUL SYLLABLE PWILH;Lo;0;L;;;;;N;;;;;
+D4DC;HANGUL SYLLABLE PWIM;Lo;0;L;;;;;N;;;;;
+D4DD;HANGUL SYLLABLE PWIB;Lo;0;L;;;;;N;;;;;
+D4DE;HANGUL SYLLABLE PWIBS;Lo;0;L;;;;;N;;;;;
+D4DF;HANGUL SYLLABLE PWIS;Lo;0;L;;;;;N;;;;;
+D4E0;HANGUL SYLLABLE PWISS;Lo;0;L;;;;;N;;;;;
+D4E1;HANGUL SYLLABLE PWING;Lo;0;L;;;;;N;;;;;
+D4E2;HANGUL SYLLABLE PWIJ;Lo;0;L;;;;;N;;;;;
+D4E3;HANGUL SYLLABLE PWIC;Lo;0;L;;;;;N;;;;;
+D4E4;HANGUL SYLLABLE PWIK;Lo;0;L;;;;;N;;;;;
+D4E5;HANGUL SYLLABLE PWIT;Lo;0;L;;;;;N;;;;;
+D4E6;HANGUL SYLLABLE PWIP;Lo;0;L;;;;;N;;;;;
+D4E7;HANGUL SYLLABLE PWIH;Lo;0;L;;;;;N;;;;;
+D4E8;HANGUL SYLLABLE PYU;Lo;0;L;;;;;N;;;;;
+D4E9;HANGUL SYLLABLE PYUG;Lo;0;L;;;;;N;;;;;
+D4EA;HANGUL SYLLABLE PYUGG;Lo;0;L;;;;;N;;;;;
+D4EB;HANGUL SYLLABLE PYUGS;Lo;0;L;;;;;N;;;;;
+D4EC;HANGUL SYLLABLE PYUN;Lo;0;L;;;;;N;;;;;
+D4ED;HANGUL SYLLABLE PYUNI;Lo;0;L;;;;;N;;;;;
+D4EE;HANGUL SYLLABLE PYUNH;Lo;0;L;;;;;N;;;;;
+D4EF;HANGUL SYLLABLE PYUD;Lo;0;L;;;;;N;;;;;
+D4F0;HANGUL SYLLABLE PYUL;Lo;0;L;;;;;N;;;;;
+D4F1;HANGUL SYLLABLE PYULG;Lo;0;L;;;;;N;;;;;
+D4F2;HANGUL SYLLABLE PYULM;Lo;0;L;;;;;N;;;;;
+D4F3;HANGUL SYLLABLE PYULB;Lo;0;L;;;;;N;;;;;
+D4F4;HANGUL SYLLABLE PYULS;Lo;0;L;;;;;N;;;;;
+D4F5;HANGUL SYLLABLE PYULT;Lo;0;L;;;;;N;;;;;
+D4F6;HANGUL SYLLABLE PYULP;Lo;0;L;;;;;N;;;;;
+D4F7;HANGUL SYLLABLE PYULH;Lo;0;L;;;;;N;;;;;
+D4F8;HANGUL SYLLABLE PYUM;Lo;0;L;;;;;N;;;;;
+D4F9;HANGUL SYLLABLE PYUB;Lo;0;L;;;;;N;;;;;
+D4FA;HANGUL SYLLABLE PYUBS;Lo;0;L;;;;;N;;;;;
+D4FB;HANGUL SYLLABLE PYUS;Lo;0;L;;;;;N;;;;;
+D4FC;HANGUL SYLLABLE PYUSS;Lo;0;L;;;;;N;;;;;
+D4FD;HANGUL SYLLABLE PYUNG;Lo;0;L;;;;;N;;;;;
+D4FE;HANGUL SYLLABLE PYUJ;Lo;0;L;;;;;N;;;;;
+D4FF;HANGUL SYLLABLE PYUC;Lo;0;L;;;;;N;;;;;
+D500;HANGUL SYLLABLE PYUK;Lo;0;L;;;;;N;;;;;
+D501;HANGUL SYLLABLE PYUT;Lo;0;L;;;;;N;;;;;
+D502;HANGUL SYLLABLE PYUP;Lo;0;L;;;;;N;;;;;
+D503;HANGUL SYLLABLE PYUH;Lo;0;L;;;;;N;;;;;
+D504;HANGUL SYLLABLE PEU;Lo;0;L;;;;;N;;;;;
+D505;HANGUL SYLLABLE PEUG;Lo;0;L;;;;;N;;;;;
+D506;HANGUL SYLLABLE PEUGG;Lo;0;L;;;;;N;;;;;
+D507;HANGUL SYLLABLE PEUGS;Lo;0;L;;;;;N;;;;;
+D508;HANGUL SYLLABLE PEUN;Lo;0;L;;;;;N;;;;;
+D509;HANGUL SYLLABLE PEUNI;Lo;0;L;;;;;N;;;;;
+D50A;HANGUL SYLLABLE PEUNH;Lo;0;L;;;;;N;;;;;
+D50B;HANGUL SYLLABLE PEUD;Lo;0;L;;;;;N;;;;;
+D50C;HANGUL SYLLABLE PEUL;Lo;0;L;;;;;N;;;;;
+D50D;HANGUL SYLLABLE PEULG;Lo;0;L;;;;;N;;;;;
+D50E;HANGUL SYLLABLE PEULM;Lo;0;L;;;;;N;;;;;
+D50F;HANGUL SYLLABLE PEULB;Lo;0;L;;;;;N;;;;;
+D510;HANGUL SYLLABLE PEULS;Lo;0;L;;;;;N;;;;;
+D511;HANGUL SYLLABLE PEULT;Lo;0;L;;;;;N;;;;;
+D512;HANGUL SYLLABLE PEULP;Lo;0;L;;;;;N;;;;;
+D513;HANGUL SYLLABLE PEULH;Lo;0;L;;;;;N;;;;;
+D514;HANGUL SYLLABLE PEUM;Lo;0;L;;;;;N;;;;;
+D515;HANGUL SYLLABLE PEUB;Lo;0;L;;;;;N;;;;;
+D516;HANGUL SYLLABLE PEUBS;Lo;0;L;;;;;N;;;;;
+D517;HANGUL SYLLABLE PEUS;Lo;0;L;;;;;N;;;;;
+D518;HANGUL SYLLABLE PEUSS;Lo;0;L;;;;;N;;;;;
+D519;HANGUL SYLLABLE PEUNG;Lo;0;L;;;;;N;;;;;
+D51A;HANGUL SYLLABLE PEUJ;Lo;0;L;;;;;N;;;;;
+D51B;HANGUL SYLLABLE PEUC;Lo;0;L;;;;;N;;;;;
+D51C;HANGUL SYLLABLE PEUK;Lo;0;L;;;;;N;;;;;
+D51D;HANGUL SYLLABLE PEUT;Lo;0;L;;;;;N;;;;;
+D51E;HANGUL SYLLABLE PEUP;Lo;0;L;;;;;N;;;;;
+D51F;HANGUL SYLLABLE PEUH;Lo;0;L;;;;;N;;;;;
+D520;HANGUL SYLLABLE PYI;Lo;0;L;;;;;N;;;;;
+D521;HANGUL SYLLABLE PYIG;Lo;0;L;;;;;N;;;;;
+D522;HANGUL SYLLABLE PYIGG;Lo;0;L;;;;;N;;;;;
+D523;HANGUL SYLLABLE PYIGS;Lo;0;L;;;;;N;;;;;
+D524;HANGUL SYLLABLE PYIN;Lo;0;L;;;;;N;;;;;
+D525;HANGUL SYLLABLE PYINI;Lo;0;L;;;;;N;;;;;
+D526;HANGUL SYLLABLE PYINH;Lo;0;L;;;;;N;;;;;
+D527;HANGUL SYLLABLE PYID;Lo;0;L;;;;;N;;;;;
+D528;HANGUL SYLLABLE PYIL;Lo;0;L;;;;;N;;;;;
+D529;HANGUL SYLLABLE PYILG;Lo;0;L;;;;;N;;;;;
+D52A;HANGUL SYLLABLE PYILM;Lo;0;L;;;;;N;;;;;
+D52B;HANGUL SYLLABLE PYILB;Lo;0;L;;;;;N;;;;;
+D52C;HANGUL SYLLABLE PYILS;Lo;0;L;;;;;N;;;;;
+D52D;HANGUL SYLLABLE PYILT;Lo;0;L;;;;;N;;;;;
+D52E;HANGUL SYLLABLE PYILP;Lo;0;L;;;;;N;;;;;
+D52F;HANGUL SYLLABLE PYILH;Lo;0;L;;;;;N;;;;;
+D530;HANGUL SYLLABLE PYIM;Lo;0;L;;;;;N;;;;;
+D531;HANGUL SYLLABLE PYIB;Lo;0;L;;;;;N;;;;;
+D532;HANGUL SYLLABLE PYIBS;Lo;0;L;;;;;N;;;;;
+D533;HANGUL SYLLABLE PYIS;Lo;0;L;;;;;N;;;;;
+D534;HANGUL SYLLABLE PYISS;Lo;0;L;;;;;N;;;;;
+D535;HANGUL SYLLABLE PYING;Lo;0;L;;;;;N;;;;;
+D536;HANGUL SYLLABLE PYIJ;Lo;0;L;;;;;N;;;;;
+D537;HANGUL SYLLABLE PYIC;Lo;0;L;;;;;N;;;;;
+D538;HANGUL SYLLABLE PYIK;Lo;0;L;;;;;N;;;;;
+D539;HANGUL SYLLABLE PYIT;Lo;0;L;;;;;N;;;;;
+D53A;HANGUL SYLLABLE PYIP;Lo;0;L;;;;;N;;;;;
+D53B;HANGUL SYLLABLE PYIH;Lo;0;L;;;;;N;;;;;
+D53C;HANGUL SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+D53D;HANGUL SYLLABLE PIG;Lo;0;L;;;;;N;;;;;
+D53E;HANGUL SYLLABLE PIGG;Lo;0;L;;;;;N;;;;;
+D53F;HANGUL SYLLABLE PIGS;Lo;0;L;;;;;N;;;;;
+D540;HANGUL SYLLABLE PIN;Lo;0;L;;;;;N;;;;;
+D541;HANGUL SYLLABLE PINI;Lo;0;L;;;;;N;;;;;
+D542;HANGUL SYLLABLE PINH;Lo;0;L;;;;;N;;;;;
+D543;HANGUL SYLLABLE PID;Lo;0;L;;;;;N;;;;;
+D544;HANGUL SYLLABLE PIL;Lo;0;L;;;;;N;;;;;
+D545;HANGUL SYLLABLE PILG;Lo;0;L;;;;;N;;;;;
+D546;HANGUL SYLLABLE PILM;Lo;0;L;;;;;N;;;;;
+D547;HANGUL SYLLABLE PILB;Lo;0;L;;;;;N;;;;;
+D548;HANGUL SYLLABLE PILS;Lo;0;L;;;;;N;;;;;
+D549;HANGUL SYLLABLE PILT;Lo;0;L;;;;;N;;;;;
+D54A;HANGUL SYLLABLE PILP;Lo;0;L;;;;;N;;;;;
+D54B;HANGUL SYLLABLE PILH;Lo;0;L;;;;;N;;;;;
+D54C;HANGUL SYLLABLE PIM;Lo;0;L;;;;;N;;;;;
+D54D;HANGUL SYLLABLE PIB;Lo;0;L;;;;;N;;;;;
+D54E;HANGUL SYLLABLE PIBS;Lo;0;L;;;;;N;;;;;
+D54F;HANGUL SYLLABLE PIS;Lo;0;L;;;;;N;;;;;
+D550;HANGUL SYLLABLE PISS;Lo;0;L;;;;;N;;;;;
+D551;HANGUL SYLLABLE PING;Lo;0;L;;;;;N;;;;;
+D552;HANGUL SYLLABLE PIJ;Lo;0;L;;;;;N;;;;;
+D553;HANGUL SYLLABLE PIC;Lo;0;L;;;;;N;;;;;
+D554;HANGUL SYLLABLE PIK;Lo;0;L;;;;;N;;;;;
+D555;HANGUL SYLLABLE PIT;Lo;0;L;;;;;N;;;;;
+D556;HANGUL SYLLABLE PIP;Lo;0;L;;;;;N;;;;;
+D557;HANGUL SYLLABLE PIH;Lo;0;L;;;;;N;;;;;
+D558;HANGUL SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+D559;HANGUL SYLLABLE HAG;Lo;0;L;;;;;N;;;;;
+D55A;HANGUL SYLLABLE HAGG;Lo;0;L;;;;;N;;;;;
+D55B;HANGUL SYLLABLE HAGS;Lo;0;L;;;;;N;;;;;
+D55C;HANGUL SYLLABLE HAN;Lo;0;L;;;;;N;;;;;
+D55D;HANGUL SYLLABLE HANI;Lo;0;L;;;;;N;;;;;
+D55E;HANGUL SYLLABLE HANH;Lo;0;L;;;;;N;;;;;
+D55F;HANGUL SYLLABLE HAD;Lo;0;L;;;;;N;;;;;
+D560;HANGUL SYLLABLE HAL;Lo;0;L;;;;;N;;;;;
+D561;HANGUL SYLLABLE HALG;Lo;0;L;;;;;N;;;;;
+D562;HANGUL SYLLABLE HALM;Lo;0;L;;;;;N;;;;;
+D563;HANGUL SYLLABLE HALB;Lo;0;L;;;;;N;;;;;
+D564;HANGUL SYLLABLE HALS;Lo;0;L;;;;;N;;;;;
+D565;HANGUL SYLLABLE HALT;Lo;0;L;;;;;N;;;;;
+D566;HANGUL SYLLABLE HALP;Lo;0;L;;;;;N;;;;;
+D567;HANGUL SYLLABLE HALH;Lo;0;L;;;;;N;;;;;
+D568;HANGUL SYLLABLE HAM;Lo;0;L;;;;;N;;;;;
+D569;HANGUL SYLLABLE HAB;Lo;0;L;;;;;N;;;;;
+D56A;HANGUL SYLLABLE HABS;Lo;0;L;;;;;N;;;;;
+D56B;HANGUL SYLLABLE HAS;Lo;0;L;;;;;N;;;;;
+D56C;HANGUL SYLLABLE HASS;Lo;0;L;;;;;N;;;;;
+D56D;HANGUL SYLLABLE HANG;Lo;0;L;;;;;N;;;;;
+D56E;HANGUL SYLLABLE HAJ;Lo;0;L;;;;;N;;;;;
+D56F;HANGUL SYLLABLE HAC;Lo;0;L;;;;;N;;;;;
+D570;HANGUL SYLLABLE HAK;Lo;0;L;;;;;N;;;;;
+D571;HANGUL SYLLABLE HAT;Lo;0;L;;;;;N;;;;;
+D572;HANGUL SYLLABLE HAP;Lo;0;L;;;;;N;;;;;
+D573;HANGUL SYLLABLE HAH;Lo;0;L;;;;;N;;;;;
+D574;HANGUL SYLLABLE HAE;Lo;0;L;;;;;N;;;;;
+D575;HANGUL SYLLABLE HAEG;Lo;0;L;;;;;N;;;;;
+D576;HANGUL SYLLABLE HAEGG;Lo;0;L;;;;;N;;;;;
+D577;HANGUL SYLLABLE HAEGS;Lo;0;L;;;;;N;;;;;
+D578;HANGUL SYLLABLE HAEN;Lo;0;L;;;;;N;;;;;
+D579;HANGUL SYLLABLE HAENI;Lo;0;L;;;;;N;;;;;
+D57A;HANGUL SYLLABLE HAENH;Lo;0;L;;;;;N;;;;;
+D57B;HANGUL SYLLABLE HAED;Lo;0;L;;;;;N;;;;;
+D57C;HANGUL SYLLABLE HAEL;Lo;0;L;;;;;N;;;;;
+D57D;HANGUL SYLLABLE HAELG;Lo;0;L;;;;;N;;;;;
+D57E;HANGUL SYLLABLE HAELM;Lo;0;L;;;;;N;;;;;
+D57F;HANGUL SYLLABLE HAELB;Lo;0;L;;;;;N;;;;;
+D580;HANGUL SYLLABLE HAELS;Lo;0;L;;;;;N;;;;;
+D581;HANGUL SYLLABLE HAELT;Lo;0;L;;;;;N;;;;;
+D582;HANGUL SYLLABLE HAELP;Lo;0;L;;;;;N;;;;;
+D583;HANGUL SYLLABLE HAELH;Lo;0;L;;;;;N;;;;;
+D584;HANGUL SYLLABLE HAEM;Lo;0;L;;;;;N;;;;;
+D585;HANGUL SYLLABLE HAEB;Lo;0;L;;;;;N;;;;;
+D586;HANGUL SYLLABLE HAEBS;Lo;0;L;;;;;N;;;;;
+D587;HANGUL SYLLABLE HAES;Lo;0;L;;;;;N;;;;;
+D588;HANGUL SYLLABLE HAESS;Lo;0;L;;;;;N;;;;;
+D589;HANGUL SYLLABLE HAENG;Lo;0;L;;;;;N;;;;;
+D58A;HANGUL SYLLABLE HAEJ;Lo;0;L;;;;;N;;;;;
+D58B;HANGUL SYLLABLE HAEC;Lo;0;L;;;;;N;;;;;
+D58C;HANGUL SYLLABLE HAEK;Lo;0;L;;;;;N;;;;;
+D58D;HANGUL SYLLABLE HAET;Lo;0;L;;;;;N;;;;;
+D58E;HANGUL SYLLABLE HAEP;Lo;0;L;;;;;N;;;;;
+D58F;HANGUL SYLLABLE HAEH;Lo;0;L;;;;;N;;;;;
+D590;HANGUL SYLLABLE HYA;Lo;0;L;;;;;N;;;;;
+D591;HANGUL SYLLABLE HYAG;Lo;0;L;;;;;N;;;;;
+D592;HANGUL SYLLABLE HYAGG;Lo;0;L;;;;;N;;;;;
+D593;HANGUL SYLLABLE HYAGS;Lo;0;L;;;;;N;;;;;
+D594;HANGUL SYLLABLE HYAN;Lo;0;L;;;;;N;;;;;
+D595;HANGUL SYLLABLE HYANI;Lo;0;L;;;;;N;;;;;
+D596;HANGUL SYLLABLE HYANH;Lo;0;L;;;;;N;;;;;
+D597;HANGUL SYLLABLE HYAD;Lo;0;L;;;;;N;;;;;
+D598;HANGUL SYLLABLE HYAL;Lo;0;L;;;;;N;;;;;
+D599;HANGUL SYLLABLE HYALG;Lo;0;L;;;;;N;;;;;
+D59A;HANGUL SYLLABLE HYALM;Lo;0;L;;;;;N;;;;;
+D59B;HANGUL SYLLABLE HYALB;Lo;0;L;;;;;N;;;;;
+D59C;HANGUL SYLLABLE HYALS;Lo;0;L;;;;;N;;;;;
+D59D;HANGUL SYLLABLE HYALT;Lo;0;L;;;;;N;;;;;
+D59E;HANGUL SYLLABLE HYALP;Lo;0;L;;;;;N;;;;;
+D59F;HANGUL SYLLABLE HYALH;Lo;0;L;;;;;N;;;;;
+D5A0;HANGUL SYLLABLE HYAM;Lo;0;L;;;;;N;;;;;
+D5A1;HANGUL SYLLABLE HYAB;Lo;0;L;;;;;N;;;;;
+D5A2;HANGUL SYLLABLE HYABS;Lo;0;L;;;;;N;;;;;
+D5A3;HANGUL SYLLABLE HYAS;Lo;0;L;;;;;N;;;;;
+D5A4;HANGUL SYLLABLE HYASS;Lo;0;L;;;;;N;;;;;
+D5A5;HANGUL SYLLABLE HYANG;Lo;0;L;;;;;N;;;;;
+D5A6;HANGUL SYLLABLE HYAJ;Lo;0;L;;;;;N;;;;;
+D5A7;HANGUL SYLLABLE HYAC;Lo;0;L;;;;;N;;;;;
+D5A8;HANGUL SYLLABLE HYAK;Lo;0;L;;;;;N;;;;;
+D5A9;HANGUL SYLLABLE HYAT;Lo;0;L;;;;;N;;;;;
+D5AA;HANGUL SYLLABLE HYAP;Lo;0;L;;;;;N;;;;;
+D5AB;HANGUL SYLLABLE HYAH;Lo;0;L;;;;;N;;;;;
+D5AC;HANGUL SYLLABLE HYAE;Lo;0;L;;;;;N;;;;;
+D5AD;HANGUL SYLLABLE HYAEG;Lo;0;L;;;;;N;;;;;
+D5AE;HANGUL SYLLABLE HYAEGG;Lo;0;L;;;;;N;;;;;
+D5AF;HANGUL SYLLABLE HYAEGS;Lo;0;L;;;;;N;;;;;
+D5B0;HANGUL SYLLABLE HYAEN;Lo;0;L;;;;;N;;;;;
+D5B1;HANGUL SYLLABLE HYAENI;Lo;0;L;;;;;N;;;;;
+D5B2;HANGUL SYLLABLE HYAENH;Lo;0;L;;;;;N;;;;;
+D5B3;HANGUL SYLLABLE HYAED;Lo;0;L;;;;;N;;;;;
+D5B4;HANGUL SYLLABLE HYAEL;Lo;0;L;;;;;N;;;;;
+D5B5;HANGUL SYLLABLE HYAELG;Lo;0;L;;;;;N;;;;;
+D5B6;HANGUL SYLLABLE HYAELM;Lo;0;L;;;;;N;;;;;
+D5B7;HANGUL SYLLABLE HYAELB;Lo;0;L;;;;;N;;;;;
+D5B8;HANGUL SYLLABLE HYAELS;Lo;0;L;;;;;N;;;;;
+D5B9;HANGUL SYLLABLE HYAELT;Lo;0;L;;;;;N;;;;;
+D5BA;HANGUL SYLLABLE HYAELP;Lo;0;L;;;;;N;;;;;
+D5BB;HANGUL SYLLABLE HYAELH;Lo;0;L;;;;;N;;;;;
+D5BC;HANGUL SYLLABLE HYAEM;Lo;0;L;;;;;N;;;;;
+D5BD;HANGUL SYLLABLE HYAEB;Lo;0;L;;;;;N;;;;;
+D5BE;HANGUL SYLLABLE HYAEBS;Lo;0;L;;;;;N;;;;;
+D5BF;HANGUL SYLLABLE HYAES;Lo;0;L;;;;;N;;;;;
+D5C0;HANGUL SYLLABLE HYAESS;Lo;0;L;;;;;N;;;;;
+D5C1;HANGUL SYLLABLE HYAENG;Lo;0;L;;;;;N;;;;;
+D5C2;HANGUL SYLLABLE HYAEJ;Lo;0;L;;;;;N;;;;;
+D5C3;HANGUL SYLLABLE HYAEC;Lo;0;L;;;;;N;;;;;
+D5C4;HANGUL SYLLABLE HYAEK;Lo;0;L;;;;;N;;;;;
+D5C5;HANGUL SYLLABLE HYAET;Lo;0;L;;;;;N;;;;;
+D5C6;HANGUL SYLLABLE HYAEP;Lo;0;L;;;;;N;;;;;
+D5C7;HANGUL SYLLABLE HYAEH;Lo;0;L;;;;;N;;;;;
+D5C8;HANGUL SYLLABLE HEO;Lo;0;L;;;;;N;;;;;
+D5C9;HANGUL SYLLABLE HEOG;Lo;0;L;;;;;N;;;;;
+D5CA;HANGUL SYLLABLE HEOGG;Lo;0;L;;;;;N;;;;;
+D5CB;HANGUL SYLLABLE HEOGS;Lo;0;L;;;;;N;;;;;
+D5CC;HANGUL SYLLABLE HEON;Lo;0;L;;;;;N;;;;;
+D5CD;HANGUL SYLLABLE HEONI;Lo;0;L;;;;;N;;;;;
+D5CE;HANGUL SYLLABLE HEONH;Lo;0;L;;;;;N;;;;;
+D5CF;HANGUL SYLLABLE HEOD;Lo;0;L;;;;;N;;;;;
+D5D0;HANGUL SYLLABLE HEOL;Lo;0;L;;;;;N;;;;;
+D5D1;HANGUL SYLLABLE HEOLG;Lo;0;L;;;;;N;;;;;
+D5D2;HANGUL SYLLABLE HEOLM;Lo;0;L;;;;;N;;;;;
+D5D3;HANGUL SYLLABLE HEOLB;Lo;0;L;;;;;N;;;;;
+D5D4;HANGUL SYLLABLE HEOLS;Lo;0;L;;;;;N;;;;;
+D5D5;HANGUL SYLLABLE HEOLT;Lo;0;L;;;;;N;;;;;
+D5D6;HANGUL SYLLABLE HEOLP;Lo;0;L;;;;;N;;;;;
+D5D7;HANGUL SYLLABLE HEOLH;Lo;0;L;;;;;N;;;;;
+D5D8;HANGUL SYLLABLE HEOM;Lo;0;L;;;;;N;;;;;
+D5D9;HANGUL SYLLABLE HEOB;Lo;0;L;;;;;N;;;;;
+D5DA;HANGUL SYLLABLE HEOBS;Lo;0;L;;;;;N;;;;;
+D5DB;HANGUL SYLLABLE HEOS;Lo;0;L;;;;;N;;;;;
+D5DC;HANGUL SYLLABLE HEOSS;Lo;0;L;;;;;N;;;;;
+D5DD;HANGUL SYLLABLE HEONG;Lo;0;L;;;;;N;;;;;
+D5DE;HANGUL SYLLABLE HEOJ;Lo;0;L;;;;;N;;;;;
+D5DF;HANGUL SYLLABLE HEOC;Lo;0;L;;;;;N;;;;;
+D5E0;HANGUL SYLLABLE HEOK;Lo;0;L;;;;;N;;;;;
+D5E1;HANGUL SYLLABLE HEOT;Lo;0;L;;;;;N;;;;;
+D5E2;HANGUL SYLLABLE HEOP;Lo;0;L;;;;;N;;;;;
+D5E3;HANGUL SYLLABLE HEOH;Lo;0;L;;;;;N;;;;;
+D5E4;HANGUL SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+D5E5;HANGUL SYLLABLE HEG;Lo;0;L;;;;;N;;;;;
+D5E6;HANGUL SYLLABLE HEGG;Lo;0;L;;;;;N;;;;;
+D5E7;HANGUL SYLLABLE HEGS;Lo;0;L;;;;;N;;;;;
+D5E8;HANGUL SYLLABLE HEN;Lo;0;L;;;;;N;;;;;
+D5E9;HANGUL SYLLABLE HENI;Lo;0;L;;;;;N;;;;;
+D5EA;HANGUL SYLLABLE HENH;Lo;0;L;;;;;N;;;;;
+D5EB;HANGUL SYLLABLE HED;Lo;0;L;;;;;N;;;;;
+D5EC;HANGUL SYLLABLE HEL;Lo;0;L;;;;;N;;;;;
+D5ED;HANGUL SYLLABLE HELG;Lo;0;L;;;;;N;;;;;
+D5EE;HANGUL SYLLABLE HELM;Lo;0;L;;;;;N;;;;;
+D5EF;HANGUL SYLLABLE HELB;Lo;0;L;;;;;N;;;;;
+D5F0;HANGUL SYLLABLE HELS;Lo;0;L;;;;;N;;;;;
+D5F1;HANGUL SYLLABLE HELT;Lo;0;L;;;;;N;;;;;
+D5F2;HANGUL SYLLABLE HELP;Lo;0;L;;;;;N;;;;;
+D5F3;HANGUL SYLLABLE HELH;Lo;0;L;;;;;N;;;;;
+D5F4;HANGUL SYLLABLE HEM;Lo;0;L;;;;;N;;;;;
+D5F5;HANGUL SYLLABLE HEB;Lo;0;L;;;;;N;;;;;
+D5F6;HANGUL SYLLABLE HEBS;Lo;0;L;;;;;N;;;;;
+D5F7;HANGUL SYLLABLE HES;Lo;0;L;;;;;N;;;;;
+D5F8;HANGUL SYLLABLE HESS;Lo;0;L;;;;;N;;;;;
+D5F9;HANGUL SYLLABLE HENG;Lo;0;L;;;;;N;;;;;
+D5FA;HANGUL SYLLABLE HEJ;Lo;0;L;;;;;N;;;;;
+D5FB;HANGUL SYLLABLE HEC;Lo;0;L;;;;;N;;;;;
+D5FC;HANGUL SYLLABLE HEK;Lo;0;L;;;;;N;;;;;
+D5FD;HANGUL SYLLABLE HET;Lo;0;L;;;;;N;;;;;
+D5FE;HANGUL SYLLABLE HEP;Lo;0;L;;;;;N;;;;;
+D5FF;HANGUL SYLLABLE HEH;Lo;0;L;;;;;N;;;;;
+D600;HANGUL SYLLABLE HYEO;Lo;0;L;;;;;N;;;;;
+D601;HANGUL SYLLABLE HYEOG;Lo;0;L;;;;;N;;;;;
+D602;HANGUL SYLLABLE HYEOGG;Lo;0;L;;;;;N;;;;;
+D603;HANGUL SYLLABLE HYEOGS;Lo;0;L;;;;;N;;;;;
+D604;HANGUL SYLLABLE HYEON;Lo;0;L;;;;;N;;;;;
+D605;HANGUL SYLLABLE HYEONI;Lo;0;L;;;;;N;;;;;
+D606;HANGUL SYLLABLE HYEONH;Lo;0;L;;;;;N;;;;;
+D607;HANGUL SYLLABLE HYEOD;Lo;0;L;;;;;N;;;;;
+D608;HANGUL SYLLABLE HYEOL;Lo;0;L;;;;;N;;;;;
+D609;HANGUL SYLLABLE HYEOLG;Lo;0;L;;;;;N;;;;;
+D60A;HANGUL SYLLABLE HYEOLM;Lo;0;L;;;;;N;;;;;
+D60B;HANGUL SYLLABLE HYEOLB;Lo;0;L;;;;;N;;;;;
+D60C;HANGUL SYLLABLE HYEOLS;Lo;0;L;;;;;N;;;;;
+D60D;HANGUL SYLLABLE HYEOLT;Lo;0;L;;;;;N;;;;;
+D60E;HANGUL SYLLABLE HYEOLP;Lo;0;L;;;;;N;;;;;
+D60F;HANGUL SYLLABLE HYEOLH;Lo;0;L;;;;;N;;;;;
+D610;HANGUL SYLLABLE HYEOM;Lo;0;L;;;;;N;;;;;
+D611;HANGUL SYLLABLE HYEOB;Lo;0;L;;;;;N;;;;;
+D612;HANGUL SYLLABLE HYEOBS;Lo;0;L;;;;;N;;;;;
+D613;HANGUL SYLLABLE HYEOS;Lo;0;L;;;;;N;;;;;
+D614;HANGUL SYLLABLE HYEOSS;Lo;0;L;;;;;N;;;;;
+D615;HANGUL SYLLABLE HYEONG;Lo;0;L;;;;;N;;;;;
+D616;HANGUL SYLLABLE HYEOJ;Lo;0;L;;;;;N;;;;;
+D617;HANGUL SYLLABLE HYEOC;Lo;0;L;;;;;N;;;;;
+D618;HANGUL SYLLABLE HYEOK;Lo;0;L;;;;;N;;;;;
+D619;HANGUL SYLLABLE HYEOT;Lo;0;L;;;;;N;;;;;
+D61A;HANGUL SYLLABLE HYEOP;Lo;0;L;;;;;N;;;;;
+D61B;HANGUL SYLLABLE HYEOH;Lo;0;L;;;;;N;;;;;
+D61C;HANGUL SYLLABLE HYE;Lo;0;L;;;;;N;;;;;
+D61D;HANGUL SYLLABLE HYEG;Lo;0;L;;;;;N;;;;;
+D61E;HANGUL SYLLABLE HYEGG;Lo;0;L;;;;;N;;;;;
+D61F;HANGUL SYLLABLE HYEGS;Lo;0;L;;;;;N;;;;;
+D620;HANGUL SYLLABLE HYEN;Lo;0;L;;;;;N;;;;;
+D621;HANGUL SYLLABLE HYENI;Lo;0;L;;;;;N;;;;;
+D622;HANGUL SYLLABLE HYENH;Lo;0;L;;;;;N;;;;;
+D623;HANGUL SYLLABLE HYED;Lo;0;L;;;;;N;;;;;
+D624;HANGUL SYLLABLE HYEL;Lo;0;L;;;;;N;;;;;
+D625;HANGUL SYLLABLE HYELG;Lo;0;L;;;;;N;;;;;
+D626;HANGUL SYLLABLE HYELM;Lo;0;L;;;;;N;;;;;
+D627;HANGUL SYLLABLE HYELB;Lo;0;L;;;;;N;;;;;
+D628;HANGUL SYLLABLE HYELS;Lo;0;L;;;;;N;;;;;
+D629;HANGUL SYLLABLE HYELT;Lo;0;L;;;;;N;;;;;
+D62A;HANGUL SYLLABLE HYELP;Lo;0;L;;;;;N;;;;;
+D62B;HANGUL SYLLABLE HYELH;Lo;0;L;;;;;N;;;;;
+D62C;HANGUL SYLLABLE HYEM;Lo;0;L;;;;;N;;;;;
+D62D;HANGUL SYLLABLE HYEB;Lo;0;L;;;;;N;;;;;
+D62E;HANGUL SYLLABLE HYEBS;Lo;0;L;;;;;N;;;;;
+D62F;HANGUL SYLLABLE HYES;Lo;0;L;;;;;N;;;;;
+D630;HANGUL SYLLABLE HYESS;Lo;0;L;;;;;N;;;;;
+D631;HANGUL SYLLABLE HYENG;Lo;0;L;;;;;N;;;;;
+D632;HANGUL SYLLABLE HYEJ;Lo;0;L;;;;;N;;;;;
+D633;HANGUL SYLLABLE HYEC;Lo;0;L;;;;;N;;;;;
+D634;HANGUL SYLLABLE HYEK;Lo;0;L;;;;;N;;;;;
+D635;HANGUL SYLLABLE HYET;Lo;0;L;;;;;N;;;;;
+D636;HANGUL SYLLABLE HYEP;Lo;0;L;;;;;N;;;;;
+D637;HANGUL SYLLABLE HYEH;Lo;0;L;;;;;N;;;;;
+D638;HANGUL SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+D639;HANGUL SYLLABLE HOG;Lo;0;L;;;;;N;;;;;
+D63A;HANGUL SYLLABLE HOGG;Lo;0;L;;;;;N;;;;;
+D63B;HANGUL SYLLABLE HOGS;Lo;0;L;;;;;N;;;;;
+D63C;HANGUL SYLLABLE HON;Lo;0;L;;;;;N;;;;;
+D63D;HANGUL SYLLABLE HONI;Lo;0;L;;;;;N;;;;;
+D63E;HANGUL SYLLABLE HONH;Lo;0;L;;;;;N;;;;;
+D63F;HANGUL SYLLABLE HOD;Lo;0;L;;;;;N;;;;;
+D640;HANGUL SYLLABLE HOL;Lo;0;L;;;;;N;;;;;
+D641;HANGUL SYLLABLE HOLG;Lo;0;L;;;;;N;;;;;
+D642;HANGUL SYLLABLE HOLM;Lo;0;L;;;;;N;;;;;
+D643;HANGUL SYLLABLE HOLB;Lo;0;L;;;;;N;;;;;
+D644;HANGUL SYLLABLE HOLS;Lo;0;L;;;;;N;;;;;
+D645;HANGUL SYLLABLE HOLT;Lo;0;L;;;;;N;;;;;
+D646;HANGUL SYLLABLE HOLP;Lo;0;L;;;;;N;;;;;
+D647;HANGUL SYLLABLE HOLH;Lo;0;L;;;;;N;;;;;
+D648;HANGUL SYLLABLE HOM;Lo;0;L;;;;;N;;;;;
+D649;HANGUL SYLLABLE HOB;Lo;0;L;;;;;N;;;;;
+D64A;HANGUL SYLLABLE HOBS;Lo;0;L;;;;;N;;;;;
+D64B;HANGUL SYLLABLE HOS;Lo;0;L;;;;;N;;;;;
+D64C;HANGUL SYLLABLE HOSS;Lo;0;L;;;;;N;;;;;
+D64D;HANGUL SYLLABLE HONG;Lo;0;L;;;;;N;;;;;
+D64E;HANGUL SYLLABLE HOJ;Lo;0;L;;;;;N;;;;;
+D64F;HANGUL SYLLABLE HOC;Lo;0;L;;;;;N;;;;;
+D650;HANGUL SYLLABLE HOK;Lo;0;L;;;;;N;;;;;
+D651;HANGUL SYLLABLE HOT;Lo;0;L;;;;;N;;;;;
+D652;HANGUL SYLLABLE HOP;Lo;0;L;;;;;N;;;;;
+D653;HANGUL SYLLABLE HOH;Lo;0;L;;;;;N;;;;;
+D654;HANGUL SYLLABLE HWA;Lo;0;L;;;;;N;;;;;
+D655;HANGUL SYLLABLE HWAG;Lo;0;L;;;;;N;;;;;
+D656;HANGUL SYLLABLE HWAGG;Lo;0;L;;;;;N;;;;;
+D657;HANGUL SYLLABLE HWAGS;Lo;0;L;;;;;N;;;;;
+D658;HANGUL SYLLABLE HWAN;Lo;0;L;;;;;N;;;;;
+D659;HANGUL SYLLABLE HWANI;Lo;0;L;;;;;N;;;;;
+D65A;HANGUL SYLLABLE HWANH;Lo;0;L;;;;;N;;;;;
+D65B;HANGUL SYLLABLE HWAD;Lo;0;L;;;;;N;;;;;
+D65C;HANGUL SYLLABLE HWAL;Lo;0;L;;;;;N;;;;;
+D65D;HANGUL SYLLABLE HWALG;Lo;0;L;;;;;N;;;;;
+D65E;HANGUL SYLLABLE HWALM;Lo;0;L;;;;;N;;;;;
+D65F;HANGUL SYLLABLE HWALB;Lo;0;L;;;;;N;;;;;
+D660;HANGUL SYLLABLE HWALS;Lo;0;L;;;;;N;;;;;
+D661;HANGUL SYLLABLE HWALT;Lo;0;L;;;;;N;;;;;
+D662;HANGUL SYLLABLE HWALP;Lo;0;L;;;;;N;;;;;
+D663;HANGUL SYLLABLE HWALH;Lo;0;L;;;;;N;;;;;
+D664;HANGUL SYLLABLE HWAM;Lo;0;L;;;;;N;;;;;
+D665;HANGUL SYLLABLE HWAB;Lo;0;L;;;;;N;;;;;
+D666;HANGUL SYLLABLE HWABS;Lo;0;L;;;;;N;;;;;
+D667;HANGUL SYLLABLE HWAS;Lo;0;L;;;;;N;;;;;
+D668;HANGUL SYLLABLE HWASS;Lo;0;L;;;;;N;;;;;
+D669;HANGUL SYLLABLE HWANG;Lo;0;L;;;;;N;;;;;
+D66A;HANGUL SYLLABLE HWAJ;Lo;0;L;;;;;N;;;;;
+D66B;HANGUL SYLLABLE HWAC;Lo;0;L;;;;;N;;;;;
+D66C;HANGUL SYLLABLE HWAK;Lo;0;L;;;;;N;;;;;
+D66D;HANGUL SYLLABLE HWAT;Lo;0;L;;;;;N;;;;;
+D66E;HANGUL SYLLABLE HWAP;Lo;0;L;;;;;N;;;;;
+D66F;HANGUL SYLLABLE HWAH;Lo;0;L;;;;;N;;;;;
+D670;HANGUL SYLLABLE HWAE;Lo;0;L;;;;;N;;;;;
+D671;HANGUL SYLLABLE HWAEG;Lo;0;L;;;;;N;;;;;
+D672;HANGUL SYLLABLE HWAEGG;Lo;0;L;;;;;N;;;;;
+D673;HANGUL SYLLABLE HWAEGS;Lo;0;L;;;;;N;;;;;
+D674;HANGUL SYLLABLE HWAEN;Lo;0;L;;;;;N;;;;;
+D675;HANGUL SYLLABLE HWAENI;Lo;0;L;;;;;N;;;;;
+D676;HANGUL SYLLABLE HWAENH;Lo;0;L;;;;;N;;;;;
+D677;HANGUL SYLLABLE HWAED;Lo;0;L;;;;;N;;;;;
+D678;HANGUL SYLLABLE HWAEL;Lo;0;L;;;;;N;;;;;
+D679;HANGUL SYLLABLE HWAELG;Lo;0;L;;;;;N;;;;;
+D67A;HANGUL SYLLABLE HWAELM;Lo;0;L;;;;;N;;;;;
+D67B;HANGUL SYLLABLE HWAELB;Lo;0;L;;;;;N;;;;;
+D67C;HANGUL SYLLABLE HWAELS;Lo;0;L;;;;;N;;;;;
+D67D;HANGUL SYLLABLE HWAELT;Lo;0;L;;;;;N;;;;;
+D67E;HANGUL SYLLABLE HWAELP;Lo;0;L;;;;;N;;;;;
+D67F;HANGUL SYLLABLE HWAELH;Lo;0;L;;;;;N;;;;;
+D680;HANGUL SYLLABLE HWAEM;Lo;0;L;;;;;N;;;;;
+D681;HANGUL SYLLABLE HWAEB;Lo;0;L;;;;;N;;;;;
+D682;HANGUL SYLLABLE HWAEBS;Lo;0;L;;;;;N;;;;;
+D683;HANGUL SYLLABLE HWAES;Lo;0;L;;;;;N;;;;;
+D684;HANGUL SYLLABLE HWAESS;Lo;0;L;;;;;N;;;;;
+D685;HANGUL SYLLABLE HWAENG;Lo;0;L;;;;;N;;;;;
+D686;HANGUL SYLLABLE HWAEJ;Lo;0;L;;;;;N;;;;;
+D687;HANGUL SYLLABLE HWAEC;Lo;0;L;;;;;N;;;;;
+D688;HANGUL SYLLABLE HWAEK;Lo;0;L;;;;;N;;;;;
+D689;HANGUL SYLLABLE HWAET;Lo;0;L;;;;;N;;;;;
+D68A;HANGUL SYLLABLE HWAEP;Lo;0;L;;;;;N;;;;;
+D68B;HANGUL SYLLABLE HWAEH;Lo;0;L;;;;;N;;;;;
+D68C;HANGUL SYLLABLE HOE;Lo;0;L;;;;;N;;;;;
+D68D;HANGUL SYLLABLE HOEG;Lo;0;L;;;;;N;;;;;
+D68E;HANGUL SYLLABLE HOEGG;Lo;0;L;;;;;N;;;;;
+D68F;HANGUL SYLLABLE HOEGS;Lo;0;L;;;;;N;;;;;
+D690;HANGUL SYLLABLE HOEN;Lo;0;L;;;;;N;;;;;
+D691;HANGUL SYLLABLE HOENI;Lo;0;L;;;;;N;;;;;
+D692;HANGUL SYLLABLE HOENH;Lo;0;L;;;;;N;;;;;
+D693;HANGUL SYLLABLE HOED;Lo;0;L;;;;;N;;;;;
+D694;HANGUL SYLLABLE HOEL;Lo;0;L;;;;;N;;;;;
+D695;HANGUL SYLLABLE HOELG;Lo;0;L;;;;;N;;;;;
+D696;HANGUL SYLLABLE HOELM;Lo;0;L;;;;;N;;;;;
+D697;HANGUL SYLLABLE HOELB;Lo;0;L;;;;;N;;;;;
+D698;HANGUL SYLLABLE HOELS;Lo;0;L;;;;;N;;;;;
+D699;HANGUL SYLLABLE HOELT;Lo;0;L;;;;;N;;;;;
+D69A;HANGUL SYLLABLE HOELP;Lo;0;L;;;;;N;;;;;
+D69B;HANGUL SYLLABLE HOELH;Lo;0;L;;;;;N;;;;;
+D69C;HANGUL SYLLABLE HOEM;Lo;0;L;;;;;N;;;;;
+D69D;HANGUL SYLLABLE HOEB;Lo;0;L;;;;;N;;;;;
+D69E;HANGUL SYLLABLE HOEBS;Lo;0;L;;;;;N;;;;;
+D69F;HANGUL SYLLABLE HOES;Lo;0;L;;;;;N;;;;;
+D6A0;HANGUL SYLLABLE HOESS;Lo;0;L;;;;;N;;;;;
+D6A1;HANGUL SYLLABLE HOENG;Lo;0;L;;;;;N;;;;;
+D6A2;HANGUL SYLLABLE HOEJ;Lo;0;L;;;;;N;;;;;
+D6A3;HANGUL SYLLABLE HOEC;Lo;0;L;;;;;N;;;;;
+D6A4;HANGUL SYLLABLE HOEK;Lo;0;L;;;;;N;;;;;
+D6A5;HANGUL SYLLABLE HOET;Lo;0;L;;;;;N;;;;;
+D6A6;HANGUL SYLLABLE HOEP;Lo;0;L;;;;;N;;;;;
+D6A7;HANGUL SYLLABLE HOEH;Lo;0;L;;;;;N;;;;;
+D6A8;HANGUL SYLLABLE HYO;Lo;0;L;;;;;N;;;;;
+D6A9;HANGUL SYLLABLE HYOG;Lo;0;L;;;;;N;;;;;
+D6AA;HANGUL SYLLABLE HYOGG;Lo;0;L;;;;;N;;;;;
+D6AB;HANGUL SYLLABLE HYOGS;Lo;0;L;;;;;N;;;;;
+D6AC;HANGUL SYLLABLE HYON;Lo;0;L;;;;;N;;;;;
+D6AD;HANGUL SYLLABLE HYONI;Lo;0;L;;;;;N;;;;;
+D6AE;HANGUL SYLLABLE HYONH;Lo;0;L;;;;;N;;;;;
+D6AF;HANGUL SYLLABLE HYOD;Lo;0;L;;;;;N;;;;;
+D6B0;HANGUL SYLLABLE HYOL;Lo;0;L;;;;;N;;;;;
+D6B1;HANGUL SYLLABLE HYOLG;Lo;0;L;;;;;N;;;;;
+D6B2;HANGUL SYLLABLE HYOLM;Lo;0;L;;;;;N;;;;;
+D6B3;HANGUL SYLLABLE HYOLB;Lo;0;L;;;;;N;;;;;
+D6B4;HANGUL SYLLABLE HYOLS;Lo;0;L;;;;;N;;;;;
+D6B5;HANGUL SYLLABLE HYOLT;Lo;0;L;;;;;N;;;;;
+D6B6;HANGUL SYLLABLE HYOLP;Lo;0;L;;;;;N;;;;;
+D6B7;HANGUL SYLLABLE HYOLH;Lo;0;L;;;;;N;;;;;
+D6B8;HANGUL SYLLABLE HYOM;Lo;0;L;;;;;N;;;;;
+D6B9;HANGUL SYLLABLE HYOB;Lo;0;L;;;;;N;;;;;
+D6BA;HANGUL SYLLABLE HYOBS;Lo;0;L;;;;;N;;;;;
+D6BB;HANGUL SYLLABLE HYOS;Lo;0;L;;;;;N;;;;;
+D6BC;HANGUL SYLLABLE HYOSS;Lo;0;L;;;;;N;;;;;
+D6BD;HANGUL SYLLABLE HYONG;Lo;0;L;;;;;N;;;;;
+D6BE;HANGUL SYLLABLE HYOJ;Lo;0;L;;;;;N;;;;;
+D6BF;HANGUL SYLLABLE HYOC;Lo;0;L;;;;;N;;;;;
+D6C0;HANGUL SYLLABLE HYOK;Lo;0;L;;;;;N;;;;;
+D6C1;HANGUL SYLLABLE HYOT;Lo;0;L;;;;;N;;;;;
+D6C2;HANGUL SYLLABLE HYOP;Lo;0;L;;;;;N;;;;;
+D6C3;HANGUL SYLLABLE HYOH;Lo;0;L;;;;;N;;;;;
+D6C4;HANGUL SYLLABLE HU;Lo;0;L;;;;;N;;;;;
+D6C5;HANGUL SYLLABLE HUG;Lo;0;L;;;;;N;;;;;
+D6C6;HANGUL SYLLABLE HUGG;Lo;0;L;;;;;N;;;;;
+D6C7;HANGUL SYLLABLE HUGS;Lo;0;L;;;;;N;;;;;
+D6C8;HANGUL SYLLABLE HUN;Lo;0;L;;;;;N;;;;;
+D6C9;HANGUL SYLLABLE HUNI;Lo;0;L;;;;;N;;;;;
+D6CA;HANGUL SYLLABLE HUNH;Lo;0;L;;;;;N;;;;;
+D6CB;HANGUL SYLLABLE HUD;Lo;0;L;;;;;N;;;;;
+D6CC;HANGUL SYLLABLE HUL;Lo;0;L;;;;;N;;;;;
+D6CD;HANGUL SYLLABLE HULG;Lo;0;L;;;;;N;;;;;
+D6CE;HANGUL SYLLABLE HULM;Lo;0;L;;;;;N;;;;;
+D6CF;HANGUL SYLLABLE HULB;Lo;0;L;;;;;N;;;;;
+D6D0;HANGUL SYLLABLE HULS;Lo;0;L;;;;;N;;;;;
+D6D1;HANGUL SYLLABLE HULT;Lo;0;L;;;;;N;;;;;
+D6D2;HANGUL SYLLABLE HULP;Lo;0;L;;;;;N;;;;;
+D6D3;HANGUL SYLLABLE HULH;Lo;0;L;;;;;N;;;;;
+D6D4;HANGUL SYLLABLE HUM;Lo;0;L;;;;;N;;;;;
+D6D5;HANGUL SYLLABLE HUB;Lo;0;L;;;;;N;;;;;
+D6D6;HANGUL SYLLABLE HUBS;Lo;0;L;;;;;N;;;;;
+D6D7;HANGUL SYLLABLE HUS;Lo;0;L;;;;;N;;;;;
+D6D8;HANGUL SYLLABLE HUSS;Lo;0;L;;;;;N;;;;;
+D6D9;HANGUL SYLLABLE HUNG;Lo;0;L;;;;;N;;;;;
+D6DA;HANGUL SYLLABLE HUJ;Lo;0;L;;;;;N;;;;;
+D6DB;HANGUL SYLLABLE HUC;Lo;0;L;;;;;N;;;;;
+D6DC;HANGUL SYLLABLE HUK;Lo;0;L;;;;;N;;;;;
+D6DD;HANGUL SYLLABLE HUT;Lo;0;L;;;;;N;;;;;
+D6DE;HANGUL SYLLABLE HUP;Lo;0;L;;;;;N;;;;;
+D6DF;HANGUL SYLLABLE HUH;Lo;0;L;;;;;N;;;;;
+D6E0;HANGUL SYLLABLE HWEO;Lo;0;L;;;;;N;;;;;
+D6E1;HANGUL SYLLABLE HWEOG;Lo;0;L;;;;;N;;;;;
+D6E2;HANGUL SYLLABLE HWEOGG;Lo;0;L;;;;;N;;;;;
+D6E3;HANGUL SYLLABLE HWEOGS;Lo;0;L;;;;;N;;;;;
+D6E4;HANGUL SYLLABLE HWEON;Lo;0;L;;;;;N;;;;;
+D6E5;HANGUL SYLLABLE HWEONI;Lo;0;L;;;;;N;;;;;
+D6E6;HANGUL SYLLABLE HWEONH;Lo;0;L;;;;;N;;;;;
+D6E7;HANGUL SYLLABLE HWEOD;Lo;0;L;;;;;N;;;;;
+D6E8;HANGUL SYLLABLE HWEOL;Lo;0;L;;;;;N;;;;;
+D6E9;HANGUL SYLLABLE HWEOLG;Lo;0;L;;;;;N;;;;;
+D6EA;HANGUL SYLLABLE HWEOLM;Lo;0;L;;;;;N;;;;;
+D6EB;HANGUL SYLLABLE HWEOLB;Lo;0;L;;;;;N;;;;;
+D6EC;HANGUL SYLLABLE HWEOLS;Lo;0;L;;;;;N;;;;;
+D6ED;HANGUL SYLLABLE HWEOLT;Lo;0;L;;;;;N;;;;;
+D6EE;HANGUL SYLLABLE HWEOLP;Lo;0;L;;;;;N;;;;;
+D6EF;HANGUL SYLLABLE HWEOLH;Lo;0;L;;;;;N;;;;;
+D6F0;HANGUL SYLLABLE HWEOM;Lo;0;L;;;;;N;;;;;
+D6F1;HANGUL SYLLABLE HWEOB;Lo;0;L;;;;;N;;;;;
+D6F2;HANGUL SYLLABLE HWEOBS;Lo;0;L;;;;;N;;;;;
+D6F3;HANGUL SYLLABLE HWEOS;Lo;0;L;;;;;N;;;;;
+D6F4;HANGUL SYLLABLE HWEOSS;Lo;0;L;;;;;N;;;;;
+D6F5;HANGUL SYLLABLE HWEONG;Lo;0;L;;;;;N;;;;;
+D6F6;HANGUL SYLLABLE HWEOJ;Lo;0;L;;;;;N;;;;;
+D6F7;HANGUL SYLLABLE HWEOC;Lo;0;L;;;;;N;;;;;
+D6F8;HANGUL SYLLABLE HWEOK;Lo;0;L;;;;;N;;;;;
+D6F9;HANGUL SYLLABLE HWEOT;Lo;0;L;;;;;N;;;;;
+D6FA;HANGUL SYLLABLE HWEOP;Lo;0;L;;;;;N;;;;;
+D6FB;HANGUL SYLLABLE HWEOH;Lo;0;L;;;;;N;;;;;
+D6FC;HANGUL SYLLABLE HWE;Lo;0;L;;;;;N;;;;;
+D6FD;HANGUL SYLLABLE HWEG;Lo;0;L;;;;;N;;;;;
+D6FE;HANGUL SYLLABLE HWEGG;Lo;0;L;;;;;N;;;;;
+D6FF;HANGUL SYLLABLE HWEGS;Lo;0;L;;;;;N;;;;;
+D700;HANGUL SYLLABLE HWEN;Lo;0;L;;;;;N;;;;;
+D701;HANGUL SYLLABLE HWENI;Lo;0;L;;;;;N;;;;;
+D702;HANGUL SYLLABLE HWENH;Lo;0;L;;;;;N;;;;;
+D703;HANGUL SYLLABLE HWED;Lo;0;L;;;;;N;;;;;
+D704;HANGUL SYLLABLE HWEL;Lo;0;L;;;;;N;;;;;
+D705;HANGUL SYLLABLE HWELG;Lo;0;L;;;;;N;;;;;
+D706;HANGUL SYLLABLE HWELM;Lo;0;L;;;;;N;;;;;
+D707;HANGUL SYLLABLE HWELB;Lo;0;L;;;;;N;;;;;
+D708;HANGUL SYLLABLE HWELS;Lo;0;L;;;;;N;;;;;
+D709;HANGUL SYLLABLE HWELT;Lo;0;L;;;;;N;;;;;
+D70A;HANGUL SYLLABLE HWELP;Lo;0;L;;;;;N;;;;;
+D70B;HANGUL SYLLABLE HWELH;Lo;0;L;;;;;N;;;;;
+D70C;HANGUL SYLLABLE HWEM;Lo;0;L;;;;;N;;;;;
+D70D;HANGUL SYLLABLE HWEB;Lo;0;L;;;;;N;;;;;
+D70E;HANGUL SYLLABLE HWEBS;Lo;0;L;;;;;N;;;;;
+D70F;HANGUL SYLLABLE HWES;Lo;0;L;;;;;N;;;;;
+D710;HANGUL SYLLABLE HWESS;Lo;0;L;;;;;N;;;;;
+D711;HANGUL SYLLABLE HWENG;Lo;0;L;;;;;N;;;;;
+D712;HANGUL SYLLABLE HWEJ;Lo;0;L;;;;;N;;;;;
+D713;HANGUL SYLLABLE HWEC;Lo;0;L;;;;;N;;;;;
+D714;HANGUL SYLLABLE HWEK;Lo;0;L;;;;;N;;;;;
+D715;HANGUL SYLLABLE HWET;Lo;0;L;;;;;N;;;;;
+D716;HANGUL SYLLABLE HWEP;Lo;0;L;;;;;N;;;;;
+D717;HANGUL SYLLABLE HWEH;Lo;0;L;;;;;N;;;;;
+D718;HANGUL SYLLABLE HWI;Lo;0;L;;;;;N;;;;;
+D719;HANGUL SYLLABLE HWIG;Lo;0;L;;;;;N;;;;;
+D71A;HANGUL SYLLABLE HWIGG;Lo;0;L;;;;;N;;;;;
+D71B;HANGUL SYLLABLE HWIGS;Lo;0;L;;;;;N;;;;;
+D71C;HANGUL SYLLABLE HWIN;Lo;0;L;;;;;N;;;;;
+D71D;HANGUL SYLLABLE HWINI;Lo;0;L;;;;;N;;;;;
+D71E;HANGUL SYLLABLE HWINH;Lo;0;L;;;;;N;;;;;
+D71F;HANGUL SYLLABLE HWID;Lo;0;L;;;;;N;;;;;
+D720;HANGUL SYLLABLE HWIL;Lo;0;L;;;;;N;;;;;
+D721;HANGUL SYLLABLE HWILG;Lo;0;L;;;;;N;;;;;
+D722;HANGUL SYLLABLE HWILM;Lo;0;L;;;;;N;;;;;
+D723;HANGUL SYLLABLE HWILB;Lo;0;L;;;;;N;;;;;
+D724;HANGUL SYLLABLE HWILS;Lo;0;L;;;;;N;;;;;
+D725;HANGUL SYLLABLE HWILT;Lo;0;L;;;;;N;;;;;
+D726;HANGUL SYLLABLE HWILP;Lo;0;L;;;;;N;;;;;
+D727;HANGUL SYLLABLE HWILH;Lo;0;L;;;;;N;;;;;
+D728;HANGUL SYLLABLE HWIM;Lo;0;L;;;;;N;;;;;
+D729;HANGUL SYLLABLE HWIB;Lo;0;L;;;;;N;;;;;
+D72A;HANGUL SYLLABLE HWIBS;Lo;0;L;;;;;N;;;;;
+D72B;HANGUL SYLLABLE HWIS;Lo;0;L;;;;;N;;;;;
+D72C;HANGUL SYLLABLE HWISS;Lo;0;L;;;;;N;;;;;
+D72D;HANGUL SYLLABLE HWING;Lo;0;L;;;;;N;;;;;
+D72E;HANGUL SYLLABLE HWIJ;Lo;0;L;;;;;N;;;;;
+D72F;HANGUL SYLLABLE HWIC;Lo;0;L;;;;;N;;;;;
+D730;HANGUL SYLLABLE HWIK;Lo;0;L;;;;;N;;;;;
+D731;HANGUL SYLLABLE HWIT;Lo;0;L;;;;;N;;;;;
+D732;HANGUL SYLLABLE HWIP;Lo;0;L;;;;;N;;;;;
+D733;HANGUL SYLLABLE HWIH;Lo;0;L;;;;;N;;;;;
+D734;HANGUL SYLLABLE HYU;Lo;0;L;;;;;N;;;;;
+D735;HANGUL SYLLABLE HYUG;Lo;0;L;;;;;N;;;;;
+D736;HANGUL SYLLABLE HYUGG;Lo;0;L;;;;;N;;;;;
+D737;HANGUL SYLLABLE HYUGS;Lo;0;L;;;;;N;;;;;
+D738;HANGUL SYLLABLE HYUN;Lo;0;L;;;;;N;;;;;
+D739;HANGUL SYLLABLE HYUNI;Lo;0;L;;;;;N;;;;;
+D73A;HANGUL SYLLABLE HYUNH;Lo;0;L;;;;;N;;;;;
+D73B;HANGUL SYLLABLE HYUD;Lo;0;L;;;;;N;;;;;
+D73C;HANGUL SYLLABLE HYUL;Lo;0;L;;;;;N;;;;;
+D73D;HANGUL SYLLABLE HYULG;Lo;0;L;;;;;N;;;;;
+D73E;HANGUL SYLLABLE HYULM;Lo;0;L;;;;;N;;;;;
+D73F;HANGUL SYLLABLE HYULB;Lo;0;L;;;;;N;;;;;
+D740;HANGUL SYLLABLE HYULS;Lo;0;L;;;;;N;;;;;
+D741;HANGUL SYLLABLE HYULT;Lo;0;L;;;;;N;;;;;
+D742;HANGUL SYLLABLE HYULP;Lo;0;L;;;;;N;;;;;
+D743;HANGUL SYLLABLE HYULH;Lo;0;L;;;;;N;;;;;
+D744;HANGUL SYLLABLE HYUM;Lo;0;L;;;;;N;;;;;
+D745;HANGUL SYLLABLE HYUB;Lo;0;L;;;;;N;;;;;
+D746;HANGUL SYLLABLE HYUBS;Lo;0;L;;;;;N;;;;;
+D747;HANGUL SYLLABLE HYUS;Lo;0;L;;;;;N;;;;;
+D748;HANGUL SYLLABLE HYUSS;Lo;0;L;;;;;N;;;;;
+D749;HANGUL SYLLABLE HYUNG;Lo;0;L;;;;;N;;;;;
+D74A;HANGUL SYLLABLE HYUJ;Lo;0;L;;;;;N;;;;;
+D74B;HANGUL SYLLABLE HYUC;Lo;0;L;;;;;N;;;;;
+D74C;HANGUL SYLLABLE HYUK;Lo;0;L;;;;;N;;;;;
+D74D;HANGUL SYLLABLE HYUT;Lo;0;L;;;;;N;;;;;
+D74E;HANGUL SYLLABLE HYUP;Lo;0;L;;;;;N;;;;;
+D74F;HANGUL SYLLABLE HYUH;Lo;0;L;;;;;N;;;;;
+D750;HANGUL SYLLABLE HEU;Lo;0;L;;;;;N;;;;;
+D751;HANGUL SYLLABLE HEUG;Lo;0;L;;;;;N;;;;;
+D752;HANGUL SYLLABLE HEUGG;Lo;0;L;;;;;N;;;;;
+D753;HANGUL SYLLABLE HEUGS;Lo;0;L;;;;;N;;;;;
+D754;HANGUL SYLLABLE HEUN;Lo;0;L;;;;;N;;;;;
+D755;HANGUL SYLLABLE HEUNI;Lo;0;L;;;;;N;;;;;
+D756;HANGUL SYLLABLE HEUNH;Lo;0;L;;;;;N;;;;;
+D757;HANGUL SYLLABLE HEUD;Lo;0;L;;;;;N;;;;;
+D758;HANGUL SYLLABLE HEUL;Lo;0;L;;;;;N;;;;;
+D759;HANGUL SYLLABLE HEULG;Lo;0;L;;;;;N;;;;;
+D75A;HANGUL SYLLABLE HEULM;Lo;0;L;;;;;N;;;;;
+D75B;HANGUL SYLLABLE HEULB;Lo;0;L;;;;;N;;;;;
+D75C;HANGUL SYLLABLE HEULS;Lo;0;L;;;;;N;;;;;
+D75D;HANGUL SYLLABLE HEULT;Lo;0;L;;;;;N;;;;;
+D75E;HANGUL SYLLABLE HEULP;Lo;0;L;;;;;N;;;;;
+D75F;HANGUL SYLLABLE HEULH;Lo;0;L;;;;;N;;;;;
+D760;HANGUL SYLLABLE HEUM;Lo;0;L;;;;;N;;;;;
+D761;HANGUL SYLLABLE HEUB;Lo;0;L;;;;;N;;;;;
+D762;HANGUL SYLLABLE HEUBS;Lo;0;L;;;;;N;;;;;
+D763;HANGUL SYLLABLE HEUS;Lo;0;L;;;;;N;;;;;
+D764;HANGUL SYLLABLE HEUSS;Lo;0;L;;;;;N;;;;;
+D765;HANGUL SYLLABLE HEUNG;Lo;0;L;;;;;N;;;;;
+D766;HANGUL SYLLABLE HEUJ;Lo;0;L;;;;;N;;;;;
+D767;HANGUL SYLLABLE HEUC;Lo;0;L;;;;;N;;;;;
+D768;HANGUL SYLLABLE HEUK;Lo;0;L;;;;;N;;;;;
+D769;HANGUL SYLLABLE HEUT;Lo;0;L;;;;;N;;;;;
+D76A;HANGUL SYLLABLE HEUP;Lo;0;L;;;;;N;;;;;
+D76B;HANGUL SYLLABLE HEUH;Lo;0;L;;;;;N;;;;;
+D76C;HANGUL SYLLABLE HYI;Lo;0;L;;;;;N;;;;;
+D76D;HANGUL SYLLABLE HYIG;Lo;0;L;;;;;N;;;;;
+D76E;HANGUL SYLLABLE HYIGG;Lo;0;L;;;;;N;;;;;
+D76F;HANGUL SYLLABLE HYIGS;Lo;0;L;;;;;N;;;;;
+D770;HANGUL SYLLABLE HYIN;Lo;0;L;;;;;N;;;;;
+D771;HANGUL SYLLABLE HYINI;Lo;0;L;;;;;N;;;;;
+D772;HANGUL SYLLABLE HYINH;Lo;0;L;;;;;N;;;;;
+D773;HANGUL SYLLABLE HYID;Lo;0;L;;;;;N;;;;;
+D774;HANGUL SYLLABLE HYIL;Lo;0;L;;;;;N;;;;;
+D775;HANGUL SYLLABLE HYILG;Lo;0;L;;;;;N;;;;;
+D776;HANGUL SYLLABLE HYILM;Lo;0;L;;;;;N;;;;;
+D777;HANGUL SYLLABLE HYILB;Lo;0;L;;;;;N;;;;;
+D778;HANGUL SYLLABLE HYILS;Lo;0;L;;;;;N;;;;;
+D779;HANGUL SYLLABLE HYILT;Lo;0;L;;;;;N;;;;;
+D77A;HANGUL SYLLABLE HYILP;Lo;0;L;;;;;N;;;;;
+D77B;HANGUL SYLLABLE HYILH;Lo;0;L;;;;;N;;;;;
+D77C;HANGUL SYLLABLE HYIM;Lo;0;L;;;;;N;;;;;
+D77D;HANGUL SYLLABLE HYIB;Lo;0;L;;;;;N;;;;;
+D77E;HANGUL SYLLABLE HYIBS;Lo;0;L;;;;;N;;;;;
+D77F;HANGUL SYLLABLE HYIS;Lo;0;L;;;;;N;;;;;
+D780;HANGUL SYLLABLE HYISS;Lo;0;L;;;;;N;;;;;
+D781;HANGUL SYLLABLE HYING;Lo;0;L;;;;;N;;;;;
+D782;HANGUL SYLLABLE HYIJ;Lo;0;L;;;;;N;;;;;
+D783;HANGUL SYLLABLE HYIC;Lo;0;L;;;;;N;;;;;
+D784;HANGUL SYLLABLE HYIK;Lo;0;L;;;;;N;;;;;
+D785;HANGUL SYLLABLE HYIT;Lo;0;L;;;;;N;;;;;
+D786;HANGUL SYLLABLE HYIP;Lo;0;L;;;;;N;;;;;
+D787;HANGUL SYLLABLE HYIH;Lo;0;L;;;;;N;;;;;
+D788;HANGUL SYLLABLE HI;Lo;0;L;;;;;N;;;;;
+D789;HANGUL SYLLABLE HIG;Lo;0;L;;;;;N;;;;;
+D78A;HANGUL SYLLABLE HIGG;Lo;0;L;;;;;N;;;;;
+D78B;HANGUL SYLLABLE HIGS;Lo;0;L;;;;;N;;;;;
+D78C;HANGUL SYLLABLE HIN;Lo;0;L;;;;;N;;;;;
+D78D;HANGUL SYLLABLE HINI;Lo;0;L;;;;;N;;;;;
+D78E;HANGUL SYLLABLE HINH;Lo;0;L;;;;;N;;;;;
+D78F;HANGUL SYLLABLE HID;Lo;0;L;;;;;N;;;;;
+D790;HANGUL SYLLABLE HIL;Lo;0;L;;;;;N;;;;;
+D791;HANGUL SYLLABLE HILG;Lo;0;L;;;;;N;;;;;
+D792;HANGUL SYLLABLE HILM;Lo;0;L;;;;;N;;;;;
+D793;HANGUL SYLLABLE HILB;Lo;0;L;;;;;N;;;;;
+D794;HANGUL SYLLABLE HILS;Lo;0;L;;;;;N;;;;;
+D795;HANGUL SYLLABLE HILT;Lo;0;L;;;;;N;;;;;
+D796;HANGUL SYLLABLE HILP;Lo;0;L;;;;;N;;;;;
+D797;HANGUL SYLLABLE HILH;Lo;0;L;;;;;N;;;;;
+D798;HANGUL SYLLABLE HIM;Lo;0;L;;;;;N;;;;;
+D799;HANGUL SYLLABLE HIB;Lo;0;L;;;;;N;;;;;
+D79A;HANGUL SYLLABLE HIBS;Lo;0;L;;;;;N;;;;;
+D79B;HANGUL SYLLABLE HIS;Lo;0;L;;;;;N;;;;;
+D79C;HANGUL SYLLABLE HISS;Lo;0;L;;;;;N;;;;;
+D79D;HANGUL SYLLABLE HING;Lo;0;L;;;;;N;;;;;
+D79E;HANGUL SYLLABLE HIJ;Lo;0;L;;;;;N;;;;;
+D79F;HANGUL SYLLABLE HIC;Lo;0;L;;;;;N;;;;;
+D7A0;HANGUL SYLLABLE HIK;Lo;0;L;;;;;N;;;;;
+D7A1;HANGUL SYLLABLE HIT;Lo;0;L;;;;;N;;;;;
+D7A2;HANGUL SYLLABLE HIP;Lo;0;L;;;;;N;;;;;
+D7A3;HANGUL SYLLABLE HIH;Lo;0;L;;;;;N;;;;;
+F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;;
+F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;;
+F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;;
+F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;;
+F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;;
+F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;;
+F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;;
+F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;;
+F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;;
+F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;;
+F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;;
+F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;;
+F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;;
+F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;;
+F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;;
+F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;;
+F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;;
+F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;;
+F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;;
+F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;;
+F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;;
+F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;;
+F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;;
+F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;;
+F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;;
+F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;;
+F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;;
+F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;;
+F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;;
+F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;;
+F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;;
+F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;;
+F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;;
+F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;;
+F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;;
+F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;;
+F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;;
+F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;;
+F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;;
+F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;;
+F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;;
+F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;;
+F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;;
+F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;;
+F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;;
+F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;;
+F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;;
+F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;;
+F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;;
+F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;;
+F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;;
+F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;;
+F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;;
+F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;;
+F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;;
+F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;;
+F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;;
+F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;;
+F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;;
+F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;;
+F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;;
+F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;;
+F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;;
+F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;;
+F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;;
+F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;;
+F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;;
+F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;;
+F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;;
+F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;;
+F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;;
+F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;;
+F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;;
+F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;;
+F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;;
+F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;;
+F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;;
+F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;
+F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;
+F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;
+F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;
+F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;;
+F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;
+F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;
+F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;
+F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;;
+F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;;
+F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;;
+F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;;
+F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;;
+F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;;
+F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;;
+F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;;
+F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;;
+F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;;
+F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;;
+F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;;
+F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;;
+F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;;
+F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;;
+F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;;
+F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;;
+F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;;
+F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;;
+F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;;
+F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;;
+F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;;
+F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;3;N;;;;;
+F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;;
+F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;;
+F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;;
+F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;;
+F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;;
+F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;;
+F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;;
+F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;10;N;;;;;
+F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;;
+F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;;
+F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;;
+F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;;
+F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;2;N;;;;;
+F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;;
+F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;;
+F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;;
+F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;;
+F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;;
+F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;;
+F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;;
+F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;;
+F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;;
+F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;;
+F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;;
+F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;;
+F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;;
+F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;;
+F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;;
+F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;;
+F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;;
+F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;;
+F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;;
+F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;;
+F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;;
+F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;;
+F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;;
+F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;;
+F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;;
+F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;;
+F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;;
+F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;;
+F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;;
+F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;;
+F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;;
+F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;;
+F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;;
+F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;;
+F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;;
+F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;;
+F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;;
+F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;;
+F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;;
+F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;;
+F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;;
+F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;;
+F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;;
+F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;;
+F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;;
+F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;;
+F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;;
+F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;;
+F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;;
+F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;;
+F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;;
+F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;;
+F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;;
+F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;;
+F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;;
+F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;;
+F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;;
+F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;0;N;;;;;
+F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;;
+F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;;
+F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;;
+F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;;
+F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;;
+F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;;
+F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;;
+F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;;
+F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;;
+F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;;
+F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;;
+F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;;
+F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;;
+F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;;
+F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;;
+F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;;
+F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;;
+F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;;
+F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;;
+F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;;
+F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;;
+F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;;
+F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;;
+F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;;
+F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;;
+F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;;
+F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;;
+F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;;
+F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;;
+F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;;
+F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;6;N;;;;;
+F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;;
+F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;6;N;;;;;
+F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;;
+F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;;
+F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;;
+F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;;
+F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;;
+F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;;
+F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;;
+F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;;
+F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;;
+F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;;
+F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;;
+F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;;
+F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;;
+F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;;
+F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;;
+F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;;
+F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;;
+F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;;
+F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;;
+F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;;
+F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;;
+F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;;
+F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;;
+F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;;
+F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;;
+F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;;
+F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;;
+F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;;
+F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;;
+F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;;
+F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;;
+F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;;
+F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;;
+F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;;
+F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;;
+F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;;
+F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;;
+F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;;
+F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;;
+F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;;
+F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;;
+F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;10;N;;;;;
+F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;;
+F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;;
+FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;;
+FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;;
+FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;;
+FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;;
+FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;;
+FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;;
+FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;;
+FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;;
+FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;;
+FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;;
+FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;;
+FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;;
+FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;;
+FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;;
+FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;;
+FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;;
+FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;;
+FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;;
+FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;;
+FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;;
+FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;;
+FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;;
+FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;;
+FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;;
+FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;;
+FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;;
+FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;;
+FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;;
+FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;;
+FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;;
+FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;;
+FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;;
+FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;;
+FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;;
+FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;;
+FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;;
+FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;;
+FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;;
+FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;;
+FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;;
+FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;;
+FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;;
+FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;
+FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
+FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
+FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;
+FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;
+FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;
+FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;;
+FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;;
+FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;;
+FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;;
+FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;;
+FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;;
+FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;;
+FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;;
+FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;;
+FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;;
+FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;;
+FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;;
+FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;;
+FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;;
+FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;;
+FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;;
+FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;;
+FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;;
+FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;;
+FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;;
+FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;;
+FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;;
+FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;;
+FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;;
+FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;;
+FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;;
+FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;;
+FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;;
+FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;;
+FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;;
+FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;;
+FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;;
+FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;;
+FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;;
+FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;;
+FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;;
+FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;;
+FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;;
+FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;;
+FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;;
+FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;;
+FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;;
+FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;;
+FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;;
+FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;;
+FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;;
+FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;;
+FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;;
+FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;;
+FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;;
+FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;;
+FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;;
+FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;;
+FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;;
+FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;;
+FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;;
+FA70;CJK COMPATIBILITY IDEOGRAPH-FA70;Lo;0;L;4E26;;;;N;;;;;
+FA71;CJK COMPATIBILITY IDEOGRAPH-FA71;Lo;0;L;51B5;;;;N;;;;;
+FA72;CJK COMPATIBILITY IDEOGRAPH-FA72;Lo;0;L;5168;;;;N;;;;;
+FA73;CJK COMPATIBILITY IDEOGRAPH-FA73;Lo;0;L;4F80;;;;N;;;;;
+FA74;CJK COMPATIBILITY IDEOGRAPH-FA74;Lo;0;L;5145;;;;N;;;;;
+FA75;CJK COMPATIBILITY IDEOGRAPH-FA75;Lo;0;L;5180;;;;N;;;;;
+FA76;CJK COMPATIBILITY IDEOGRAPH-FA76;Lo;0;L;52C7;;;;N;;;;;
+FA77;CJK COMPATIBILITY IDEOGRAPH-FA77;Lo;0;L;52FA;;;;N;;;;;
+FA78;CJK COMPATIBILITY IDEOGRAPH-FA78;Lo;0;L;559D;;;;N;;;;;
+FA79;CJK COMPATIBILITY IDEOGRAPH-FA79;Lo;0;L;5555;;;;N;;;;;
+FA7A;CJK COMPATIBILITY IDEOGRAPH-FA7A;Lo;0;L;5599;;;;N;;;;;
+FA7B;CJK COMPATIBILITY IDEOGRAPH-FA7B;Lo;0;L;55E2;;;;N;;;;;
+FA7C;CJK COMPATIBILITY IDEOGRAPH-FA7C;Lo;0;L;585A;;;;N;;;;;
+FA7D;CJK COMPATIBILITY IDEOGRAPH-FA7D;Lo;0;L;58B3;;;;N;;;;;
+FA7E;CJK COMPATIBILITY IDEOGRAPH-FA7E;Lo;0;L;5944;;;;N;;;;;
+FA7F;CJK COMPATIBILITY IDEOGRAPH-FA7F;Lo;0;L;5954;;;;N;;;;;
+FA80;CJK COMPATIBILITY IDEOGRAPH-FA80;Lo;0;L;5A62;;;;N;;;;;
+FA81;CJK COMPATIBILITY IDEOGRAPH-FA81;Lo;0;L;5B28;;;;N;;;;;
+FA82;CJK COMPATIBILITY IDEOGRAPH-FA82;Lo;0;L;5ED2;;;;N;;;;;
+FA83;CJK COMPATIBILITY IDEOGRAPH-FA83;Lo;0;L;5ED9;;;;N;;;;;
+FA84;CJK COMPATIBILITY IDEOGRAPH-FA84;Lo;0;L;5F69;;;;N;;;;;
+FA85;CJK COMPATIBILITY IDEOGRAPH-FA85;Lo;0;L;5FAD;;;;N;;;;;
+FA86;CJK COMPATIBILITY IDEOGRAPH-FA86;Lo;0;L;60D8;;;;N;;;;;
+FA87;CJK COMPATIBILITY IDEOGRAPH-FA87;Lo;0;L;614E;;;;N;;;;;
+FA88;CJK COMPATIBILITY IDEOGRAPH-FA88;Lo;0;L;6108;;;;N;;;;;
+FA89;CJK COMPATIBILITY IDEOGRAPH-FA89;Lo;0;L;618E;;;;N;;;;;
+FA8A;CJK COMPATIBILITY IDEOGRAPH-FA8A;Lo;0;L;6160;;;;N;;;;;
+FA8B;CJK COMPATIBILITY IDEOGRAPH-FA8B;Lo;0;L;61F2;;;;N;;;;;
+FA8C;CJK COMPATIBILITY IDEOGRAPH-FA8C;Lo;0;L;6234;;;;N;;;;;
+FA8D;CJK COMPATIBILITY IDEOGRAPH-FA8D;Lo;0;L;63C4;;;;N;;;;;
+FA8E;CJK COMPATIBILITY IDEOGRAPH-FA8E;Lo;0;L;641C;;;;N;;;;;
+FA8F;CJK COMPATIBILITY IDEOGRAPH-FA8F;Lo;0;L;6452;;;;N;;;;;
+FA90;CJK COMPATIBILITY IDEOGRAPH-FA90;Lo;0;L;6556;;;;N;;;;;
+FA91;CJK COMPATIBILITY IDEOGRAPH-FA91;Lo;0;L;6674;;;;N;;;;;
+FA92;CJK COMPATIBILITY IDEOGRAPH-FA92;Lo;0;L;6717;;;;N;;;;;
+FA93;CJK COMPATIBILITY IDEOGRAPH-FA93;Lo;0;L;671B;;;;N;;;;;
+FA94;CJK COMPATIBILITY IDEOGRAPH-FA94;Lo;0;L;6756;;;;N;;;;;
+FA95;CJK COMPATIBILITY IDEOGRAPH-FA95;Lo;0;L;6B79;;;;N;;;;;
+FA96;CJK COMPATIBILITY IDEOGRAPH-FA96;Lo;0;L;6BBA;;;;N;;;;;
+FA97;CJK COMPATIBILITY IDEOGRAPH-FA97;Lo;0;L;6D41;;;;N;;;;;
+FA98;CJK COMPATIBILITY IDEOGRAPH-FA98;Lo;0;L;6EDB;;;;N;;;;;
+FA99;CJK COMPATIBILITY IDEOGRAPH-FA99;Lo;0;L;6ECB;;;;N;;;;;
+FA9A;CJK COMPATIBILITY IDEOGRAPH-FA9A;Lo;0;L;6F22;;;;N;;;;;
+FA9B;CJK COMPATIBILITY IDEOGRAPH-FA9B;Lo;0;L;701E;;;;N;;;;;
+FA9C;CJK COMPATIBILITY IDEOGRAPH-FA9C;Lo;0;L;716E;;;;N;;;;;
+FA9D;CJK COMPATIBILITY IDEOGRAPH-FA9D;Lo;0;L;77A7;;;;N;;;;;
+FA9E;CJK COMPATIBILITY IDEOGRAPH-FA9E;Lo;0;L;7235;;;;N;;;;;
+FA9F;CJK COMPATIBILITY IDEOGRAPH-FA9F;Lo;0;L;72AF;;;;N;;;;;
+FAA0;CJK COMPATIBILITY IDEOGRAPH-FAA0;Lo;0;L;732A;;;;N;;;;;
+FAA1;CJK COMPATIBILITY IDEOGRAPH-FAA1;Lo;0;L;7471;;;;N;;;;;
+FAA2;CJK COMPATIBILITY IDEOGRAPH-FAA2;Lo;0;L;7506;;;;N;;;;;
+FAA3;CJK COMPATIBILITY IDEOGRAPH-FAA3;Lo;0;L;753B;;;;N;;;;;
+FAA4;CJK COMPATIBILITY IDEOGRAPH-FAA4;Lo;0;L;761D;;;;N;;;;;
+FAA5;CJK COMPATIBILITY IDEOGRAPH-FAA5;Lo;0;L;761F;;;;N;;;;;
+FAA6;CJK COMPATIBILITY IDEOGRAPH-FAA6;Lo;0;L;76CA;;;;N;;;;;
+FAA7;CJK COMPATIBILITY IDEOGRAPH-FAA7;Lo;0;L;76DB;;;;N;;;;;
+FAA8;CJK COMPATIBILITY IDEOGRAPH-FAA8;Lo;0;L;76F4;;;;N;;;;;
+FAA9;CJK COMPATIBILITY IDEOGRAPH-FAA9;Lo;0;L;774A;;;;N;;;;;
+FAAA;CJK COMPATIBILITY IDEOGRAPH-FAAA;Lo;0;L;7740;;;;N;;;;;
+FAAB;CJK COMPATIBILITY IDEOGRAPH-FAAB;Lo;0;L;78CC;;;;N;;;;;
+FAAC;CJK COMPATIBILITY IDEOGRAPH-FAAC;Lo;0;L;7AB1;;;;N;;;;;
+FAAD;CJK COMPATIBILITY IDEOGRAPH-FAAD;Lo;0;L;7BC0;;;;N;;;;;
+FAAE;CJK COMPATIBILITY IDEOGRAPH-FAAE;Lo;0;L;7C7B;;;;N;;;;;
+FAAF;CJK COMPATIBILITY IDEOGRAPH-FAAF;Lo;0;L;7D5B;;;;N;;;;;
+FAB0;CJK COMPATIBILITY IDEOGRAPH-FAB0;Lo;0;L;7DF4;;;;N;;;;;
+FAB1;CJK COMPATIBILITY IDEOGRAPH-FAB1;Lo;0;L;7F3E;;;;N;;;;;
+FAB2;CJK COMPATIBILITY IDEOGRAPH-FAB2;Lo;0;L;8005;;;;N;;;;;
+FAB3;CJK COMPATIBILITY IDEOGRAPH-FAB3;Lo;0;L;8352;;;;N;;;;;
+FAB4;CJK COMPATIBILITY IDEOGRAPH-FAB4;Lo;0;L;83EF;;;;N;;;;;
+FAB5;CJK COMPATIBILITY IDEOGRAPH-FAB5;Lo;0;L;8779;;;;N;;;;;
+FAB6;CJK COMPATIBILITY IDEOGRAPH-FAB6;Lo;0;L;8941;;;;N;;;;;
+FAB7;CJK COMPATIBILITY IDEOGRAPH-FAB7;Lo;0;L;8986;;;;N;;;;;
+FAB8;CJK COMPATIBILITY IDEOGRAPH-FAB8;Lo;0;L;8996;;;;N;;;;;
+FAB9;CJK COMPATIBILITY IDEOGRAPH-FAB9;Lo;0;L;8ABF;;;;N;;;;;
+FABA;CJK COMPATIBILITY IDEOGRAPH-FABA;Lo;0;L;8AF8;;;;N;;;;;
+FABB;CJK COMPATIBILITY IDEOGRAPH-FABB;Lo;0;L;8ACB;;;;N;;;;;
+FABC;CJK COMPATIBILITY IDEOGRAPH-FABC;Lo;0;L;8B01;;;;N;;;;;
+FABD;CJK COMPATIBILITY IDEOGRAPH-FABD;Lo;0;L;8AFE;;;;N;;;;;
+FABE;CJK COMPATIBILITY IDEOGRAPH-FABE;Lo;0;L;8AED;;;;N;;;;;
+FABF;CJK COMPATIBILITY IDEOGRAPH-FABF;Lo;0;L;8B39;;;;N;;;;;
+FAC0;CJK COMPATIBILITY IDEOGRAPH-FAC0;Lo;0;L;8B8A;;;;N;;;;;
+FAC1;CJK COMPATIBILITY IDEOGRAPH-FAC1;Lo;0;L;8D08;;;;N;;;;;
+FAC2;CJK COMPATIBILITY IDEOGRAPH-FAC2;Lo;0;L;8F38;;;;N;;;;;
+FAC3;CJK COMPATIBILITY IDEOGRAPH-FAC3;Lo;0;L;9072;;;;N;;;;;
+FAC4;CJK COMPATIBILITY IDEOGRAPH-FAC4;Lo;0;L;9199;;;;N;;;;;
+FAC5;CJK COMPATIBILITY IDEOGRAPH-FAC5;Lo;0;L;9276;;;;N;;;;;
+FAC6;CJK COMPATIBILITY IDEOGRAPH-FAC6;Lo;0;L;967C;;;;N;;;;;
+FAC7;CJK COMPATIBILITY IDEOGRAPH-FAC7;Lo;0;L;96E3;;;;N;;;;;
+FAC8;CJK COMPATIBILITY IDEOGRAPH-FAC8;Lo;0;L;9756;;;;N;;;;;
+FAC9;CJK COMPATIBILITY IDEOGRAPH-FAC9;Lo;0;L;97DB;;;;N;;;;;
+FACA;CJK COMPATIBILITY IDEOGRAPH-FACA;Lo;0;L;97FF;;;;N;;;;;
+FACB;CJK COMPATIBILITY IDEOGRAPH-FACB;Lo;0;L;980B;;;;N;;;;;
+FACC;CJK COMPATIBILITY IDEOGRAPH-FACC;Lo;0;L;983B;;;;N;;;;;
+FACD;CJK COMPATIBILITY IDEOGRAPH-FACD;Lo;0;L;9B12;;;;N;;;;;
+FACE;CJK COMPATIBILITY IDEOGRAPH-FACE;Lo;0;L;9F9C;;;;N;;;;;
+FACF;CJK COMPATIBILITY IDEOGRAPH-FACF;Lo;0;L;2284A;;;;N;;;;;
+FAD0;CJK COMPATIBILITY IDEOGRAPH-FAD0;Lo;0;L;22844;;;;N;;;;;
+FAD1;CJK COMPATIBILITY IDEOGRAPH-FAD1;Lo;0;L;233D5;;;;N;;;;;
+FAD2;CJK COMPATIBILITY IDEOGRAPH-FAD2;Lo;0;L;3B9D;;;;N;;;;;
+FAD3;CJK COMPATIBILITY IDEOGRAPH-FAD3;Lo;0;L;4018;;;;N;;;;;
+FAD4;CJK COMPATIBILITY IDEOGRAPH-FAD4;Lo;0;L;4039;;;;N;;;;;
+FAD5;CJK COMPATIBILITY IDEOGRAPH-FAD5;Lo;0;L;25249;;;;N;;;;;
+FAD6;CJK COMPATIBILITY IDEOGRAPH-FAD6;Lo;0;L;25CD0;;;;N;;;;;
+FAD7;CJK COMPATIBILITY IDEOGRAPH-FAD7;Lo;0;L;27ED3;;;;N;;;;;
+FAD8;CJK COMPATIBILITY IDEOGRAPH-FAD8;Lo;0;L;9F43;;;;N;;;;;
+FAD9;CJK COMPATIBILITY IDEOGRAPH-FAD9;Lo;0;L;9F8E;;;;N;;;;;
+FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;
+FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;
+FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;
+FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;;
+FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;;
+FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;;
+FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;;
+FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;;
+FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;;
+FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;;
+FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;;
+FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;;
+FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;;
+FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;;
+FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;;
+FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;;
+FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;;
+FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;;
+FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;;
+FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;;
+FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;;
+FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;;
+FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;;
+FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;;
+FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ES;<font> 002B;;;;N;;;;;
+FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;;
+FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;;
+FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;;
+FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;;
+FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;;
+FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;;
+FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;;
+FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;;
+FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;;
+FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;;
+FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;;
+FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;;
+FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;;
+FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;;
+FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;;
+FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;;
+FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;;
+FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;;
+FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;;
+FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;;
+FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;;
+FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;;
+FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;;
+FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;;
+FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;;
+FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;;
+FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;;
+FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;;
+FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;;
+FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;;
+FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;;
+FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;;
+FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;;
+FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;;
+FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;;
+FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;;
+FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;;
+FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;;
+FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;;
+FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;;
+FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;;
+FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;;
+FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;;
+FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;;
+FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;;
+FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;;
+FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;;
+FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;;
+FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;;
+FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;;
+FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;;
+FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;;
+FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;;
+FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;;
+FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;;
+FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;;
+FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;;
+FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;;
+FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;;
+FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;;
+FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;;
+FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;;
+FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;;
+FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;;
+FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;;
+FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;;
+FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;;
+FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;;
+FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;;
+FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;;
+FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;;
+FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;;
+FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;;
+FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;;
+FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;;
+FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;;
+FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;;
+FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;;
+FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;;
+FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;;
+FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;;
+FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;;
+FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;;
+FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;;
+FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;;
+FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;;
+FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;;
+FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;;
+FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;;
+FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;;
+FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;;
+FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;;
+FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;;
+FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;;
+FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;;
+FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;;
+FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;;
+FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;;
+FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;;
+FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;;
+FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;;
+FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;;
+FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;;
+FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;;
+FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;;
+FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;;
+FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;;
+FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;;
+FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;;
+FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;;
+FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;;
+FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;;
+FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;;
+FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;;
+FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;;
+FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;;
+FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;;
+FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;;
+FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;;
+FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;;
+FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;;
+FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;;
+FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;;
+FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;;
+FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;;
+FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;;
+FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;;
+FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;;
+FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;;
+FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;;
+FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;;
+FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
+FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
+FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
+FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;;
+FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;;
+FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;;
+FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;;
+FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;;
+FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;;
+FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;;
+FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;;
+FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;;
+FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;;
+FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;;
+FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;;
+FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;;
+FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;;
+FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;;
+FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;;
+FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;;
+FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;;
+FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;;
+FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;;
+FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;;
+FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;;
+FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;;
+FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;;
+FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;;
+FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;;
+FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;;
+FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;;
+FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;;
+FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;;
+FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;;
+FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;;
+FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;;
+FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;;
+FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;;
+FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;;
+FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;;
+FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;;
+FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;;
+FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;;
+FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;;
+FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;;
+FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;;
+FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;;
+FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;;
+FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;;
+FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;;
+FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;;
+FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;;
+FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;;
+FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;;
+FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;;
+FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;;
+FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;;
+FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;;
+FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;;
+FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;;
+FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;;
+FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;;
+FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;;
+FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;;
+FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;;
+FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;;
+FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;;
+FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;;
+FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;;
+FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;;
+FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;;
+FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;;
+FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;;
+FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;;
+FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;;
+FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;;
+FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;;
+FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;;
+FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;;
+FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;;
+FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;;
+FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;;
+FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;;
+FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;;
+FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;;
+FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;;
+FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;;
+FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;;
+FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;;
+FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;;
+FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;;
+FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;;
+FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;;
+FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;;
+FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;;
+FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;;
+FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;;
+FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;;
+FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;;
+FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;;
+FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;;
+FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;;
+FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;;
+FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;;
+FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;;
+FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;;
+FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;;
+FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;;
+FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;;
+FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;;
+FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;;
+FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;;
+FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;;
+FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;;
+FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;;
+FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;;
+FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;;
+FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;;
+FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;;
+FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;;
+FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;;
+FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;;
+FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;;
+FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;;
+FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;;
+FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;;
+FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;;
+FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;;
+FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;;
+FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;;
+FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;;
+FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;;
+FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;;
+FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;;
+FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;;
+FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;;
+FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;;
+FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;;
+FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;;
+FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;;
+FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;;
+FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;;
+FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;;
+FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;;
+FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;;
+FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;;
+FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;;
+FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;;
+FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;;
+FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;;
+FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;;
+FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;;
+FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;;
+FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;;
+FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;;
+FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;;
+FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;;
+FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;;
+FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;;
+FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;;
+FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;;
+FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;;
+FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;;
+FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;;
+FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;;
+FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;;
+FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;;
+FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;;
+FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;;
+FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;;
+FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;;
+FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;;
+FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;;
+FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;;
+FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;;
+FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;;
+FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;;
+FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;;
+FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;;
+FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;;
+FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;;
+FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;;
+FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;;
+FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;;
+FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;;
+FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;;
+FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;;
+FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;;
+FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;;
+FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;;
+FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;;
+FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;;
+FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;;
+FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;;
+FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;;
+FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;;
+FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;;
+FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;;
+FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;;
+FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;;
+FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;;
+FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;;
+FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;;
+FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;;
+FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;;
+FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;;
+FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;;
+FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;;
+FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;;
+FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;;
+FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;;
+FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;;
+FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;;
+FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;;
+FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;;
+FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;;
+FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;;
+FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;;
+FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;;
+FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;;
+FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;;
+FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;;
+FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;;
+FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;;
+FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;;
+FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;;
+FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;;
+FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;;
+FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;;
+FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;;
+FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;;
+FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;;
+FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;;
+FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;;
+FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;;
+FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;;
+FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;;
+FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;;
+FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;;
+FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;;
+FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;;
+FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;;
+FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;;
+FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;;
+FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;;
+FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;;
+FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;;
+FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;;
+FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;;
+FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;;
+FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;;
+FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;;
+FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;;
+FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;;
+FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;;
+FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;;
+FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;;
+FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;;
+FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;;
+FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;;
+FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;;
+FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;;
+FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;;
+FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;;
+FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;;
+FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;;
+FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;;
+FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;;
+FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;;
+FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;;
+FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;;
+FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;;
+FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;;
+FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;;
+FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;;
+FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;;
+FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;;
+FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;;
+FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;;
+FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;;
+FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;;
+FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;;
+FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;;
+FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;;
+FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;;
+FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;;
+FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;;
+FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;;
+FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;;
+FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;;
+FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;;
+FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;;
+FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;;
+FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;;
+FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;;
+FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;;
+FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;;
+FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;;
+FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;;
+FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;;
+FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;;
+FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;;
+FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;;
+FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;;
+FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;;
+FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;;
+FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;;
+FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;;
+FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;;
+FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;;
+FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;;
+FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;;
+FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;;
+FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;;
+FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;;
+FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;;
+FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;;
+FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;;
+FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;;
+FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;;
+FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;;
+FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;;
+FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;;
+FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;;
+FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;;
+FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;;
+FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;;
+FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;;
+FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;;
+FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;;
+FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;;
+FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;;
+FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;;
+FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;;
+FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;;
+FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;;
+FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;;
+FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;;
+FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;;
+FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;;
+FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;;
+FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;;
+FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;;
+FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;;
+FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;;
+FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;;
+FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;;
+FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;;
+FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;;
+FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;;
+FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;;
+FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;;
+FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;;
+FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;;
+FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;;
+FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;;
+FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
+FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
+FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
+FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
+FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
+FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
+FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
+FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;;
+FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;;
+FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;;
+FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;;
+FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;;
+FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;;
+FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;;
+FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;;
+FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;;
+FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;;
+FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;;
+FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;;
+FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;;
+FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;;
+FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;;
+FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;;
+FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;;
+FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;;
+FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;;
+FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;;
+FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;;
+FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;;
+FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;;
+FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;;
+FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;;
+FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;;
+FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;;
+FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;;
+FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;;
+FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;;
+FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;;
+FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;;
+FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;;
+FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;;
+FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;;
+FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;;
+FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;;
+FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;;
+FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;;
+FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;;
+FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;;
+FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;;
+FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;;
+FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;;
+FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;;
+FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;;
+FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;;
+FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;;
+FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;;
+FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;;
+FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;;
+FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;;
+FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;;
+FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;;
+FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;;
+FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;;
+FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;;
+FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;;
+FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;
+FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;
+FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;
+FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;
+FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;
+FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;
+FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;;
+FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;;
+FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;;
+FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;;
+FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;;
+FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;;
+FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;;
+FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;;
+FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;;
+FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;;
+FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;;
+FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;;
+FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;;
+FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;;
+FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;;
+FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;;
+FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;;
+FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;;
+FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;;
+FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;;
+FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;;
+FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;;
+FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;;
+FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;;
+FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;;
+FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;;
+FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;;
+FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;;
+FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;;
+FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;;
+FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;;
+FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;;
+FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;;
+FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;;
+FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;;
+FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;;
+FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;;
+FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;;
+FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;;
+FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;;
+FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;;
+FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;;
+FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;;
+FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;;
+FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;;
+FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;;
+FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;;
+FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;;
+FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
+FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
+FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
+FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
+FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
+FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;
+FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;;
+FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;;
+FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;;
+FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;;
+FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;;
+FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;;
+FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;
+FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
+FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
+FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;;
+FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;
+FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
+FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
+FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
+FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;
+FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;
+FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;
+FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;
+FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;
+FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;
+FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;
+FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;
+FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;
+FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;
+FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;
+FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;
+FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;
+FE10;PRESENTATION FORM FOR VERTICAL COMMA;Po;0;ON;<vertical> 002C;;;;N;;;;;
+FE11;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA;Po;0;ON;<vertical> 3001;;;;N;;;;;
+FE12;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP;Po;0;ON;<vertical> 3002;;;;N;;;;;
+FE13;PRESENTATION FORM FOR VERTICAL COLON;Po;0;ON;<vertical> 003A;;;;N;;;;;
+FE14;PRESENTATION FORM FOR VERTICAL SEMICOLON;Po;0;ON;<vertical> 003B;;;;N;;;;;
+FE15;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK;Po;0;ON;<vertical> 0021;;;;N;;;;;
+FE16;PRESENTATION FORM FOR VERTICAL QUESTION MARK;Po;0;ON;<vertical> 003F;;;;N;;;;;
+FE17;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;<vertical> 3016;;;;N;;;;;
+FE18;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET;Pe;0;ON;<vertical> 3017;;;;N;;;;;
+FE19;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS;Po;0;ON;<vertical> 2026;;;;N;;;;;
+FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE24;COMBINING MACRON LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE25;COMBINING MACRON RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE26;COMBINING CONJOINING MACRON;Mn;230;NSM;;;;;N;;;;;
+FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
+FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
+FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
+FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
+FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
+FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
+FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
+FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
+FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
+FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
+FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
+FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
+FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
+FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
+FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
+FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
+FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
+FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
+FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
+FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
+FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
+FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;
+FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;
+FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;<vertical> 005B;;;;N;;;;;
+FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;<vertical> 005D;;;;N;;;;;
+FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;
+FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
+FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;
+FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
+FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
+FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
+FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
+FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;;
+FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;;
+FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;;
+FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;;
+FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;
+FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;
+FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;
+FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;
+FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;Y;SMALL OPENING PARENTHESIS;;;;
+FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;;
+FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;;
+FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;;
+FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;;
+FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
+FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;
+FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;
+FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;
+FE62;SMALL PLUS SIGN;Sm;0;ES;<small> 002B;;;;N;;;;;
+FE63;SMALL HYPHEN-MINUS;Pd;0;ES;<small> 002D;;;;N;;;;;
+FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;Y;;;;;
+FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;Y;;;;;
+FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;
+FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;
+FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;
+FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;;
+FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;
+FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
+FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
+FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
+FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;
+FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
+FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
+FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
+FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
+FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
+FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
+FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
+FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
+FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
+FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
+FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
+FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
+FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
+FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
+FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
+FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
+FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
+FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
+FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
+FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
+FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
+FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
+FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
+FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
+FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
+FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
+FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
+FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
+FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
+FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
+FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
+FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
+FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
+FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
+FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
+FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
+FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
+FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
+FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
+FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
+FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
+FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
+FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
+FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
+FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
+FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
+FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
+FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
+FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
+FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
+FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
+FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
+FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
+FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
+FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
+FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
+FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
+FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
+FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
+FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
+FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
+FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
+FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
+FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
+FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
+FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
+FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
+FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
+FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
+FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
+FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
+FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
+FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
+FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
+FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
+FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
+FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
+FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
+FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
+FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
+FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
+FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
+FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
+FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
+FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
+FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
+FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
+FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
+FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
+FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
+FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
+FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
+FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
+FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
+FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
+FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
+FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
+FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
+FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
+FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
+FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
+FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
+FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
+FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
+FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
+FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
+FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
+FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
+FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
+FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
+FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
+FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
+FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
+FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
+FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
+FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
+FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
+FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
+FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
+FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
+FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
+FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
+FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
+FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
+FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
+FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
+FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
+FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
+FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
+FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
+FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;;
+FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;;
+FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;;
+FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;;
+FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;
+FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;
+FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;
+FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;
+FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;;
+FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;;
+FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;
+FF0B;FULLWIDTH PLUS SIGN;Sm;0;ES;<wide> 002B;;;;N;;;;;
+FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;
+FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ES;<wide> 002D;;;;N;;;;;
+FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;;
+FF0F;FULLWIDTH SOLIDUS;Po;0;CS;<wide> 002F;;;;N;FULLWIDTH SLASH;;;;
+FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;;
+FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;;
+FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;;
+FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;;
+FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;;
+FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;;
+FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;;
+FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;;
+FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;
+FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;
+FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;
+FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;
+FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;Y;;;;;
+FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;
+FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;Y;;;;;
+FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;
+FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;
+FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;
+FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42;
+FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43;
+FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44;
+FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45;
+FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46;
+FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47;
+FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48;
+FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49;
+FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A;
+FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B;
+FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C;
+FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D;
+FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E;
+FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F;
+FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50;
+FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51;
+FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52;
+FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53;
+FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54;
+FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55;
+FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56;
+FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;
+FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;
+FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;
+FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;
+FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;;
+FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;
+FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;;
+FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;
+FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;
+FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;
+FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21
+FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22
+FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23
+FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24
+FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25
+FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26
+FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27
+FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28
+FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29
+FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A
+FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B
+FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C
+FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D
+FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E
+FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F
+FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30
+FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31
+FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32
+FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33
+FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34
+FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35
+FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36
+FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37
+FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38
+FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39
+FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A
+FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;;
+FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;
+FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;;
+FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;
+FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON;<wide> 2985;;;;Y;;*;;;
+FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON;<wide> 2986;;;;Y;;*;;;
+FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;
+FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;;
+FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;;
+FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;
+FF65;HALFWIDTH KATAKANA MIDDLE DOT;Po;0;ON;<narrow> 30FB;;;;N;;;;;
+FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;
+FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;;
+FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;;
+FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;;
+FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;;
+FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;;
+FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;;
+FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;;
+FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;;
+FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;;
+FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;;
+FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;;
+FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;;
+FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;;
+FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;;
+FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;;
+FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;;
+FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;;
+FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;;
+FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;;
+FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;;
+FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;
+FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;;
+FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;;
+FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;;
+FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;;
+FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;;
+FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;;
+FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;;
+FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;;
+FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;;
+FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;;
+FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;;
+FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;;
+FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;;
+FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;;
+FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;;
+FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;;
+FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;;
+FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;;
+FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;;
+FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;;
+FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;;
+FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;;
+FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;;
+FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;;
+FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;;
+FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;;
+FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;;
+FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;;
+FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;;
+FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;;
+FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;;
+FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;;
+FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;;
+FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;;
+FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;;
+FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;;
+FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;;
+FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;;
+FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;;
+FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;
+FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;;
+FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;;
+FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;;
+FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;;
+FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;;
+FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;;
+FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;;
+FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;;
+FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;;
+FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;;
+FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;;
+FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;;
+FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;;
+FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;;
+FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;;
+FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;;
+FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;;
+FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;;
+FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;;
+FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;;
+FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;;
+FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;;
+FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;;
+FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;;
+FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;;
+FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;;
+FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;;
+FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;;
+FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;;
+FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;;
+FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;;
+FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;;
+FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;;
+FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;;
+FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;;
+FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;;
+FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;;
+FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;;
+FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;;
+FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;;
+FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;;
+FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;;
+FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;;
+FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;;
+FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;;
+FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;;
+FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;;
+FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;
+FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;;
+FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;;
+FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;;
+FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;;
+FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;;
+FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;;
+FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;;
+FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;;
+FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;;
+FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;;
+FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;;
+FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;;
+FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;;
+FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;;
+FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;ON;;;;;N;;;;;
+FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;ON;;;;;N;;;;;
+FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;ON;;;;;N;;;;;
+FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+10000;LINEAR B SYLLABLE B008 A;Lo;0;L;;;;;N;;;;;
+10001;LINEAR B SYLLABLE B038 E;Lo;0;L;;;;;N;;;;;
+10002;LINEAR B SYLLABLE B028 I;Lo;0;L;;;;;N;;;;;
+10003;LINEAR B SYLLABLE B061 O;Lo;0;L;;;;;N;;;;;
+10004;LINEAR B SYLLABLE B010 U;Lo;0;L;;;;;N;;;;;
+10005;LINEAR B SYLLABLE B001 DA;Lo;0;L;;;;;N;;;;;
+10006;LINEAR B SYLLABLE B045 DE;Lo;0;L;;;;;N;;;;;
+10007;LINEAR B SYLLABLE B007 DI;Lo;0;L;;;;;N;;;;;
+10008;LINEAR B SYLLABLE B014 DO;Lo;0;L;;;;;N;;;;;
+10009;LINEAR B SYLLABLE B051 DU;Lo;0;L;;;;;N;;;;;
+1000A;LINEAR B SYLLABLE B057 JA;Lo;0;L;;;;;N;;;;;
+1000B;LINEAR B SYLLABLE B046 JE;Lo;0;L;;;;;N;;;;;
+1000D;LINEAR B SYLLABLE B036 JO;Lo;0;L;;;;;N;;;;;
+1000E;LINEAR B SYLLABLE B065 JU;Lo;0;L;;;;;N;;;;;
+1000F;LINEAR B SYLLABLE B077 KA;Lo;0;L;;;;;N;;;;;
+10010;LINEAR B SYLLABLE B044 KE;Lo;0;L;;;;;N;;;;;
+10011;LINEAR B SYLLABLE B067 KI;Lo;0;L;;;;;N;;;;;
+10012;LINEAR B SYLLABLE B070 KO;Lo;0;L;;;;;N;;;;;
+10013;LINEAR B SYLLABLE B081 KU;Lo;0;L;;;;;N;;;;;
+10014;LINEAR B SYLLABLE B080 MA;Lo;0;L;;;;;N;;;;;
+10015;LINEAR B SYLLABLE B013 ME;Lo;0;L;;;;;N;;;;;
+10016;LINEAR B SYLLABLE B073 MI;Lo;0;L;;;;;N;;;;;
+10017;LINEAR B SYLLABLE B015 MO;Lo;0;L;;;;;N;;;;;
+10018;LINEAR B SYLLABLE B023 MU;Lo;0;L;;;;;N;;;;;
+10019;LINEAR B SYLLABLE B006 NA;Lo;0;L;;;;;N;;;;;
+1001A;LINEAR B SYLLABLE B024 NE;Lo;0;L;;;;;N;;;;;
+1001B;LINEAR B SYLLABLE B030 NI;Lo;0;L;;;;;N;;;;;
+1001C;LINEAR B SYLLABLE B052 NO;Lo;0;L;;;;;N;;;;;
+1001D;LINEAR B SYLLABLE B055 NU;Lo;0;L;;;;;N;;;;;
+1001E;LINEAR B SYLLABLE B003 PA;Lo;0;L;;;;;N;;;;;
+1001F;LINEAR B SYLLABLE B072 PE;Lo;0;L;;;;;N;;;;;
+10020;LINEAR B SYLLABLE B039 PI;Lo;0;L;;;;;N;;;;;
+10021;LINEAR B SYLLABLE B011 PO;Lo;0;L;;;;;N;;;;;
+10022;LINEAR B SYLLABLE B050 PU;Lo;0;L;;;;;N;;;;;
+10023;LINEAR B SYLLABLE B016 QA;Lo;0;L;;;;;N;;;;;
+10024;LINEAR B SYLLABLE B078 QE;Lo;0;L;;;;;N;;;;;
+10025;LINEAR B SYLLABLE B021 QI;Lo;0;L;;;;;N;;;;;
+10026;LINEAR B SYLLABLE B032 QO;Lo;0;L;;;;;N;;;;;
+10028;LINEAR B SYLLABLE B060 RA;Lo;0;L;;;;;N;;;;;
+10029;LINEAR B SYLLABLE B027 RE;Lo;0;L;;;;;N;;;;;
+1002A;LINEAR B SYLLABLE B053 RI;Lo;0;L;;;;;N;;;;;
+1002B;LINEAR B SYLLABLE B002 RO;Lo;0;L;;;;;N;;;;;
+1002C;LINEAR B SYLLABLE B026 RU;Lo;0;L;;;;;N;;;;;
+1002D;LINEAR B SYLLABLE B031 SA;Lo;0;L;;;;;N;;;;;
+1002E;LINEAR B SYLLABLE B009 SE;Lo;0;L;;;;;N;;;;;
+1002F;LINEAR B SYLLABLE B041 SI;Lo;0;L;;;;;N;;;;;
+10030;LINEAR B SYLLABLE B012 SO;Lo;0;L;;;;;N;;;;;
+10031;LINEAR B SYLLABLE B058 SU;Lo;0;L;;;;;N;;;;;
+10032;LINEAR B SYLLABLE B059 TA;Lo;0;L;;;;;N;;;;;
+10033;LINEAR B SYLLABLE B004 TE;Lo;0;L;;;;;N;;;;;
+10034;LINEAR B SYLLABLE B037 TI;Lo;0;L;;;;;N;;;;;
+10035;LINEAR B SYLLABLE B005 TO;Lo;0;L;;;;;N;;;;;
+10036;LINEAR B SYLLABLE B069 TU;Lo;0;L;;;;;N;;;;;
+10037;LINEAR B SYLLABLE B054 WA;Lo;0;L;;;;;N;;;;;
+10038;LINEAR B SYLLABLE B075 WE;Lo;0;L;;;;;N;;;;;
+10039;LINEAR B SYLLABLE B040 WI;Lo;0;L;;;;;N;;;;;
+1003A;LINEAR B SYLLABLE B042 WO;Lo;0;L;;;;;N;;;;;
+1003C;LINEAR B SYLLABLE B017 ZA;Lo;0;L;;;;;N;;;;;
+1003D;LINEAR B SYLLABLE B074 ZE;Lo;0;L;;;;;N;;;;;
+1003F;LINEAR B SYLLABLE B020 ZO;Lo;0;L;;;;;N;;;;;
+10040;LINEAR B SYLLABLE B025 A2;Lo;0;L;;;;;N;;;;;
+10041;LINEAR B SYLLABLE B043 A3;Lo;0;L;;;;;N;;;;;
+10042;LINEAR B SYLLABLE B085 AU;Lo;0;L;;;;;N;;;;;
+10043;LINEAR B SYLLABLE B071 DWE;Lo;0;L;;;;;N;;;;;
+10044;LINEAR B SYLLABLE B090 DWO;Lo;0;L;;;;;N;;;;;
+10045;LINEAR B SYLLABLE B048 NWA;Lo;0;L;;;;;N;;;;;
+10046;LINEAR B SYLLABLE B029 PU2;Lo;0;L;;;;;N;;;;;
+10047;LINEAR B SYLLABLE B062 PTE;Lo;0;L;;;;;N;;;;;
+10048;LINEAR B SYLLABLE B076 RA2;Lo;0;L;;;;;N;;;;;
+10049;LINEAR B SYLLABLE B033 RA3;Lo;0;L;;;;;N;;;;;
+1004A;LINEAR B SYLLABLE B068 RO2;Lo;0;L;;;;;N;;;;;
+1004B;LINEAR B SYLLABLE B066 TA2;Lo;0;L;;;;;N;;;;;
+1004C;LINEAR B SYLLABLE B087 TWE;Lo;0;L;;;;;N;;;;;
+1004D;LINEAR B SYLLABLE B091 TWO;Lo;0;L;;;;;N;;;;;
+10050;LINEAR B SYMBOL B018;Lo;0;L;;;;;N;;;;;
+10051;LINEAR B SYMBOL B019;Lo;0;L;;;;;N;;;;;
+10052;LINEAR B SYMBOL B022;Lo;0;L;;;;;N;;;;;
+10053;LINEAR B SYMBOL B034;Lo;0;L;;;;;N;;;;;
+10054;LINEAR B SYMBOL B047;Lo;0;L;;;;;N;;;;;
+10055;LINEAR B SYMBOL B049;Lo;0;L;;;;;N;;;;;
+10056;LINEAR B SYMBOL B056;Lo;0;L;;;;;N;;;;;
+10057;LINEAR B SYMBOL B063;Lo;0;L;;;;;N;;;;;
+10058;LINEAR B SYMBOL B064;Lo;0;L;;;;;N;;;;;
+10059;LINEAR B SYMBOL B079;Lo;0;L;;;;;N;;;;;
+1005A;LINEAR B SYMBOL B082;Lo;0;L;;;;;N;;;;;
+1005B;LINEAR B SYMBOL B083;Lo;0;L;;;;;N;;;;;
+1005C;LINEAR B SYMBOL B086;Lo;0;L;;;;;N;;;;;
+1005D;LINEAR B SYMBOL B089;Lo;0;L;;;;;N;;;;;
+10080;LINEAR B IDEOGRAM B100 MAN;Lo;0;L;;;;;N;;;;;
+10081;LINEAR B IDEOGRAM B102 WOMAN;Lo;0;L;;;;;N;;;;;
+10082;LINEAR B IDEOGRAM B104 DEER;Lo;0;L;;;;;N;;;;;
+10083;LINEAR B IDEOGRAM B105 EQUID;Lo;0;L;;;;;N;;;;;
+10084;LINEAR B IDEOGRAM B105F MARE;Lo;0;L;;;;;N;;;;;
+10085;LINEAR B IDEOGRAM B105M STALLION;Lo;0;L;;;;;N;;;;;
+10086;LINEAR B IDEOGRAM B106F EWE;Lo;0;L;;;;;N;;;;;
+10087;LINEAR B IDEOGRAM B106M RAM;Lo;0;L;;;;;N;;;;;
+10088;LINEAR B IDEOGRAM B107F SHE-GOAT;Lo;0;L;;;;;N;;;;;
+10089;LINEAR B IDEOGRAM B107M HE-GOAT;Lo;0;L;;;;;N;;;;;
+1008A;LINEAR B IDEOGRAM B108F SOW;Lo;0;L;;;;;N;;;;;
+1008B;LINEAR B IDEOGRAM B108M BOAR;Lo;0;L;;;;;N;;;;;
+1008C;LINEAR B IDEOGRAM B109F COW;Lo;0;L;;;;;N;;;;;
+1008D;LINEAR B IDEOGRAM B109M BULL;Lo;0;L;;;;;N;;;;;
+1008E;LINEAR B IDEOGRAM B120 WHEAT;Lo;0;L;;;;;N;;;;;
+1008F;LINEAR B IDEOGRAM B121 BARLEY;Lo;0;L;;;;;N;;;;;
+10090;LINEAR B IDEOGRAM B122 OLIVE;Lo;0;L;;;;;N;;;;;
+10091;LINEAR B IDEOGRAM B123 SPICE;Lo;0;L;;;;;N;;;;;
+10092;LINEAR B IDEOGRAM B125 CYPERUS;Lo;0;L;;;;;N;;;;;
+10093;LINEAR B MONOGRAM B127 KAPO;Lo;0;L;;;;;N;;;;;
+10094;LINEAR B MONOGRAM B128 KANAKO;Lo;0;L;;;;;N;;;;;
+10095;LINEAR B IDEOGRAM B130 OIL;Lo;0;L;;;;;N;;;;;
+10096;LINEAR B IDEOGRAM B131 WINE;Lo;0;L;;;;;N;;;;;
+10097;LINEAR B IDEOGRAM B132;Lo;0;L;;;;;N;;;;;
+10098;LINEAR B MONOGRAM B133 AREPA;Lo;0;L;;;;;N;;;;;
+10099;LINEAR B MONOGRAM B135 MERI;Lo;0;L;;;;;N;;;;;
+1009A;LINEAR B IDEOGRAM B140 BRONZE;Lo;0;L;;;;;N;;;;;
+1009B;LINEAR B IDEOGRAM B141 GOLD;Lo;0;L;;;;;N;;;;;
+1009C;LINEAR B IDEOGRAM B142;Lo;0;L;;;;;N;;;;;
+1009D;LINEAR B IDEOGRAM B145 WOOL;Lo;0;L;;;;;N;;;;;
+1009E;LINEAR B IDEOGRAM B146;Lo;0;L;;;;;N;;;;;
+1009F;LINEAR B IDEOGRAM B150;Lo;0;L;;;;;N;;;;;
+100A0;LINEAR B IDEOGRAM B151 HORN;Lo;0;L;;;;;N;;;;;
+100A1;LINEAR B IDEOGRAM B152;Lo;0;L;;;;;N;;;;;
+100A2;LINEAR B IDEOGRAM B153;Lo;0;L;;;;;N;;;;;
+100A3;LINEAR B IDEOGRAM B154;Lo;0;L;;;;;N;;;;;
+100A4;LINEAR B MONOGRAM B156 TURO2;Lo;0;L;;;;;N;;;;;
+100A5;LINEAR B IDEOGRAM B157;Lo;0;L;;;;;N;;;;;
+100A6;LINEAR B IDEOGRAM B158;Lo;0;L;;;;;N;;;;;
+100A7;LINEAR B IDEOGRAM B159 CLOTH;Lo;0;L;;;;;N;;;;;
+100A8;LINEAR B IDEOGRAM B160;Lo;0;L;;;;;N;;;;;
+100A9;LINEAR B IDEOGRAM B161;Lo;0;L;;;;;N;;;;;
+100AA;LINEAR B IDEOGRAM B162 GARMENT;Lo;0;L;;;;;N;;;;;
+100AB;LINEAR B IDEOGRAM B163 ARMOUR;Lo;0;L;;;;;N;;;;;
+100AC;LINEAR B IDEOGRAM B164;Lo;0;L;;;;;N;;;;;
+100AD;LINEAR B IDEOGRAM B165;Lo;0;L;;;;;N;;;;;
+100AE;LINEAR B IDEOGRAM B166;Lo;0;L;;;;;N;;;;;
+100AF;LINEAR B IDEOGRAM B167;Lo;0;L;;;;;N;;;;;
+100B0;LINEAR B IDEOGRAM B168;Lo;0;L;;;;;N;;;;;
+100B1;LINEAR B IDEOGRAM B169;Lo;0;L;;;;;N;;;;;
+100B2;LINEAR B IDEOGRAM B170;Lo;0;L;;;;;N;;;;;
+100B3;LINEAR B IDEOGRAM B171;Lo;0;L;;;;;N;;;;;
+100B4;LINEAR B IDEOGRAM B172;Lo;0;L;;;;;N;;;;;
+100B5;LINEAR B IDEOGRAM B173 MONTH;Lo;0;L;;;;;N;;;;;
+100B6;LINEAR B IDEOGRAM B174;Lo;0;L;;;;;N;;;;;
+100B7;LINEAR B IDEOGRAM B176 TREE;Lo;0;L;;;;;N;;;;;
+100B8;LINEAR B IDEOGRAM B177;Lo;0;L;;;;;N;;;;;
+100B9;LINEAR B IDEOGRAM B178;Lo;0;L;;;;;N;;;;;
+100BA;LINEAR B IDEOGRAM B179;Lo;0;L;;;;;N;;;;;
+100BB;LINEAR B IDEOGRAM B180;Lo;0;L;;;;;N;;;;;
+100BC;LINEAR B IDEOGRAM B181;Lo;0;L;;;;;N;;;;;
+100BD;LINEAR B IDEOGRAM B182;Lo;0;L;;;;;N;;;;;
+100BE;LINEAR B IDEOGRAM B183;Lo;0;L;;;;;N;;;;;
+100BF;LINEAR B IDEOGRAM B184;Lo;0;L;;;;;N;;;;;
+100C0;LINEAR B IDEOGRAM B185;Lo;0;L;;;;;N;;;;;
+100C1;LINEAR B IDEOGRAM B189;Lo;0;L;;;;;N;;;;;
+100C2;LINEAR B IDEOGRAM B190;Lo;0;L;;;;;N;;;;;
+100C3;LINEAR B IDEOGRAM B191 HELMET;Lo;0;L;;;;;N;;;;;
+100C4;LINEAR B IDEOGRAM B220 FOOTSTOOL;Lo;0;L;;;;;N;;;;;
+100C5;LINEAR B IDEOGRAM B225 BATHTUB;Lo;0;L;;;;;N;;;;;
+100C6;LINEAR B IDEOGRAM B230 SPEAR;Lo;0;L;;;;;N;;;;;
+100C7;LINEAR B IDEOGRAM B231 ARROW;Lo;0;L;;;;;N;;;;;
+100C8;LINEAR B IDEOGRAM B232;Lo;0;L;;;;;N;;;;;
+100C9;LINEAR B IDEOGRAM B233 SWORD;Lo;0;L;;;;;N;;pug;;;
+100CA;LINEAR B IDEOGRAM B234;Lo;0;L;;;;;N;;;;;
+100CB;LINEAR B IDEOGRAM B236;Lo;0;L;;;;;N;;gup;;;
+100CC;LINEAR B IDEOGRAM B240 WHEELED CHARIOT;Lo;0;L;;;;;N;;;;;
+100CD;LINEAR B IDEOGRAM B241 CHARIOT;Lo;0;L;;;;;N;;;;;
+100CE;LINEAR B IDEOGRAM B242 CHARIOT FRAME;Lo;0;L;;;;;N;;;;;
+100CF;LINEAR B IDEOGRAM B243 WHEEL;Lo;0;L;;;;;N;;;;;
+100D0;LINEAR B IDEOGRAM B245;Lo;0;L;;;;;N;;;;;
+100D1;LINEAR B IDEOGRAM B246;Lo;0;L;;;;;N;;;;;
+100D2;LINEAR B MONOGRAM B247 DIPTE;Lo;0;L;;;;;N;;;;;
+100D3;LINEAR B IDEOGRAM B248;Lo;0;L;;;;;N;;;;;
+100D4;LINEAR B IDEOGRAM B249;Lo;0;L;;;;;N;;;;;
+100D5;LINEAR B IDEOGRAM B251;Lo;0;L;;;;;N;;;;;
+100D6;LINEAR B IDEOGRAM B252;Lo;0;L;;;;;N;;;;;
+100D7;LINEAR B IDEOGRAM B253;Lo;0;L;;;;;N;;;;;
+100D8;LINEAR B IDEOGRAM B254 DART;Lo;0;L;;;;;N;;;;;
+100D9;LINEAR B IDEOGRAM B255;Lo;0;L;;;;;N;;;;;
+100DA;LINEAR B IDEOGRAM B256;Lo;0;L;;;;;N;;;;;
+100DB;LINEAR B IDEOGRAM B257;Lo;0;L;;;;;N;;;;;
+100DC;LINEAR B IDEOGRAM B258;Lo;0;L;;;;;N;;;;;
+100DD;LINEAR B IDEOGRAM B259;Lo;0;L;;;;;N;;;;;
+100DE;LINEAR B IDEOGRAM VESSEL B155;Lo;0;L;;;;;N;;;;;
+100DF;LINEAR B IDEOGRAM VESSEL B200;Lo;0;L;;;;;N;;;;;
+100E0;LINEAR B IDEOGRAM VESSEL B201;Lo;0;L;;;;;N;;;;;
+100E1;LINEAR B IDEOGRAM VESSEL B202;Lo;0;L;;;;;N;;;;;
+100E2;LINEAR B IDEOGRAM VESSEL B203;Lo;0;L;;;;;N;;;;;
+100E3;LINEAR B IDEOGRAM VESSEL B204;Lo;0;L;;;;;N;;;;;
+100E4;LINEAR B IDEOGRAM VESSEL B205;Lo;0;L;;;;;N;;;;;
+100E5;LINEAR B IDEOGRAM VESSEL B206;Lo;0;L;;;;;N;;;;;
+100E6;LINEAR B IDEOGRAM VESSEL B207;Lo;0;L;;;;;N;;;;;
+100E7;LINEAR B IDEOGRAM VESSEL B208;Lo;0;L;;;;;N;;;;;
+100E8;LINEAR B IDEOGRAM VESSEL B209;Lo;0;L;;;;;N;;;;;
+100E9;LINEAR B IDEOGRAM VESSEL B210;Lo;0;L;;;;;N;;;;;
+100EA;LINEAR B IDEOGRAM VESSEL B211;Lo;0;L;;;;;N;;;;;
+100EB;LINEAR B IDEOGRAM VESSEL B212;Lo;0;L;;;;;N;;;;;
+100EC;LINEAR B IDEOGRAM VESSEL B213;Lo;0;L;;;;;N;;;;;
+100ED;LINEAR B IDEOGRAM VESSEL B214;Lo;0;L;;;;;N;;;;;
+100EE;LINEAR B IDEOGRAM VESSEL B215;Lo;0;L;;;;;N;;;;;
+100EF;LINEAR B IDEOGRAM VESSEL B216;Lo;0;L;;;;;N;;;;;
+100F0;LINEAR B IDEOGRAM VESSEL B217;Lo;0;L;;;;;N;;;;;
+100F1;LINEAR B IDEOGRAM VESSEL B218;Lo;0;L;;;;;N;;;;;
+100F2;LINEAR B IDEOGRAM VESSEL B219;Lo;0;L;;;;;N;;;;;
+100F3;LINEAR B IDEOGRAM VESSEL B221;Lo;0;L;;;;;N;;;;;
+100F4;LINEAR B IDEOGRAM VESSEL B222;Lo;0;L;;;;;N;;;;;
+100F5;LINEAR B IDEOGRAM VESSEL B226;Lo;0;L;;;;;N;;;;;
+100F6;LINEAR B IDEOGRAM VESSEL B227;Lo;0;L;;;;;N;;;;;
+100F7;LINEAR B IDEOGRAM VESSEL B228;Lo;0;L;;;;;N;;;;;
+100F8;LINEAR B IDEOGRAM VESSEL B229;Lo;0;L;;;;;N;;;;;
+100F9;LINEAR B IDEOGRAM VESSEL B250;Lo;0;L;;;;;N;;;;;
+100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;;
+10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;;
+10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;;
+10102;AEGEAN CHECK MARK;So;0;L;;;;;N;;;;;
+10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;;
+10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;;
+10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;;
+1010A;AEGEAN NUMBER FOUR;No;0;L;;;;4;N;;;;;
+1010B;AEGEAN NUMBER FIVE;No;0;L;;;;5;N;;;;;
+1010C;AEGEAN NUMBER SIX;No;0;L;;;;6;N;;;;;
+1010D;AEGEAN NUMBER SEVEN;No;0;L;;;;7;N;;;;;
+1010E;AEGEAN NUMBER EIGHT;No;0;L;;;;8;N;;;;;
+1010F;AEGEAN NUMBER NINE;No;0;L;;;;9;N;;;;;
+10110;AEGEAN NUMBER TEN;No;0;L;;;;10;N;;;;;
+10111;AEGEAN NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+10112;AEGEAN NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+10113;AEGEAN NUMBER FORTY;No;0;L;;;;40;N;;;;;
+10114;AEGEAN NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+10115;AEGEAN NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+10116;AEGEAN NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+10117;AEGEAN NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+10118;AEGEAN NUMBER NINETY;No;0;L;;;;90;N;;;;;
+10119;AEGEAN NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+1011A;AEGEAN NUMBER TWO HUNDRED;No;0;L;;;;200;N;;;;;
+1011B;AEGEAN NUMBER THREE HUNDRED;No;0;L;;;;300;N;;;;;
+1011C;AEGEAN NUMBER FOUR HUNDRED;No;0;L;;;;400;N;;;;;
+1011D;AEGEAN NUMBER FIVE HUNDRED;No;0;L;;;;500;N;;;;;
+1011E;AEGEAN NUMBER SIX HUNDRED;No;0;L;;;;600;N;;;;;
+1011F;AEGEAN NUMBER SEVEN HUNDRED;No;0;L;;;;700;N;;;;;
+10120;AEGEAN NUMBER EIGHT HUNDRED;No;0;L;;;;800;N;;;;;
+10121;AEGEAN NUMBER NINE HUNDRED;No;0;L;;;;900;N;;;;;
+10122;AEGEAN NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+10123;AEGEAN NUMBER TWO THOUSAND;No;0;L;;;;2000;N;;;;;
+10124;AEGEAN NUMBER THREE THOUSAND;No;0;L;;;;3000;N;;;;;
+10125;AEGEAN NUMBER FOUR THOUSAND;No;0;L;;;;4000;N;;;;;
+10126;AEGEAN NUMBER FIVE THOUSAND;No;0;L;;;;5000;N;;;;;
+10127;AEGEAN NUMBER SIX THOUSAND;No;0;L;;;;6000;N;;;;;
+10128;AEGEAN NUMBER SEVEN THOUSAND;No;0;L;;;;7000;N;;;;;
+10129;AEGEAN NUMBER EIGHT THOUSAND;No;0;L;;;;8000;N;;;;;
+1012A;AEGEAN NUMBER NINE THOUSAND;No;0;L;;;;9000;N;;;;;
+1012B;AEGEAN NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+1012C;AEGEAN NUMBER TWENTY THOUSAND;No;0;L;;;;20000;N;;;;;
+1012D;AEGEAN NUMBER THIRTY THOUSAND;No;0;L;;;;30000;N;;;;;
+1012E;AEGEAN NUMBER FORTY THOUSAND;No;0;L;;;;40000;N;;;;;
+1012F;AEGEAN NUMBER FIFTY THOUSAND;No;0;L;;;;50000;N;;;;;
+10130;AEGEAN NUMBER SIXTY THOUSAND;No;0;L;;;;60000;N;;;;;
+10131;AEGEAN NUMBER SEVENTY THOUSAND;No;0;L;;;;70000;N;;;;;
+10132;AEGEAN NUMBER EIGHTY THOUSAND;No;0;L;;;;80000;N;;;;;
+10133;AEGEAN NUMBER NINETY THOUSAND;No;0;L;;;;90000;N;;;;;
+10137;AEGEAN WEIGHT BASE UNIT;So;0;L;;;;;N;;;;;
+10138;AEGEAN WEIGHT FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+10139;AEGEAN WEIGHT SECOND SUBUNIT;So;0;L;;;;;N;;;;;
+1013A;AEGEAN WEIGHT THIRD SUBUNIT;So;0;L;;;;;N;;;;;
+1013B;AEGEAN WEIGHT FOURTH SUBUNIT;So;0;L;;;;;N;;;;;
+1013C;AEGEAN DRY MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+1013D;AEGEAN LIQUID MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+1013E;AEGEAN MEASURE SECOND SUBUNIT;So;0;L;;;;;N;;;;;
+1013F;AEGEAN MEASURE THIRD SUBUNIT;So;0;L;;;;;N;;;;;
+10140;GREEK ACROPHONIC ATTIC ONE QUARTER;Nl;0;ON;;;;1/4;N;;;;;
+10141;GREEK ACROPHONIC ATTIC ONE HALF;Nl;0;ON;;;;1/2;N;;;;;
+10142;GREEK ACROPHONIC ATTIC ONE DRACHMA;Nl;0;ON;;;;1;N;;;;;
+10143;GREEK ACROPHONIC ATTIC FIVE;Nl;0;ON;;;;5;N;;;;;
+10144;GREEK ACROPHONIC ATTIC FIFTY;Nl;0;ON;;;;50;N;;;;;
+10145;GREEK ACROPHONIC ATTIC FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10146;GREEK ACROPHONIC ATTIC FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
+10147;GREEK ACROPHONIC ATTIC FIFTY THOUSAND;Nl;0;ON;;;;50000;N;;;;;
+10148;GREEK ACROPHONIC ATTIC FIVE TALENTS;Nl;0;ON;;;;5;N;;;;;
+10149;GREEK ACROPHONIC ATTIC TEN TALENTS;Nl;0;ON;;;;10;N;;;;;
+1014A;GREEK ACROPHONIC ATTIC FIFTY TALENTS;Nl;0;ON;;;;50;N;;;;;
+1014B;GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS;Nl;0;ON;;;;100;N;;;;;
+1014C;GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS;Nl;0;ON;;;;500;N;;;;;
+1014D;GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS;Nl;0;ON;;;;1000;N;;;;;
+1014E;GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS;Nl;0;ON;;;;5000;N;;;;;
+1014F;GREEK ACROPHONIC ATTIC FIVE STATERS;Nl;0;ON;;;;5;N;;;;;
+10150;GREEK ACROPHONIC ATTIC TEN STATERS;Nl;0;ON;;;;10;N;;;;;
+10151;GREEK ACROPHONIC ATTIC FIFTY STATERS;Nl;0;ON;;;;50;N;;;;;
+10152;GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS;Nl;0;ON;;;;100;N;;;;;
+10153;GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS;Nl;0;ON;;;;500;N;;;;;
+10154;GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS;Nl;0;ON;;;;1000;N;;;;;
+10155;GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS;Nl;0;ON;;;;10000;N;;;;;
+10156;GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS;Nl;0;ON;;;;50000;N;;;;;
+10157;GREEK ACROPHONIC ATTIC TEN MNAS;Nl;0;ON;;;;10;N;;;;;
+10158;GREEK ACROPHONIC HERAEUM ONE PLETHRON;Nl;0;ON;;;;1;N;;;;;
+10159;GREEK ACROPHONIC THESPIAN ONE;Nl;0;ON;;;;1;N;;;;;
+1015A;GREEK ACROPHONIC HERMIONIAN ONE;Nl;0;ON;;;;1;N;;;;;
+1015B;GREEK ACROPHONIC EPIDAUREAN TWO;Nl;0;ON;;;;2;N;;;;;
+1015C;GREEK ACROPHONIC THESPIAN TWO;Nl;0;ON;;;;2;N;;;;;
+1015D;GREEK ACROPHONIC CYRENAIC TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
+1015E;GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
+1015F;GREEK ACROPHONIC TROEZENIAN FIVE;Nl;0;ON;;;;5;N;;;;;
+10160;GREEK ACROPHONIC TROEZENIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10161;GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM;Nl;0;ON;;;;10;N;;;;;
+10162;GREEK ACROPHONIC HERMIONIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10163;GREEK ACROPHONIC MESSENIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10164;GREEK ACROPHONIC THESPIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10165;GREEK ACROPHONIC THESPIAN THIRTY;Nl;0;ON;;;;30;N;;;;;
+10166;GREEK ACROPHONIC TROEZENIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+10167;GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM;Nl;0;ON;;;;50;N;;;;;
+10168;GREEK ACROPHONIC HERMIONIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+10169;GREEK ACROPHONIC THESPIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+1016A;GREEK ACROPHONIC THESPIAN ONE HUNDRED;Nl;0;ON;;;;100;N;;;;;
+1016B;GREEK ACROPHONIC THESPIAN THREE HUNDRED;Nl;0;ON;;;;300;N;;;;;
+1016C;GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016D;GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016E;GREEK ACROPHONIC THESPIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016F;GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10170;GREEK ACROPHONIC NAXIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10171;GREEK ACROPHONIC THESPIAN ONE THOUSAND;Nl;0;ON;;;;1000;N;;;;;
+10172;GREEK ACROPHONIC THESPIAN FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
+10173;GREEK ACROPHONIC DELPHIC FIVE MNAS;Nl;0;ON;;;;5;N;;;;;
+10174;GREEK ACROPHONIC STRATIAN FIFTY MNAS;Nl;0;ON;;;;50;N;;;;;
+10175;GREEK ONE HALF SIGN;No;0;ON;;;;1/2;N;;;;;
+10176;GREEK ONE HALF SIGN ALTERNATE FORM;No;0;ON;;;;1/2;N;;;;;
+10177;GREEK TWO THIRDS SIGN;No;0;ON;;;;2/3;N;;;;;
+10178;GREEK THREE QUARTERS SIGN;No;0;ON;;;;3/4;N;;;;;
+10179;GREEK YEAR SIGN;So;0;ON;;;;;N;;;;;
+1017A;GREEK TALENT SIGN;So;0;ON;;;;;N;;;;;
+1017B;GREEK DRACHMA SIGN;So;0;ON;;;;;N;;;;;
+1017C;GREEK OBOL SIGN;So;0;ON;;;;;N;;;;;
+1017D;GREEK TWO OBOLS SIGN;So;0;ON;;;;;N;;;;;
+1017E;GREEK THREE OBOLS SIGN;So;0;ON;;;;;N;;;;;
+1017F;GREEK FOUR OBOLS SIGN;So;0;ON;;;;;N;;;;;
+10180;GREEK FIVE OBOLS SIGN;So;0;ON;;;;;N;;;;;
+10181;GREEK METRETES SIGN;So;0;ON;;;;;N;;;;;
+10182;GREEK KYATHOS BASE SIGN;So;0;ON;;;;;N;;;;;
+10183;GREEK LITRA SIGN;So;0;ON;;;;;N;;;;;
+10184;GREEK OUNKIA SIGN;So;0;ON;;;;;N;;;;;
+10185;GREEK XESTES SIGN;So;0;ON;;;;;N;;;;;
+10186;GREEK ARTABE SIGN;So;0;ON;;;;;N;;;;;
+10187;GREEK AROURA SIGN;So;0;ON;;;;;N;;;;;
+10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;;
+10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;;
+1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;;
+10190;ROMAN SEXTANS SIGN;So;0;ON;;;;;N;;;;;
+10191;ROMAN UNCIA SIGN;So;0;ON;;;;;N;;;;;
+10192;ROMAN SEMUNCIA SIGN;So;0;ON;;;;;N;;;;;
+10193;ROMAN SEXTULA SIGN;So;0;ON;;;;;N;;;;;
+10194;ROMAN DIMIDIA SEXTULA SIGN;So;0;ON;;;;;N;;;;;
+10195;ROMAN SILIQUA SIGN;So;0;ON;;;;;N;;;;;
+10196;ROMAN DENARIUS SIGN;So;0;ON;;;;;N;;;;;
+10197;ROMAN QUINARIUS SIGN;So;0;ON;;;;;N;;;;;
+10198;ROMAN SESTERTIUS SIGN;So;0;ON;;;;;N;;;;;
+10199;ROMAN DUPONDIUS SIGN;So;0;ON;;;;;N;;;;;
+1019A;ROMAN AS SIGN;So;0;ON;;;;;N;;;;;
+1019B;ROMAN CENTURIAL SIGN;So;0;ON;;;;;N;;;;;
+101D0;PHAISTOS DISC SIGN PEDESTRIAN;So;0;L;;;;;N;;;;;
+101D1;PHAISTOS DISC SIGN PLUMED HEAD;So;0;L;;;;;N;;;;;
+101D2;PHAISTOS DISC SIGN TATTOOED HEAD;So;0;L;;;;;N;;;;;
+101D3;PHAISTOS DISC SIGN CAPTIVE;So;0;L;;;;;N;;;;;
+101D4;PHAISTOS DISC SIGN CHILD;So;0;L;;;;;N;;;;;
+101D5;PHAISTOS DISC SIGN WOMAN;So;0;L;;;;;N;;;;;
+101D6;PHAISTOS DISC SIGN HELMET;So;0;L;;;;;N;;;;;
+101D7;PHAISTOS DISC SIGN GAUNTLET;So;0;L;;;;;N;;;;;
+101D8;PHAISTOS DISC SIGN TIARA;So;0;L;;;;;N;;;;;
+101D9;PHAISTOS DISC SIGN ARROW;So;0;L;;;;;N;;;;;
+101DA;PHAISTOS DISC SIGN BOW;So;0;L;;;;;N;;;;;
+101DB;PHAISTOS DISC SIGN SHIELD;So;0;L;;;;;N;;;;;
+101DC;PHAISTOS DISC SIGN CLUB;So;0;L;;;;;N;;;;;
+101DD;PHAISTOS DISC SIGN MANACLES;So;0;L;;;;;N;;;;;
+101DE;PHAISTOS DISC SIGN MATTOCK;So;0;L;;;;;N;;;;;
+101DF;PHAISTOS DISC SIGN SAW;So;0;L;;;;;N;;;;;
+101E0;PHAISTOS DISC SIGN LID;So;0;L;;;;;N;;;;;
+101E1;PHAISTOS DISC SIGN BOOMERANG;So;0;L;;;;;N;;;;;
+101E2;PHAISTOS DISC SIGN CARPENTRY PLANE;So;0;L;;;;;N;;;;;
+101E3;PHAISTOS DISC SIGN DOLIUM;So;0;L;;;;;N;;;;;
+101E4;PHAISTOS DISC SIGN COMB;So;0;L;;;;;N;;;;;
+101E5;PHAISTOS DISC SIGN SLING;So;0;L;;;;;N;;;;;
+101E6;PHAISTOS DISC SIGN COLUMN;So;0;L;;;;;N;;;;;
+101E7;PHAISTOS DISC SIGN BEEHIVE;So;0;L;;;;;N;;;;;
+101E8;PHAISTOS DISC SIGN SHIP;So;0;L;;;;;N;;;;;
+101E9;PHAISTOS DISC SIGN HORN;So;0;L;;;;;N;;;;;
+101EA;PHAISTOS DISC SIGN HIDE;So;0;L;;;;;N;;;;;
+101EB;PHAISTOS DISC SIGN BULLS LEG;So;0;L;;;;;N;;;;;
+101EC;PHAISTOS DISC SIGN CAT;So;0;L;;;;;N;;;;;
+101ED;PHAISTOS DISC SIGN RAM;So;0;L;;;;;N;;;;;
+101EE;PHAISTOS DISC SIGN EAGLE;So;0;L;;;;;N;;;;;
+101EF;PHAISTOS DISC SIGN DOVE;So;0;L;;;;;N;;;;;
+101F0;PHAISTOS DISC SIGN TUNNY;So;0;L;;;;;N;;;;;
+101F1;PHAISTOS DISC SIGN BEE;So;0;L;;;;;N;;;;;
+101F2;PHAISTOS DISC SIGN PLANE TREE;So;0;L;;;;;N;;;;;
+101F3;PHAISTOS DISC SIGN VINE;So;0;L;;;;;N;;;;;
+101F4;PHAISTOS DISC SIGN PAPYRUS;So;0;L;;;;;N;;;;;
+101F5;PHAISTOS DISC SIGN ROSETTE;So;0;L;;;;;N;;;;;
+101F6;PHAISTOS DISC SIGN LILY;So;0;L;;;;;N;;;;;
+101F7;PHAISTOS DISC SIGN OX BACK;So;0;L;;;;;N;;;;;
+101F8;PHAISTOS DISC SIGN FLUTE;So;0;L;;;;;N;;;;;
+101F9;PHAISTOS DISC SIGN GRATER;So;0;L;;;;;N;;;;;
+101FA;PHAISTOS DISC SIGN STRAINER;So;0;L;;;;;N;;;;;
+101FB;PHAISTOS DISC SIGN SMALL AXE;So;0;L;;;;;N;;;;;
+101FC;PHAISTOS DISC SIGN WAVY BAND;So;0;L;;;;;N;;;;;
+101FD;PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE;Mn;220;NSM;;;;;N;;;;;
+10280;LYCIAN LETTER A;Lo;0;L;;;;;N;;;;;
+10281;LYCIAN LETTER E;Lo;0;L;;;;;N;;;;;
+10282;LYCIAN LETTER B;Lo;0;L;;;;;N;;;;;
+10283;LYCIAN LETTER BH;Lo;0;L;;;;;N;;;;;
+10284;LYCIAN LETTER G;Lo;0;L;;;;;N;;;;;
+10285;LYCIAN LETTER D;Lo;0;L;;;;;N;;;;;
+10286;LYCIAN LETTER I;Lo;0;L;;;;;N;;;;;
+10287;LYCIAN LETTER W;Lo;0;L;;;;;N;;;;;
+10288;LYCIAN LETTER Z;Lo;0;L;;;;;N;;;;;
+10289;LYCIAN LETTER TH;Lo;0;L;;;;;N;;;;;
+1028A;LYCIAN LETTER J;Lo;0;L;;;;;N;;;;;
+1028B;LYCIAN LETTER K;Lo;0;L;;;;;N;;;;;
+1028C;LYCIAN LETTER Q;Lo;0;L;;;;;N;;;;;
+1028D;LYCIAN LETTER L;Lo;0;L;;;;;N;;;;;
+1028E;LYCIAN LETTER M;Lo;0;L;;;;;N;;;;;
+1028F;LYCIAN LETTER N;Lo;0;L;;;;;N;;;;;
+10290;LYCIAN LETTER MM;Lo;0;L;;;;;N;;;;;
+10291;LYCIAN LETTER NN;Lo;0;L;;;;;N;;;;;
+10292;LYCIAN LETTER U;Lo;0;L;;;;;N;;;;;
+10293;LYCIAN LETTER P;Lo;0;L;;;;;N;;;;;
+10294;LYCIAN LETTER KK;Lo;0;L;;;;;N;;;;;
+10295;LYCIAN LETTER R;Lo;0;L;;;;;N;;;;;
+10296;LYCIAN LETTER S;Lo;0;L;;;;;N;;;;;
+10297;LYCIAN LETTER T;Lo;0;L;;;;;N;;;;;
+10298;LYCIAN LETTER TT;Lo;0;L;;;;;N;;;;;
+10299;LYCIAN LETTER AN;Lo;0;L;;;;;N;;;;;
+1029A;LYCIAN LETTER EN;Lo;0;L;;;;;N;;;;;
+1029B;LYCIAN LETTER H;Lo;0;L;;;;;N;;;;;
+1029C;LYCIAN LETTER X;Lo;0;L;;;;;N;;;;;
+102A0;CARIAN LETTER A;Lo;0;L;;;;;N;;;;;
+102A1;CARIAN LETTER P2;Lo;0;L;;;;;N;;;;;
+102A2;CARIAN LETTER D;Lo;0;L;;;;;N;;;;;
+102A3;CARIAN LETTER L;Lo;0;L;;;;;N;;;;;
+102A4;CARIAN LETTER UUU;Lo;0;L;;;;;N;;;;;
+102A5;CARIAN LETTER R;Lo;0;L;;;;;N;;;;;
+102A6;CARIAN LETTER LD;Lo;0;L;;;;;N;;;;;
+102A7;CARIAN LETTER A2;Lo;0;L;;;;;N;;;;;
+102A8;CARIAN LETTER Q;Lo;0;L;;;;;N;;;;;
+102A9;CARIAN LETTER B;Lo;0;L;;;;;N;;;;;
+102AA;CARIAN LETTER M;Lo;0;L;;;;;N;;;;;
+102AB;CARIAN LETTER O;Lo;0;L;;;;;N;;;;;
+102AC;CARIAN LETTER D2;Lo;0;L;;;;;N;;;;;
+102AD;CARIAN LETTER T;Lo;0;L;;;;;N;;;;;
+102AE;CARIAN LETTER SH;Lo;0;L;;;;;N;;;;;
+102AF;CARIAN LETTER SH2;Lo;0;L;;;;;N;;;;;
+102B0;CARIAN LETTER S;Lo;0;L;;;;;N;;;;;
+102B1;CARIAN LETTER C-18;Lo;0;L;;;;;N;;;;;
+102B2;CARIAN LETTER U;Lo;0;L;;;;;N;;;;;
+102B3;CARIAN LETTER NN;Lo;0;L;;;;;N;;;;;
+102B4;CARIAN LETTER X;Lo;0;L;;;;;N;;;;;
+102B5;CARIAN LETTER N;Lo;0;L;;;;;N;;;;;
+102B6;CARIAN LETTER TT2;Lo;0;L;;;;;N;;;;;
+102B7;CARIAN LETTER P;Lo;0;L;;;;;N;;;;;
+102B8;CARIAN LETTER SS;Lo;0;L;;;;;N;;;;;
+102B9;CARIAN LETTER I;Lo;0;L;;;;;N;;;;;
+102BA;CARIAN LETTER E;Lo;0;L;;;;;N;;;;;
+102BB;CARIAN LETTER UUUU;Lo;0;L;;;;;N;;;;;
+102BC;CARIAN LETTER K;Lo;0;L;;;;;N;;;;;
+102BD;CARIAN LETTER K2;Lo;0;L;;;;;N;;;;;
+102BE;CARIAN LETTER ND;Lo;0;L;;;;;N;;;;;
+102BF;CARIAN LETTER UU;Lo;0;L;;;;;N;;;;;
+102C0;CARIAN LETTER G;Lo;0;L;;;;;N;;;;;
+102C1;CARIAN LETTER G2;Lo;0;L;;;;;N;;;;;
+102C2;CARIAN LETTER ST;Lo;0;L;;;;;N;;;;;
+102C3;CARIAN LETTER ST2;Lo;0;L;;;;;N;;;;;
+102C4;CARIAN LETTER NG;Lo;0;L;;;;;N;;;;;
+102C5;CARIAN LETTER II;Lo;0;L;;;;;N;;;;;
+102C6;CARIAN LETTER C-39;Lo;0;L;;;;;N;;;;;
+102C7;CARIAN LETTER TT;Lo;0;L;;;;;N;;;;;
+102C8;CARIAN LETTER UUU2;Lo;0;L;;;;;N;;;;;
+102C9;CARIAN LETTER RR;Lo;0;L;;;;;N;;;;;
+102CA;CARIAN LETTER MB;Lo;0;L;;;;;N;;;;;
+102CB;CARIAN LETTER MB2;Lo;0;L;;;;;N;;;;;
+102CC;CARIAN LETTER MB3;Lo;0;L;;;;;N;;;;;
+102CD;CARIAN LETTER MB4;Lo;0;L;;;;;N;;;;;
+102CE;CARIAN LETTER LD2;Lo;0;L;;;;;N;;;;;
+102CF;CARIAN LETTER E2;Lo;0;L;;;;;N;;;;;
+102D0;CARIAN LETTER UUU3;Lo;0;L;;;;;N;;;;;
+10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;;
+10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;;
+10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;;
+10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;;
+10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;;
+10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;;
+10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;;
+10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;;
+10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;;
+10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;;
+1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;;
+1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;;
+1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;;
+1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;;
+1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;;
+1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;Faliscan;;;
+10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;;
+10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;;
+10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;;
+10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;;
+10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;;
+10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;;
+10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;;
+10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;Faliscan;;;
+10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;;
+10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;;
+1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;;
+1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;Umbrian;;;
+1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;Umbrian;;;
+1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;Oscan;;;
+1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;Oscan;;;
+10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;;
+10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;;
+10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;;
+10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;;
+10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;;
+10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;;
+10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;;
+10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;;
+10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;;
+10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;;
+10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;;
+10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;;
+10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;;
+10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;;
+1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;;
+1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;;
+1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;;
+1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;;
+1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;;
+1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;;
+10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;;
+10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;;
+10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;;
+10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;;
+10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;;
+10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;;
+10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;;
+10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;;
+10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;;
+10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;;
+1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;;
+10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;;
+10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;;
+10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;;
+10383;UGARITIC LETTER KHA;Lo;0;L;;;;;N;;;;;
+10384;UGARITIC LETTER DELTA;Lo;0;L;;;;;N;;;;;
+10385;UGARITIC LETTER HO;Lo;0;L;;;;;N;;;;;
+10386;UGARITIC LETTER WO;Lo;0;L;;;;;N;;;;;
+10387;UGARITIC LETTER ZETA;Lo;0;L;;;;;N;;;;;
+10388;UGARITIC LETTER HOTA;Lo;0;L;;;;;N;;;;;
+10389;UGARITIC LETTER TET;Lo;0;L;;;;;N;;;;;
+1038A;UGARITIC LETTER YOD;Lo;0;L;;;;;N;;;;;
+1038B;UGARITIC LETTER KAF;Lo;0;L;;;;;N;;;;;
+1038C;UGARITIC LETTER SHIN;Lo;0;L;;;;;N;;;;;
+1038D;UGARITIC LETTER LAMDA;Lo;0;L;;;;;N;;;;;
+1038E;UGARITIC LETTER MEM;Lo;0;L;;;;;N;;;;;
+1038F;UGARITIC LETTER DHAL;Lo;0;L;;;;;N;;;;;
+10390;UGARITIC LETTER NUN;Lo;0;L;;;;;N;;;;;
+10391;UGARITIC LETTER ZU;Lo;0;L;;;;;N;;;;;
+10392;UGARITIC LETTER SAMKA;Lo;0;L;;;;;N;;;;;
+10393;UGARITIC LETTER AIN;Lo;0;L;;;;;N;;;;;
+10394;UGARITIC LETTER PU;Lo;0;L;;;;;N;;;;;
+10395;UGARITIC LETTER SADE;Lo;0;L;;;;;N;;;;;
+10396;UGARITIC LETTER QOPA;Lo;0;L;;;;;N;;;;;
+10397;UGARITIC LETTER RASHA;Lo;0;L;;;;;N;;;;;
+10398;UGARITIC LETTER THANNA;Lo;0;L;;;;;N;;;;;
+10399;UGARITIC LETTER GHAIN;Lo;0;L;;;;;N;;;;;
+1039A;UGARITIC LETTER TO;Lo;0;L;;;;;N;;;;;
+1039B;UGARITIC LETTER I;Lo;0;L;;;;;N;;;;;
+1039C;UGARITIC LETTER U;Lo;0;L;;;;;N;;;;;
+1039D;UGARITIC LETTER SSU;Lo;0;L;;;;;N;;;;;
+1039F;UGARITIC WORD DIVIDER;Po;0;L;;;;;N;;;;;
+103A0;OLD PERSIAN SIGN A;Lo;0;L;;;;;N;;;;;
+103A1;OLD PERSIAN SIGN I;Lo;0;L;;;;;N;;;;;
+103A2;OLD PERSIAN SIGN U;Lo;0;L;;;;;N;;;;;
+103A3;OLD PERSIAN SIGN KA;Lo;0;L;;;;;N;;;;;
+103A4;OLD PERSIAN SIGN KU;Lo;0;L;;;;;N;;;;;
+103A5;OLD PERSIAN SIGN GA;Lo;0;L;;;;;N;;;;;
+103A6;OLD PERSIAN SIGN GU;Lo;0;L;;;;;N;;;;;
+103A7;OLD PERSIAN SIGN XA;Lo;0;L;;;;;N;;;;;
+103A8;OLD PERSIAN SIGN CA;Lo;0;L;;;;;N;;;;;
+103A9;OLD PERSIAN SIGN JA;Lo;0;L;;;;;N;;;;;
+103AA;OLD PERSIAN SIGN JI;Lo;0;L;;;;;N;;;;;
+103AB;OLD PERSIAN SIGN TA;Lo;0;L;;;;;N;;;;;
+103AC;OLD PERSIAN SIGN TU;Lo;0;L;;;;;N;;;;;
+103AD;OLD PERSIAN SIGN DA;Lo;0;L;;;;;N;;;;;
+103AE;OLD PERSIAN SIGN DI;Lo;0;L;;;;;N;;;;;
+103AF;OLD PERSIAN SIGN DU;Lo;0;L;;;;;N;;;;;
+103B0;OLD PERSIAN SIGN THA;Lo;0;L;;;;;N;;;;;
+103B1;OLD PERSIAN SIGN PA;Lo;0;L;;;;;N;;;;;
+103B2;OLD PERSIAN SIGN BA;Lo;0;L;;;;;N;;;;;
+103B3;OLD PERSIAN SIGN FA;Lo;0;L;;;;;N;;;;;
+103B4;OLD PERSIAN SIGN NA;Lo;0;L;;;;;N;;;;;
+103B5;OLD PERSIAN SIGN NU;Lo;0;L;;;;;N;;;;;
+103B6;OLD PERSIAN SIGN MA;Lo;0;L;;;;;N;;;;;
+103B7;OLD PERSIAN SIGN MI;Lo;0;L;;;;;N;;;;;
+103B8;OLD PERSIAN SIGN MU;Lo;0;L;;;;;N;;;;;
+103B9;OLD PERSIAN SIGN YA;Lo;0;L;;;;;N;;;;;
+103BA;OLD PERSIAN SIGN VA;Lo;0;L;;;;;N;;;;;
+103BB;OLD PERSIAN SIGN VI;Lo;0;L;;;;;N;;;;;
+103BC;OLD PERSIAN SIGN RA;Lo;0;L;;;;;N;;;;;
+103BD;OLD PERSIAN SIGN RU;Lo;0;L;;;;;N;;;;;
+103BE;OLD PERSIAN SIGN LA;Lo;0;L;;;;;N;;;;;
+103BF;OLD PERSIAN SIGN SA;Lo;0;L;;;;;N;;;;;
+103C0;OLD PERSIAN SIGN ZA;Lo;0;L;;;;;N;;;;;
+103C1;OLD PERSIAN SIGN SHA;Lo;0;L;;;;;N;;;;;
+103C2;OLD PERSIAN SIGN SSA;Lo;0;L;;;;;N;;;;;
+103C3;OLD PERSIAN SIGN HA;Lo;0;L;;;;;N;;;;;
+103C8;OLD PERSIAN SIGN AURAMAZDAA;Lo;0;L;;;;;N;;;;;
+103C9;OLD PERSIAN SIGN AURAMAZDAA-2;Lo;0;L;;;;;N;;;;;
+103CA;OLD PERSIAN SIGN AURAMAZDAAHA;Lo;0;L;;;;;N;;;;;
+103CB;OLD PERSIAN SIGN XSHAAYATHIYA;Lo;0;L;;;;;N;;;;;
+103CC;OLD PERSIAN SIGN DAHYAAUSH;Lo;0;L;;;;;N;;;;;
+103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;;
+103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;;
+103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;;
+103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;;
+103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;;
+103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;;
+103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;;
+103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;;
+10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428;
+10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429;
+10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A;
+10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B;
+10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C;
+10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D;
+10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E;
+10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F;
+10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430;
+10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431;
+1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432;
+1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433;
+1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434;
+1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435;
+1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436;
+1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437;
+10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438;
+10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439;
+10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A;
+10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B;
+10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C;
+10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D;
+10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E;
+10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F;
+10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440;
+10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441;
+1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442;
+1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443;
+1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444;
+1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445;
+1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446;
+1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447;
+10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448;
+10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449;
+10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A;
+10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B;
+10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C;
+10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D;
+10426;DESERET CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;1044E;
+10427;DESERET CAPITAL LETTER EW;Lu;0;L;;;;;N;;;;1044F;
+10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400
+10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401
+1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402
+1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403
+1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404
+1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405
+1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406
+1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407
+10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408
+10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409
+10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A
+10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B
+10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C
+10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D
+10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E
+10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F
+10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410
+10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411
+1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412
+1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413
+1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414
+1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415
+1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416
+1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417
+10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418
+10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419
+10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A
+10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B
+10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C
+10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D
+10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E
+10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F
+10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420
+10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421
+1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422
+1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423
+1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424
+1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425
+1044E;DESERET SMALL LETTER OI;Ll;0;L;;;;;N;;;10426;;10426
+1044F;DESERET SMALL LETTER EW;Ll;0;L;;;;;N;;;10427;;10427
+10450;SHAVIAN LETTER PEEP;Lo;0;L;;;;;N;;;;;
+10451;SHAVIAN LETTER TOT;Lo;0;L;;;;;N;;;;;
+10452;SHAVIAN LETTER KICK;Lo;0;L;;;;;N;;;;;
+10453;SHAVIAN LETTER FEE;Lo;0;L;;;;;N;;;;;
+10454;SHAVIAN LETTER THIGH;Lo;0;L;;;;;N;;;;;
+10455;SHAVIAN LETTER SO;Lo;0;L;;;;;N;;;;;
+10456;SHAVIAN LETTER SURE;Lo;0;L;;;;;N;;;;;
+10457;SHAVIAN LETTER CHURCH;Lo;0;L;;;;;N;;;;;
+10458;SHAVIAN LETTER YEA;Lo;0;L;;;;;N;;;;;
+10459;SHAVIAN LETTER HUNG;Lo;0;L;;;;;N;;;;;
+1045A;SHAVIAN LETTER BIB;Lo;0;L;;;;;N;;;;;
+1045B;SHAVIAN LETTER DEAD;Lo;0;L;;;;;N;;;;;
+1045C;SHAVIAN LETTER GAG;Lo;0;L;;;;;N;;;;;
+1045D;SHAVIAN LETTER VOW;Lo;0;L;;;;;N;;;;;
+1045E;SHAVIAN LETTER THEY;Lo;0;L;;;;;N;;;;;
+1045F;SHAVIAN LETTER ZOO;Lo;0;L;;;;;N;;;;;
+10460;SHAVIAN LETTER MEASURE;Lo;0;L;;;;;N;;;;;
+10461;SHAVIAN LETTER JUDGE;Lo;0;L;;;;;N;;;;;
+10462;SHAVIAN LETTER WOE;Lo;0;L;;;;;N;;;;;
+10463;SHAVIAN LETTER HA-HA;Lo;0;L;;;;;N;;;;;
+10464;SHAVIAN LETTER LOLL;Lo;0;L;;;;;N;;;;;
+10465;SHAVIAN LETTER MIME;Lo;0;L;;;;;N;;;;;
+10466;SHAVIAN LETTER IF;Lo;0;L;;;;;N;;;;;
+10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;;
+10468;SHAVIAN LETTER ASH;Lo;0;L;;;;;N;;;;;
+10469;SHAVIAN LETTER ADO;Lo;0;L;;;;;N;;;;;
+1046A;SHAVIAN LETTER ON;Lo;0;L;;;;;N;;;;;
+1046B;SHAVIAN LETTER WOOL;Lo;0;L;;;;;N;;;;;
+1046C;SHAVIAN LETTER OUT;Lo;0;L;;;;;N;;;;;
+1046D;SHAVIAN LETTER AH;Lo;0;L;;;;;N;;;;;
+1046E;SHAVIAN LETTER ROAR;Lo;0;L;;;;;N;;;;;
+1046F;SHAVIAN LETTER NUN;Lo;0;L;;;;;N;;;;;
+10470;SHAVIAN LETTER EAT;Lo;0;L;;;;;N;;;;;
+10471;SHAVIAN LETTER AGE;Lo;0;L;;;;;N;;;;;
+10472;SHAVIAN LETTER ICE;Lo;0;L;;;;;N;;;;;
+10473;SHAVIAN LETTER UP;Lo;0;L;;;;;N;;;;;
+10474;SHAVIAN LETTER OAK;Lo;0;L;;;;;N;;;;;
+10475;SHAVIAN LETTER OOZE;Lo;0;L;;;;;N;;;;;
+10476;SHAVIAN LETTER OIL;Lo;0;L;;;;;N;;;;;
+10477;SHAVIAN LETTER AWE;Lo;0;L;;;;;N;;;;;
+10478;SHAVIAN LETTER ARE;Lo;0;L;;;;;N;;;;;
+10479;SHAVIAN LETTER OR;Lo;0;L;;;;;N;;;;;
+1047A;SHAVIAN LETTER AIR;Lo;0;L;;;;;N;;;;;
+1047B;SHAVIAN LETTER ERR;Lo;0;L;;;;;N;;;;;
+1047C;SHAVIAN LETTER ARRAY;Lo;0;L;;;;;N;;;;;
+1047D;SHAVIAN LETTER EAR;Lo;0;L;;;;;N;;;;;
+1047E;SHAVIAN LETTER IAN;Lo;0;L;;;;;N;;;;;
+1047F;SHAVIAN LETTER YEW;Lo;0;L;;;;;N;;;;;
+10480;OSMANYA LETTER ALEF;Lo;0;L;;;;;N;;;;;
+10481;OSMANYA LETTER BA;Lo;0;L;;;;;N;;;;;
+10482;OSMANYA LETTER TA;Lo;0;L;;;;;N;;;;;
+10483;OSMANYA LETTER JA;Lo;0;L;;;;;N;;;;;
+10484;OSMANYA LETTER XA;Lo;0;L;;;;;N;;;;;
+10485;OSMANYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+10486;OSMANYA LETTER DEEL;Lo;0;L;;;;;N;;;;;
+10487;OSMANYA LETTER RA;Lo;0;L;;;;;N;;;;;
+10488;OSMANYA LETTER SA;Lo;0;L;;;;;N;;;;;
+10489;OSMANYA LETTER SHIIN;Lo;0;L;;;;;N;;;;;
+1048A;OSMANYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+1048B;OSMANYA LETTER CAYN;Lo;0;L;;;;;N;;;;;
+1048C;OSMANYA LETTER GA;Lo;0;L;;;;;N;;;;;
+1048D;OSMANYA LETTER FA;Lo;0;L;;;;;N;;;;;
+1048E;OSMANYA LETTER QAAF;Lo;0;L;;;;;N;;;;;
+1048F;OSMANYA LETTER KAAF;Lo;0;L;;;;;N;;;;;
+10490;OSMANYA LETTER LAAN;Lo;0;L;;;;;N;;;;;
+10491;OSMANYA LETTER MIIN;Lo;0;L;;;;;N;;;;;
+10492;OSMANYA LETTER NUUN;Lo;0;L;;;;;N;;;;;
+10493;OSMANYA LETTER WAW;Lo;0;L;;;;;N;;;;;
+10494;OSMANYA LETTER HA;Lo;0;L;;;;;N;;;;;
+10495;OSMANYA LETTER YA;Lo;0;L;;;;;N;;;;;
+10496;OSMANYA LETTER A;Lo;0;L;;;;;N;;;;;
+10497;OSMANYA LETTER E;Lo;0;L;;;;;N;;;;;
+10498;OSMANYA LETTER I;Lo;0;L;;;;;N;;;;;
+10499;OSMANYA LETTER O;Lo;0;L;;;;;N;;;;;
+1049A;OSMANYA LETTER U;Lo;0;L;;;;;N;;;;;
+1049B;OSMANYA LETTER AA;Lo;0;L;;;;;N;;;;;
+1049C;OSMANYA LETTER EE;Lo;0;L;;;;;N;;;;;
+1049D;OSMANYA LETTER OO;Lo;0;L;;;;;N;;;;;
+104A0;OSMANYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+104A1;OSMANYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+104A2;OSMANYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+104A3;OSMANYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+104A4;OSMANYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+104A5;OSMANYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+104A6;OSMANYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;
+10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;
+10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;
+10803;CYPRIOT SYLLABLE O;Lo;0;R;;;;;N;;;;;
+10804;CYPRIOT SYLLABLE U;Lo;0;R;;;;;N;;;;;
+10805;CYPRIOT SYLLABLE JA;Lo;0;R;;;;;N;;;;;
+10808;CYPRIOT SYLLABLE JO;Lo;0;R;;;;;N;;;;;
+1080A;CYPRIOT SYLLABLE KA;Lo;0;R;;;;;N;;;;;
+1080B;CYPRIOT SYLLABLE KE;Lo;0;R;;;;;N;;;;;
+1080C;CYPRIOT SYLLABLE KI;Lo;0;R;;;;;N;;;;;
+1080D;CYPRIOT SYLLABLE KO;Lo;0;R;;;;;N;;;;;
+1080E;CYPRIOT SYLLABLE KU;Lo;0;R;;;;;N;;;;;
+1080F;CYPRIOT SYLLABLE LA;Lo;0;R;;;;;N;;;;;
+10810;CYPRIOT SYLLABLE LE;Lo;0;R;;;;;N;;;;;
+10811;CYPRIOT SYLLABLE LI;Lo;0;R;;;;;N;;;;;
+10812;CYPRIOT SYLLABLE LO;Lo;0;R;;;;;N;;;;;
+10813;CYPRIOT SYLLABLE LU;Lo;0;R;;;;;N;;;;;
+10814;CYPRIOT SYLLABLE MA;Lo;0;R;;;;;N;;;;;
+10815;CYPRIOT SYLLABLE ME;Lo;0;R;;;;;N;;;;;
+10816;CYPRIOT SYLLABLE MI;Lo;0;R;;;;;N;;;;;
+10817;CYPRIOT SYLLABLE MO;Lo;0;R;;;;;N;;;;;
+10818;CYPRIOT SYLLABLE MU;Lo;0;R;;;;;N;;;;;
+10819;CYPRIOT SYLLABLE NA;Lo;0;R;;;;;N;;;;;
+1081A;CYPRIOT SYLLABLE NE;Lo;0;R;;;;;N;;;;;
+1081B;CYPRIOT SYLLABLE NI;Lo;0;R;;;;;N;;;;;
+1081C;CYPRIOT SYLLABLE NO;Lo;0;R;;;;;N;;;;;
+1081D;CYPRIOT SYLLABLE NU;Lo;0;R;;;;;N;;;;;
+1081E;CYPRIOT SYLLABLE PA;Lo;0;R;;;;;N;;;;;
+1081F;CYPRIOT SYLLABLE PE;Lo;0;R;;;;;N;;;;;
+10820;CYPRIOT SYLLABLE PI;Lo;0;R;;;;;N;;;;;
+10821;CYPRIOT SYLLABLE PO;Lo;0;R;;;;;N;;;;;
+10822;CYPRIOT SYLLABLE PU;Lo;0;R;;;;;N;;;;;
+10823;CYPRIOT SYLLABLE RA;Lo;0;R;;;;;N;;;;;
+10824;CYPRIOT SYLLABLE RE;Lo;0;R;;;;;N;;;;;
+10825;CYPRIOT SYLLABLE RI;Lo;0;R;;;;;N;;;;;
+10826;CYPRIOT SYLLABLE RO;Lo;0;R;;;;;N;;;;;
+10827;CYPRIOT SYLLABLE RU;Lo;0;R;;;;;N;;;;;
+10828;CYPRIOT SYLLABLE SA;Lo;0;R;;;;;N;;;;;
+10829;CYPRIOT SYLLABLE SE;Lo;0;R;;;;;N;;;;;
+1082A;CYPRIOT SYLLABLE SI;Lo;0;R;;;;;N;;;;;
+1082B;CYPRIOT SYLLABLE SO;Lo;0;R;;;;;N;;;;;
+1082C;CYPRIOT SYLLABLE SU;Lo;0;R;;;;;N;;;;;
+1082D;CYPRIOT SYLLABLE TA;Lo;0;R;;;;;N;;;;;
+1082E;CYPRIOT SYLLABLE TE;Lo;0;R;;;;;N;;;;;
+1082F;CYPRIOT SYLLABLE TI;Lo;0;R;;;;;N;;;;;
+10830;CYPRIOT SYLLABLE TO;Lo;0;R;;;;;N;;;;;
+10831;CYPRIOT SYLLABLE TU;Lo;0;R;;;;;N;;;;;
+10832;CYPRIOT SYLLABLE WA;Lo;0;R;;;;;N;;;;;
+10833;CYPRIOT SYLLABLE WE;Lo;0;R;;;;;N;;;;;
+10834;CYPRIOT SYLLABLE WI;Lo;0;R;;;;;N;;;;;
+10835;CYPRIOT SYLLABLE WO;Lo;0;R;;;;;N;;;;;
+10837;CYPRIOT SYLLABLE XA;Lo;0;R;;;;;N;;;;;
+10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;;
+1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;;
+1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;;
+10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;
+10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;
+10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;
+10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;;
+10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;;
+10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;;
+10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;;
+10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;;
+10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;;
+1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;;
+1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;;
+1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;;
+1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;;
+10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;;
+10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;;
+10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;;
+10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;;
+10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;;
+10920;LYDIAN LETTER A;Lo;0;R;;;;;N;;;;;
+10921;LYDIAN LETTER B;Lo;0;R;;;;;N;;;;;
+10922;LYDIAN LETTER G;Lo;0;R;;;;;N;;;;;
+10923;LYDIAN LETTER D;Lo;0;R;;;;;N;;;;;
+10924;LYDIAN LETTER E;Lo;0;R;;;;;N;;;;;
+10925;LYDIAN LETTER V;Lo;0;R;;;;;N;;;;;
+10926;LYDIAN LETTER I;Lo;0;R;;;;;N;;;;;
+10927;LYDIAN LETTER Y;Lo;0;R;;;;;N;;;;;
+10928;LYDIAN LETTER K;Lo;0;R;;;;;N;;;;;
+10929;LYDIAN LETTER L;Lo;0;R;;;;;N;;;;;
+1092A;LYDIAN LETTER M;Lo;0;R;;;;;N;;;;;
+1092B;LYDIAN LETTER N;Lo;0;R;;;;;N;;;;;
+1092C;LYDIAN LETTER O;Lo;0;R;;;;;N;;;;;
+1092D;LYDIAN LETTER R;Lo;0;R;;;;;N;;;;;
+1092E;LYDIAN LETTER SS;Lo;0;R;;;;;N;;;;;
+1092F;LYDIAN LETTER T;Lo;0;R;;;;;N;;;;;
+10930;LYDIAN LETTER U;Lo;0;R;;;;;N;;;;;
+10931;LYDIAN LETTER F;Lo;0;R;;;;;N;;;;;
+10932;LYDIAN LETTER Q;Lo;0;R;;;;;N;;;;;
+10933;LYDIAN LETTER S;Lo;0;R;;;;;N;;;;;
+10934;LYDIAN LETTER TT;Lo;0;R;;;;;N;;;;;
+10935;LYDIAN LETTER AN;Lo;0;R;;;;;N;;;;;
+10936;LYDIAN LETTER EN;Lo;0;R;;;;;N;;;;;
+10937;LYDIAN LETTER LY;Lo;0;R;;;;;N;;;;;
+10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;;
+10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;;
+1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;;
+10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;
+10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+10A03;KHAROSHTHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+10A05;KHAROSHTHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+10A06;KHAROSHTHI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+10A0C;KHAROSHTHI VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+10A0D;KHAROSHTHI SIGN DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
+10A0E;KHAROSHTHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+10A0F;KHAROSHTHI SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;
+10A10;KHAROSHTHI LETTER KA;Lo;0;R;;;;;N;;;;;
+10A11;KHAROSHTHI LETTER KHA;Lo;0;R;;;;;N;;;;;
+10A12;KHAROSHTHI LETTER GA;Lo;0;R;;;;;N;;;;;
+10A13;KHAROSHTHI LETTER GHA;Lo;0;R;;;;;N;;;;;
+10A15;KHAROSHTHI LETTER CA;Lo;0;R;;;;;N;;;;;
+10A16;KHAROSHTHI LETTER CHA;Lo;0;R;;;;;N;;;;;
+10A17;KHAROSHTHI LETTER JA;Lo;0;R;;;;;N;;;;;
+10A19;KHAROSHTHI LETTER NYA;Lo;0;R;;;;;N;;;;;
+10A1A;KHAROSHTHI LETTER TTA;Lo;0;R;;;;;N;;;;;
+10A1B;KHAROSHTHI LETTER TTHA;Lo;0;R;;;;;N;;;;;
+10A1C;KHAROSHTHI LETTER DDA;Lo;0;R;;;;;N;;;;;
+10A1D;KHAROSHTHI LETTER DDHA;Lo;0;R;;;;;N;;;;;
+10A1E;KHAROSHTHI LETTER NNA;Lo;0;R;;;;;N;;;;;
+10A1F;KHAROSHTHI LETTER TA;Lo;0;R;;;;;N;;;;;
+10A20;KHAROSHTHI LETTER THA;Lo;0;R;;;;;N;;;;;
+10A21;KHAROSHTHI LETTER DA;Lo;0;R;;;;;N;;;;;
+10A22;KHAROSHTHI LETTER DHA;Lo;0;R;;;;;N;;;;;
+10A23;KHAROSHTHI LETTER NA;Lo;0;R;;;;;N;;;;;
+10A24;KHAROSHTHI LETTER PA;Lo;0;R;;;;;N;;;;;
+10A25;KHAROSHTHI LETTER PHA;Lo;0;R;;;;;N;;;;;
+10A26;KHAROSHTHI LETTER BA;Lo;0;R;;;;;N;;;;;
+10A27;KHAROSHTHI LETTER BHA;Lo;0;R;;;;;N;;;;;
+10A28;KHAROSHTHI LETTER MA;Lo;0;R;;;;;N;;;;;
+10A29;KHAROSHTHI LETTER YA;Lo;0;R;;;;;N;;;;;
+10A2A;KHAROSHTHI LETTER RA;Lo;0;R;;;;;N;;;;;
+10A2B;KHAROSHTHI LETTER LA;Lo;0;R;;;;;N;;;;;
+10A2C;KHAROSHTHI LETTER VA;Lo;0;R;;;;;N;;;;;
+10A2D;KHAROSHTHI LETTER SHA;Lo;0;R;;;;;N;;;;;
+10A2E;KHAROSHTHI LETTER SSA;Lo;0;R;;;;;N;;;;;
+10A2F;KHAROSHTHI LETTER SA;Lo;0;R;;;;;N;;;;;
+10A30;KHAROSHTHI LETTER ZA;Lo;0;R;;;;;N;;;;;
+10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;;
+10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;;
+10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;;
+10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;;
+10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;;
+10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+10A3F;KHAROSHTHI VIRAMA;Mn;9;NSM;;;;;N;;;;;
+10A40;KHAROSHTHI DIGIT ONE;No;0;R;;;1;1;N;;;;;
+10A41;KHAROSHTHI DIGIT TWO;No;0;R;;;2;2;N;;;;;
+10A42;KHAROSHTHI DIGIT THREE;No;0;R;;;3;3;N;;;;;
+10A43;KHAROSHTHI DIGIT FOUR;No;0;R;;;4;4;N;;;;;
+10A44;KHAROSHTHI NUMBER TEN;No;0;R;;;;10;N;;;;;
+10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
+10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
+10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;
+10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;
+10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;
+10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;
+10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;
+10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;
+10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;
+10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;
+12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
+12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
+12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
+12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;;
+12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;;
+12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;;
+12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;;
+12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;;
+1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;;
+1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;;
+1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;;
+12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;;
+12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;;
+12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;;
+12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;;
+12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;;
+1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;;
+1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;;
+1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;;
+12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;;
+12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;;
+12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;;
+12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;;
+12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;;
+12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;;
+12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;;
+12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;;
+12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;;
+1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;;
+1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;;
+1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;;
+1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;;
+1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;;
+12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;;
+12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;;
+12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;;
+12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;;
+12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;;
+12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;
+12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;
+12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;;
+12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;
+1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;
+1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;;
+1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;;
+12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;;
+12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;;
+12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;;
+12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;;
+12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;;
+12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;;
+12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;;
+12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;;
+12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;;
+12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;;
+1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;;
+1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;;
+1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;;
+1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;;
+1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;;
+12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;;
+12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;;
+12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;;
+12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;;
+12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;;
+12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;;
+12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;;
+12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;;
+12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;;
+12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;;
+1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;;
+1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;;
+1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;;
+1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;;
+12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;;
+12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;;
+12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;;
+12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;;
+12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;;
+12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;;
+12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;;
+12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;;
+12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;;
+1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;;
+1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;;
+1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;;
+1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;;
+1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;;
+12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;;
+12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;;
+12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;;
+12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;;
+12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;;
+12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;
+12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;
+12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;
+12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;;
+1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;
+1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;
+1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;
+1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;;
+1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;;
+1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;;
+12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;;
+12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;;
+12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;;
+12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;;
+12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;;
+12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;;
+12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;;
+1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;;
+1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;;
+1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;;
+1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;;
+1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;;
+12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;;
+12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;;
+12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;;
+12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;;
+12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;;
+12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;;
+12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;;
+1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;;
+1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;;
+1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;;
+1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;;
+1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;;
+120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;;
+120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;;
+120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;;
+120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;;
+120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;;
+120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;;
+120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;;
+120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;;
+120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;;
+120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;;
+120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;;
+120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;;
+120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;;
+120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;;
+120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;;
+120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;;
+120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;;
+120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;;
+120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;;
+120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;;
+120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;;
+120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;;
+120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;;
+120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;;
+120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;;
+120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;;
+120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;;
+120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;;
+120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;;
+120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;;
+120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;;
+120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;;
+120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;;
+120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;;
+120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;;
+120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;;
+120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;;
+120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;;
+120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;;
+120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;;
+120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;;
+120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;;
+120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;;
+120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;;
+120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;;
+120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;;
+120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;;
+120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;;
+120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;;
+120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;;
+120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;;
+120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;;
+120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;;
+120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;;
+120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;;
+120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;;
+120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;;
+120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;;
+120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;;
+120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;;
+120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;;
+120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;;
+120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;;
+120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;;
+12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;;
+12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;;
+12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;;
+12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;;
+12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;;
+12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;;
+12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;;
+12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;;
+12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;;
+12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;;
+1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;;
+1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;;
+1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;;
+12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;;
+12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;;
+12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;;
+12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;;
+12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;;
+12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;;
+12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;;
+12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;;
+1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;;
+1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;;
+1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;;
+12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;;
+12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;;
+12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;;
+12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;;
+12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;;
+12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;;
+12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;;
+12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;;
+1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;;
+1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;;
+1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;;
+1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;;
+1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;;
+1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;;
+12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;;
+12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;;
+12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;;
+12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;;
+12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;;
+12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;;
+12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;;
+1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;;
+1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;;
+1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;;
+1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;;
+12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;;
+12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;;
+12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;;
+12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;;
+12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;;
+12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;;
+12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;;
+12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;;
+12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;;
+12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;;
+1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;;
+1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;;
+1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;;
+1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;;
+1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;;
+12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;;
+12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;;
+12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;;
+12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;;
+12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;;
+12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;;
+12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;;
+12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;;
+12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;;
+1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;;
+1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;;
+1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;;
+1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;;
+12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;;
+12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;;
+12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;;
+12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;;
+12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;;
+12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;;
+12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;;
+1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;;
+1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;;
+1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;;
+1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;;
+1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;;
+12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;;
+12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;;
+12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;;
+12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;;
+12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;;
+12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;;
+12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;;
+12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;;
+12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;;
+12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;;
+1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;;
+1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;;
+1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;;
+1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;;
+1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;;
+1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;;
+12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;;
+12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;;
+12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;;
+12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;;
+12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;;
+12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;;
+12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;;
+12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;;
+12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;;
+12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;;
+1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;;
+1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;;
+1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;;
+1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;;
+1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;;
+12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;;
+12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;;
+12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;;
+12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;;
+12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;;
+12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;;
+12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;;
+12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;;
+12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;;
+1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;;
+1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;;
+1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;;
+1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;;
+121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;;
+121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;;
+121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;;
+121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;;
+121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;;
+121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;;
+121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;;
+121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;;
+121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;;
+121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;;
+121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;;
+121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;;
+121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;;
+121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;;
+121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;;
+121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;;
+121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;;
+121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;;
+121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;;
+121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;;
+121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;;
+121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;;
+121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;;
+121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;;
+121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;;
+121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;;
+121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;;
+121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;;
+121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;;
+121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;;
+121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;;
+121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;;
+121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;;
+121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;;
+121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;;
+121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;;
+121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;;
+121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;;
+121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;;
+121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;;
+121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;;
+121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;;
+121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;;
+121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;;
+121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;;
+121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;;
+121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;;
+121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;;
+121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;;
+121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;;
+121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;;
+121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;;
+121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;;
+121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;;
+121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;;
+121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;;
+121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;;
+121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;;
+121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;;
+121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;;
+121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;;
+121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;;
+121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;;
+121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;;
+121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;;
+121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;;
+121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;;
+121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;;
+121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;;
+121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;;
+121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;;
+121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;;
+121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;;
+121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;;
+121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;;
+121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;;
+121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;;
+121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;;
+121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;;
+12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;;
+12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;;
+12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;;
+12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;;
+1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;;
+1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;;
+12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;;
+12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;;
+12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;;
+12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;;
+12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;;
+12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;;
+12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;;
+12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;;
+12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;;
+12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;;
+1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;;
+1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;;
+1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;;
+1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;;
+1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;;
+1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;;
+12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;;
+12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;
+12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;
+12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;
+12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;;
+12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;
+12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;
+12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;
+1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;
+1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;;
+1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;
+1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;
+1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;
+1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;;
+12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;;
+12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;;
+12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;;
+12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;;
+12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;;
+12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;;
+12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;;
+12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;;
+1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;;
+1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;;
+1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;;
+1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;;
+1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;;
+1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;;
+12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;;
+12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;;
+12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;;
+12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;;
+12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;;
+12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;;
+12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;;
+12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;;
+12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;;
+12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;;
+1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;;
+1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;;
+1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;;
+1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;;
+1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;;
+1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;;
+12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;;
+12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;;
+1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;;
+12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;;
+12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;;
+12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;;
+12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;;
+12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;;
+12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;;
+12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;;
+12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;;
+1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;;
+1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;;
+1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;;
+1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;;
+12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;;
+12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;;
+12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;;
+12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;;
+1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;;
+1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;;
+1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;;
+1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;;
+1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;;
+1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;;
+12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;;
+12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;;
+12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;;
+12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;;
+12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;;
+12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;;
+12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;;
+12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;;
+12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;;
+12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;;
+1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;;
+1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;;
+1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;;
+1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;;
+1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;;
+1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;;
+12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;;
+12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;;
+12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;;
+12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;;
+12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;;
+12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;;
+12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;;
+12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;;
+12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;;
+12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;;
+1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;;
+1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;;
+1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;;
+1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;;
+1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;;
+1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;;
+122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;;
+122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;;
+122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;;
+122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;;
+122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;;
+122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;;
+122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;;
+122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;;
+122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;;
+122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;;
+122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;;
+122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;;
+122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;;
+122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;;
+122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;;
+122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;;
+122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;;
+122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;;
+122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;;
+122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;;
+122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;;
+122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;;
+122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;;
+122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;;
+122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;;
+122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;;
+122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;;
+122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;;
+122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;;
+122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;;
+122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;;
+122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;;
+122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;;
+122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;;
+122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;;
+122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;;
+122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;;
+122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;;
+122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;;
+122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;;
+122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;;
+122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;;
+122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;;
+122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;;
+122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;;
+122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;;
+122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;;
+122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;;
+122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;;
+122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;;
+122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;;
+122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;;
+122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;;
+122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;;
+122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;;
+122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;;
+122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;;
+122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;;
+122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;;
+122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;;
+122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;;
+122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;;
+122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;;
+122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;;
+122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;;
+122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;;
+122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;;
+122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;;
+122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;;
+122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;;
+122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;;
+122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;;
+122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;;
+122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;;
+122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;;
+122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;;
+122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;;
+122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;;
+122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;;
+122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;;
+122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;;
+122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;;
+122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;;
+122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;;
+122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;;
+122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;;
+122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;;
+122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;;
+122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;;
+122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;;
+122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;;
+12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;;
+12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;;
+12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;;
+12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;;
+12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;;
+12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;;
+12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;
+12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;
+1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;
+1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;;
+1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;
+1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;;
+1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;
+12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;
+12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;;
+12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;;
+12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;;
+12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;;
+12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;;
+12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;;
+12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;;
+12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;;
+1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;;
+1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;
+1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;;
+1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;;
+1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;;
+12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;;
+12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;;
+12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;;
+12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;;
+12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;;
+12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;;
+12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;;
+12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;;
+1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;;
+1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;;
+1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;;
+1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;;
+12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;;
+12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;;
+12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;;
+12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;;
+12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;;
+12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;;
+12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;;
+1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;;
+1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;;
+1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;;
+1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;;
+12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;;
+12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;;
+12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;;
+12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;;
+12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;;
+12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;;
+12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;;
+12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;;
+12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;;
+12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;;
+1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;;
+1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;;
+1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;;
+1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;;
+1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;;
+1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;;
+12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;;
+12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;;
+12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;;
+12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;;
+12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;;
+12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;;
+12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;;
+12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;;
+1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;;
+1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;;
+1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;;
+1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;;
+1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;;
+12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;;
+12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;;
+12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;;
+12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;;
+12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;;
+12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;;
+12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;;
+12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;;
+12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;;
+12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;;
+1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;;
+1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;;
+1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;
+1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;
+1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;
+12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
+12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
+12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
+12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;;
+12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;;
+12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;;
+12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;;
+12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;;
+12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;;
+12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;;
+1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;;
+1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;;
+1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;;
+1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;;
+1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;;
+1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;;
+12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;;
+12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;;
+12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;;
+12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;;
+12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;;
+12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;;
+12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;;
+12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;;
+12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;;
+12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;;
+1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;;
+1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;;
+1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;;
+1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;;
+1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;;
+1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;;
+12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;;
+12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;;
+12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;;
+12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;;
+12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;;
+12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;;
+12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;;
+12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;;
+12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;;
+1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;;
+1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;;
+1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;;
+1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;;
+1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;;
+1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;
+12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;
+12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;;
+12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;;
+12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;
+12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;
+12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;
+12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;;
+12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;;
+1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;;
+1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;;
+1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;;
+1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;;
+1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;;
+1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;;
+12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;;
+12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;;
+12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;;
+12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;;
+12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;;
+12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;;
+12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;;
+12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;;
+12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;;
+12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;;
+1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;;
+1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;;
+1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;;
+1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;;
+1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;;
+1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;;
+12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;;
+12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;;
+12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;;
+12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
+12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
+12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
+12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;;
+12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;;
+12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
+12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
+1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
+1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;;
+1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;;
+1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;;
+1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;;
+1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;;
+12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;
+12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;
+12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;
+12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;
+12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;
+12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;
+1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
+1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
+1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
+1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;;
+1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;;
+1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;;
+1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;;
+1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;;
+1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;;
+1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;;
+1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;;
+1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;;
+1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;;
+1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;;
+1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;;
+1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;;
+1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;;
+1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;;
+1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;;
+1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;;
+1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;;
+1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;;
+1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;;
+1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;;
+1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;;
+1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;;
+1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;;
+1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;;
+1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;;
+1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;;
+1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;;
+1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;;
+1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;;
+1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;;
+1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;;
+1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;;
+1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;;
+1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;;
+1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;;
+1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;;
+1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;;
+1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;;
+1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;;
+1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;;
+1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;;
+1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;;
+1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;;
+1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;;
+1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;;
+1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;;
+1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;;
+1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;;
+1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;;
+1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;;
+1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;;
+1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;;
+1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;;
+1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;;
+1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;;
+1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;;
+1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;;
+1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;;
+1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;;
+1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;;
+1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;;
+1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;;
+1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;;
+1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;;
+1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;;
+1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;;
+1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;;
+1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;;
+1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;;
+1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;;
+1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;;
+1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;;
+1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;;
+1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;;
+1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;;
+1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;;
+1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;;
+1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;;
+1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;;
+1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;;
+1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;;
+1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;;
+1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;;
+1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;;
+1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;;
+1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;;
+1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;;
+1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;;
+1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;;
+1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;;
+1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;;
+1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;;
+1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;;
+1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;;
+1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;;
+1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;;
+1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;;
+1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;;
+1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;;
+1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;;
+1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;;
+1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;;
+1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;;
+1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;;
+1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;;
+1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;;
+1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;;
+1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;;
+1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;;
+1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;;
+1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;;
+1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;;
+1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;;
+1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;;
+1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;;
+1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;;
+1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;;
+1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;;
+1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;;
+1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;;
+1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;;
+1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;;
+1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;;
+1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;;
+1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;;
+1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;;
+1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;;
+1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;;
+1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;;
+1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;;
+1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;;
+1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;;
+1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;;
+1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;;
+1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;;
+1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;;
+1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;;
+1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;;
+1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
+1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;;
+1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;;
+1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;;
+1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
+1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;;
+1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;;
+1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;;
+1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;;
+1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;;
+1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;;
+1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;;
+1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;;
+1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;;
+1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;;
+1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;;
+1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;;
+1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
+1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
+1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;;
+1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
+1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
+1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;;
+1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;;
+1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;;
+1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;;
+1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;;
+1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;;
+1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;;
+1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;;
+1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;;
+1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;;
+1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;;
+1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;;
+1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;;
+1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;;
+1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;;
+1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;;
+1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;;
+1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;;
+1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;;
+1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;;
+1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;;
+1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;;
+1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;;
+1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;;
+1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;;
+1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;;
+1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;;
+1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;;
+1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;;
+1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;;
+1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;;
+1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;;
+1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;;
+1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
+1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
+1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
+1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
+1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;;
+1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;;
+1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;;
+1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;;
+1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;;
+1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;;
+1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;;
+1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;;
+1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;;
+1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;;
+1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;;
+1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;;
+1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;;
+1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;;
+1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;;
+1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;;
+1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;;
+1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;;
+1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;;
+1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;;
+1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;;
+1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;;
+1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;;
+1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;;
+1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;;
+1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;;
+1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;;
+1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;;
+1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;;
+1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;;
+1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;;
+1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;;
+1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;;
+1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;;
+1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;;
+1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;;
+1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;;
+1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;;
+1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;;
+1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;;
+1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;;
+1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;;
+1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;;
+1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;;
+1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;;
+1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;;
+1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;;
+1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;;
+1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;;
+1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;;
+1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;;
+1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;;
+1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;;
+1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;;
+1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;;
+1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;;
+1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;;
+1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;;
+1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;;
+1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;;
+1D129;MUSICAL SYMBOL MULTIPLE MEASURE REST;So;0;L;;;;;N;;;;;
+1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;;
+1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;;
+1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;;
+1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;;
+1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;;
+1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;;
+1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;;
+1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;;
+1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;;
+1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;;
+1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;;
+1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;;
+1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;;
+1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;;
+1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;;
+1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;;
+1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;;
+1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;;
+1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;;
+1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;;
+1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;;
+1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;;
+1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;;
+1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;;
+1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;;
+1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;;
+1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;;
+1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;;
+1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;;
+1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;;
+1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;;
+1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;;
+1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
+1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
+1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;;
+1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;;
+1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
+1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
+1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;;
+1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;;
+1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;;
+1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;;
+1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;;
+1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;;
+1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;;
+1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;;
+1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;;
+1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;;
+1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;;
+1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;;
+1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;;
+1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;;
+1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;;
+1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;;
+1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;;
+1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;;
+1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;;
+1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;;
+1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;;
+1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;;
+1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;;
+1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;;
+1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;;
+1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;;
+1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;;
+1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;;
+1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;;
+1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;;
+1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;;
+1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;;
+1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;;
+1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;;
+1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;;
+1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;;
+1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;;
+1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;;
+1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;;
+1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;;
+1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;;
+1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;;
+1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;;
+1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;;
+1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;;
+1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;;
+1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;;
+1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;;
+1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;;
+1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;;
+1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;;
+1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;;
+1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;;
+1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;;
+1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;;
+1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;;
+1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;;
+1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;;
+1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;;
+1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;;
+1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;;
+1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;;
+1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;;
+1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;;
+1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;;
+1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;;
+1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;;
+1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;;
+1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;;
+1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;;
+1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;;
+1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;;
+1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;;
+1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;;
+1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;;
+1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;;
+1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;;
+1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;;
+1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;;
+1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;;
+1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;;
+1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;;
+1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;;
+1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;;
+1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;;
+1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;;
+1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;;
+1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;;
+1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;;
+1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;;
+1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;;
+1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;;
+1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;;
+1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;;
+1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;;
+1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;;
+1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;;
+1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;;
+1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;;
+1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;;
+1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;;
+1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;;
+1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;;
+1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;;
+1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;;
+1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;;
+1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;;
+1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
+1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
+1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
+1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
+1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
+1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
+1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;;
+1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;;
+1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;;
+1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;;
+1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;;
+1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;;
+1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;;
+1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;;
+1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;;
+1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;;
+1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;;
+1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;;
+1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;;
+1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;;
+1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;;
+1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;;
+1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;;
+1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
+1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
+1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;;
+1D203;GREEK VOCAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
+1D204;GREEK VOCAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
+1D205;GREEK VOCAL NOTATION SYMBOL-6;So;0;ON;;;;;N;;;;;
+1D206;GREEK VOCAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
+1D207;GREEK VOCAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
+1D208;GREEK VOCAL NOTATION SYMBOL-9;So;0;ON;;;;;N;;;;;
+1D209;GREEK VOCAL NOTATION SYMBOL-10;So;0;ON;;;;;N;;;;;
+1D20A;GREEK VOCAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
+1D20B;GREEK VOCAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
+1D20C;GREEK VOCAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
+1D20D;GREEK VOCAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
+1D20E;GREEK VOCAL NOTATION SYMBOL-15;So;0;ON;;;;;N;;;;;
+1D20F;GREEK VOCAL NOTATION SYMBOL-16;So;0;ON;;;;;N;;;;;
+1D210;GREEK VOCAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
+1D211;GREEK VOCAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
+1D212;GREEK VOCAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
+1D213;GREEK VOCAL NOTATION SYMBOL-20;So;0;ON;;;;;N;;;;;
+1D214;GREEK VOCAL NOTATION SYMBOL-21;So;0;ON;;;;;N;;;;;
+1D215;GREEK VOCAL NOTATION SYMBOL-22;So;0;ON;;;;;N;;;;;
+1D216;GREEK VOCAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
+1D217;GREEK VOCAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
+1D218;GREEK VOCAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
+1D219;GREEK VOCAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
+1D21A;GREEK VOCAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
+1D21B;GREEK VOCAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
+1D21C;GREEK VOCAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
+1D21D;GREEK INSTRUMENTAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
+1D21E;GREEK INSTRUMENTAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
+1D21F;GREEK INSTRUMENTAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
+1D220;GREEK INSTRUMENTAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
+1D221;GREEK INSTRUMENTAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
+1D222;GREEK INSTRUMENTAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
+1D223;GREEK INSTRUMENTAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
+1D224;GREEK INSTRUMENTAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
+1D225;GREEK INSTRUMENTAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
+1D226;GREEK INSTRUMENTAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
+1D227;GREEK INSTRUMENTAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
+1D228;GREEK INSTRUMENTAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
+1D229;GREEK INSTRUMENTAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
+1D22A;GREEK INSTRUMENTAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
+1D22B;GREEK INSTRUMENTAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
+1D22C;GREEK INSTRUMENTAL NOTATION SYMBOL-25;So;0;ON;;;;;N;;;;;
+1D22D;GREEK INSTRUMENTAL NOTATION SYMBOL-26;So;0;ON;;;;;N;;;;;
+1D22E;GREEK INSTRUMENTAL NOTATION SYMBOL-27;So;0;ON;;;;;N;;;;;
+1D22F;GREEK INSTRUMENTAL NOTATION SYMBOL-29;So;0;ON;;;;;N;;;;;
+1D230;GREEK INSTRUMENTAL NOTATION SYMBOL-30;So;0;ON;;;;;N;;;;;
+1D231;GREEK INSTRUMENTAL NOTATION SYMBOL-32;So;0;ON;;;;;N;;;;;
+1D232;GREEK INSTRUMENTAL NOTATION SYMBOL-36;So;0;ON;;;;;N;;;;;
+1D233;GREEK INSTRUMENTAL NOTATION SYMBOL-37;So;0;ON;;;;;N;;;;;
+1D234;GREEK INSTRUMENTAL NOTATION SYMBOL-38;So;0;ON;;;;;N;;;;;
+1D235;GREEK INSTRUMENTAL NOTATION SYMBOL-39;So;0;ON;;;;;N;;;;;
+1D236;GREEK INSTRUMENTAL NOTATION SYMBOL-40;So;0;ON;;;;;N;;;;;
+1D237;GREEK INSTRUMENTAL NOTATION SYMBOL-42;So;0;ON;;;;;N;;;;;
+1D238;GREEK INSTRUMENTAL NOTATION SYMBOL-43;So;0;ON;;;;;N;;;;;
+1D239;GREEK INSTRUMENTAL NOTATION SYMBOL-45;So;0;ON;;;;;N;;;;;
+1D23A;GREEK INSTRUMENTAL NOTATION SYMBOL-47;So;0;ON;;;;;N;;;;;
+1D23B;GREEK INSTRUMENTAL NOTATION SYMBOL-48;So;0;ON;;;;;N;;;;;
+1D23C;GREEK INSTRUMENTAL NOTATION SYMBOL-49;So;0;ON;;;;;N;;;;;
+1D23D;GREEK INSTRUMENTAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
+1D23E;GREEK INSTRUMENTAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
+1D23F;GREEK INSTRUMENTAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
+1D240;GREEK INSTRUMENTAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
+1D241;GREEK INSTRUMENTAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
+1D242;COMBINING GREEK MUSICAL TRISEME;Mn;230;NSM;;;;;N;;;;;
+1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
+1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
+1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
+1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;ren *;;;
+1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;tian ren *;;;
+1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;di ren *;;;
+1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;ren tian *;;;
+1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;ren di *;;;
+1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;ren ren *;;;
+1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;;
+1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;;
+1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;;
+1D309;TETRAGRAM FOR BARRIER;So;0;ON;;;;;N;;;;;
+1D30A;TETRAGRAM FOR KEEPING SMALL;So;0;ON;;;;;N;;;;;
+1D30B;TETRAGRAM FOR CONTRARIETY;So;0;ON;;;;;N;;;;;
+1D30C;TETRAGRAM FOR ASCENT;So;0;ON;;;;;N;;;;;
+1D30D;TETRAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
+1D30E;TETRAGRAM FOR BRANCHING OUT;So;0;ON;;;;;N;;;;;
+1D30F;TETRAGRAM FOR DEFECTIVENESS OR DISTORTION;So;0;ON;;;;;N;;;;;
+1D310;TETRAGRAM FOR DIVERGENCE;So;0;ON;;;;;N;;;;;
+1D311;TETRAGRAM FOR YOUTHFULNESS;So;0;ON;;;;;N;;;;;
+1D312;TETRAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
+1D313;TETRAGRAM FOR PENETRATION;So;0;ON;;;;;N;;;;;
+1D314;TETRAGRAM FOR REACH;So;0;ON;;;;;N;;;;;
+1D315;TETRAGRAM FOR CONTACT;So;0;ON;;;;;N;;;;;
+1D316;TETRAGRAM FOR HOLDING BACK;So;0;ON;;;;;N;;;;;
+1D317;TETRAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
+1D318;TETRAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
+1D319;TETRAGRAM FOR ADVANCE;So;0;ON;;;;;N;;;;;
+1D31A;TETRAGRAM FOR RELEASE;So;0;ON;;;;;N;;;;;
+1D31B;TETRAGRAM FOR RESISTANCE;So;0;ON;;;;;N;;;;;
+1D31C;TETRAGRAM FOR EASE;So;0;ON;;;;;N;;;;;
+1D31D;TETRAGRAM FOR JOY;So;0;ON;;;;;N;;;;;
+1D31E;TETRAGRAM FOR CONTENTION;So;0;ON;;;;;N;;;;;
+1D31F;TETRAGRAM FOR ENDEAVOUR;So;0;ON;;;;;N;;;;;
+1D320;TETRAGRAM FOR DUTIES;So;0;ON;;;;;N;;;;;
+1D321;TETRAGRAM FOR CHANGE;So;0;ON;;;;;N;;;;;
+1D322;TETRAGRAM FOR DECISIVENESS;So;0;ON;;;;;N;;;;;
+1D323;TETRAGRAM FOR BOLD RESOLUTION;So;0;ON;;;;;N;;;;;
+1D324;TETRAGRAM FOR PACKING;So;0;ON;;;;;N;;;;;
+1D325;TETRAGRAM FOR LEGION;So;0;ON;;;;;N;;;;;
+1D326;TETRAGRAM FOR CLOSENESS;So;0;ON;;;;;N;;;;;
+1D327;TETRAGRAM FOR KINSHIP;So;0;ON;;;;;N;;;;;
+1D328;TETRAGRAM FOR GATHERING;So;0;ON;;;;;N;;;;;
+1D329;TETRAGRAM FOR STRENGTH;So;0;ON;;;;;N;;;;;
+1D32A;TETRAGRAM FOR PURITY;So;0;ON;;;;;N;;;;;
+1D32B;TETRAGRAM FOR FULLNESS;So;0;ON;;;;;N;;;;;
+1D32C;TETRAGRAM FOR RESIDENCE;So;0;ON;;;;;N;;;;;
+1D32D;TETRAGRAM FOR LAW OR MODEL;So;0;ON;;;;;N;;;;;
+1D32E;TETRAGRAM FOR RESPONSE;So;0;ON;;;;;N;;;;;
+1D32F;TETRAGRAM FOR GOING TO MEET;So;0;ON;;;;;N;;;;;
+1D330;TETRAGRAM FOR ENCOUNTERS;So;0;ON;;;;;N;;;;;
+1D331;TETRAGRAM FOR STOVE;So;0;ON;;;;;N;;;;;
+1D332;TETRAGRAM FOR GREATNESS;So;0;ON;;;;;N;;;;;
+1D333;TETRAGRAM FOR ENLARGEMENT;So;0;ON;;;;;N;;;;;
+1D334;TETRAGRAM FOR PATTERN;So;0;ON;;;;;N;;;;;
+1D335;TETRAGRAM FOR RITUAL;So;0;ON;;;;;N;;;;;
+1D336;TETRAGRAM FOR FLIGHT;So;0;ON;;;;;N;;;;;
+1D337;TETRAGRAM FOR VASTNESS OR WASTING;So;0;ON;;;;;N;;;;;
+1D338;TETRAGRAM FOR CONSTANCY;So;0;ON;;;;;N;;;;;
+1D339;TETRAGRAM FOR MEASURE;So;0;ON;;;;;N;;;;;
+1D33A;TETRAGRAM FOR ETERNITY;So;0;ON;;;;;N;;;;;
+1D33B;TETRAGRAM FOR UNITY;So;0;ON;;;;;N;;;;;
+1D33C;TETRAGRAM FOR DIMINISHMENT;So;0;ON;;;;;N;;;;;
+1D33D;TETRAGRAM FOR CLOSED MOUTH;So;0;ON;;;;;N;;;;;
+1D33E;TETRAGRAM FOR GUARDEDNESS;So;0;ON;;;;;N;;;;;
+1D33F;TETRAGRAM FOR GATHERING IN;So;0;ON;;;;;N;;;;;
+1D340;TETRAGRAM FOR MASSING;So;0;ON;;;;;N;;;;;
+1D341;TETRAGRAM FOR ACCUMULATION;So;0;ON;;;;;N;;;;;
+1D342;TETRAGRAM FOR EMBELLISHMENT;So;0;ON;;;;;N;;;;;
+1D343;TETRAGRAM FOR DOUBT;So;0;ON;;;;;N;;;;;
+1D344;TETRAGRAM FOR WATCH;So;0;ON;;;;;N;;;;;
+1D345;TETRAGRAM FOR SINKING;So;0;ON;;;;;N;;;;;
+1D346;TETRAGRAM FOR INNER;So;0;ON;;;;;N;;;;;
+1D347;TETRAGRAM FOR DEPARTURE;So;0;ON;;;;;N;;;;;
+1D348;TETRAGRAM FOR DARKENING;So;0;ON;;;;;N;;;;;
+1D349;TETRAGRAM FOR DIMMING;So;0;ON;;;;;N;;;;;
+1D34A;TETRAGRAM FOR EXHAUSTION;So;0;ON;;;;;N;;;;;
+1D34B;TETRAGRAM FOR SEVERANCE;So;0;ON;;;;;N;;;;;
+1D34C;TETRAGRAM FOR STOPPAGE;So;0;ON;;;;;N;;;;;
+1D34D;TETRAGRAM FOR HARDNESS;So;0;ON;;;;;N;;;;;
+1D34E;TETRAGRAM FOR COMPLETION;So;0;ON;;;;;N;;;;;
+1D34F;TETRAGRAM FOR CLOSURE;So;0;ON;;;;;N;;;;;
+1D350;TETRAGRAM FOR FAILURE;So;0;ON;;;;;N;;;;;
+1D351;TETRAGRAM FOR AGGRAVATION;So;0;ON;;;;;N;;;;;
+1D352;TETRAGRAM FOR COMPLIANCE;So;0;ON;;;;;N;;;;;
+1D353;TETRAGRAM FOR ON THE VERGE;So;0;ON;;;;;N;;;;;
+1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;;
+1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;;
+1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;;
+1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;;
+1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;;
+1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;;
+1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;;
+1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;;
+1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;;
+1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;;
+1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;;
+1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;;
+1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;;
+1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;;
+1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;;
+1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;;
+1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;;
+1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;;
+1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;;
+1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;;
+1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;;
+1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D4C1;MATHEMATICAL SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D6A4;MATHEMATICAL ITALIC SMALL DOTLESS I;Ll;0;L;<font> 0131;;;;N;;;;;
+1D6A5;MATHEMATICAL ITALIC SMALL DOTLESS J;Ll;0;L;<font> 0237;;;;N;;;;;
+1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L;<font> 03DC;;;;N;;;;;
+1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L;<font> 03DD;;;;N;;;;;
+1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1F000;MAHJONG TILE EAST WIND;So;0;ON;;;;;N;;;;;
+1F001;MAHJONG TILE SOUTH WIND;So;0;ON;;;;;N;;;;;
+1F002;MAHJONG TILE WEST WIND;So;0;ON;;;;;N;;;;;
+1F003;MAHJONG TILE NORTH WIND;So;0;ON;;;;;N;;;;;
+1F004;MAHJONG TILE RED DRAGON;So;0;ON;;;;;N;;;;;
+1F005;MAHJONG TILE GREEN DRAGON;So;0;ON;;;;;N;;;;;
+1F006;MAHJONG TILE WHITE DRAGON;So;0;ON;;;;;N;;;;;
+1F007;MAHJONG TILE ONE OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F008;MAHJONG TILE TWO OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F009;MAHJONG TILE THREE OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F00A;MAHJONG TILE FOUR OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F00B;MAHJONG TILE FIVE OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F00C;MAHJONG TILE SIX OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F00D;MAHJONG TILE SEVEN OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F00E;MAHJONG TILE EIGHT OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F00F;MAHJONG TILE NINE OF CHARACTERS;So;0;ON;;;;;N;;;;;
+1F010;MAHJONG TILE ONE OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F011;MAHJONG TILE TWO OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F012;MAHJONG TILE THREE OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F013;MAHJONG TILE FOUR OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F014;MAHJONG TILE FIVE OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F015;MAHJONG TILE SIX OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F016;MAHJONG TILE SEVEN OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F017;MAHJONG TILE EIGHT OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F018;MAHJONG TILE NINE OF BAMBOOS;So;0;ON;;;;;N;;;;;
+1F019;MAHJONG TILE ONE OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F01A;MAHJONG TILE TWO OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F01B;MAHJONG TILE THREE OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F01C;MAHJONG TILE FOUR OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F01D;MAHJONG TILE FIVE OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F01E;MAHJONG TILE SIX OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F01F;MAHJONG TILE SEVEN OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F020;MAHJONG TILE EIGHT OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F021;MAHJONG TILE NINE OF CIRCLES;So;0;ON;;;;;N;;;;;
+1F022;MAHJONG TILE PLUM;So;0;ON;;;;;N;;;;;
+1F023;MAHJONG TILE ORCHID;So;0;ON;;;;;N;;;;;
+1F024;MAHJONG TILE BAMBOO;So;0;ON;;;;;N;;;;;
+1F025;MAHJONG TILE CHRYSANTHEMUM;So;0;ON;;;;;N;;;;;
+1F026;MAHJONG TILE SPRING;So;0;ON;;;;;N;;;;;
+1F027;MAHJONG TILE SUMMER;So;0;ON;;;;;N;;;;;
+1F028;MAHJONG TILE AUTUMN;So;0;ON;;;;;N;;;;;
+1F029;MAHJONG TILE WINTER;So;0;ON;;;;;N;;;;;
+1F02A;MAHJONG TILE JOKER;So;0;ON;;;;;N;;;;;
+1F02B;MAHJONG TILE BACK;So;0;ON;;;;;N;;;;;
+1F030;DOMINO TILE HORIZONTAL BACK;So;0;ON;;;;;N;;;;;
+1F031;DOMINO TILE HORIZONTAL-00-00;So;0;ON;;;;;N;;;;;
+1F032;DOMINO TILE HORIZONTAL-00-01;So;0;ON;;;;;N;;;;;
+1F033;DOMINO TILE HORIZONTAL-00-02;So;0;ON;;;;;N;;;;;
+1F034;DOMINO TILE HORIZONTAL-00-03;So;0;ON;;;;;N;;;;;
+1F035;DOMINO TILE HORIZONTAL-00-04;So;0;ON;;;;;N;;;;;
+1F036;DOMINO TILE HORIZONTAL-00-05;So;0;ON;;;;;N;;;;;
+1F037;DOMINO TILE HORIZONTAL-00-06;So;0;ON;;;;;N;;;;;
+1F038;DOMINO TILE HORIZONTAL-01-00;So;0;ON;;;;;N;;;;;
+1F039;DOMINO TILE HORIZONTAL-01-01;So;0;ON;;;;;N;;;;;
+1F03A;DOMINO TILE HORIZONTAL-01-02;So;0;ON;;;;;N;;;;;
+1F03B;DOMINO TILE HORIZONTAL-01-03;So;0;ON;;;;;N;;;;;
+1F03C;DOMINO TILE HORIZONTAL-01-04;So;0;ON;;;;;N;;;;;
+1F03D;DOMINO TILE HORIZONTAL-01-05;So;0;ON;;;;;N;;;;;
+1F03E;DOMINO TILE HORIZONTAL-01-06;So;0;ON;;;;;N;;;;;
+1F03F;DOMINO TILE HORIZONTAL-02-00;So;0;ON;;;;;N;;;;;
+1F040;DOMINO TILE HORIZONTAL-02-01;So;0;ON;;;;;N;;;;;
+1F041;DOMINO TILE HORIZONTAL-02-02;So;0;ON;;;;;N;;;;;
+1F042;DOMINO TILE HORIZONTAL-02-03;So;0;ON;;;;;N;;;;;
+1F043;DOMINO TILE HORIZONTAL-02-04;So;0;ON;;;;;N;;;;;
+1F044;DOMINO TILE HORIZONTAL-02-05;So;0;ON;;;;;N;;;;;
+1F045;DOMINO TILE HORIZONTAL-02-06;So;0;ON;;;;;N;;;;;
+1F046;DOMINO TILE HORIZONTAL-03-00;So;0;ON;;;;;N;;;;;
+1F047;DOMINO TILE HORIZONTAL-03-01;So;0;ON;;;;;N;;;;;
+1F048;DOMINO TILE HORIZONTAL-03-02;So;0;ON;;;;;N;;;;;
+1F049;DOMINO TILE HORIZONTAL-03-03;So;0;ON;;;;;N;;;;;
+1F04A;DOMINO TILE HORIZONTAL-03-04;So;0;ON;;;;;N;;;;;
+1F04B;DOMINO TILE HORIZONTAL-03-05;So;0;ON;;;;;N;;;;;
+1F04C;DOMINO TILE HORIZONTAL-03-06;So;0;ON;;;;;N;;;;;
+1F04D;DOMINO TILE HORIZONTAL-04-00;So;0;ON;;;;;N;;;;;
+1F04E;DOMINO TILE HORIZONTAL-04-01;So;0;ON;;;;;N;;;;;
+1F04F;DOMINO TILE HORIZONTAL-04-02;So;0;ON;;;;;N;;;;;
+1F050;DOMINO TILE HORIZONTAL-04-03;So;0;ON;;;;;N;;;;;
+1F051;DOMINO TILE HORIZONTAL-04-04;So;0;ON;;;;;N;;;;;
+1F052;DOMINO TILE HORIZONTAL-04-05;So;0;ON;;;;;N;;;;;
+1F053;DOMINO TILE HORIZONTAL-04-06;So;0;ON;;;;;N;;;;;
+1F054;DOMINO TILE HORIZONTAL-05-00;So;0;ON;;;;;N;;;;;
+1F055;DOMINO TILE HORIZONTAL-05-01;So;0;ON;;;;;N;;;;;
+1F056;DOMINO TILE HORIZONTAL-05-02;So;0;ON;;;;;N;;;;;
+1F057;DOMINO TILE HORIZONTAL-05-03;So;0;ON;;;;;N;;;;;
+1F058;DOMINO TILE HORIZONTAL-05-04;So;0;ON;;;;;N;;;;;
+1F059;DOMINO TILE HORIZONTAL-05-05;So;0;ON;;;;;N;;;;;
+1F05A;DOMINO TILE HORIZONTAL-05-06;So;0;ON;;;;;N;;;;;
+1F05B;DOMINO TILE HORIZONTAL-06-00;So;0;ON;;;;;N;;;;;
+1F05C;DOMINO TILE HORIZONTAL-06-01;So;0;ON;;;;;N;;;;;
+1F05D;DOMINO TILE HORIZONTAL-06-02;So;0;ON;;;;;N;;;;;
+1F05E;DOMINO TILE HORIZONTAL-06-03;So;0;ON;;;;;N;;;;;
+1F05F;DOMINO TILE HORIZONTAL-06-04;So;0;ON;;;;;N;;;;;
+1F060;DOMINO TILE HORIZONTAL-06-05;So;0;ON;;;;;N;;;;;
+1F061;DOMINO TILE HORIZONTAL-06-06;So;0;ON;;;;;N;;;;;
+1F062;DOMINO TILE VERTICAL BACK;So;0;ON;;;;;N;;;;;
+1F063;DOMINO TILE VERTICAL-00-00;So;0;ON;;;;;N;;;;;
+1F064;DOMINO TILE VERTICAL-00-01;So;0;ON;;;;;N;;;;;
+1F065;DOMINO TILE VERTICAL-00-02;So;0;ON;;;;;N;;;;;
+1F066;DOMINO TILE VERTICAL-00-03;So;0;ON;;;;;N;;;;;
+1F067;DOMINO TILE VERTICAL-00-04;So;0;ON;;;;;N;;;;;
+1F068;DOMINO TILE VERTICAL-00-05;So;0;ON;;;;;N;;;;;
+1F069;DOMINO TILE VERTICAL-00-06;So;0;ON;;;;;N;;;;;
+1F06A;DOMINO TILE VERTICAL-01-00;So;0;ON;;;;;N;;;;;
+1F06B;DOMINO TILE VERTICAL-01-01;So;0;ON;;;;;N;;;;;
+1F06C;DOMINO TILE VERTICAL-01-02;So;0;ON;;;;;N;;;;;
+1F06D;DOMINO TILE VERTICAL-01-03;So;0;ON;;;;;N;;;;;
+1F06E;DOMINO TILE VERTICAL-01-04;So;0;ON;;;;;N;;;;;
+1F06F;DOMINO TILE VERTICAL-01-05;So;0;ON;;;;;N;;;;;
+1F070;DOMINO TILE VERTICAL-01-06;So;0;ON;;;;;N;;;;;
+1F071;DOMINO TILE VERTICAL-02-00;So;0;ON;;;;;N;;;;;
+1F072;DOMINO TILE VERTICAL-02-01;So;0;ON;;;;;N;;;;;
+1F073;DOMINO TILE VERTICAL-02-02;So;0;ON;;;;;N;;;;;
+1F074;DOMINO TILE VERTICAL-02-03;So;0;ON;;;;;N;;;;;
+1F075;DOMINO TILE VERTICAL-02-04;So;0;ON;;;;;N;;;;;
+1F076;DOMINO TILE VERTICAL-02-05;So;0;ON;;;;;N;;;;;
+1F077;DOMINO TILE VERTICAL-02-06;So;0;ON;;;;;N;;;;;
+1F078;DOMINO TILE VERTICAL-03-00;So;0;ON;;;;;N;;;;;
+1F079;DOMINO TILE VERTICAL-03-01;So;0;ON;;;;;N;;;;;
+1F07A;DOMINO TILE VERTICAL-03-02;So;0;ON;;;;;N;;;;;
+1F07B;DOMINO TILE VERTICAL-03-03;So;0;ON;;;;;N;;;;;
+1F07C;DOMINO TILE VERTICAL-03-04;So;0;ON;;;;;N;;;;;
+1F07D;DOMINO TILE VERTICAL-03-05;So;0;ON;;;;;N;;;;;
+1F07E;DOMINO TILE VERTICAL-03-06;So;0;ON;;;;;N;;;;;
+1F07F;DOMINO TILE VERTICAL-04-00;So;0;ON;;;;;N;;;;;
+1F080;DOMINO TILE VERTICAL-04-01;So;0;ON;;;;;N;;;;;
+1F081;DOMINO TILE VERTICAL-04-02;So;0;ON;;;;;N;;;;;
+1F082;DOMINO TILE VERTICAL-04-03;So;0;ON;;;;;N;;;;;
+1F083;DOMINO TILE VERTICAL-04-04;So;0;ON;;;;;N;;;;;
+1F084;DOMINO TILE VERTICAL-04-05;So;0;ON;;;;;N;;;;;
+1F085;DOMINO TILE VERTICAL-04-06;So;0;ON;;;;;N;;;;;
+1F086;DOMINO TILE VERTICAL-05-00;So;0;ON;;;;;N;;;;;
+1F087;DOMINO TILE VERTICAL-05-01;So;0;ON;;;;;N;;;;;
+1F088;DOMINO TILE VERTICAL-05-02;So;0;ON;;;;;N;;;;;
+1F089;DOMINO TILE VERTICAL-05-03;So;0;ON;;;;;N;;;;;
+1F08A;DOMINO TILE VERTICAL-05-04;So;0;ON;;;;;N;;;;;
+1F08B;DOMINO TILE VERTICAL-05-05;So;0;ON;;;;;N;;;;;
+1F08C;DOMINO TILE VERTICAL-05-06;So;0;ON;;;;;N;;;;;
+1F08D;DOMINO TILE VERTICAL-06-00;So;0;ON;;;;;N;;;;;
+1F08E;DOMINO TILE VERTICAL-06-01;So;0;ON;;;;;N;;;;;
+1F08F;DOMINO TILE VERTICAL-06-02;So;0;ON;;;;;N;;;;;
+1F090;DOMINO TILE VERTICAL-06-03;So;0;ON;;;;;N;;;;;
+1F091;DOMINO TILE VERTICAL-06-04;So;0;ON;;;;;N;;;;;
+1F092;DOMINO TILE VERTICAL-06-05;So;0;ON;;;;;N;;;;;
+1F093;DOMINO TILE VERTICAL-06-06;So;0;ON;;;;;N;;;;;
+2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;
+2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;
+2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;
+2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;;
+2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;;
+2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;;
+2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;;
+2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;;
+2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;;
+2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;;
+2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;;
+2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;;
+2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;;
+2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;;
+2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;;
+2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;;
+2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;;
+2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;;
+2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;;
+2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;;
+2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;;
+2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;;
+2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;;
+2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;;
+2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;;
+2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;;
+2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;;
+2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;;
+2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;;
+2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;;
+2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;;
+2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;;
+2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;;
+2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;;
+2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;;
+2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;;
+2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;;
+2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;;
+2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;;
+2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;;
+2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;;
+2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;;
+2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;;
+2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;;
+2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;;
+2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;;
+2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;;
+2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;;
+2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;;
+2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;;
+2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;;
+2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;;
+2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;;
+2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;;
+2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;;
+2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;;
+2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;;
+2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;;
+2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;;
+2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;;
+2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;;
+2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;;
+2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;;
+2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;;
+2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;;
+2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;;
+2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;;
+2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;;
+2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;;
+2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;;
+2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;;
+2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;;
+2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;;
+2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;;
+2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;;
+2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;;
+2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;;
+2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;;
+2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;;
+2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;;
+2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;;
+2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;;
+2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;;
+2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;;
+2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;;
+2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;;
+2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;;
+2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;;
+2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;;
+2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;;
+2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;;
+2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;;
+2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;;
+2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;;
+2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;;
+2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;;
+2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;;
+2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;;
+2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;;
+2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;;
+2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;;
+2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;;
+2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;;
+2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;;
+2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;36FC;;;;N;;;;;
+2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;;
+2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;;
+2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;;
+2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;;
+2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;;
+2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;;
+2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;;
+2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;;
+2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;;
+2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;;
+2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;;
+2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F53;;;;N;;;;;
+2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;;
+2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;;
+2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;;
+2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;;
+2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;;
+2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;;
+2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;;
+2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;;
+2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;;
+2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;;
+2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;;
+2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;;
+2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;;
+2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;;
+2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;;
+2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;;
+2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;;
+2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;;
+2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;;
+2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;;
+2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;;
+2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;;
+2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;;
+2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;;
+2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;;
+2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;;
+2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;;
+2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;9;N;;;;;
+2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;;
+2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;;
+2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;;
+2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;;
+2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;;
+2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;;
+2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;;
+2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;;
+2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;;
+2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;;
+2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;;
+2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;;
+2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;;
+2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;;
+2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;;
+2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;;
+2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;;
+2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;;
+2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;;
+2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;;
+2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;;
+2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;;
+2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;;
+2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;;
+2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;;
+2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;;
+2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;;
+2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;;
+2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;;
+2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;;
+2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;;
+2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;;
+2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;;
+2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;;
+2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;;
+2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;;
+2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;;
+2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;;
+2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;;
+2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;;
+2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;;
+2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;;
+2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;;
+2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;;
+2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;;
+2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;;
+2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;;
+2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;;
+2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;;
+2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;;
+2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;;
+2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;;
+2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;;
+2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;;
+2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;;
+2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;;
+2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;;
+2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;;
+2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;;
+2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;;
+2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;;
+2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;;
+2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;;
+2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;;
+2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;;
+2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;;
+2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;;
+2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;;
+2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;;
+2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;;
+2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;;
+2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;;
+2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;;
+2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;;
+2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;;
+2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;;
+2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;;
+2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;;
+2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;;
+2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;;
+2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;;
+2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;;
+2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;;
+2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;;
+2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;;
+2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;;
+2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;;
+2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;;
+2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;;
+2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;;
+2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;;
+2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;;
+2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;;
+2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;;
+2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;;
+2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;;
+2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;;
+2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;;
+2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;;
+2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;;
+2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;;
+2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;;
+2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;;
+2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;;
+2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;;
+2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;;
+2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;;
+2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;;
+2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;;
+2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;;
+2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;;
+2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;;
+2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;;
+2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;;
+2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;;
+2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;;
+2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;;
+2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;;
+2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;;
+2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;;
+2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;;
+2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;;
+2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;;
+2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;;
+2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;;
+2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;;
+2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;;
+2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;;
+2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;;
+2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;;
+2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;;
+2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;;
+2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;;
+2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;;
+2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;;
+2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;;
+2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;;
+2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;;
+2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;;
+2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;;
+2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;;
+2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;;
+2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;243AB;;;;N;;;;;
+2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;;
+2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;;
+2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;;
+2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;;
+2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;;
+2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;;
+2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;;
+2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;;
+2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;;
+2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;;
+2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;;
+2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;;
+2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;;
+2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;;
+2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;;
+2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;;
+2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;;
+2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;;
+2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;;
+2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;;
+2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;;
+2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;;
+2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;;
+2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;;
+2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;;
+2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;;
+2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;;
+2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;;
+2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;;
+2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;;
+2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;;
+2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;;
+2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;;
+2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;;
+2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;;
+2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;;
+2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;;
+2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;;
+2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;;
+2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;;
+2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;;
+2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;;
+2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;;
+2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;;
+2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;;
+2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;;
+2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;;
+2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;;
+2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;;
+2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;;
+2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;;
+2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;;
+2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;;
+2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;;
+2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;;
+2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;;
+2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;;
+2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;;
+2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;;
+2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;;
+2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;;
+2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;;
+2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;;
+2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AEE;;;;N;;;;;
+2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;;
+2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;;
+2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;;
+2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;;
+2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;;
+2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;;
+2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;;
+2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;;
+2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;;
+2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;;
+2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;;
+2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;;
+2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;;
+2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;;
+2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;;
+2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;;
+2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;;
+2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;;
+2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;;
+2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;;
+2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;;
+2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;;
+2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;;
+2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;;
+2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;;
+2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;;
+2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;;
+2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;;
+2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;;
+2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;;
+2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;;
+2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;;
+2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;;
+2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;;
+2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;;
+2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;;
+2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;;
+2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;;
+2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;;
+2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;;
+2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;;
+2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;;
+2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;;
+2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;;
+2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;;
+2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;;
+2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;;
+2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;;
+2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;;
+2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;;
+2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;;
+2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;;
+2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;;
+2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;;
+2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;;
+2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;;
+2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;;
+2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;;
+2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;;
+2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;;
+2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;;
+2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;;
+2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;;
+2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;;
+2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;;
+2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;;
+2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;;
+2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;;
+2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;;
+2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;;
+2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;;
+2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;;
+2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;;
+2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;;
+2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;;
+2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;;
+2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;;
+2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;;
+2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;;
+2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;;
+2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;;
+2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;;
+2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;;
+2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;;
+2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;;
+2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;;
+2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;;
+2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;;
+2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;;
+2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;;
+2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;;
+2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;;
+2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;;
+2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;;
+2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;;
+2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;45D7;;;;N;;;;;
+2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;;
+2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;;
+2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;;
+2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;;
+2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;;
+2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;;
+2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;;
+2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;;
+2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;;
+2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;;
+2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;;
+2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;;
+2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;;
+2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;;
+2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;;
+2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;;
+2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;;
+2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;;
+2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;;
+2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;;
+2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;;
+2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;;
+2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;;
+2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;;
+2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;;
+2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;;
+2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;;
+2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;;
+2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;;
+2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;;
+2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;;
+2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;;
+2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;;
+2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;;
+2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;;
+2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;;
+2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;;
+2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;;
+2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;;
+2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;;
+2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;;
+2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;;
+2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;;
+2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;;
+2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;;
+2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;;
+2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;;
+2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;;
+2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;;
+2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;;
+2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;;
+2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;;
+2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;;
+2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;;
+2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;;
+2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;;
+2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;;
+2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;;
+2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;;
+2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;;
+2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;;
+2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;;
+2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;;
+2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;;
+2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;;
+2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;;
+2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;;
+2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;;
+2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;;
+2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;;
+2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;;
+2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;;
+2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;;
+2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;;
+2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;;
+2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;;
+2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;;
+2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;;
+2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;;
+2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;;
+2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;;
+2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;;
+2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;;
+2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;;
+2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;;
+2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;;
+2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;;
+2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;;
+2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;;
+2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;;
+2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;;
+2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;;
+2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;;
+2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
+E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
+E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
+E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
+E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;;
+E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;;
+E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;;
+E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;;
+E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;;
+E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;;
+E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
+E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
+E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;;
+E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;;
+E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;;
+E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;;
+E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;;
+E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;;
+E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;;
+E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;;
+E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;;
+E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;;
+E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;;
+E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;;
+E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;;
+E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;;
+E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;;
+E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;;
+E003A;TAG COLON;Cf;0;BN;;;;;N;;;;;
+E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;;
+E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;;
+E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;;
+E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;;
+E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;;
+E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;;
+E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;;
+E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;;
+E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;;
+E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;;
+E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;;
+E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;;
+E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;;
+E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;;
+E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;;
+E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;;
+E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;;
+E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;;
+E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;;
+E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;;
+E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;;
+E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;;
+E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;;
+E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;;
+E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;;
+E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;;
+E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;;
+E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;;
+E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;;
+E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;;
+E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;;
+E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;;
+E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
+E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;;
+E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
+E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;;
+E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;;
+E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;;
+E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;;
+E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;;
+E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;;
+E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;;
+E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;;
+E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;;
+E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;;
+E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;;
+E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;;
+E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;;
+E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;;
+E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;;
+E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;;
+E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;;
+E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;;
+E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;;
+E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;;
+E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;;
+E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;;
+E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;;
+E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;;
+E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;;
+E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;;
+E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;;
+E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;;
+E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;;
+E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
+E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;;
+E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
+E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;;
+E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;;
+E0100;VARIATION SELECTOR-17;Mn;0;NSM;;;;;N;;;;;
+E0101;VARIATION SELECTOR-18;Mn;0;NSM;;;;;N;;;;;
+E0102;VARIATION SELECTOR-19;Mn;0;NSM;;;;;N;;;;;
+E0103;VARIATION SELECTOR-20;Mn;0;NSM;;;;;N;;;;;
+E0104;VARIATION SELECTOR-21;Mn;0;NSM;;;;;N;;;;;
+E0105;VARIATION SELECTOR-22;Mn;0;NSM;;;;;N;;;;;
+E0106;VARIATION SELECTOR-23;Mn;0;NSM;;;;;N;;;;;
+E0107;VARIATION SELECTOR-24;Mn;0;NSM;;;;;N;;;;;
+E0108;VARIATION SELECTOR-25;Mn;0;NSM;;;;;N;;;;;
+E0109;VARIATION SELECTOR-26;Mn;0;NSM;;;;;N;;;;;
+E010A;VARIATION SELECTOR-27;Mn;0;NSM;;;;;N;;;;;
+E010B;VARIATION SELECTOR-28;Mn;0;NSM;;;;;N;;;;;
+E010C;VARIATION SELECTOR-29;Mn;0;NSM;;;;;N;;;;;
+E010D;VARIATION SELECTOR-30;Mn;0;NSM;;;;;N;;;;;
+E010E;VARIATION SELECTOR-31;Mn;0;NSM;;;;;N;;;;;
+E010F;VARIATION SELECTOR-32;Mn;0;NSM;;;;;N;;;;;
+E0110;VARIATION SELECTOR-33;Mn;0;NSM;;;;;N;;;;;
+E0111;VARIATION SELECTOR-34;Mn;0;NSM;;;;;N;;;;;
+E0112;VARIATION SELECTOR-35;Mn;0;NSM;;;;;N;;;;;
+E0113;VARIATION SELECTOR-36;Mn;0;NSM;;;;;N;;;;;
+E0114;VARIATION SELECTOR-37;Mn;0;NSM;;;;;N;;;;;
+E0115;VARIATION SELECTOR-38;Mn;0;NSM;;;;;N;;;;;
+E0116;VARIATION SELECTOR-39;Mn;0;NSM;;;;;N;;;;;
+E0117;VARIATION SELECTOR-40;Mn;0;NSM;;;;;N;;;;;
+E0118;VARIATION SELECTOR-41;Mn;0;NSM;;;;;N;;;;;
+E0119;VARIATION SELECTOR-42;Mn;0;NSM;;;;;N;;;;;
+E011A;VARIATION SELECTOR-43;Mn;0;NSM;;;;;N;;;;;
+E011B;VARIATION SELECTOR-44;Mn;0;NSM;;;;;N;;;;;
+E011C;VARIATION SELECTOR-45;Mn;0;NSM;;;;;N;;;;;
+E011D;VARIATION SELECTOR-46;Mn;0;NSM;;;;;N;;;;;
+E011E;VARIATION SELECTOR-47;Mn;0;NSM;;;;;N;;;;;
+E011F;VARIATION SELECTOR-48;Mn;0;NSM;;;;;N;;;;;
+E0120;VARIATION SELECTOR-49;Mn;0;NSM;;;;;N;;;;;
+E0121;VARIATION SELECTOR-50;Mn;0;NSM;;;;;N;;;;;
+E0122;VARIATION SELECTOR-51;Mn;0;NSM;;;;;N;;;;;
+E0123;VARIATION SELECTOR-52;Mn;0;NSM;;;;;N;;;;;
+E0124;VARIATION SELECTOR-53;Mn;0;NSM;;;;;N;;;;;
+E0125;VARIATION SELECTOR-54;Mn;0;NSM;;;;;N;;;;;
+E0126;VARIATION SELECTOR-55;Mn;0;NSM;;;;;N;;;;;
+E0127;VARIATION SELECTOR-56;Mn;0;NSM;;;;;N;;;;;
+E0128;VARIATION SELECTOR-57;Mn;0;NSM;;;;;N;;;;;
+E0129;VARIATION SELECTOR-58;Mn;0;NSM;;;;;N;;;;;
+E012A;VARIATION SELECTOR-59;Mn;0;NSM;;;;;N;;;;;
+E012B;VARIATION SELECTOR-60;Mn;0;NSM;;;;;N;;;;;
+E012C;VARIATION SELECTOR-61;Mn;0;NSM;;;;;N;;;;;
+E012D;VARIATION SELECTOR-62;Mn;0;NSM;;;;;N;;;;;
+E012E;VARIATION SELECTOR-63;Mn;0;NSM;;;;;N;;;;;
+E012F;VARIATION SELECTOR-64;Mn;0;NSM;;;;;N;;;;;
+E0130;VARIATION SELECTOR-65;Mn;0;NSM;;;;;N;;;;;
+E0131;VARIATION SELECTOR-66;Mn;0;NSM;;;;;N;;;;;
+E0132;VARIATION SELECTOR-67;Mn;0;NSM;;;;;N;;;;;
+E0133;VARIATION SELECTOR-68;Mn;0;NSM;;;;;N;;;;;
+E0134;VARIATION SELECTOR-69;Mn;0;NSM;;;;;N;;;;;
+E0135;VARIATION SELECTOR-70;Mn;0;NSM;;;;;N;;;;;
+E0136;VARIATION SELECTOR-71;Mn;0;NSM;;;;;N;;;;;
+E0137;VARIATION SELECTOR-72;Mn;0;NSM;;;;;N;;;;;
+E0138;VARIATION SELECTOR-73;Mn;0;NSM;;;;;N;;;;;
+E0139;VARIATION SELECTOR-74;Mn;0;NSM;;;;;N;;;;;
+E013A;VARIATION SELECTOR-75;Mn;0;NSM;;;;;N;;;;;
+E013B;VARIATION SELECTOR-76;Mn;0;NSM;;;;;N;;;;;
+E013C;VARIATION SELECTOR-77;Mn;0;NSM;;;;;N;;;;;
+E013D;VARIATION SELECTOR-78;Mn;0;NSM;;;;;N;;;;;
+E013E;VARIATION SELECTOR-79;Mn;0;NSM;;;;;N;;;;;
+E013F;VARIATION SELECTOR-80;Mn;0;NSM;;;;;N;;;;;
+E0140;VARIATION SELECTOR-81;Mn;0;NSM;;;;;N;;;;;
+E0141;VARIATION SELECTOR-82;Mn;0;NSM;;;;;N;;;;;
+E0142;VARIATION SELECTOR-83;Mn;0;NSM;;;;;N;;;;;
+E0143;VARIATION SELECTOR-84;Mn;0;NSM;;;;;N;;;;;
+E0144;VARIATION SELECTOR-85;Mn;0;NSM;;;;;N;;;;;
+E0145;VARIATION SELECTOR-86;Mn;0;NSM;;;;;N;;;;;
+E0146;VARIATION SELECTOR-87;Mn;0;NSM;;;;;N;;;;;
+E0147;VARIATION SELECTOR-88;Mn;0;NSM;;;;;N;;;;;
+E0148;VARIATION SELECTOR-89;Mn;0;NSM;;;;;N;;;;;
+E0149;VARIATION SELECTOR-90;Mn;0;NSM;;;;;N;;;;;
+E014A;VARIATION SELECTOR-91;Mn;0;NSM;;;;;N;;;;;
+E014B;VARIATION SELECTOR-92;Mn;0;NSM;;;;;N;;;;;
+E014C;VARIATION SELECTOR-93;Mn;0;NSM;;;;;N;;;;;
+E014D;VARIATION SELECTOR-94;Mn;0;NSM;;;;;N;;;;;
+E014E;VARIATION SELECTOR-95;Mn;0;NSM;;;;;N;;;;;
+E014F;VARIATION SELECTOR-96;Mn;0;NSM;;;;;N;;;;;
+E0150;VARIATION SELECTOR-97;Mn;0;NSM;;;;;N;;;;;
+E0151;VARIATION SELECTOR-98;Mn;0;NSM;;;;;N;;;;;
+E0152;VARIATION SELECTOR-99;Mn;0;NSM;;;;;N;;;;;
+E0153;VARIATION SELECTOR-100;Mn;0;NSM;;;;;N;;;;;
+E0154;VARIATION SELECTOR-101;Mn;0;NSM;;;;;N;;;;;
+E0155;VARIATION SELECTOR-102;Mn;0;NSM;;;;;N;;;;;
+E0156;VARIATION SELECTOR-103;Mn;0;NSM;;;;;N;;;;;
+E0157;VARIATION SELECTOR-104;Mn;0;NSM;;;;;N;;;;;
+E0158;VARIATION SELECTOR-105;Mn;0;NSM;;;;;N;;;;;
+E0159;VARIATION SELECTOR-106;Mn;0;NSM;;;;;N;;;;;
+E015A;VARIATION SELECTOR-107;Mn;0;NSM;;;;;N;;;;;
+E015B;VARIATION SELECTOR-108;Mn;0;NSM;;;;;N;;;;;
+E015C;VARIATION SELECTOR-109;Mn;0;NSM;;;;;N;;;;;
+E015D;VARIATION SELECTOR-110;Mn;0;NSM;;;;;N;;;;;
+E015E;VARIATION SELECTOR-111;Mn;0;NSM;;;;;N;;;;;
+E015F;VARIATION SELECTOR-112;Mn;0;NSM;;;;;N;;;;;
+E0160;VARIATION SELECTOR-113;Mn;0;NSM;;;;;N;;;;;
+E0161;VARIATION SELECTOR-114;Mn;0;NSM;;;;;N;;;;;
+E0162;VARIATION SELECTOR-115;Mn;0;NSM;;;;;N;;;;;
+E0163;VARIATION SELECTOR-116;Mn;0;NSM;;;;;N;;;;;
+E0164;VARIATION SELECTOR-117;Mn;0;NSM;;;;;N;;;;;
+E0165;VARIATION SELECTOR-118;Mn;0;NSM;;;;;N;;;;;
+E0166;VARIATION SELECTOR-119;Mn;0;NSM;;;;;N;;;;;
+E0167;VARIATION SELECTOR-120;Mn;0;NSM;;;;;N;;;;;
+E0168;VARIATION SELECTOR-121;Mn;0;NSM;;;;;N;;;;;
+E0169;VARIATION SELECTOR-122;Mn;0;NSM;;;;;N;;;;;
+E016A;VARIATION SELECTOR-123;Mn;0;NSM;;;;;N;;;;;
+E016B;VARIATION SELECTOR-124;Mn;0;NSM;;;;;N;;;;;
+E016C;VARIATION SELECTOR-125;Mn;0;NSM;;;;;N;;;;;
+E016D;VARIATION SELECTOR-126;Mn;0;NSM;;;;;N;;;;;
+E016E;VARIATION SELECTOR-127;Mn;0;NSM;;;;;N;;;;;
+E016F;VARIATION SELECTOR-128;Mn;0;NSM;;;;;N;;;;;
+E0170;VARIATION SELECTOR-129;Mn;0;NSM;;;;;N;;;;;
+E0171;VARIATION SELECTOR-130;Mn;0;NSM;;;;;N;;;;;
+E0172;VARIATION SELECTOR-131;Mn;0;NSM;;;;;N;;;;;
+E0173;VARIATION SELECTOR-132;Mn;0;NSM;;;;;N;;;;;
+E0174;VARIATION SELECTOR-133;Mn;0;NSM;;;;;N;;;;;
+E0175;VARIATION SELECTOR-134;Mn;0;NSM;;;;;N;;;;;
+E0176;VARIATION SELECTOR-135;Mn;0;NSM;;;;;N;;;;;
+E0177;VARIATION SELECTOR-136;Mn;0;NSM;;;;;N;;;;;
+E0178;VARIATION SELECTOR-137;Mn;0;NSM;;;;;N;;;;;
+E0179;VARIATION SELECTOR-138;Mn;0;NSM;;;;;N;;;;;
+E017A;VARIATION SELECTOR-139;Mn;0;NSM;;;;;N;;;;;
+E017B;VARIATION SELECTOR-140;Mn;0;NSM;;;;;N;;;;;
+E017C;VARIATION SELECTOR-141;Mn;0;NSM;;;;;N;;;;;
+E017D;VARIATION SELECTOR-142;Mn;0;NSM;;;;;N;;;;;
+E017E;VARIATION SELECTOR-143;Mn;0;NSM;;;;;N;;;;;
+E017F;VARIATION SELECTOR-144;Mn;0;NSM;;;;;N;;;;;
+E0180;VARIATION SELECTOR-145;Mn;0;NSM;;;;;N;;;;;
+E0181;VARIATION SELECTOR-146;Mn;0;NSM;;;;;N;;;;;
+E0182;VARIATION SELECTOR-147;Mn;0;NSM;;;;;N;;;;;
+E0183;VARIATION SELECTOR-148;Mn;0;NSM;;;;;N;;;;;
+E0184;VARIATION SELECTOR-149;Mn;0;NSM;;;;;N;;;;;
+E0185;VARIATION SELECTOR-150;Mn;0;NSM;;;;;N;;;;;
+E0186;VARIATION SELECTOR-151;Mn;0;NSM;;;;;N;;;;;
+E0187;VARIATION SELECTOR-152;Mn;0;NSM;;;;;N;;;;;
+E0188;VARIATION SELECTOR-153;Mn;0;NSM;;;;;N;;;;;
+E0189;VARIATION SELECTOR-154;Mn;0;NSM;;;;;N;;;;;
+E018A;VARIATION SELECTOR-155;Mn;0;NSM;;;;;N;;;;;
+E018B;VARIATION SELECTOR-156;Mn;0;NSM;;;;;N;;;;;
+E018C;VARIATION SELECTOR-157;Mn;0;NSM;;;;;N;;;;;
+E018D;VARIATION SELECTOR-158;Mn;0;NSM;;;;;N;;;;;
+E018E;VARIATION SELECTOR-159;Mn;0;NSM;;;;;N;;;;;
+E018F;VARIATION SELECTOR-160;Mn;0;NSM;;;;;N;;;;;
+E0190;VARIATION SELECTOR-161;Mn;0;NSM;;;;;N;;;;;
+E0191;VARIATION SELECTOR-162;Mn;0;NSM;;;;;N;;;;;
+E0192;VARIATION SELECTOR-163;Mn;0;NSM;;;;;N;;;;;
+E0193;VARIATION SELECTOR-164;Mn;0;NSM;;;;;N;;;;;
+E0194;VARIATION SELECTOR-165;Mn;0;NSM;;;;;N;;;;;
+E0195;VARIATION SELECTOR-166;Mn;0;NSM;;;;;N;;;;;
+E0196;VARIATION SELECTOR-167;Mn;0;NSM;;;;;N;;;;;
+E0197;VARIATION SELECTOR-168;Mn;0;NSM;;;;;N;;;;;
+E0198;VARIATION SELECTOR-169;Mn;0;NSM;;;;;N;;;;;
+E0199;VARIATION SELECTOR-170;Mn;0;NSM;;;;;N;;;;;
+E019A;VARIATION SELECTOR-171;Mn;0;NSM;;;;;N;;;;;
+E019B;VARIATION SELECTOR-172;Mn;0;NSM;;;;;N;;;;;
+E019C;VARIATION SELECTOR-173;Mn;0;NSM;;;;;N;;;;;
+E019D;VARIATION SELECTOR-174;Mn;0;NSM;;;;;N;;;;;
+E019E;VARIATION SELECTOR-175;Mn;0;NSM;;;;;N;;;;;
+E019F;VARIATION SELECTOR-176;Mn;0;NSM;;;;;N;;;;;
+E01A0;VARIATION SELECTOR-177;Mn;0;NSM;;;;;N;;;;;
+E01A1;VARIATION SELECTOR-178;Mn;0;NSM;;;;;N;;;;;
+E01A2;VARIATION SELECTOR-179;Mn;0;NSM;;;;;N;;;;;
+E01A3;VARIATION SELECTOR-180;Mn;0;NSM;;;;;N;;;;;
+E01A4;VARIATION SELECTOR-181;Mn;0;NSM;;;;;N;;;;;
+E01A5;VARIATION SELECTOR-182;Mn;0;NSM;;;;;N;;;;;
+E01A6;VARIATION SELECTOR-183;Mn;0;NSM;;;;;N;;;;;
+E01A7;VARIATION SELECTOR-184;Mn;0;NSM;;;;;N;;;;;
+E01A8;VARIATION SELECTOR-185;Mn;0;NSM;;;;;N;;;;;
+E01A9;VARIATION SELECTOR-186;Mn;0;NSM;;;;;N;;;;;
+E01AA;VARIATION SELECTOR-187;Mn;0;NSM;;;;;N;;;;;
+E01AB;VARIATION SELECTOR-188;Mn;0;NSM;;;;;N;;;;;
+E01AC;VARIATION SELECTOR-189;Mn;0;NSM;;;;;N;;;;;
+E01AD;VARIATION SELECTOR-190;Mn;0;NSM;;;;;N;;;;;
+E01AE;VARIATION SELECTOR-191;Mn;0;NSM;;;;;N;;;;;
+E01AF;VARIATION SELECTOR-192;Mn;0;NSM;;;;;N;;;;;
+E01B0;VARIATION SELECTOR-193;Mn;0;NSM;;;;;N;;;;;
+E01B1;VARIATION SELECTOR-194;Mn;0;NSM;;;;;N;;;;;
+E01B2;VARIATION SELECTOR-195;Mn;0;NSM;;;;;N;;;;;
+E01B3;VARIATION SELECTOR-196;Mn;0;NSM;;;;;N;;;;;
+E01B4;VARIATION SELECTOR-197;Mn;0;NSM;;;;;N;;;;;
+E01B5;VARIATION SELECTOR-198;Mn;0;NSM;;;;;N;;;;;
+E01B6;VARIATION SELECTOR-199;Mn;0;NSM;;;;;N;;;;;
+E01B7;VARIATION SELECTOR-200;Mn;0;NSM;;;;;N;;;;;
+E01B8;VARIATION SELECTOR-201;Mn;0;NSM;;;;;N;;;;;
+E01B9;VARIATION SELECTOR-202;Mn;0;NSM;;;;;N;;;;;
+E01BA;VARIATION SELECTOR-203;Mn;0;NSM;;;;;N;;;;;
+E01BB;VARIATION SELECTOR-204;Mn;0;NSM;;;;;N;;;;;
+E01BC;VARIATION SELECTOR-205;Mn;0;NSM;;;;;N;;;;;
+E01BD;VARIATION SELECTOR-206;Mn;0;NSM;;;;;N;;;;;
+E01BE;VARIATION SELECTOR-207;Mn;0;NSM;;;;;N;;;;;
+E01BF;VARIATION SELECTOR-208;Mn;0;NSM;;;;;N;;;;;
+E01C0;VARIATION SELECTOR-209;Mn;0;NSM;;;;;N;;;;;
+E01C1;VARIATION SELECTOR-210;Mn;0;NSM;;;;;N;;;;;
+E01C2;VARIATION SELECTOR-211;Mn;0;NSM;;;;;N;;;;;
+E01C3;VARIATION SELECTOR-212;Mn;0;NSM;;;;;N;;;;;
+E01C4;VARIATION SELECTOR-213;Mn;0;NSM;;;;;N;;;;;
+E01C5;VARIATION SELECTOR-214;Mn;0;NSM;;;;;N;;;;;
+E01C6;VARIATION SELECTOR-215;Mn;0;NSM;;;;;N;;;;;
+E01C7;VARIATION SELECTOR-216;Mn;0;NSM;;;;;N;;;;;
+E01C8;VARIATION SELECTOR-217;Mn;0;NSM;;;;;N;;;;;
+E01C9;VARIATION SELECTOR-218;Mn;0;NSM;;;;;N;;;;;
+E01CA;VARIATION SELECTOR-219;Mn;0;NSM;;;;;N;;;;;
+E01CB;VARIATION SELECTOR-220;Mn;0;NSM;;;;;N;;;;;
+E01CC;VARIATION SELECTOR-221;Mn;0;NSM;;;;;N;;;;;
+E01CD;VARIATION SELECTOR-222;Mn;0;NSM;;;;;N;;;;;
+E01CE;VARIATION SELECTOR-223;Mn;0;NSM;;;;;N;;;;;
+E01CF;VARIATION SELECTOR-224;Mn;0;NSM;;;;;N;;;;;
+E01D0;VARIATION SELECTOR-225;Mn;0;NSM;;;;;N;;;;;
+E01D1;VARIATION SELECTOR-226;Mn;0;NSM;;;;;N;;;;;
+E01D2;VARIATION SELECTOR-227;Mn;0;NSM;;;;;N;;;;;
+E01D3;VARIATION SELECTOR-228;Mn;0;NSM;;;;;N;;;;;
+E01D4;VARIATION SELECTOR-229;Mn;0;NSM;;;;;N;;;;;
+E01D5;VARIATION SELECTOR-230;Mn;0;NSM;;;;;N;;;;;
+E01D6;VARIATION SELECTOR-231;Mn;0;NSM;;;;;N;;;;;
+E01D7;VARIATION SELECTOR-232;Mn;0;NSM;;;;;N;;;;;
+E01D8;VARIATION SELECTOR-233;Mn;0;NSM;;;;;N;;;;;
+E01D9;VARIATION SELECTOR-234;Mn;0;NSM;;;;;N;;;;;
+E01DA;VARIATION SELECTOR-235;Mn;0;NSM;;;;;N;;;;;
+E01DB;VARIATION SELECTOR-236;Mn;0;NSM;;;;;N;;;;;
+E01DC;VARIATION SELECTOR-237;Mn;0;NSM;;;;;N;;;;;
+E01DD;VARIATION SELECTOR-238;Mn;0;NSM;;;;;N;;;;;
+E01DE;VARIATION SELECTOR-239;Mn;0;NSM;;;;;N;;;;;
+E01DF;VARIATION SELECTOR-240;Mn;0;NSM;;;;;N;;;;;
+E01E0;VARIATION SELECTOR-241;Mn;0;NSM;;;;;N;;;;;
+E01E1;VARIATION SELECTOR-242;Mn;0;NSM;;;;;N;;;;;
+E01E2;VARIATION SELECTOR-243;Mn;0;NSM;;;;;N;;;;;
+E01E3;VARIATION SELECTOR-244;Mn;0;NSM;;;;;N;;;;;
+E01E4;VARIATION SELECTOR-245;Mn;0;NSM;;;;;N;;;;;
+E01E5;VARIATION SELECTOR-246;Mn;0;NSM;;;;;N;;;;;
+E01E6;VARIATION SELECTOR-247;Mn;0;NSM;;;;;N;;;;;
+E01E7;VARIATION SELECTOR-248;Mn;0;NSM;;;;;N;;;;;
+E01E8;VARIATION SELECTOR-249;Mn;0;NSM;;;;;N;;;;;
+E01E9;VARIATION SELECTOR-250;Mn;0;NSM;;;;;N;;;;;
+E01EA;VARIATION SELECTOR-251;Mn;0;NSM;;;;;N;;;;;
+E01EB;VARIATION SELECTOR-252;Mn;0;NSM;;;;;N;;;;;
+E01EC;VARIATION SELECTOR-253;Mn;0;NSM;;;;;N;;;;;
+E01ED;VARIATION SELECTOR-254;Mn;0;NSM;;;;;N;;;;;
+E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;;
+E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;;
diff --git a/tests/uniname/test-uninames.c b/tests/uniname/test-uninames.c
new file mode 100644
index 0000000..1408434
--- /dev/null
+++ b/tests/uniname/test-uninames.c
@@ -0,0 +1,261 @@
+/* Test the Unicode character name functions.
+ Copyright (C) 2000-2003, 2005, 2007, 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xalloc.h"
+#include "uniname.h"
+#include "progname.h"
+
+/* The names according to the UnicodeData.txt file, modified to contain the
+ Hangul syllable names, as described in the Unicode 3.0 book. */
+const char * unicode_names [0x110000];
+
+/* Maximum length of a field in the UnicodeData.txt file. */
+#define FIELDLEN 120
+
+/* Reads the next field from STREAM. The buffer BUFFER has size FIELDLEN.
+ Reads up to (but excluding) DELIM.
+ Returns 1 when a field was successfully read, otherwise 0. */
+static int
+getfield (FILE *stream, char *buffer, int delim)
+{
+ int count = 0;
+ int c;
+
+ for (; (c = getc (stream)), (c != EOF && c != delim); )
+ {
+ /* Put c into the buffer. */
+ if (++count >= FIELDLEN - 1)
+ {
+ fprintf (stderr, "field too long\n");
+ exit (EXIT_FAILURE);
+ }
+ *buffer++ = c;
+ }
+
+ if (c == EOF)
+ return 0;
+
+ *buffer = '\0';
+ return 1;
+}
+
+/* Stores in unicode_names[] the relevant contents of the UnicodeData.txt
+ file. */
+static void
+fill_names (const char *unicodedata_filename)
+{
+ unsigned int i;
+ FILE *stream;
+ char field0[FIELDLEN];
+ char field1[FIELDLEN];
+ int lineno = 0;
+
+ for (i = 0; i < 0x110000; i++)
+ unicode_names[i] = NULL;
+
+ stream = fopen (unicodedata_filename, "r");
+ if (stream == NULL)
+ {
+ fprintf (stderr, "error during fopen of '%s'\n", unicodedata_filename);
+ exit (EXIT_FAILURE);
+ }
+
+ for (;;)
+ {
+ int n;
+ int c;
+
+ lineno++;
+ n = getfield (stream, field0, ';');
+ n += getfield (stream, field1, ';');
+ if (n == 0)
+ break;
+ if (n != 2)
+ {
+ fprintf (stderr, "short line in '%s':%d\n",
+ unicodedata_filename, lineno);
+ exit (EXIT_FAILURE);
+ }
+ for (; (c = getc (stream)), (c != EOF && c != '\n'); )
+ ;
+ i = strtoul (field0, NULL, 16);
+ if (i >= 0x110000)
+ {
+ fprintf (stderr, "index too large\n");
+ exit (EXIT_FAILURE);
+ }
+ unicode_names[i] = xstrdup (field1);
+ }
+ if (ferror (stream) || fclose (stream))
+ {
+ fprintf (stderr, "error reading from '%s'\n", unicodedata_filename);
+ exit (1);
+ }
+}
+
+/* Perform an exhaustive test of the unicode_character_name function. */
+static int
+test_name_lookup ()
+{
+ int error = 0;
+ unsigned int i;
+ char buf[UNINAME_MAX];
+
+ for (i = 0; i < 0x11000; i++)
+ {
+ char *result = unicode_character_name (i, buf);
+
+ if (unicode_names[i] != NULL)
+ {
+ if (result == NULL)
+ {
+ fprintf (stderr, "\\u%04X name lookup failed!\n", i);
+ error = 1;
+ }
+ else if (strcmp (result, unicode_names[i]) != 0)
+ {
+ fprintf (stderr, "\\u%04X name lookup returned wrong name: %s\n",
+ i, result);
+ error = 1;
+ }
+ }
+ else
+ {
+ if (result != NULL)
+ {
+ fprintf (stderr, "\\u%04X name lookup returned wrong name: %s\n",
+ i, result);
+ error = 1;
+ }
+ }
+ }
+
+ for (i = 0x110000; i < 0x1000000; i++)
+ {
+ char *result = unicode_character_name (i, buf);
+
+ if (result != NULL)
+ {
+ fprintf (stderr, "\\u%04X name lookup returned wrong name: %s\n",
+ i, result);
+ error = 1;
+ }
+ }
+
+ return error;
+}
+
+/* Perform a test of the unicode_name_character function. */
+static int
+test_inverse_lookup ()
+{
+ int error = 0;
+ unsigned int i;
+
+ /* First, verify all valid character names are recognized. */
+ for (i = 0; i < 0x110000; i++)
+ if (unicode_names[i] != NULL)
+ {
+ unsigned int result = unicode_name_character (unicode_names[i]);
+ if (result != i)
+ {
+ if (result == UNINAME_INVALID)
+ fprintf (stderr, "inverse name lookup of \"%s\" failed\n",
+ unicode_names[i]);
+ else
+ fprintf (stderr,
+ "inverse name lookup of \"%s\" returned 0x%04X\n",
+ unicode_names[i], result);
+ error = 1;
+ }
+ }
+
+ /* Second, generate random but likely names and verify they are not
+ recognized unless really valid. */
+ for (i = 0; i < 10000; i++)
+ {
+ unsigned int i1, i2;
+ const char *s1;
+ const char *s2;
+ unsigned int l1, l2, j1, j2;
+ char buf[2*UNINAME_MAX];
+ unsigned int result;
+
+ do i1 = ((rand () % 0x11) << 16)
+ + ((rand () & 0xff) << 8)
+ + (rand () & 0xff);
+ while (unicode_names[i1] == NULL);
+
+ do i2 = ((rand () % 0x11) << 16)
+ + ((rand () & 0xff) << 8)
+ + (rand () & 0xff);
+ while (unicode_names[i2] == NULL);
+
+ s1 = unicode_names[i1];
+ l1 = strlen (s1);
+ s2 = unicode_names[i2];
+ l2 = strlen (s2);
+
+ /* Concatenate a starting piece of s1 with an ending piece of s2. */
+ for (j1 = 1; j1 <= l1; j1++)
+ if (j1 == l1 || s1[j1] == ' ')
+ for (j2 = 0; j2 < l2; j2++)
+ if (j2 == 0 || s2[j2-1] == ' ')
+ {
+ memcpy (buf, s1, j1);
+ buf[j1] = ' ';
+ memcpy (buf + j1 + 1, s2 + j2, l2 - j2 + 1);
+
+ result = unicode_name_character (buf);
+ if (result != UNINAME_INVALID
+ && !(unicode_names[result] != NULL
+ && strcmp (unicode_names[result], buf) == 0))
+ {
+ fprintf (stderr,
+ "inverse name lookup of \"%s\" returned 0x%04X\n",
+ unicode_names[i], result);
+ error = 1;
+ }
+ }
+ }
+
+ /* Third, some extreme case that used to loop. */
+ if (unicode_name_character ("A A") != UNINAME_INVALID)
+ error = 1;
+
+ return error;
+}
+
+int
+main (int argc, char *argv[])
+{
+ int error = 0;
+
+ set_program_name (argv[0]);
+
+ fill_names (argv[1]);
+
+ error |= test_name_lookup ();
+ error |= test_inverse_lookup ();
+
+ return error;
+}
diff --git a/tests/uniname/test-uninames.sh b/tests/uniname/test-uninames.sh
new file mode 100755
index 0000000..f26c275
--- /dev/null
+++ b/tests/uniname/test-uninames.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ./test-uninames${EXEEXT} "$srcdir/uniname/UnicodeDataNames.txt"
diff --git a/tests/uninorm/NormalizationTest.txt b/tests/uninorm/NormalizationTest.txt
new file mode 100644
index 0000000..0bb9765
--- /dev/null
+++ b/tests/uninorm/NormalizationTest.txt
@@ -0,0 +1,17819 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@Part0
+
+1E0A;1E0A;0044 0307;1E0A;0044 0307;
+1E0C;1E0C;0044 0323;1E0C;0044 0323;
+1E0A 0323;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307;
+1E0C 0307;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307;
+0044 0307 0323;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307;
+0044 0323 0307;1E0C 0307;0044 0323 0307;1E0C 0307;0044 0323 0307;
+1E0A 031B;1E0A 031B;0044 031B 0307;1E0A 031B;0044 031B 0307;
+1E0C 031B;1E0C 031B;0044 031B 0323;1E0C 031B;0044 031B 0323;
+1E0A 031B 0323;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307;
+1E0C 031B 0307;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307;
+0044 031B 0307 0323;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307;
+0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307;1E0C 031B 0307;0044 031B 0323 0307;
+00C8;00C8;0045 0300;00C8;0045 0300;
+0112;0112;0045 0304;0112;0045 0304;
+0045 0300;00C8;0045 0300;00C8;0045 0300;
+0045 0304;0112;0045 0304;0112;0045 0304;
+1E14;1E14;0045 0304 0300;1E14;0045 0304 0300;
+0112 0300;1E14;0045 0304 0300;1E14;0045 0304 0300;
+1E14 0304;1E14 0304;0045 0304 0300 0304;1E14 0304;0045 0304 0300 0304;
+0045 0304 0300;1E14;0045 0304 0300;1E14;0045 0304 0300;
+0045 0300 0304;00C8 0304;0045 0300 0304;00C8 0304;0045 0300 0304;
+05B8 05B9 05B1 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F;05B1 05B8 05B9 0591 05C3 05B0 05AC 059F;
+0592 05B7 05BC 05A5 05B0 05C0 05C4 05AD;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4;05B0 05B7 05BC 05A5 0592 05C0 05AD 05C4;
+
+@Part1
+
+
+00A0;00A0;00A0;0020;0020;
+00A8;00A8;00A8;0020 0308;0020 0308;
+00AA;00AA;00AA;0061;0061;
+00AF;00AF;00AF;0020 0304;0020 0304;
+00B2;00B2;00B2;0032;0032;
+00B3;00B3;00B3;0033;0033;
+00B4;00B4;00B4;0020 0301;0020 0301;
+00B5;00B5;00B5;03BC;03BC;
+00B8;00B8;00B8;0020 0327;0020 0327;
+00B9;00B9;00B9;0031;0031;
+00BA;00BA;00BA;006F;006F;
+00BC;00BC;00BC;0031 2044 0034;0031 2044 0034;
+00BD;00BD;00BD;0031 2044 0032;0031 2044 0032;
+00BE;00BE;00BE;0033 2044 0034;0033 2044 0034;
+00C0;00C0;0041 0300;00C0;0041 0300;
+00C1;00C1;0041 0301;00C1;0041 0301;
+00C2;00C2;0041 0302;00C2;0041 0302;
+00C3;00C3;0041 0303;00C3;0041 0303;
+00C4;00C4;0041 0308;00C4;0041 0308;
+00C5;00C5;0041 030A;00C5;0041 030A;
+00C7;00C7;0043 0327;00C7;0043 0327;
+00C8;00C8;0045 0300;00C8;0045 0300;
+00C9;00C9;0045 0301;00C9;0045 0301;
+00CA;00CA;0045 0302;00CA;0045 0302;
+00CB;00CB;0045 0308;00CB;0045 0308;
+00CC;00CC;0049 0300;00CC;0049 0300;
+00CD;00CD;0049 0301;00CD;0049 0301;
+00CE;00CE;0049 0302;00CE;0049 0302;
+00CF;00CF;0049 0308;00CF;0049 0308;
+00D1;00D1;004E 0303;00D1;004E 0303;
+00D2;00D2;004F 0300;00D2;004F 0300;
+00D3;00D3;004F 0301;00D3;004F 0301;
+00D4;00D4;004F 0302;00D4;004F 0302;
+00D5;00D5;004F 0303;00D5;004F 0303;
+00D6;00D6;004F 0308;00D6;004F 0308;
+00D9;00D9;0055 0300;00D9;0055 0300;
+00DA;00DA;0055 0301;00DA;0055 0301;
+00DB;00DB;0055 0302;00DB;0055 0302;
+00DC;00DC;0055 0308;00DC;0055 0308;
+00DD;00DD;0059 0301;00DD;0059 0301;
+00E0;00E0;0061 0300;00E0;0061 0300;
+00E1;00E1;0061 0301;00E1;0061 0301;
+00E2;00E2;0061 0302;00E2;0061 0302;
+00E3;00E3;0061 0303;00E3;0061 0303;
+00E4;00E4;0061 0308;00E4;0061 0308;
+00E5;00E5;0061 030A;00E5;0061 030A;
+00E7;00E7;0063 0327;00E7;0063 0327;
+00E8;00E8;0065 0300;00E8;0065 0300;
+00E9;00E9;0065 0301;00E9;0065 0301;
+00EA;00EA;0065 0302;00EA;0065 0302;
+00EB;00EB;0065 0308;00EB;0065 0308;
+00EC;00EC;0069 0300;00EC;0069 0300;
+00ED;00ED;0069 0301;00ED;0069 0301;
+00EE;00EE;0069 0302;00EE;0069 0302;
+00EF;00EF;0069 0308;00EF;0069 0308;
+00F1;00F1;006E 0303;00F1;006E 0303;
+00F2;00F2;006F 0300;00F2;006F 0300;
+00F3;00F3;006F 0301;00F3;006F 0301;
+00F4;00F4;006F 0302;00F4;006F 0302;
+00F5;00F5;006F 0303;00F5;006F 0303;
+00F6;00F6;006F 0308;00F6;006F 0308;
+00F9;00F9;0075 0300;00F9;0075 0300;
+00FA;00FA;0075 0301;00FA;0075 0301;
+00FB;00FB;0075 0302;00FB;0075 0302;
+00FC;00FC;0075 0308;00FC;0075 0308;
+00FD;00FD;0079 0301;00FD;0079 0301;
+00FF;00FF;0079 0308;00FF;0079 0308;
+0100;0100;0041 0304;0100;0041 0304;
+0101;0101;0061 0304;0101;0061 0304;
+0102;0102;0041 0306;0102;0041 0306;
+0103;0103;0061 0306;0103;0061 0306;
+0104;0104;0041 0328;0104;0041 0328;
+0105;0105;0061 0328;0105;0061 0328;
+0106;0106;0043 0301;0106;0043 0301;
+0107;0107;0063 0301;0107;0063 0301;
+0108;0108;0043 0302;0108;0043 0302;
+0109;0109;0063 0302;0109;0063 0302;
+010A;010A;0043 0307;010A;0043 0307;
+010B;010B;0063 0307;010B;0063 0307;
+010C;010C;0043 030C;010C;0043 030C;
+010D;010D;0063 030C;010D;0063 030C;
+010E;010E;0044 030C;010E;0044 030C;
+010F;010F;0064 030C;010F;0064 030C;
+0112;0112;0045 0304;0112;0045 0304;
+0113;0113;0065 0304;0113;0065 0304;
+0114;0114;0045 0306;0114;0045 0306;
+0115;0115;0065 0306;0115;0065 0306;
+0116;0116;0045 0307;0116;0045 0307;
+0117;0117;0065 0307;0117;0065 0307;
+0118;0118;0045 0328;0118;0045 0328;
+0119;0119;0065 0328;0119;0065 0328;
+011A;011A;0045 030C;011A;0045 030C;
+011B;011B;0065 030C;011B;0065 030C;
+011C;011C;0047 0302;011C;0047 0302;
+011D;011D;0067 0302;011D;0067 0302;
+011E;011E;0047 0306;011E;0047 0306;
+011F;011F;0067 0306;011F;0067 0306;
+0120;0120;0047 0307;0120;0047 0307;
+0121;0121;0067 0307;0121;0067 0307;
+0122;0122;0047 0327;0122;0047 0327;
+0123;0123;0067 0327;0123;0067 0327;
+0124;0124;0048 0302;0124;0048 0302;
+0125;0125;0068 0302;0125;0068 0302;
+0128;0128;0049 0303;0128;0049 0303;
+0129;0129;0069 0303;0129;0069 0303;
+012A;012A;0049 0304;012A;0049 0304;
+012B;012B;0069 0304;012B;0069 0304;
+012C;012C;0049 0306;012C;0049 0306;
+012D;012D;0069 0306;012D;0069 0306;
+012E;012E;0049 0328;012E;0049 0328;
+012F;012F;0069 0328;012F;0069 0328;
+0130;0130;0049 0307;0130;0049 0307;
+0132;0132;0132;0049 004A;0049 004A;
+0133;0133;0133;0069 006A;0069 006A;
+0134;0134;004A 0302;0134;004A 0302;
+0135;0135;006A 0302;0135;006A 0302;
+0136;0136;004B 0327;0136;004B 0327;
+0137;0137;006B 0327;0137;006B 0327;
+0139;0139;004C 0301;0139;004C 0301;
+013A;013A;006C 0301;013A;006C 0301;
+013B;013B;004C 0327;013B;004C 0327;
+013C;013C;006C 0327;013C;006C 0327;
+013D;013D;004C 030C;013D;004C 030C;
+013E;013E;006C 030C;013E;006C 030C;
+013F;013F;013F;004C 00B7;004C 00B7;
+0140;0140;0140;006C 00B7;006C 00B7;
+0143;0143;004E 0301;0143;004E 0301;
+0144;0144;006E 0301;0144;006E 0301;
+0145;0145;004E 0327;0145;004E 0327;
+0146;0146;006E 0327;0146;006E 0327;
+0147;0147;004E 030C;0147;004E 030C;
+0148;0148;006E 030C;0148;006E 030C;
+0149;0149;0149;02BC 006E;02BC 006E;
+014C;014C;004F 0304;014C;004F 0304;
+014D;014D;006F 0304;014D;006F 0304;
+014E;014E;004F 0306;014E;004F 0306;
+014F;014F;006F 0306;014F;006F 0306;
+0150;0150;004F 030B;0150;004F 030B;
+0151;0151;006F 030B;0151;006F 030B;
+0154;0154;0052 0301;0154;0052 0301;
+0155;0155;0072 0301;0155;0072 0301;
+0156;0156;0052 0327;0156;0052 0327;
+0157;0157;0072 0327;0157;0072 0327;
+0158;0158;0052 030C;0158;0052 030C;
+0159;0159;0072 030C;0159;0072 030C;
+015A;015A;0053 0301;015A;0053 0301;
+015B;015B;0073 0301;015B;0073 0301;
+015C;015C;0053 0302;015C;0053 0302;
+015D;015D;0073 0302;015D;0073 0302;
+015E;015E;0053 0327;015E;0053 0327;
+015F;015F;0073 0327;015F;0073 0327;
+0160;0160;0053 030C;0160;0053 030C;
+0161;0161;0073 030C;0161;0073 030C;
+0162;0162;0054 0327;0162;0054 0327;
+0163;0163;0074 0327;0163;0074 0327;
+0164;0164;0054 030C;0164;0054 030C;
+0165;0165;0074 030C;0165;0074 030C;
+0168;0168;0055 0303;0168;0055 0303;
+0169;0169;0075 0303;0169;0075 0303;
+016A;016A;0055 0304;016A;0055 0304;
+016B;016B;0075 0304;016B;0075 0304;
+016C;016C;0055 0306;016C;0055 0306;
+016D;016D;0075 0306;016D;0075 0306;
+016E;016E;0055 030A;016E;0055 030A;
+016F;016F;0075 030A;016F;0075 030A;
+0170;0170;0055 030B;0170;0055 030B;
+0171;0171;0075 030B;0171;0075 030B;
+0172;0172;0055 0328;0172;0055 0328;
+0173;0173;0075 0328;0173;0075 0328;
+0174;0174;0057 0302;0174;0057 0302;
+0175;0175;0077 0302;0175;0077 0302;
+0176;0176;0059 0302;0176;0059 0302;
+0177;0177;0079 0302;0177;0079 0302;
+0178;0178;0059 0308;0178;0059 0308;
+0179;0179;005A 0301;0179;005A 0301;
+017A;017A;007A 0301;017A;007A 0301;
+017B;017B;005A 0307;017B;005A 0307;
+017C;017C;007A 0307;017C;007A 0307;
+017D;017D;005A 030C;017D;005A 030C;
+017E;017E;007A 030C;017E;007A 030C;
+017F;017F;017F;0073;0073;
+01A0;01A0;004F 031B;01A0;004F 031B;
+01A1;01A1;006F 031B;01A1;006F 031B;
+01AF;01AF;0055 031B;01AF;0055 031B;
+01B0;01B0;0075 031B;01B0;0075 031B;
+01C4;01C4;01C4;0044 017D;0044 005A 030C;
+01C5;01C5;01C5;0044 017E;0044 007A 030C;
+01C6;01C6;01C6;0064 017E;0064 007A 030C;
+01C7;01C7;01C7;004C 004A;004C 004A;
+01C8;01C8;01C8;004C 006A;004C 006A;
+01C9;01C9;01C9;006C 006A;006C 006A;
+01CA;01CA;01CA;004E 004A;004E 004A;
+01CB;01CB;01CB;004E 006A;004E 006A;
+01CC;01CC;01CC;006E 006A;006E 006A;
+01CD;01CD;0041 030C;01CD;0041 030C;
+01CE;01CE;0061 030C;01CE;0061 030C;
+01CF;01CF;0049 030C;01CF;0049 030C;
+01D0;01D0;0069 030C;01D0;0069 030C;
+01D1;01D1;004F 030C;01D1;004F 030C;
+01D2;01D2;006F 030C;01D2;006F 030C;
+01D3;01D3;0055 030C;01D3;0055 030C;
+01D4;01D4;0075 030C;01D4;0075 030C;
+01D5;01D5;0055 0308 0304;01D5;0055 0308 0304;
+01D6;01D6;0075 0308 0304;01D6;0075 0308 0304;
+01D7;01D7;0055 0308 0301;01D7;0055 0308 0301;
+01D8;01D8;0075 0308 0301;01D8;0075 0308 0301;
+01D9;01D9;0055 0308 030C;01D9;0055 0308 030C;
+01DA;01DA;0075 0308 030C;01DA;0075 0308 030C;
+01DB;01DB;0055 0308 0300;01DB;0055 0308 0300;
+01DC;01DC;0075 0308 0300;01DC;0075 0308 0300;
+01DE;01DE;0041 0308 0304;01DE;0041 0308 0304;
+01DF;01DF;0061 0308 0304;01DF;0061 0308 0304;
+01E0;01E0;0041 0307 0304;01E0;0041 0307 0304;
+01E1;01E1;0061 0307 0304;01E1;0061 0307 0304;
+01E2;01E2;00C6 0304;01E2;00C6 0304;
+01E3;01E3;00E6 0304;01E3;00E6 0304;
+01E6;01E6;0047 030C;01E6;0047 030C;
+01E7;01E7;0067 030C;01E7;0067 030C;
+01E8;01E8;004B 030C;01E8;004B 030C;
+01E9;01E9;006B 030C;01E9;006B 030C;
+01EA;01EA;004F 0328;01EA;004F 0328;
+01EB;01EB;006F 0328;01EB;006F 0328;
+01EC;01EC;004F 0328 0304;01EC;004F 0328 0304;
+01ED;01ED;006F 0328 0304;01ED;006F 0328 0304;
+01EE;01EE;01B7 030C;01EE;01B7 030C;
+01EF;01EF;0292 030C;01EF;0292 030C;
+01F0;01F0;006A 030C;01F0;006A 030C;
+01F1;01F1;01F1;0044 005A;0044 005A;
+01F2;01F2;01F2;0044 007A;0044 007A;
+01F3;01F3;01F3;0064 007A;0064 007A;
+01F4;01F4;0047 0301;01F4;0047 0301;
+01F5;01F5;0067 0301;01F5;0067 0301;
+01F8;01F8;004E 0300;01F8;004E 0300;
+01F9;01F9;006E 0300;01F9;006E 0300;
+01FA;01FA;0041 030A 0301;01FA;0041 030A 0301;
+01FB;01FB;0061 030A 0301;01FB;0061 030A 0301;
+01FC;01FC;00C6 0301;01FC;00C6 0301;
+01FD;01FD;00E6 0301;01FD;00E6 0301;
+01FE;01FE;00D8 0301;01FE;00D8 0301;
+01FF;01FF;00F8 0301;01FF;00F8 0301;
+0200;0200;0041 030F;0200;0041 030F;
+0201;0201;0061 030F;0201;0061 030F;
+0202;0202;0041 0311;0202;0041 0311;
+0203;0203;0061 0311;0203;0061 0311;
+0204;0204;0045 030F;0204;0045 030F;
+0205;0205;0065 030F;0205;0065 030F;
+0206;0206;0045 0311;0206;0045 0311;
+0207;0207;0065 0311;0207;0065 0311;
+0208;0208;0049 030F;0208;0049 030F;
+0209;0209;0069 030F;0209;0069 030F;
+020A;020A;0049 0311;020A;0049 0311;
+020B;020B;0069 0311;020B;0069 0311;
+020C;020C;004F 030F;020C;004F 030F;
+020D;020D;006F 030F;020D;006F 030F;
+020E;020E;004F 0311;020E;004F 0311;
+020F;020F;006F 0311;020F;006F 0311;
+0210;0210;0052 030F;0210;0052 030F;
+0211;0211;0072 030F;0211;0072 030F;
+0212;0212;0052 0311;0212;0052 0311;
+0213;0213;0072 0311;0213;0072 0311;
+0214;0214;0055 030F;0214;0055 030F;
+0215;0215;0075 030F;0215;0075 030F;
+0216;0216;0055 0311;0216;0055 0311;
+0217;0217;0075 0311;0217;0075 0311;
+0218;0218;0053 0326;0218;0053 0326;
+0219;0219;0073 0326;0219;0073 0326;
+021A;021A;0054 0326;021A;0054 0326;
+021B;021B;0074 0326;021B;0074 0326;
+021E;021E;0048 030C;021E;0048 030C;
+021F;021F;0068 030C;021F;0068 030C;
+0226;0226;0041 0307;0226;0041 0307;
+0227;0227;0061 0307;0227;0061 0307;
+0228;0228;0045 0327;0228;0045 0327;
+0229;0229;0065 0327;0229;0065 0327;
+022A;022A;004F 0308 0304;022A;004F 0308 0304;
+022B;022B;006F 0308 0304;022B;006F 0308 0304;
+022C;022C;004F 0303 0304;022C;004F 0303 0304;
+022D;022D;006F 0303 0304;022D;006F 0303 0304;
+022E;022E;004F 0307;022E;004F 0307;
+022F;022F;006F 0307;022F;006F 0307;
+0230;0230;004F 0307 0304;0230;004F 0307 0304;
+0231;0231;006F 0307 0304;0231;006F 0307 0304;
+0232;0232;0059 0304;0232;0059 0304;
+0233;0233;0079 0304;0233;0079 0304;
+02B0;02B0;02B0;0068;0068;
+02B1;02B1;02B1;0266;0266;
+02B2;02B2;02B2;006A;006A;
+02B3;02B3;02B3;0072;0072;
+02B4;02B4;02B4;0279;0279;
+02B5;02B5;02B5;027B;027B;
+02B6;02B6;02B6;0281;0281;
+02B7;02B7;02B7;0077;0077;
+02B8;02B8;02B8;0079;0079;
+02D8;02D8;02D8;0020 0306;0020 0306;
+02D9;02D9;02D9;0020 0307;0020 0307;
+02DA;02DA;02DA;0020 030A;0020 030A;
+02DB;02DB;02DB;0020 0328;0020 0328;
+02DC;02DC;02DC;0020 0303;0020 0303;
+02DD;02DD;02DD;0020 030B;0020 030B;
+02E0;02E0;02E0;0263;0263;
+02E1;02E1;02E1;006C;006C;
+02E2;02E2;02E2;0073;0073;
+02E3;02E3;02E3;0078;0078;
+02E4;02E4;02E4;0295;0295;
+0340;0300;0300;0300;0300;
+0341;0301;0301;0301;0301;
+0343;0313;0313;0313;0313;
+0344;0308 0301;0308 0301;0308 0301;0308 0301;
+0374;02B9;02B9;02B9;02B9;
+037A;037A;037A;0020 0345;0020 0345;
+037E;003B;003B;003B;003B;
+0384;0384;0384;0020 0301;0020 0301;
+0385;0385;00A8 0301;0020 0308 0301;0020 0308 0301;
+0386;0386;0391 0301;0386;0391 0301;
+0387;00B7;00B7;00B7;00B7;
+0388;0388;0395 0301;0388;0395 0301;
+0389;0389;0397 0301;0389;0397 0301;
+038A;038A;0399 0301;038A;0399 0301;
+038C;038C;039F 0301;038C;039F 0301;
+038E;038E;03A5 0301;038E;03A5 0301;
+038F;038F;03A9 0301;038F;03A9 0301;
+0390;0390;03B9 0308 0301;0390;03B9 0308 0301;
+03AA;03AA;0399 0308;03AA;0399 0308;
+03AB;03AB;03A5 0308;03AB;03A5 0308;
+03AC;03AC;03B1 0301;03AC;03B1 0301;
+03AD;03AD;03B5 0301;03AD;03B5 0301;
+03AE;03AE;03B7 0301;03AE;03B7 0301;
+03AF;03AF;03B9 0301;03AF;03B9 0301;
+03B0;03B0;03C5 0308 0301;03B0;03C5 0308 0301;
+03CA;03CA;03B9 0308;03CA;03B9 0308;
+03CB;03CB;03C5 0308;03CB;03C5 0308;
+03CC;03CC;03BF 0301;03CC;03BF 0301;
+03CD;03CD;03C5 0301;03CD;03C5 0301;
+03CE;03CE;03C9 0301;03CE;03C9 0301;
+03D0;03D0;03D0;03B2;03B2;
+03D1;03D1;03D1;03B8;03B8;
+03D2;03D2;03D2;03A5;03A5;
+03D3;03D3;03D2 0301;038E;03A5 0301;
+03D4;03D4;03D2 0308;03AB;03A5 0308;
+03D5;03D5;03D5;03C6;03C6;
+03D6;03D6;03D6;03C0;03C0;
+03F0;03F0;03F0;03BA;03BA;
+03F1;03F1;03F1;03C1;03C1;
+03F2;03F2;03F2;03C2;03C2;
+03F4;03F4;03F4;0398;0398;
+03F5;03F5;03F5;03B5;03B5;
+03F9;03F9;03F9;03A3;03A3;
+0400;0400;0415 0300;0400;0415 0300;
+0401;0401;0415 0308;0401;0415 0308;
+0403;0403;0413 0301;0403;0413 0301;
+0407;0407;0406 0308;0407;0406 0308;
+040C;040C;041A 0301;040C;041A 0301;
+040D;040D;0418 0300;040D;0418 0300;
+040E;040E;0423 0306;040E;0423 0306;
+0419;0419;0418 0306;0419;0418 0306;
+0439;0439;0438 0306;0439;0438 0306;
+0450;0450;0435 0300;0450;0435 0300;
+0451;0451;0435 0308;0451;0435 0308;
+0453;0453;0433 0301;0453;0433 0301;
+0457;0457;0456 0308;0457;0456 0308;
+045C;045C;043A 0301;045C;043A 0301;
+045D;045D;0438 0300;045D;0438 0300;
+045E;045E;0443 0306;045E;0443 0306;
+0476;0476;0474 030F;0476;0474 030F;
+0477;0477;0475 030F;0477;0475 030F;
+04C1;04C1;0416 0306;04C1;0416 0306;
+04C2;04C2;0436 0306;04C2;0436 0306;
+04D0;04D0;0410 0306;04D0;0410 0306;
+04D1;04D1;0430 0306;04D1;0430 0306;
+04D2;04D2;0410 0308;04D2;0410 0308;
+04D3;04D3;0430 0308;04D3;0430 0308;
+04D6;04D6;0415 0306;04D6;0415 0306;
+04D7;04D7;0435 0306;04D7;0435 0306;
+04DA;04DA;04D8 0308;04DA;04D8 0308;
+04DB;04DB;04D9 0308;04DB;04D9 0308;
+04DC;04DC;0416 0308;04DC;0416 0308;
+04DD;04DD;0436 0308;04DD;0436 0308;
+04DE;04DE;0417 0308;04DE;0417 0308;
+04DF;04DF;0437 0308;04DF;0437 0308;
+04E2;04E2;0418 0304;04E2;0418 0304;
+04E3;04E3;0438 0304;04E3;0438 0304;
+04E4;04E4;0418 0308;04E4;0418 0308;
+04E5;04E5;0438 0308;04E5;0438 0308;
+04E6;04E6;041E 0308;04E6;041E 0308;
+04E7;04E7;043E 0308;04E7;043E 0308;
+04EA;04EA;04E8 0308;04EA;04E8 0308;
+04EB;04EB;04E9 0308;04EB;04E9 0308;
+04EC;04EC;042D 0308;04EC;042D 0308;
+04ED;04ED;044D 0308;04ED;044D 0308;
+04EE;04EE;0423 0304;04EE;0423 0304;
+04EF;04EF;0443 0304;04EF;0443 0304;
+04F0;04F0;0423 0308;04F0;0423 0308;
+04F1;04F1;0443 0308;04F1;0443 0308;
+04F2;04F2;0423 030B;04F2;0423 030B;
+04F3;04F3;0443 030B;04F3;0443 030B;
+04F4;04F4;0427 0308;04F4;0427 0308;
+04F5;04F5;0447 0308;04F5;0447 0308;
+04F8;04F8;042B 0308;04F8;042B 0308;
+04F9;04F9;044B 0308;04F9;044B 0308;
+0587;0587;0587;0565 0582;0565 0582;
+0622;0622;0627 0653;0622;0627 0653;
+0623;0623;0627 0654;0623;0627 0654;
+0624;0624;0648 0654;0624;0648 0654;
+0625;0625;0627 0655;0625;0627 0655;
+0626;0626;064A 0654;0626;064A 0654;
+0675;0675;0675;0627 0674;0627 0674;
+0676;0676;0676;0648 0674;0648 0674;
+0677;0677;0677;06C7 0674;06C7 0674;
+0678;0678;0678;064A 0674;064A 0674;
+06C0;06C0;06D5 0654;06C0;06D5 0654;
+06C2;06C2;06C1 0654;06C2;06C1 0654;
+06D3;06D3;06D2 0654;06D3;06D2 0654;
+0929;0929;0928 093C;0929;0928 093C;
+0931;0931;0930 093C;0931;0930 093C;
+0934;0934;0933 093C;0934;0933 093C;
+0958;0915 093C;0915 093C;0915 093C;0915 093C;
+0959;0916 093C;0916 093C;0916 093C;0916 093C;
+095A;0917 093C;0917 093C;0917 093C;0917 093C;
+095B;091C 093C;091C 093C;091C 093C;091C 093C;
+095C;0921 093C;0921 093C;0921 093C;0921 093C;
+095D;0922 093C;0922 093C;0922 093C;0922 093C;
+095E;092B 093C;092B 093C;092B 093C;092B 093C;
+095F;092F 093C;092F 093C;092F 093C;092F 093C;
+09CB;09CB;09C7 09BE;09CB;09C7 09BE;
+09CC;09CC;09C7 09D7;09CC;09C7 09D7;
+09DC;09A1 09BC;09A1 09BC;09A1 09BC;09A1 09BC;
+09DD;09A2 09BC;09A2 09BC;09A2 09BC;09A2 09BC;
+09DF;09AF 09BC;09AF 09BC;09AF 09BC;09AF 09BC;
+0A33;0A32 0A3C;0A32 0A3C;0A32 0A3C;0A32 0A3C;
+0A36;0A38 0A3C;0A38 0A3C;0A38 0A3C;0A38 0A3C;
+0A59;0A16 0A3C;0A16 0A3C;0A16 0A3C;0A16 0A3C;
+0A5A;0A17 0A3C;0A17 0A3C;0A17 0A3C;0A17 0A3C;
+0A5B;0A1C 0A3C;0A1C 0A3C;0A1C 0A3C;0A1C 0A3C;
+0A5E;0A2B 0A3C;0A2B 0A3C;0A2B 0A3C;0A2B 0A3C;
+0B48;0B48;0B47 0B56;0B48;0B47 0B56;
+0B4B;0B4B;0B47 0B3E;0B4B;0B47 0B3E;
+0B4C;0B4C;0B47 0B57;0B4C;0B47 0B57;
+0B5C;0B21 0B3C;0B21 0B3C;0B21 0B3C;0B21 0B3C;
+0B5D;0B22 0B3C;0B22 0B3C;0B22 0B3C;0B22 0B3C;
+0B94;0B94;0B92 0BD7;0B94;0B92 0BD7;
+0BCA;0BCA;0BC6 0BBE;0BCA;0BC6 0BBE;
+0BCB;0BCB;0BC7 0BBE;0BCB;0BC7 0BBE;
+0BCC;0BCC;0BC6 0BD7;0BCC;0BC6 0BD7;
+0C48;0C48;0C46 0C56;0C48;0C46 0C56;
+0CC0;0CC0;0CBF 0CD5;0CC0;0CBF 0CD5;
+0CC7;0CC7;0CC6 0CD5;0CC7;0CC6 0CD5;
+0CC8;0CC8;0CC6 0CD6;0CC8;0CC6 0CD6;
+0CCA;0CCA;0CC6 0CC2;0CCA;0CC6 0CC2;
+0CCB;0CCB;0CC6 0CC2 0CD5;0CCB;0CC6 0CC2 0CD5;
+0D4A;0D4A;0D46 0D3E;0D4A;0D46 0D3E;
+0D4B;0D4B;0D47 0D3E;0D4B;0D47 0D3E;
+0D4C;0D4C;0D46 0D57;0D4C;0D46 0D57;
+0DDA;0DDA;0DD9 0DCA;0DDA;0DD9 0DCA;
+0DDC;0DDC;0DD9 0DCF;0DDC;0DD9 0DCF;
+0DDD;0DDD;0DD9 0DCF 0DCA;0DDD;0DD9 0DCF 0DCA;
+0DDE;0DDE;0DD9 0DDF;0DDE;0DD9 0DDF;
+0E33;0E33;0E33;0E4D 0E32;0E4D 0E32;
+0EB3;0EB3;0EB3;0ECD 0EB2;0ECD 0EB2;
+0EDC;0EDC;0EDC;0EAB 0E99;0EAB 0E99;
+0EDD;0EDD;0EDD;0EAB 0EA1;0EAB 0EA1;
+0F0C;0F0C;0F0C;0F0B;0F0B;
+0F43;0F42 0FB7;0F42 0FB7;0F42 0FB7;0F42 0FB7;
+0F4D;0F4C 0FB7;0F4C 0FB7;0F4C 0FB7;0F4C 0FB7;
+0F52;0F51 0FB7;0F51 0FB7;0F51 0FB7;0F51 0FB7;
+0F57;0F56 0FB7;0F56 0FB7;0F56 0FB7;0F56 0FB7;
+0F5C;0F5B 0FB7;0F5B 0FB7;0F5B 0FB7;0F5B 0FB7;
+0F69;0F40 0FB5;0F40 0FB5;0F40 0FB5;0F40 0FB5;
+0F73;0F71 0F72;0F71 0F72;0F71 0F72;0F71 0F72;
+0F75;0F71 0F74;0F71 0F74;0F71 0F74;0F71 0F74;
+0F76;0FB2 0F80;0FB2 0F80;0FB2 0F80;0FB2 0F80;
+0F77;0F77;0F77;0FB2 0F71 0F80;0FB2 0F71 0F80;
+0F78;0FB3 0F80;0FB3 0F80;0FB3 0F80;0FB3 0F80;
+0F79;0F79;0F79;0FB3 0F71 0F80;0FB3 0F71 0F80;
+0F81;0F71 0F80;0F71 0F80;0F71 0F80;0F71 0F80;
+0F93;0F92 0FB7;0F92 0FB7;0F92 0FB7;0F92 0FB7;
+0F9D;0F9C 0FB7;0F9C 0FB7;0F9C 0FB7;0F9C 0FB7;
+0FA2;0FA1 0FB7;0FA1 0FB7;0FA1 0FB7;0FA1 0FB7;
+0FA7;0FA6 0FB7;0FA6 0FB7;0FA6 0FB7;0FA6 0FB7;
+0FAC;0FAB 0FB7;0FAB 0FB7;0FAB 0FB7;0FAB 0FB7;
+0FB9;0F90 0FB5;0F90 0FB5;0F90 0FB5;0F90 0FB5;
+1026;1026;1025 102E;1026;1025 102E;
+10FC;10FC;10FC;10DC;10DC;
+1B06;1B06;1B05 1B35;1B06;1B05 1B35;
+1B08;1B08;1B07 1B35;1B08;1B07 1B35;
+1B0A;1B0A;1B09 1B35;1B0A;1B09 1B35;
+1B0C;1B0C;1B0B 1B35;1B0C;1B0B 1B35;
+1B0E;1B0E;1B0D 1B35;1B0E;1B0D 1B35;
+1B12;1B12;1B11 1B35;1B12;1B11 1B35;
+1B3B;1B3B;1B3A 1B35;1B3B;1B3A 1B35;
+1B3D;1B3D;1B3C 1B35;1B3D;1B3C 1B35;
+1B40;1B40;1B3E 1B35;1B40;1B3E 1B35;
+1B41;1B41;1B3F 1B35;1B41;1B3F 1B35;
+1B43;1B43;1B42 1B35;1B43;1B42 1B35;
+1D2C;1D2C;1D2C;0041;0041;
+1D2D;1D2D;1D2D;00C6;00C6;
+1D2E;1D2E;1D2E;0042;0042;
+1D30;1D30;1D30;0044;0044;
+1D31;1D31;1D31;0045;0045;
+1D32;1D32;1D32;018E;018E;
+1D33;1D33;1D33;0047;0047;
+1D34;1D34;1D34;0048;0048;
+1D35;1D35;1D35;0049;0049;
+1D36;1D36;1D36;004A;004A;
+1D37;1D37;1D37;004B;004B;
+1D38;1D38;1D38;004C;004C;
+1D39;1D39;1D39;004D;004D;
+1D3A;1D3A;1D3A;004E;004E;
+1D3C;1D3C;1D3C;004F;004F;
+1D3D;1D3D;1D3D;0222;0222;
+1D3E;1D3E;1D3E;0050;0050;
+1D3F;1D3F;1D3F;0052;0052;
+1D40;1D40;1D40;0054;0054;
+1D41;1D41;1D41;0055;0055;
+1D42;1D42;1D42;0057;0057;
+1D43;1D43;1D43;0061;0061;
+1D44;1D44;1D44;0250;0250;
+1D45;1D45;1D45;0251;0251;
+1D46;1D46;1D46;1D02;1D02;
+1D47;1D47;1D47;0062;0062;
+1D48;1D48;1D48;0064;0064;
+1D49;1D49;1D49;0065;0065;
+1D4A;1D4A;1D4A;0259;0259;
+1D4B;1D4B;1D4B;025B;025B;
+1D4C;1D4C;1D4C;025C;025C;
+1D4D;1D4D;1D4D;0067;0067;
+1D4F;1D4F;1D4F;006B;006B;
+1D50;1D50;1D50;006D;006D;
+1D51;1D51;1D51;014B;014B;
+1D52;1D52;1D52;006F;006F;
+1D53;1D53;1D53;0254;0254;
+1D54;1D54;1D54;1D16;1D16;
+1D55;1D55;1D55;1D17;1D17;
+1D56;1D56;1D56;0070;0070;
+1D57;1D57;1D57;0074;0074;
+1D58;1D58;1D58;0075;0075;
+1D59;1D59;1D59;1D1D;1D1D;
+1D5A;1D5A;1D5A;026F;026F;
+1D5B;1D5B;1D5B;0076;0076;
+1D5C;1D5C;1D5C;1D25;1D25;
+1D5D;1D5D;1D5D;03B2;03B2;
+1D5E;1D5E;1D5E;03B3;03B3;
+1D5F;1D5F;1D5F;03B4;03B4;
+1D60;1D60;1D60;03C6;03C6;
+1D61;1D61;1D61;03C7;03C7;
+1D62;1D62;1D62;0069;0069;
+1D63;1D63;1D63;0072;0072;
+1D64;1D64;1D64;0075;0075;
+1D65;1D65;1D65;0076;0076;
+1D66;1D66;1D66;03B2;03B2;
+1D67;1D67;1D67;03B3;03B3;
+1D68;1D68;1D68;03C1;03C1;
+1D69;1D69;1D69;03C6;03C6;
+1D6A;1D6A;1D6A;03C7;03C7;
+1D78;1D78;1D78;043D;043D;
+1D9B;1D9B;1D9B;0252;0252;
+1D9C;1D9C;1D9C;0063;0063;
+1D9D;1D9D;1D9D;0255;0255;
+1D9E;1D9E;1D9E;00F0;00F0;
+1D9F;1D9F;1D9F;025C;025C;
+1DA0;1DA0;1DA0;0066;0066;
+1DA1;1DA1;1DA1;025F;025F;
+1DA2;1DA2;1DA2;0261;0261;
+1DA3;1DA3;1DA3;0265;0265;
+1DA4;1DA4;1DA4;0268;0268;
+1DA5;1DA5;1DA5;0269;0269;
+1DA6;1DA6;1DA6;026A;026A;
+1DA7;1DA7;1DA7;1D7B;1D7B;
+1DA8;1DA8;1DA8;029D;029D;
+1DA9;1DA9;1DA9;026D;026D;
+1DAA;1DAA;1DAA;1D85;1D85;
+1DAB;1DAB;1DAB;029F;029F;
+1DAC;1DAC;1DAC;0271;0271;
+1DAD;1DAD;1DAD;0270;0270;
+1DAE;1DAE;1DAE;0272;0272;
+1DAF;1DAF;1DAF;0273;0273;
+1DB0;1DB0;1DB0;0274;0274;
+1DB1;1DB1;1DB1;0275;0275;
+1DB2;1DB2;1DB2;0278;0278;
+1DB3;1DB3;1DB3;0282;0282;
+1DB4;1DB4;1DB4;0283;0283;
+1DB5;1DB5;1DB5;01AB;01AB;
+1DB6;1DB6;1DB6;0289;0289;
+1DB7;1DB7;1DB7;028A;028A;
+1DB8;1DB8;1DB8;1D1C;1D1C;
+1DB9;1DB9;1DB9;028B;028B;
+1DBA;1DBA;1DBA;028C;028C;
+1DBB;1DBB;1DBB;007A;007A;
+1DBC;1DBC;1DBC;0290;0290;
+1DBD;1DBD;1DBD;0291;0291;
+1DBE;1DBE;1DBE;0292;0292;
+1DBF;1DBF;1DBF;03B8;03B8;
+1E00;1E00;0041 0325;1E00;0041 0325;
+1E01;1E01;0061 0325;1E01;0061 0325;
+1E02;1E02;0042 0307;1E02;0042 0307;
+1E03;1E03;0062 0307;1E03;0062 0307;
+1E04;1E04;0042 0323;1E04;0042 0323;
+1E05;1E05;0062 0323;1E05;0062 0323;
+1E06;1E06;0042 0331;1E06;0042 0331;
+1E07;1E07;0062 0331;1E07;0062 0331;
+1E08;1E08;0043 0327 0301;1E08;0043 0327 0301;
+1E09;1E09;0063 0327 0301;1E09;0063 0327 0301;
+1E0A;1E0A;0044 0307;1E0A;0044 0307;
+1E0B;1E0B;0064 0307;1E0B;0064 0307;
+1E0C;1E0C;0044 0323;1E0C;0044 0323;
+1E0D;1E0D;0064 0323;1E0D;0064 0323;
+1E0E;1E0E;0044 0331;1E0E;0044 0331;
+1E0F;1E0F;0064 0331;1E0F;0064 0331;
+1E10;1E10;0044 0327;1E10;0044 0327;
+1E11;1E11;0064 0327;1E11;0064 0327;
+1E12;1E12;0044 032D;1E12;0044 032D;
+1E13;1E13;0064 032D;1E13;0064 032D;
+1E14;1E14;0045 0304 0300;1E14;0045 0304 0300;
+1E15;1E15;0065 0304 0300;1E15;0065 0304 0300;
+1E16;1E16;0045 0304 0301;1E16;0045 0304 0301;
+1E17;1E17;0065 0304 0301;1E17;0065 0304 0301;
+1E18;1E18;0045 032D;1E18;0045 032D;
+1E19;1E19;0065 032D;1E19;0065 032D;
+1E1A;1E1A;0045 0330;1E1A;0045 0330;
+1E1B;1E1B;0065 0330;1E1B;0065 0330;
+1E1C;1E1C;0045 0327 0306;1E1C;0045 0327 0306;
+1E1D;1E1D;0065 0327 0306;1E1D;0065 0327 0306;
+1E1E;1E1E;0046 0307;1E1E;0046 0307;
+1E1F;1E1F;0066 0307;1E1F;0066 0307;
+1E20;1E20;0047 0304;1E20;0047 0304;
+1E21;1E21;0067 0304;1E21;0067 0304;
+1E22;1E22;0048 0307;1E22;0048 0307;
+1E23;1E23;0068 0307;1E23;0068 0307;
+1E24;1E24;0048 0323;1E24;0048 0323;
+1E25;1E25;0068 0323;1E25;0068 0323;
+1E26;1E26;0048 0308;1E26;0048 0308;
+1E27;1E27;0068 0308;1E27;0068 0308;
+1E28;1E28;0048 0327;1E28;0048 0327;
+1E29;1E29;0068 0327;1E29;0068 0327;
+1E2A;1E2A;0048 032E;1E2A;0048 032E;
+1E2B;1E2B;0068 032E;1E2B;0068 032E;
+1E2C;1E2C;0049 0330;1E2C;0049 0330;
+1E2D;1E2D;0069 0330;1E2D;0069 0330;
+1E2E;1E2E;0049 0308 0301;1E2E;0049 0308 0301;
+1E2F;1E2F;0069 0308 0301;1E2F;0069 0308 0301;
+1E30;1E30;004B 0301;1E30;004B 0301;
+1E31;1E31;006B 0301;1E31;006B 0301;
+1E32;1E32;004B 0323;1E32;004B 0323;
+1E33;1E33;006B 0323;1E33;006B 0323;
+1E34;1E34;004B 0331;1E34;004B 0331;
+1E35;1E35;006B 0331;1E35;006B 0331;
+1E36;1E36;004C 0323;1E36;004C 0323;
+1E37;1E37;006C 0323;1E37;006C 0323;
+1E38;1E38;004C 0323 0304;1E38;004C 0323 0304;
+1E39;1E39;006C 0323 0304;1E39;006C 0323 0304;
+1E3A;1E3A;004C 0331;1E3A;004C 0331;
+1E3B;1E3B;006C 0331;1E3B;006C 0331;
+1E3C;1E3C;004C 032D;1E3C;004C 032D;
+1E3D;1E3D;006C 032D;1E3D;006C 032D;
+1E3E;1E3E;004D 0301;1E3E;004D 0301;
+1E3F;1E3F;006D 0301;1E3F;006D 0301;
+1E40;1E40;004D 0307;1E40;004D 0307;
+1E41;1E41;006D 0307;1E41;006D 0307;
+1E42;1E42;004D 0323;1E42;004D 0323;
+1E43;1E43;006D 0323;1E43;006D 0323;
+1E44;1E44;004E 0307;1E44;004E 0307;
+1E45;1E45;006E 0307;1E45;006E 0307;
+1E46;1E46;004E 0323;1E46;004E 0323;
+1E47;1E47;006E 0323;1E47;006E 0323;
+1E48;1E48;004E 0331;1E48;004E 0331;
+1E49;1E49;006E 0331;1E49;006E 0331;
+1E4A;1E4A;004E 032D;1E4A;004E 032D;
+1E4B;1E4B;006E 032D;1E4B;006E 032D;
+1E4C;1E4C;004F 0303 0301;1E4C;004F 0303 0301;
+1E4D;1E4D;006F 0303 0301;1E4D;006F 0303 0301;
+1E4E;1E4E;004F 0303 0308;1E4E;004F 0303 0308;
+1E4F;1E4F;006F 0303 0308;1E4F;006F 0303 0308;
+1E50;1E50;004F 0304 0300;1E50;004F 0304 0300;
+1E51;1E51;006F 0304 0300;1E51;006F 0304 0300;
+1E52;1E52;004F 0304 0301;1E52;004F 0304 0301;
+1E53;1E53;006F 0304 0301;1E53;006F 0304 0301;
+1E54;1E54;0050 0301;1E54;0050 0301;
+1E55;1E55;0070 0301;1E55;0070 0301;
+1E56;1E56;0050 0307;1E56;0050 0307;
+1E57;1E57;0070 0307;1E57;0070 0307;
+1E58;1E58;0052 0307;1E58;0052 0307;
+1E59;1E59;0072 0307;1E59;0072 0307;
+1E5A;1E5A;0052 0323;1E5A;0052 0323;
+1E5B;1E5B;0072 0323;1E5B;0072 0323;
+1E5C;1E5C;0052 0323 0304;1E5C;0052 0323 0304;
+1E5D;1E5D;0072 0323 0304;1E5D;0072 0323 0304;
+1E5E;1E5E;0052 0331;1E5E;0052 0331;
+1E5F;1E5F;0072 0331;1E5F;0072 0331;
+1E60;1E60;0053 0307;1E60;0053 0307;
+1E61;1E61;0073 0307;1E61;0073 0307;
+1E62;1E62;0053 0323;1E62;0053 0323;
+1E63;1E63;0073 0323;1E63;0073 0323;
+1E64;1E64;0053 0301 0307;1E64;0053 0301 0307;
+1E65;1E65;0073 0301 0307;1E65;0073 0301 0307;
+1E66;1E66;0053 030C 0307;1E66;0053 030C 0307;
+1E67;1E67;0073 030C 0307;1E67;0073 030C 0307;
+1E68;1E68;0053 0323 0307;1E68;0053 0323 0307;
+1E69;1E69;0073 0323 0307;1E69;0073 0323 0307;
+1E6A;1E6A;0054 0307;1E6A;0054 0307;
+1E6B;1E6B;0074 0307;1E6B;0074 0307;
+1E6C;1E6C;0054 0323;1E6C;0054 0323;
+1E6D;1E6D;0074 0323;1E6D;0074 0323;
+1E6E;1E6E;0054 0331;1E6E;0054 0331;
+1E6F;1E6F;0074 0331;1E6F;0074 0331;
+1E70;1E70;0054 032D;1E70;0054 032D;
+1E71;1E71;0074 032D;1E71;0074 032D;
+1E72;1E72;0055 0324;1E72;0055 0324;
+1E73;1E73;0075 0324;1E73;0075 0324;
+1E74;1E74;0055 0330;1E74;0055 0330;
+1E75;1E75;0075 0330;1E75;0075 0330;
+1E76;1E76;0055 032D;1E76;0055 032D;
+1E77;1E77;0075 032D;1E77;0075 032D;
+1E78;1E78;0055 0303 0301;1E78;0055 0303 0301;
+1E79;1E79;0075 0303 0301;1E79;0075 0303 0301;
+1E7A;1E7A;0055 0304 0308;1E7A;0055 0304 0308;
+1E7B;1E7B;0075 0304 0308;1E7B;0075 0304 0308;
+1E7C;1E7C;0056 0303;1E7C;0056 0303;
+1E7D;1E7D;0076 0303;1E7D;0076 0303;
+1E7E;1E7E;0056 0323;1E7E;0056 0323;
+1E7F;1E7F;0076 0323;1E7F;0076 0323;
+1E80;1E80;0057 0300;1E80;0057 0300;
+1E81;1E81;0077 0300;1E81;0077 0300;
+1E82;1E82;0057 0301;1E82;0057 0301;
+1E83;1E83;0077 0301;1E83;0077 0301;
+1E84;1E84;0057 0308;1E84;0057 0308;
+1E85;1E85;0077 0308;1E85;0077 0308;
+1E86;1E86;0057 0307;1E86;0057 0307;
+1E87;1E87;0077 0307;1E87;0077 0307;
+1E88;1E88;0057 0323;1E88;0057 0323;
+1E89;1E89;0077 0323;1E89;0077 0323;
+1E8A;1E8A;0058 0307;1E8A;0058 0307;
+1E8B;1E8B;0078 0307;1E8B;0078 0307;
+1E8C;1E8C;0058 0308;1E8C;0058 0308;
+1E8D;1E8D;0078 0308;1E8D;0078 0308;
+1E8E;1E8E;0059 0307;1E8E;0059 0307;
+1E8F;1E8F;0079 0307;1E8F;0079 0307;
+1E90;1E90;005A 0302;1E90;005A 0302;
+1E91;1E91;007A 0302;1E91;007A 0302;
+1E92;1E92;005A 0323;1E92;005A 0323;
+1E93;1E93;007A 0323;1E93;007A 0323;
+1E94;1E94;005A 0331;1E94;005A 0331;
+1E95;1E95;007A 0331;1E95;007A 0331;
+1E96;1E96;0068 0331;1E96;0068 0331;
+1E97;1E97;0074 0308;1E97;0074 0308;
+1E98;1E98;0077 030A;1E98;0077 030A;
+1E99;1E99;0079 030A;1E99;0079 030A;
+1E9A;1E9A;1E9A;0061 02BE;0061 02BE;
+1E9B;1E9B;017F 0307;1E61;0073 0307;
+1EA0;1EA0;0041 0323;1EA0;0041 0323;
+1EA1;1EA1;0061 0323;1EA1;0061 0323;
+1EA2;1EA2;0041 0309;1EA2;0041 0309;
+1EA3;1EA3;0061 0309;1EA3;0061 0309;
+1EA4;1EA4;0041 0302 0301;1EA4;0041 0302 0301;
+1EA5;1EA5;0061 0302 0301;1EA5;0061 0302 0301;
+1EA6;1EA6;0041 0302 0300;1EA6;0041 0302 0300;
+1EA7;1EA7;0061 0302 0300;1EA7;0061 0302 0300;
+1EA8;1EA8;0041 0302 0309;1EA8;0041 0302 0309;
+1EA9;1EA9;0061 0302 0309;1EA9;0061 0302 0309;
+1EAA;1EAA;0041 0302 0303;1EAA;0041 0302 0303;
+1EAB;1EAB;0061 0302 0303;1EAB;0061 0302 0303;
+1EAC;1EAC;0041 0323 0302;1EAC;0041 0323 0302;
+1EAD;1EAD;0061 0323 0302;1EAD;0061 0323 0302;
+1EAE;1EAE;0041 0306 0301;1EAE;0041 0306 0301;
+1EAF;1EAF;0061 0306 0301;1EAF;0061 0306 0301;
+1EB0;1EB0;0041 0306 0300;1EB0;0041 0306 0300;
+1EB1;1EB1;0061 0306 0300;1EB1;0061 0306 0300;
+1EB2;1EB2;0041 0306 0309;1EB2;0041 0306 0309;
+1EB3;1EB3;0061 0306 0309;1EB3;0061 0306 0309;
+1EB4;1EB4;0041 0306 0303;1EB4;0041 0306 0303;
+1EB5;1EB5;0061 0306 0303;1EB5;0061 0306 0303;
+1EB6;1EB6;0041 0323 0306;1EB6;0041 0323 0306;
+1EB7;1EB7;0061 0323 0306;1EB7;0061 0323 0306;
+1EB8;1EB8;0045 0323;1EB8;0045 0323;
+1EB9;1EB9;0065 0323;1EB9;0065 0323;
+1EBA;1EBA;0045 0309;1EBA;0045 0309;
+1EBB;1EBB;0065 0309;1EBB;0065 0309;
+1EBC;1EBC;0045 0303;1EBC;0045 0303;
+1EBD;1EBD;0065 0303;1EBD;0065 0303;
+1EBE;1EBE;0045 0302 0301;1EBE;0045 0302 0301;
+1EBF;1EBF;0065 0302 0301;1EBF;0065 0302 0301;
+1EC0;1EC0;0045 0302 0300;1EC0;0045 0302 0300;
+1EC1;1EC1;0065 0302 0300;1EC1;0065 0302 0300;
+1EC2;1EC2;0045 0302 0309;1EC2;0045 0302 0309;
+1EC3;1EC3;0065 0302 0309;1EC3;0065 0302 0309;
+1EC4;1EC4;0045 0302 0303;1EC4;0045 0302 0303;
+1EC5;1EC5;0065 0302 0303;1EC5;0065 0302 0303;
+1EC6;1EC6;0045 0323 0302;1EC6;0045 0323 0302;
+1EC7;1EC7;0065 0323 0302;1EC7;0065 0323 0302;
+1EC8;1EC8;0049 0309;1EC8;0049 0309;
+1EC9;1EC9;0069 0309;1EC9;0069 0309;
+1ECA;1ECA;0049 0323;1ECA;0049 0323;
+1ECB;1ECB;0069 0323;1ECB;0069 0323;
+1ECC;1ECC;004F 0323;1ECC;004F 0323;
+1ECD;1ECD;006F 0323;1ECD;006F 0323;
+1ECE;1ECE;004F 0309;1ECE;004F 0309;
+1ECF;1ECF;006F 0309;1ECF;006F 0309;
+1ED0;1ED0;004F 0302 0301;1ED0;004F 0302 0301;
+1ED1;1ED1;006F 0302 0301;1ED1;006F 0302 0301;
+1ED2;1ED2;004F 0302 0300;1ED2;004F 0302 0300;
+1ED3;1ED3;006F 0302 0300;1ED3;006F 0302 0300;
+1ED4;1ED4;004F 0302 0309;1ED4;004F 0302 0309;
+1ED5;1ED5;006F 0302 0309;1ED5;006F 0302 0309;
+1ED6;1ED6;004F 0302 0303;1ED6;004F 0302 0303;
+1ED7;1ED7;006F 0302 0303;1ED7;006F 0302 0303;
+1ED8;1ED8;004F 0323 0302;1ED8;004F 0323 0302;
+1ED9;1ED9;006F 0323 0302;1ED9;006F 0323 0302;
+1EDA;1EDA;004F 031B 0301;1EDA;004F 031B 0301;
+1EDB;1EDB;006F 031B 0301;1EDB;006F 031B 0301;
+1EDC;1EDC;004F 031B 0300;1EDC;004F 031B 0300;
+1EDD;1EDD;006F 031B 0300;1EDD;006F 031B 0300;
+1EDE;1EDE;004F 031B 0309;1EDE;004F 031B 0309;
+1EDF;1EDF;006F 031B 0309;1EDF;006F 031B 0309;
+1EE0;1EE0;004F 031B 0303;1EE0;004F 031B 0303;
+1EE1;1EE1;006F 031B 0303;1EE1;006F 031B 0303;
+1EE2;1EE2;004F 031B 0323;1EE2;004F 031B 0323;
+1EE3;1EE3;006F 031B 0323;1EE3;006F 031B 0323;
+1EE4;1EE4;0055 0323;1EE4;0055 0323;
+1EE5;1EE5;0075 0323;1EE5;0075 0323;
+1EE6;1EE6;0055 0309;1EE6;0055 0309;
+1EE7;1EE7;0075 0309;1EE7;0075 0309;
+1EE8;1EE8;0055 031B 0301;1EE8;0055 031B 0301;
+1EE9;1EE9;0075 031B 0301;1EE9;0075 031B 0301;
+1EEA;1EEA;0055 031B 0300;1EEA;0055 031B 0300;
+1EEB;1EEB;0075 031B 0300;1EEB;0075 031B 0300;
+1EEC;1EEC;0055 031B 0309;1EEC;0055 031B 0309;
+1EED;1EED;0075 031B 0309;1EED;0075 031B 0309;
+1EEE;1EEE;0055 031B 0303;1EEE;0055 031B 0303;
+1EEF;1EEF;0075 031B 0303;1EEF;0075 031B 0303;
+1EF0;1EF0;0055 031B 0323;1EF0;0055 031B 0323;
+1EF1;1EF1;0075 031B 0323;1EF1;0075 031B 0323;
+1EF2;1EF2;0059 0300;1EF2;0059 0300;
+1EF3;1EF3;0079 0300;1EF3;0079 0300;
+1EF4;1EF4;0059 0323;1EF4;0059 0323;
+1EF5;1EF5;0079 0323;1EF5;0079 0323;
+1EF6;1EF6;0059 0309;1EF6;0059 0309;
+1EF7;1EF7;0079 0309;1EF7;0079 0309;
+1EF8;1EF8;0059 0303;1EF8;0059 0303;
+1EF9;1EF9;0079 0303;1EF9;0079 0303;
+1F00;1F00;03B1 0313;1F00;03B1 0313;
+1F01;1F01;03B1 0314;1F01;03B1 0314;
+1F02;1F02;03B1 0313 0300;1F02;03B1 0313 0300;
+1F03;1F03;03B1 0314 0300;1F03;03B1 0314 0300;
+1F04;1F04;03B1 0313 0301;1F04;03B1 0313 0301;
+1F05;1F05;03B1 0314 0301;1F05;03B1 0314 0301;
+1F06;1F06;03B1 0313 0342;1F06;03B1 0313 0342;
+1F07;1F07;03B1 0314 0342;1F07;03B1 0314 0342;
+1F08;1F08;0391 0313;1F08;0391 0313;
+1F09;1F09;0391 0314;1F09;0391 0314;
+1F0A;1F0A;0391 0313 0300;1F0A;0391 0313 0300;
+1F0B;1F0B;0391 0314 0300;1F0B;0391 0314 0300;
+1F0C;1F0C;0391 0313 0301;1F0C;0391 0313 0301;
+1F0D;1F0D;0391 0314 0301;1F0D;0391 0314 0301;
+1F0E;1F0E;0391 0313 0342;1F0E;0391 0313 0342;
+1F0F;1F0F;0391 0314 0342;1F0F;0391 0314 0342;
+1F10;1F10;03B5 0313;1F10;03B5 0313;
+1F11;1F11;03B5 0314;1F11;03B5 0314;
+1F12;1F12;03B5 0313 0300;1F12;03B5 0313 0300;
+1F13;1F13;03B5 0314 0300;1F13;03B5 0314 0300;
+1F14;1F14;03B5 0313 0301;1F14;03B5 0313 0301;
+1F15;1F15;03B5 0314 0301;1F15;03B5 0314 0301;
+1F18;1F18;0395 0313;1F18;0395 0313;
+1F19;1F19;0395 0314;1F19;0395 0314;
+1F1A;1F1A;0395 0313 0300;1F1A;0395 0313 0300;
+1F1B;1F1B;0395 0314 0300;1F1B;0395 0314 0300;
+1F1C;1F1C;0395 0313 0301;1F1C;0395 0313 0301;
+1F1D;1F1D;0395 0314 0301;1F1D;0395 0314 0301;
+1F20;1F20;03B7 0313;1F20;03B7 0313;
+1F21;1F21;03B7 0314;1F21;03B7 0314;
+1F22;1F22;03B7 0313 0300;1F22;03B7 0313 0300;
+1F23;1F23;03B7 0314 0300;1F23;03B7 0314 0300;
+1F24;1F24;03B7 0313 0301;1F24;03B7 0313 0301;
+1F25;1F25;03B7 0314 0301;1F25;03B7 0314 0301;
+1F26;1F26;03B7 0313 0342;1F26;03B7 0313 0342;
+1F27;1F27;03B7 0314 0342;1F27;03B7 0314 0342;
+1F28;1F28;0397 0313;1F28;0397 0313;
+1F29;1F29;0397 0314;1F29;0397 0314;
+1F2A;1F2A;0397 0313 0300;1F2A;0397 0313 0300;
+1F2B;1F2B;0397 0314 0300;1F2B;0397 0314 0300;
+1F2C;1F2C;0397 0313 0301;1F2C;0397 0313 0301;
+1F2D;1F2D;0397 0314 0301;1F2D;0397 0314 0301;
+1F2E;1F2E;0397 0313 0342;1F2E;0397 0313 0342;
+1F2F;1F2F;0397 0314 0342;1F2F;0397 0314 0342;
+1F30;1F30;03B9 0313;1F30;03B9 0313;
+1F31;1F31;03B9 0314;1F31;03B9 0314;
+1F32;1F32;03B9 0313 0300;1F32;03B9 0313 0300;
+1F33;1F33;03B9 0314 0300;1F33;03B9 0314 0300;
+1F34;1F34;03B9 0313 0301;1F34;03B9 0313 0301;
+1F35;1F35;03B9 0314 0301;1F35;03B9 0314 0301;
+1F36;1F36;03B9 0313 0342;1F36;03B9 0313 0342;
+1F37;1F37;03B9 0314 0342;1F37;03B9 0314 0342;
+1F38;1F38;0399 0313;1F38;0399 0313;
+1F39;1F39;0399 0314;1F39;0399 0314;
+1F3A;1F3A;0399 0313 0300;1F3A;0399 0313 0300;
+1F3B;1F3B;0399 0314 0300;1F3B;0399 0314 0300;
+1F3C;1F3C;0399 0313 0301;1F3C;0399 0313 0301;
+1F3D;1F3D;0399 0314 0301;1F3D;0399 0314 0301;
+1F3E;1F3E;0399 0313 0342;1F3E;0399 0313 0342;
+1F3F;1F3F;0399 0314 0342;1F3F;0399 0314 0342;
+1F40;1F40;03BF 0313;1F40;03BF 0313;
+1F41;1F41;03BF 0314;1F41;03BF 0314;
+1F42;1F42;03BF 0313 0300;1F42;03BF 0313 0300;
+1F43;1F43;03BF 0314 0300;1F43;03BF 0314 0300;
+1F44;1F44;03BF 0313 0301;1F44;03BF 0313 0301;
+1F45;1F45;03BF 0314 0301;1F45;03BF 0314 0301;
+1F48;1F48;039F 0313;1F48;039F 0313;
+1F49;1F49;039F 0314;1F49;039F 0314;
+1F4A;1F4A;039F 0313 0300;1F4A;039F 0313 0300;
+1F4B;1F4B;039F 0314 0300;1F4B;039F 0314 0300;
+1F4C;1F4C;039F 0313 0301;1F4C;039F 0313 0301;
+1F4D;1F4D;039F 0314 0301;1F4D;039F 0314 0301;
+1F50;1F50;03C5 0313;1F50;03C5 0313;
+1F51;1F51;03C5 0314;1F51;03C5 0314;
+1F52;1F52;03C5 0313 0300;1F52;03C5 0313 0300;
+1F53;1F53;03C5 0314 0300;1F53;03C5 0314 0300;
+1F54;1F54;03C5 0313 0301;1F54;03C5 0313 0301;
+1F55;1F55;03C5 0314 0301;1F55;03C5 0314 0301;
+1F56;1F56;03C5 0313 0342;1F56;03C5 0313 0342;
+1F57;1F57;03C5 0314 0342;1F57;03C5 0314 0342;
+1F59;1F59;03A5 0314;1F59;03A5 0314;
+1F5B;1F5B;03A5 0314 0300;1F5B;03A5 0314 0300;
+1F5D;1F5D;03A5 0314 0301;1F5D;03A5 0314 0301;
+1F5F;1F5F;03A5 0314 0342;1F5F;03A5 0314 0342;
+1F60;1F60;03C9 0313;1F60;03C9 0313;
+1F61;1F61;03C9 0314;1F61;03C9 0314;
+1F62;1F62;03C9 0313 0300;1F62;03C9 0313 0300;
+1F63;1F63;03C9 0314 0300;1F63;03C9 0314 0300;
+1F64;1F64;03C9 0313 0301;1F64;03C9 0313 0301;
+1F65;1F65;03C9 0314 0301;1F65;03C9 0314 0301;
+1F66;1F66;03C9 0313 0342;1F66;03C9 0313 0342;
+1F67;1F67;03C9 0314 0342;1F67;03C9 0314 0342;
+1F68;1F68;03A9 0313;1F68;03A9 0313;
+1F69;1F69;03A9 0314;1F69;03A9 0314;
+1F6A;1F6A;03A9 0313 0300;1F6A;03A9 0313 0300;
+1F6B;1F6B;03A9 0314 0300;1F6B;03A9 0314 0300;
+1F6C;1F6C;03A9 0313 0301;1F6C;03A9 0313 0301;
+1F6D;1F6D;03A9 0314 0301;1F6D;03A9 0314 0301;
+1F6E;1F6E;03A9 0313 0342;1F6E;03A9 0313 0342;
+1F6F;1F6F;03A9 0314 0342;1F6F;03A9 0314 0342;
+1F70;1F70;03B1 0300;1F70;03B1 0300;
+1F71;03AC;03B1 0301;03AC;03B1 0301;
+1F72;1F72;03B5 0300;1F72;03B5 0300;
+1F73;03AD;03B5 0301;03AD;03B5 0301;
+1F74;1F74;03B7 0300;1F74;03B7 0300;
+1F75;03AE;03B7 0301;03AE;03B7 0301;
+1F76;1F76;03B9 0300;1F76;03B9 0300;
+1F77;03AF;03B9 0301;03AF;03B9 0301;
+1F78;1F78;03BF 0300;1F78;03BF 0300;
+1F79;03CC;03BF 0301;03CC;03BF 0301;
+1F7A;1F7A;03C5 0300;1F7A;03C5 0300;
+1F7B;03CD;03C5 0301;03CD;03C5 0301;
+1F7C;1F7C;03C9 0300;1F7C;03C9 0300;
+1F7D;03CE;03C9 0301;03CE;03C9 0301;
+1F80;1F80;03B1 0313 0345;1F80;03B1 0313 0345;
+1F81;1F81;03B1 0314 0345;1F81;03B1 0314 0345;
+1F82;1F82;03B1 0313 0300 0345;1F82;03B1 0313 0300 0345;
+1F83;1F83;03B1 0314 0300 0345;1F83;03B1 0314 0300 0345;
+1F84;1F84;03B1 0313 0301 0345;1F84;03B1 0313 0301 0345;
+1F85;1F85;03B1 0314 0301 0345;1F85;03B1 0314 0301 0345;
+1F86;1F86;03B1 0313 0342 0345;1F86;03B1 0313 0342 0345;
+1F87;1F87;03B1 0314 0342 0345;1F87;03B1 0314 0342 0345;
+1F88;1F88;0391 0313 0345;1F88;0391 0313 0345;
+1F89;1F89;0391 0314 0345;1F89;0391 0314 0345;
+1F8A;1F8A;0391 0313 0300 0345;1F8A;0391 0313 0300 0345;
+1F8B;1F8B;0391 0314 0300 0345;1F8B;0391 0314 0300 0345;
+1F8C;1F8C;0391 0313 0301 0345;1F8C;0391 0313 0301 0345;
+1F8D;1F8D;0391 0314 0301 0345;1F8D;0391 0314 0301 0345;
+1F8E;1F8E;0391 0313 0342 0345;1F8E;0391 0313 0342 0345;
+1F8F;1F8F;0391 0314 0342 0345;1F8F;0391 0314 0342 0345;
+1F90;1F90;03B7 0313 0345;1F90;03B7 0313 0345;
+1F91;1F91;03B7 0314 0345;1F91;03B7 0314 0345;
+1F92;1F92;03B7 0313 0300 0345;1F92;03B7 0313 0300 0345;
+1F93;1F93;03B7 0314 0300 0345;1F93;03B7 0314 0300 0345;
+1F94;1F94;03B7 0313 0301 0345;1F94;03B7 0313 0301 0345;
+1F95;1F95;03B7 0314 0301 0345;1F95;03B7 0314 0301 0345;
+1F96;1F96;03B7 0313 0342 0345;1F96;03B7 0313 0342 0345;
+1F97;1F97;03B7 0314 0342 0345;1F97;03B7 0314 0342 0345;
+1F98;1F98;0397 0313 0345;1F98;0397 0313 0345;
+1F99;1F99;0397 0314 0345;1F99;0397 0314 0345;
+1F9A;1F9A;0397 0313 0300 0345;1F9A;0397 0313 0300 0345;
+1F9B;1F9B;0397 0314 0300 0345;1F9B;0397 0314 0300 0345;
+1F9C;1F9C;0397 0313 0301 0345;1F9C;0397 0313 0301 0345;
+1F9D;1F9D;0397 0314 0301 0345;1F9D;0397 0314 0301 0345;
+1F9E;1F9E;0397 0313 0342 0345;1F9E;0397 0313 0342 0345;
+1F9F;1F9F;0397 0314 0342 0345;1F9F;0397 0314 0342 0345;
+1FA0;1FA0;03C9 0313 0345;1FA0;03C9 0313 0345;
+1FA1;1FA1;03C9 0314 0345;1FA1;03C9 0314 0345;
+1FA2;1FA2;03C9 0313 0300 0345;1FA2;03C9 0313 0300 0345;
+1FA3;1FA3;03C9 0314 0300 0345;1FA3;03C9 0314 0300 0345;
+1FA4;1FA4;03C9 0313 0301 0345;1FA4;03C9 0313 0301 0345;
+1FA5;1FA5;03C9 0314 0301 0345;1FA5;03C9 0314 0301 0345;
+1FA6;1FA6;03C9 0313 0342 0345;1FA6;03C9 0313 0342 0345;
+1FA7;1FA7;03C9 0314 0342 0345;1FA7;03C9 0314 0342 0345;
+1FA8;1FA8;03A9 0313 0345;1FA8;03A9 0313 0345;
+1FA9;1FA9;03A9 0314 0345;1FA9;03A9 0314 0345;
+1FAA;1FAA;03A9 0313 0300 0345;1FAA;03A9 0313 0300 0345;
+1FAB;1FAB;03A9 0314 0300 0345;1FAB;03A9 0314 0300 0345;
+1FAC;1FAC;03A9 0313 0301 0345;1FAC;03A9 0313 0301 0345;
+1FAD;1FAD;03A9 0314 0301 0345;1FAD;03A9 0314 0301 0345;
+1FAE;1FAE;03A9 0313 0342 0345;1FAE;03A9 0313 0342 0345;
+1FAF;1FAF;03A9 0314 0342 0345;1FAF;03A9 0314 0342 0345;
+1FB0;1FB0;03B1 0306;1FB0;03B1 0306;
+1FB1;1FB1;03B1 0304;1FB1;03B1 0304;
+1FB2;1FB2;03B1 0300 0345;1FB2;03B1 0300 0345;
+1FB3;1FB3;03B1 0345;1FB3;03B1 0345;
+1FB4;1FB4;03B1 0301 0345;1FB4;03B1 0301 0345;
+1FB6;1FB6;03B1 0342;1FB6;03B1 0342;
+1FB7;1FB7;03B1 0342 0345;1FB7;03B1 0342 0345;
+1FB8;1FB8;0391 0306;1FB8;0391 0306;
+1FB9;1FB9;0391 0304;1FB9;0391 0304;
+1FBA;1FBA;0391 0300;1FBA;0391 0300;
+1FBB;0386;0391 0301;0386;0391 0301;
+1FBC;1FBC;0391 0345;1FBC;0391 0345;
+1FBD;1FBD;1FBD;0020 0313;0020 0313;
+1FBE;03B9;03B9;03B9;03B9;
+1FBF;1FBF;1FBF;0020 0313;0020 0313;
+1FC0;1FC0;1FC0;0020 0342;0020 0342;
+1FC1;1FC1;00A8 0342;0020 0308 0342;0020 0308 0342;
+1FC2;1FC2;03B7 0300 0345;1FC2;03B7 0300 0345;
+1FC3;1FC3;03B7 0345;1FC3;03B7 0345;
+1FC4;1FC4;03B7 0301 0345;1FC4;03B7 0301 0345;
+1FC6;1FC6;03B7 0342;1FC6;03B7 0342;
+1FC7;1FC7;03B7 0342 0345;1FC7;03B7 0342 0345;
+1FC8;1FC8;0395 0300;1FC8;0395 0300;
+1FC9;0388;0395 0301;0388;0395 0301;
+1FCA;1FCA;0397 0300;1FCA;0397 0300;
+1FCB;0389;0397 0301;0389;0397 0301;
+1FCC;1FCC;0397 0345;1FCC;0397 0345;
+1FCD;1FCD;1FBF 0300;0020 0313 0300;0020 0313 0300;
+1FCE;1FCE;1FBF 0301;0020 0313 0301;0020 0313 0301;
+1FCF;1FCF;1FBF 0342;0020 0313 0342;0020 0313 0342;
+1FD0;1FD0;03B9 0306;1FD0;03B9 0306;
+1FD1;1FD1;03B9 0304;1FD1;03B9 0304;
+1FD2;1FD2;03B9 0308 0300;1FD2;03B9 0308 0300;
+1FD3;0390;03B9 0308 0301;0390;03B9 0308 0301;
+1FD6;1FD6;03B9 0342;1FD6;03B9 0342;
+1FD7;1FD7;03B9 0308 0342;1FD7;03B9 0308 0342;
+1FD8;1FD8;0399 0306;1FD8;0399 0306;
+1FD9;1FD9;0399 0304;1FD9;0399 0304;
+1FDA;1FDA;0399 0300;1FDA;0399 0300;
+1FDB;038A;0399 0301;038A;0399 0301;
+1FDD;1FDD;1FFE 0300;0020 0314 0300;0020 0314 0300;
+1FDE;1FDE;1FFE 0301;0020 0314 0301;0020 0314 0301;
+1FDF;1FDF;1FFE 0342;0020 0314 0342;0020 0314 0342;
+1FE0;1FE0;03C5 0306;1FE0;03C5 0306;
+1FE1;1FE1;03C5 0304;1FE1;03C5 0304;
+1FE2;1FE2;03C5 0308 0300;1FE2;03C5 0308 0300;
+1FE3;03B0;03C5 0308 0301;03B0;03C5 0308 0301;
+1FE4;1FE4;03C1 0313;1FE4;03C1 0313;
+1FE5;1FE5;03C1 0314;1FE5;03C1 0314;
+1FE6;1FE6;03C5 0342;1FE6;03C5 0342;
+1FE7;1FE7;03C5 0308 0342;1FE7;03C5 0308 0342;
+1FE8;1FE8;03A5 0306;1FE8;03A5 0306;
+1FE9;1FE9;03A5 0304;1FE9;03A5 0304;
+1FEA;1FEA;03A5 0300;1FEA;03A5 0300;
+1FEB;038E;03A5 0301;038E;03A5 0301;
+1FEC;1FEC;03A1 0314;1FEC;03A1 0314;
+1FED;1FED;00A8 0300;0020 0308 0300;0020 0308 0300;
+1FEE;0385;00A8 0301;0020 0308 0301;0020 0308 0301;
+1FEF;0060;0060;0060;0060;
+1FF2;1FF2;03C9 0300 0345;1FF2;03C9 0300 0345;
+1FF3;1FF3;03C9 0345;1FF3;03C9 0345;
+1FF4;1FF4;03C9 0301 0345;1FF4;03C9 0301 0345;
+1FF6;1FF6;03C9 0342;1FF6;03C9 0342;
+1FF7;1FF7;03C9 0342 0345;1FF7;03C9 0342 0345;
+1FF8;1FF8;039F 0300;1FF8;039F 0300;
+1FF9;038C;039F 0301;038C;039F 0301;
+1FFA;1FFA;03A9 0300;1FFA;03A9 0300;
+1FFB;038F;03A9 0301;038F;03A9 0301;
+1FFC;1FFC;03A9 0345;1FFC;03A9 0345;
+1FFD;00B4;00B4;0020 0301;0020 0301;
+1FFE;1FFE;1FFE;0020 0314;0020 0314;
+2000;2002;2002;0020;0020;
+2001;2003;2003;0020;0020;
+2002;2002;2002;0020;0020;
+2003;2003;2003;0020;0020;
+2004;2004;2004;0020;0020;
+2005;2005;2005;0020;0020;
+2006;2006;2006;0020;0020;
+2007;2007;2007;0020;0020;
+2008;2008;2008;0020;0020;
+2009;2009;2009;0020;0020;
+200A;200A;200A;0020;0020;
+2011;2011;2011;2010;2010;
+2017;2017;2017;0020 0333;0020 0333;
+2024;2024;2024;002E;002E;
+2025;2025;2025;002E 002E;002E 002E;
+2026;2026;2026;002E 002E 002E;002E 002E 002E;
+202F;202F;202F;0020;0020;
+2033;2033;2033;2032 2032;2032 2032;
+2034;2034;2034;2032 2032 2032;2032 2032 2032;
+2036;2036;2036;2035 2035;2035 2035;
+2037;2037;2037;2035 2035 2035;2035 2035 2035;
+203C;203C;203C;0021 0021;0021 0021;
+203E;203E;203E;0020 0305;0020 0305;
+2047;2047;2047;003F 003F;003F 003F;
+2048;2048;2048;003F 0021;003F 0021;
+2049;2049;2049;0021 003F;0021 003F;
+2057;2057;2057;2032 2032 2032 2032;2032 2032 2032 2032;
+205F;205F;205F;0020;0020;
+2070;2070;2070;0030;0030;
+2071;2071;2071;0069;0069;
+2074;2074;2074;0034;0034;
+2075;2075;2075;0035;0035;
+2076;2076;2076;0036;0036;
+2077;2077;2077;0037;0037;
+2078;2078;2078;0038;0038;
+2079;2079;2079;0039;0039;
+207A;207A;207A;002B;002B;
+207B;207B;207B;2212;2212;
+207C;207C;207C;003D;003D;
+207D;207D;207D;0028;0028;
+207E;207E;207E;0029;0029;
+207F;207F;207F;006E;006E;
+2080;2080;2080;0030;0030;
+2081;2081;2081;0031;0031;
+2082;2082;2082;0032;0032;
+2083;2083;2083;0033;0033;
+2084;2084;2084;0034;0034;
+2085;2085;2085;0035;0035;
+2086;2086;2086;0036;0036;
+2087;2087;2087;0037;0037;
+2088;2088;2088;0038;0038;
+2089;2089;2089;0039;0039;
+208A;208A;208A;002B;002B;
+208B;208B;208B;2212;2212;
+208C;208C;208C;003D;003D;
+208D;208D;208D;0028;0028;
+208E;208E;208E;0029;0029;
+2090;2090;2090;0061;0061;
+2091;2091;2091;0065;0065;
+2092;2092;2092;006F;006F;
+2093;2093;2093;0078;0078;
+2094;2094;2094;0259;0259;
+20A8;20A8;20A8;0052 0073;0052 0073;
+2100;2100;2100;0061 002F 0063;0061 002F 0063;
+2101;2101;2101;0061 002F 0073;0061 002F 0073;
+2102;2102;2102;0043;0043;
+2103;2103;2103;00B0 0043;00B0 0043;
+2105;2105;2105;0063 002F 006F;0063 002F 006F;
+2106;2106;2106;0063 002F 0075;0063 002F 0075;
+2107;2107;2107;0190;0190;
+2109;2109;2109;00B0 0046;00B0 0046;
+210A;210A;210A;0067;0067;
+210B;210B;210B;0048;0048;
+210C;210C;210C;0048;0048;
+210D;210D;210D;0048;0048;
+210E;210E;210E;0068;0068;
+210F;210F;210F;0127;0127;
+2110;2110;2110;0049;0049;
+2111;2111;2111;0049;0049;
+2112;2112;2112;004C;004C;
+2113;2113;2113;006C;006C;
+2115;2115;2115;004E;004E;
+2116;2116;2116;004E 006F;004E 006F;
+2119;2119;2119;0050;0050;
+211A;211A;211A;0051;0051;
+211B;211B;211B;0052;0052;
+211C;211C;211C;0052;0052;
+211D;211D;211D;0052;0052;
+2120;2120;2120;0053 004D;0053 004D;
+2121;2121;2121;0054 0045 004C;0054 0045 004C;
+2122;2122;2122;0054 004D;0054 004D;
+2124;2124;2124;005A;005A;
+2126;03A9;03A9;03A9;03A9;
+2128;2128;2128;005A;005A;
+212A;004B;004B;004B;004B;
+212B;00C5;0041 030A;00C5;0041 030A;
+212C;212C;212C;0042;0042;
+212D;212D;212D;0043;0043;
+212F;212F;212F;0065;0065;
+2130;2130;2130;0045;0045;
+2131;2131;2131;0046;0046;
+2133;2133;2133;004D;004D;
+2134;2134;2134;006F;006F;
+2135;2135;2135;05D0;05D0;
+2136;2136;2136;05D1;05D1;
+2137;2137;2137;05D2;05D2;
+2138;2138;2138;05D3;05D3;
+2139;2139;2139;0069;0069;
+213B;213B;213B;0046 0041 0058;0046 0041 0058;
+213C;213C;213C;03C0;03C0;
+213D;213D;213D;03B3;03B3;
+213E;213E;213E;0393;0393;
+213F;213F;213F;03A0;03A0;
+2140;2140;2140;2211;2211;
+2145;2145;2145;0044;0044;
+2146;2146;2146;0064;0064;
+2147;2147;2147;0065;0065;
+2148;2148;2148;0069;0069;
+2149;2149;2149;006A;006A;
+2153;2153;2153;0031 2044 0033;0031 2044 0033;
+2154;2154;2154;0032 2044 0033;0032 2044 0033;
+2155;2155;2155;0031 2044 0035;0031 2044 0035;
+2156;2156;2156;0032 2044 0035;0032 2044 0035;
+2157;2157;2157;0033 2044 0035;0033 2044 0035;
+2158;2158;2158;0034 2044 0035;0034 2044 0035;
+2159;2159;2159;0031 2044 0036;0031 2044 0036;
+215A;215A;215A;0035 2044 0036;0035 2044 0036;
+215B;215B;215B;0031 2044 0038;0031 2044 0038;
+215C;215C;215C;0033 2044 0038;0033 2044 0038;
+215D;215D;215D;0035 2044 0038;0035 2044 0038;
+215E;215E;215E;0037 2044 0038;0037 2044 0038;
+215F;215F;215F;0031 2044;0031 2044;
+2160;2160;2160;0049;0049;
+2161;2161;2161;0049 0049;0049 0049;
+2162;2162;2162;0049 0049 0049;0049 0049 0049;
+2163;2163;2163;0049 0056;0049 0056;
+2164;2164;2164;0056;0056;
+2165;2165;2165;0056 0049;0056 0049;
+2166;2166;2166;0056 0049 0049;0056 0049 0049;
+2167;2167;2167;0056 0049 0049 0049;0056 0049 0049 0049;
+2168;2168;2168;0049 0058;0049 0058;
+2169;2169;2169;0058;0058;
+216A;216A;216A;0058 0049;0058 0049;
+216B;216B;216B;0058 0049 0049;0058 0049 0049;
+216C;216C;216C;004C;004C;
+216D;216D;216D;0043;0043;
+216E;216E;216E;0044;0044;
+216F;216F;216F;004D;004D;
+2170;2170;2170;0069;0069;
+2171;2171;2171;0069 0069;0069 0069;
+2172;2172;2172;0069 0069 0069;0069 0069 0069;
+2173;2173;2173;0069 0076;0069 0076;
+2174;2174;2174;0076;0076;
+2175;2175;2175;0076 0069;0076 0069;
+2176;2176;2176;0076 0069 0069;0076 0069 0069;
+2177;2177;2177;0076 0069 0069 0069;0076 0069 0069 0069;
+2178;2178;2178;0069 0078;0069 0078;
+2179;2179;2179;0078;0078;
+217A;217A;217A;0078 0069;0078 0069;
+217B;217B;217B;0078 0069 0069;0078 0069 0069;
+217C;217C;217C;006C;006C;
+217D;217D;217D;0063;0063;
+217E;217E;217E;0064;0064;
+217F;217F;217F;006D;006D;
+219A;219A;2190 0338;219A;2190 0338;
+219B;219B;2192 0338;219B;2192 0338;
+21AE;21AE;2194 0338;21AE;2194 0338;
+21CD;21CD;21D0 0338;21CD;21D0 0338;
+21CE;21CE;21D4 0338;21CE;21D4 0338;
+21CF;21CF;21D2 0338;21CF;21D2 0338;
+2204;2204;2203 0338;2204;2203 0338;
+2209;2209;2208 0338;2209;2208 0338;
+220C;220C;220B 0338;220C;220B 0338;
+2224;2224;2223 0338;2224;2223 0338;
+2226;2226;2225 0338;2226;2225 0338;
+222C;222C;222C;222B 222B;222B 222B;
+222D;222D;222D;222B 222B 222B;222B 222B 222B;
+222F;222F;222F;222E 222E;222E 222E;
+2230;2230;2230;222E 222E 222E;222E 222E 222E;
+2241;2241;223C 0338;2241;223C 0338;
+2244;2244;2243 0338;2244;2243 0338;
+2247;2247;2245 0338;2247;2245 0338;
+2249;2249;2248 0338;2249;2248 0338;
+2260;2260;003D 0338;2260;003D 0338;
+2262;2262;2261 0338;2262;2261 0338;
+226D;226D;224D 0338;226D;224D 0338;
+226E;226E;003C 0338;226E;003C 0338;
+226F;226F;003E 0338;226F;003E 0338;
+2270;2270;2264 0338;2270;2264 0338;
+2271;2271;2265 0338;2271;2265 0338;
+2274;2274;2272 0338;2274;2272 0338;
+2275;2275;2273 0338;2275;2273 0338;
+2278;2278;2276 0338;2278;2276 0338;
+2279;2279;2277 0338;2279;2277 0338;
+2280;2280;227A 0338;2280;227A 0338;
+2281;2281;227B 0338;2281;227B 0338;
+2284;2284;2282 0338;2284;2282 0338;
+2285;2285;2283 0338;2285;2283 0338;
+2288;2288;2286 0338;2288;2286 0338;
+2289;2289;2287 0338;2289;2287 0338;
+22AC;22AC;22A2 0338;22AC;22A2 0338;
+22AD;22AD;22A8 0338;22AD;22A8 0338;
+22AE;22AE;22A9 0338;22AE;22A9 0338;
+22AF;22AF;22AB 0338;22AF;22AB 0338;
+22E0;22E0;227C 0338;22E0;227C 0338;
+22E1;22E1;227D 0338;22E1;227D 0338;
+22E2;22E2;2291 0338;22E2;2291 0338;
+22E3;22E3;2292 0338;22E3;2292 0338;
+22EA;22EA;22B2 0338;22EA;22B2 0338;
+22EB;22EB;22B3 0338;22EB;22B3 0338;
+22EC;22EC;22B4 0338;22EC;22B4 0338;
+22ED;22ED;22B5 0338;22ED;22B5 0338;
+2329;3008;3008;3008;3008;
+232A;3009;3009;3009;3009;
+2460;2460;2460;0031;0031;
+2461;2461;2461;0032;0032;
+2462;2462;2462;0033;0033;
+2463;2463;2463;0034;0034;
+2464;2464;2464;0035;0035;
+2465;2465;2465;0036;0036;
+2466;2466;2466;0037;0037;
+2467;2467;2467;0038;0038;
+2468;2468;2468;0039;0039;
+2469;2469;2469;0031 0030;0031 0030;
+246A;246A;246A;0031 0031;0031 0031;
+246B;246B;246B;0031 0032;0031 0032;
+246C;246C;246C;0031 0033;0031 0033;
+246D;246D;246D;0031 0034;0031 0034;
+246E;246E;246E;0031 0035;0031 0035;
+246F;246F;246F;0031 0036;0031 0036;
+2470;2470;2470;0031 0037;0031 0037;
+2471;2471;2471;0031 0038;0031 0038;
+2472;2472;2472;0031 0039;0031 0039;
+2473;2473;2473;0032 0030;0032 0030;
+2474;2474;2474;0028 0031 0029;0028 0031 0029;
+2475;2475;2475;0028 0032 0029;0028 0032 0029;
+2476;2476;2476;0028 0033 0029;0028 0033 0029;
+2477;2477;2477;0028 0034 0029;0028 0034 0029;
+2478;2478;2478;0028 0035 0029;0028 0035 0029;
+2479;2479;2479;0028 0036 0029;0028 0036 0029;
+247A;247A;247A;0028 0037 0029;0028 0037 0029;
+247B;247B;247B;0028 0038 0029;0028 0038 0029;
+247C;247C;247C;0028 0039 0029;0028 0039 0029;
+247D;247D;247D;0028 0031 0030 0029;0028 0031 0030 0029;
+247E;247E;247E;0028 0031 0031 0029;0028 0031 0031 0029;
+247F;247F;247F;0028 0031 0032 0029;0028 0031 0032 0029;
+2480;2480;2480;0028 0031 0033 0029;0028 0031 0033 0029;
+2481;2481;2481;0028 0031 0034 0029;0028 0031 0034 0029;
+2482;2482;2482;0028 0031 0035 0029;0028 0031 0035 0029;
+2483;2483;2483;0028 0031 0036 0029;0028 0031 0036 0029;
+2484;2484;2484;0028 0031 0037 0029;0028 0031 0037 0029;
+2485;2485;2485;0028 0031 0038 0029;0028 0031 0038 0029;
+2486;2486;2486;0028 0031 0039 0029;0028 0031 0039 0029;
+2487;2487;2487;0028 0032 0030 0029;0028 0032 0030 0029;
+2488;2488;2488;0031 002E;0031 002E;
+2489;2489;2489;0032 002E;0032 002E;
+248A;248A;248A;0033 002E;0033 002E;
+248B;248B;248B;0034 002E;0034 002E;
+248C;248C;248C;0035 002E;0035 002E;
+248D;248D;248D;0036 002E;0036 002E;
+248E;248E;248E;0037 002E;0037 002E;
+248F;248F;248F;0038 002E;0038 002E;
+2490;2490;2490;0039 002E;0039 002E;
+2491;2491;2491;0031 0030 002E;0031 0030 002E;
+2492;2492;2492;0031 0031 002E;0031 0031 002E;
+2493;2493;2493;0031 0032 002E;0031 0032 002E;
+2494;2494;2494;0031 0033 002E;0031 0033 002E;
+2495;2495;2495;0031 0034 002E;0031 0034 002E;
+2496;2496;2496;0031 0035 002E;0031 0035 002E;
+2497;2497;2497;0031 0036 002E;0031 0036 002E;
+2498;2498;2498;0031 0037 002E;0031 0037 002E;
+2499;2499;2499;0031 0038 002E;0031 0038 002E;
+249A;249A;249A;0031 0039 002E;0031 0039 002E;
+249B;249B;249B;0032 0030 002E;0032 0030 002E;
+249C;249C;249C;0028 0061 0029;0028 0061 0029;
+249D;249D;249D;0028 0062 0029;0028 0062 0029;
+249E;249E;249E;0028 0063 0029;0028 0063 0029;
+249F;249F;249F;0028 0064 0029;0028 0064 0029;
+24A0;24A0;24A0;0028 0065 0029;0028 0065 0029;
+24A1;24A1;24A1;0028 0066 0029;0028 0066 0029;
+24A2;24A2;24A2;0028 0067 0029;0028 0067 0029;
+24A3;24A3;24A3;0028 0068 0029;0028 0068 0029;
+24A4;24A4;24A4;0028 0069 0029;0028 0069 0029;
+24A5;24A5;24A5;0028 006A 0029;0028 006A 0029;
+24A6;24A6;24A6;0028 006B 0029;0028 006B 0029;
+24A7;24A7;24A7;0028 006C 0029;0028 006C 0029;
+24A8;24A8;24A8;0028 006D 0029;0028 006D 0029;
+24A9;24A9;24A9;0028 006E 0029;0028 006E 0029;
+24AA;24AA;24AA;0028 006F 0029;0028 006F 0029;
+24AB;24AB;24AB;0028 0070 0029;0028 0070 0029;
+24AC;24AC;24AC;0028 0071 0029;0028 0071 0029;
+24AD;24AD;24AD;0028 0072 0029;0028 0072 0029;
+24AE;24AE;24AE;0028 0073 0029;0028 0073 0029;
+24AF;24AF;24AF;0028 0074 0029;0028 0074 0029;
+24B0;24B0;24B0;0028 0075 0029;0028 0075 0029;
+24B1;24B1;24B1;0028 0076 0029;0028 0076 0029;
+24B2;24B2;24B2;0028 0077 0029;0028 0077 0029;
+24B3;24B3;24B3;0028 0078 0029;0028 0078 0029;
+24B4;24B4;24B4;0028 0079 0029;0028 0079 0029;
+24B5;24B5;24B5;0028 007A 0029;0028 007A 0029;
+24B6;24B6;24B6;0041;0041;
+24B7;24B7;24B7;0042;0042;
+24B8;24B8;24B8;0043;0043;
+24B9;24B9;24B9;0044;0044;
+24BA;24BA;24BA;0045;0045;
+24BB;24BB;24BB;0046;0046;
+24BC;24BC;24BC;0047;0047;
+24BD;24BD;24BD;0048;0048;
+24BE;24BE;24BE;0049;0049;
+24BF;24BF;24BF;004A;004A;
+24C0;24C0;24C0;004B;004B;
+24C1;24C1;24C1;004C;004C;
+24C2;24C2;24C2;004D;004D;
+24C3;24C3;24C3;004E;004E;
+24C4;24C4;24C4;004F;004F;
+24C5;24C5;24C5;0050;0050;
+24C6;24C6;24C6;0051;0051;
+24C7;24C7;24C7;0052;0052;
+24C8;24C8;24C8;0053;0053;
+24C9;24C9;24C9;0054;0054;
+24CA;24CA;24CA;0055;0055;
+24CB;24CB;24CB;0056;0056;
+24CC;24CC;24CC;0057;0057;
+24CD;24CD;24CD;0058;0058;
+24CE;24CE;24CE;0059;0059;
+24CF;24CF;24CF;005A;005A;
+24D0;24D0;24D0;0061;0061;
+24D1;24D1;24D1;0062;0062;
+24D2;24D2;24D2;0063;0063;
+24D3;24D3;24D3;0064;0064;
+24D4;24D4;24D4;0065;0065;
+24D5;24D5;24D5;0066;0066;
+24D6;24D6;24D6;0067;0067;
+24D7;24D7;24D7;0068;0068;
+24D8;24D8;24D8;0069;0069;
+24D9;24D9;24D9;006A;006A;
+24DA;24DA;24DA;006B;006B;
+24DB;24DB;24DB;006C;006C;
+24DC;24DC;24DC;006D;006D;
+24DD;24DD;24DD;006E;006E;
+24DE;24DE;24DE;006F;006F;
+24DF;24DF;24DF;0070;0070;
+24E0;24E0;24E0;0071;0071;
+24E1;24E1;24E1;0072;0072;
+24E2;24E2;24E2;0073;0073;
+24E3;24E3;24E3;0074;0074;
+24E4;24E4;24E4;0075;0075;
+24E5;24E5;24E5;0076;0076;
+24E6;24E6;24E6;0077;0077;
+24E7;24E7;24E7;0078;0078;
+24E8;24E8;24E8;0079;0079;
+24E9;24E9;24E9;007A;007A;
+24EA;24EA;24EA;0030;0030;
+2A0C;2A0C;2A0C;222B 222B 222B 222B;222B 222B 222B 222B;
+2A74;2A74;2A74;003A 003A 003D;003A 003A 003D;
+2A75;2A75;2A75;003D 003D;003D 003D;
+2A76;2A76;2A76;003D 003D 003D;003D 003D 003D;
+2ADC;2ADD 0338;2ADD 0338;2ADD 0338;2ADD 0338;
+2C7C;2C7C;2C7C;006A;006A;
+2C7D;2C7D;2C7D;0056;0056;
+2D6F;2D6F;2D6F;2D61;2D61;
+2E9F;2E9F;2E9F;6BCD;6BCD;
+2EF3;2EF3;2EF3;9F9F;9F9F;
+2F00;2F00;2F00;4E00;4E00;
+2F01;2F01;2F01;4E28;4E28;
+2F02;2F02;2F02;4E36;4E36;
+2F03;2F03;2F03;4E3F;4E3F;
+2F04;2F04;2F04;4E59;4E59;
+2F05;2F05;2F05;4E85;4E85;
+2F06;2F06;2F06;4E8C;4E8C;
+2F07;2F07;2F07;4EA0;4EA0;
+2F08;2F08;2F08;4EBA;4EBA;
+2F09;2F09;2F09;513F;513F;
+2F0A;2F0A;2F0A;5165;5165;
+2F0B;2F0B;2F0B;516B;516B;
+2F0C;2F0C;2F0C;5182;5182;
+2F0D;2F0D;2F0D;5196;5196;
+2F0E;2F0E;2F0E;51AB;51AB;
+2F0F;2F0F;2F0F;51E0;51E0;
+2F10;2F10;2F10;51F5;51F5;
+2F11;2F11;2F11;5200;5200;
+2F12;2F12;2F12;529B;529B;
+2F13;2F13;2F13;52F9;52F9;
+2F14;2F14;2F14;5315;5315;
+2F15;2F15;2F15;531A;531A;
+2F16;2F16;2F16;5338;5338;
+2F17;2F17;2F17;5341;5341;
+2F18;2F18;2F18;535C;535C;
+2F19;2F19;2F19;5369;5369;
+2F1A;2F1A;2F1A;5382;5382;
+2F1B;2F1B;2F1B;53B6;53B6;
+2F1C;2F1C;2F1C;53C8;53C8;
+2F1D;2F1D;2F1D;53E3;53E3;
+2F1E;2F1E;2F1E;56D7;56D7;
+2F1F;2F1F;2F1F;571F;571F;
+2F20;2F20;2F20;58EB;58EB;
+2F21;2F21;2F21;5902;5902;
+2F22;2F22;2F22;590A;590A;
+2F23;2F23;2F23;5915;5915;
+2F24;2F24;2F24;5927;5927;
+2F25;2F25;2F25;5973;5973;
+2F26;2F26;2F26;5B50;5B50;
+2F27;2F27;2F27;5B80;5B80;
+2F28;2F28;2F28;5BF8;5BF8;
+2F29;2F29;2F29;5C0F;5C0F;
+2F2A;2F2A;2F2A;5C22;5C22;
+2F2B;2F2B;2F2B;5C38;5C38;
+2F2C;2F2C;2F2C;5C6E;5C6E;
+2F2D;2F2D;2F2D;5C71;5C71;
+2F2E;2F2E;2F2E;5DDB;5DDB;
+2F2F;2F2F;2F2F;5DE5;5DE5;
+2F30;2F30;2F30;5DF1;5DF1;
+2F31;2F31;2F31;5DFE;5DFE;
+2F32;2F32;2F32;5E72;5E72;
+2F33;2F33;2F33;5E7A;5E7A;
+2F34;2F34;2F34;5E7F;5E7F;
+2F35;2F35;2F35;5EF4;5EF4;
+2F36;2F36;2F36;5EFE;5EFE;
+2F37;2F37;2F37;5F0B;5F0B;
+2F38;2F38;2F38;5F13;5F13;
+2F39;2F39;2F39;5F50;5F50;
+2F3A;2F3A;2F3A;5F61;5F61;
+2F3B;2F3B;2F3B;5F73;5F73;
+2F3C;2F3C;2F3C;5FC3;5FC3;
+2F3D;2F3D;2F3D;6208;6208;
+2F3E;2F3E;2F3E;6236;6236;
+2F3F;2F3F;2F3F;624B;624B;
+2F40;2F40;2F40;652F;652F;
+2F41;2F41;2F41;6534;6534;
+2F42;2F42;2F42;6587;6587;
+2F43;2F43;2F43;6597;6597;
+2F44;2F44;2F44;65A4;65A4;
+2F45;2F45;2F45;65B9;65B9;
+2F46;2F46;2F46;65E0;65E0;
+2F47;2F47;2F47;65E5;65E5;
+2F48;2F48;2F48;66F0;66F0;
+2F49;2F49;2F49;6708;6708;
+2F4A;2F4A;2F4A;6728;6728;
+2F4B;2F4B;2F4B;6B20;6B20;
+2F4C;2F4C;2F4C;6B62;6B62;
+2F4D;2F4D;2F4D;6B79;6B79;
+2F4E;2F4E;2F4E;6BB3;6BB3;
+2F4F;2F4F;2F4F;6BCB;6BCB;
+2F50;2F50;2F50;6BD4;6BD4;
+2F51;2F51;2F51;6BDB;6BDB;
+2F52;2F52;2F52;6C0F;6C0F;
+2F53;2F53;2F53;6C14;6C14;
+2F54;2F54;2F54;6C34;6C34;
+2F55;2F55;2F55;706B;706B;
+2F56;2F56;2F56;722A;722A;
+2F57;2F57;2F57;7236;7236;
+2F58;2F58;2F58;723B;723B;
+2F59;2F59;2F59;723F;723F;
+2F5A;2F5A;2F5A;7247;7247;
+2F5B;2F5B;2F5B;7259;7259;
+2F5C;2F5C;2F5C;725B;725B;
+2F5D;2F5D;2F5D;72AC;72AC;
+2F5E;2F5E;2F5E;7384;7384;
+2F5F;2F5F;2F5F;7389;7389;
+2F60;2F60;2F60;74DC;74DC;
+2F61;2F61;2F61;74E6;74E6;
+2F62;2F62;2F62;7518;7518;
+2F63;2F63;2F63;751F;751F;
+2F64;2F64;2F64;7528;7528;
+2F65;2F65;2F65;7530;7530;
+2F66;2F66;2F66;758B;758B;
+2F67;2F67;2F67;7592;7592;
+2F68;2F68;2F68;7676;7676;
+2F69;2F69;2F69;767D;767D;
+2F6A;2F6A;2F6A;76AE;76AE;
+2F6B;2F6B;2F6B;76BF;76BF;
+2F6C;2F6C;2F6C;76EE;76EE;
+2F6D;2F6D;2F6D;77DB;77DB;
+2F6E;2F6E;2F6E;77E2;77E2;
+2F6F;2F6F;2F6F;77F3;77F3;
+2F70;2F70;2F70;793A;793A;
+2F71;2F71;2F71;79B8;79B8;
+2F72;2F72;2F72;79BE;79BE;
+2F73;2F73;2F73;7A74;7A74;
+2F74;2F74;2F74;7ACB;7ACB;
+2F75;2F75;2F75;7AF9;7AF9;
+2F76;2F76;2F76;7C73;7C73;
+2F77;2F77;2F77;7CF8;7CF8;
+2F78;2F78;2F78;7F36;7F36;
+2F79;2F79;2F79;7F51;7F51;
+2F7A;2F7A;2F7A;7F8A;7F8A;
+2F7B;2F7B;2F7B;7FBD;7FBD;
+2F7C;2F7C;2F7C;8001;8001;
+2F7D;2F7D;2F7D;800C;800C;
+2F7E;2F7E;2F7E;8012;8012;
+2F7F;2F7F;2F7F;8033;8033;
+2F80;2F80;2F80;807F;807F;
+2F81;2F81;2F81;8089;8089;
+2F82;2F82;2F82;81E3;81E3;
+2F83;2F83;2F83;81EA;81EA;
+2F84;2F84;2F84;81F3;81F3;
+2F85;2F85;2F85;81FC;81FC;
+2F86;2F86;2F86;820C;820C;
+2F87;2F87;2F87;821B;821B;
+2F88;2F88;2F88;821F;821F;
+2F89;2F89;2F89;826E;826E;
+2F8A;2F8A;2F8A;8272;8272;
+2F8B;2F8B;2F8B;8278;8278;
+2F8C;2F8C;2F8C;864D;864D;
+2F8D;2F8D;2F8D;866B;866B;
+2F8E;2F8E;2F8E;8840;8840;
+2F8F;2F8F;2F8F;884C;884C;
+2F90;2F90;2F90;8863;8863;
+2F91;2F91;2F91;897E;897E;
+2F92;2F92;2F92;898B;898B;
+2F93;2F93;2F93;89D2;89D2;
+2F94;2F94;2F94;8A00;8A00;
+2F95;2F95;2F95;8C37;8C37;
+2F96;2F96;2F96;8C46;8C46;
+2F97;2F97;2F97;8C55;8C55;
+2F98;2F98;2F98;8C78;8C78;
+2F99;2F99;2F99;8C9D;8C9D;
+2F9A;2F9A;2F9A;8D64;8D64;
+2F9B;2F9B;2F9B;8D70;8D70;
+2F9C;2F9C;2F9C;8DB3;8DB3;
+2F9D;2F9D;2F9D;8EAB;8EAB;
+2F9E;2F9E;2F9E;8ECA;8ECA;
+2F9F;2F9F;2F9F;8F9B;8F9B;
+2FA0;2FA0;2FA0;8FB0;8FB0;
+2FA1;2FA1;2FA1;8FB5;8FB5;
+2FA2;2FA2;2FA2;9091;9091;
+2FA3;2FA3;2FA3;9149;9149;
+2FA4;2FA4;2FA4;91C6;91C6;
+2FA5;2FA5;2FA5;91CC;91CC;
+2FA6;2FA6;2FA6;91D1;91D1;
+2FA7;2FA7;2FA7;9577;9577;
+2FA8;2FA8;2FA8;9580;9580;
+2FA9;2FA9;2FA9;961C;961C;
+2FAA;2FAA;2FAA;96B6;96B6;
+2FAB;2FAB;2FAB;96B9;96B9;
+2FAC;2FAC;2FAC;96E8;96E8;
+2FAD;2FAD;2FAD;9751;9751;
+2FAE;2FAE;2FAE;975E;975E;
+2FAF;2FAF;2FAF;9762;9762;
+2FB0;2FB0;2FB0;9769;9769;
+2FB1;2FB1;2FB1;97CB;97CB;
+2FB2;2FB2;2FB2;97ED;97ED;
+2FB3;2FB3;2FB3;97F3;97F3;
+2FB4;2FB4;2FB4;9801;9801;
+2FB5;2FB5;2FB5;98A8;98A8;
+2FB6;2FB6;2FB6;98DB;98DB;
+2FB7;2FB7;2FB7;98DF;98DF;
+2FB8;2FB8;2FB8;9996;9996;
+2FB9;2FB9;2FB9;9999;9999;
+2FBA;2FBA;2FBA;99AC;99AC;
+2FBB;2FBB;2FBB;9AA8;9AA8;
+2FBC;2FBC;2FBC;9AD8;9AD8;
+2FBD;2FBD;2FBD;9ADF;9ADF;
+2FBE;2FBE;2FBE;9B25;9B25;
+2FBF;2FBF;2FBF;9B2F;9B2F;
+2FC0;2FC0;2FC0;9B32;9B32;
+2FC1;2FC1;2FC1;9B3C;9B3C;
+2FC2;2FC2;2FC2;9B5A;9B5A;
+2FC3;2FC3;2FC3;9CE5;9CE5;
+2FC4;2FC4;2FC4;9E75;9E75;
+2FC5;2FC5;2FC5;9E7F;9E7F;
+2FC6;2FC6;2FC6;9EA5;9EA5;
+2FC7;2FC7;2FC7;9EBB;9EBB;
+2FC8;2FC8;2FC8;9EC3;9EC3;
+2FC9;2FC9;2FC9;9ECD;9ECD;
+2FCA;2FCA;2FCA;9ED1;9ED1;
+2FCB;2FCB;2FCB;9EF9;9EF9;
+2FCC;2FCC;2FCC;9EFD;9EFD;
+2FCD;2FCD;2FCD;9F0E;9F0E;
+2FCE;2FCE;2FCE;9F13;9F13;
+2FCF;2FCF;2FCF;9F20;9F20;
+2FD0;2FD0;2FD0;9F3B;9F3B;
+2FD1;2FD1;2FD1;9F4A;9F4A;
+2FD2;2FD2;2FD2;9F52;9F52;
+2FD3;2FD3;2FD3;9F8D;9F8D;
+2FD4;2FD4;2FD4;9F9C;9F9C;
+2FD5;2FD5;2FD5;9FA0;9FA0;
+3000;3000;3000;0020;0020;
+3036;3036;3036;3012;3012;
+3038;3038;3038;5341;5341;
+3039;3039;3039;5344;5344;
+303A;303A;303A;5345;5345;
+304C;304C;304B 3099;304C;304B 3099;
+304E;304E;304D 3099;304E;304D 3099;
+3050;3050;304F 3099;3050;304F 3099;
+3052;3052;3051 3099;3052;3051 3099;
+3054;3054;3053 3099;3054;3053 3099;
+3056;3056;3055 3099;3056;3055 3099;
+3058;3058;3057 3099;3058;3057 3099;
+305A;305A;3059 3099;305A;3059 3099;
+305C;305C;305B 3099;305C;305B 3099;
+305E;305E;305D 3099;305E;305D 3099;
+3060;3060;305F 3099;3060;305F 3099;
+3062;3062;3061 3099;3062;3061 3099;
+3065;3065;3064 3099;3065;3064 3099;
+3067;3067;3066 3099;3067;3066 3099;
+3069;3069;3068 3099;3069;3068 3099;
+3070;3070;306F 3099;3070;306F 3099;
+3071;3071;306F 309A;3071;306F 309A;
+3073;3073;3072 3099;3073;3072 3099;
+3074;3074;3072 309A;3074;3072 309A;
+3076;3076;3075 3099;3076;3075 3099;
+3077;3077;3075 309A;3077;3075 309A;
+3079;3079;3078 3099;3079;3078 3099;
+307A;307A;3078 309A;307A;3078 309A;
+307C;307C;307B 3099;307C;307B 3099;
+307D;307D;307B 309A;307D;307B 309A;
+3094;3094;3046 3099;3094;3046 3099;
+309B;309B;309B;0020 3099;0020 3099;
+309C;309C;309C;0020 309A;0020 309A;
+309E;309E;309D 3099;309E;309D 3099;
+309F;309F;309F;3088 308A;3088 308A;
+30AC;30AC;30AB 3099;30AC;30AB 3099;
+30AE;30AE;30AD 3099;30AE;30AD 3099;
+30B0;30B0;30AF 3099;30B0;30AF 3099;
+30B2;30B2;30B1 3099;30B2;30B1 3099;
+30B4;30B4;30B3 3099;30B4;30B3 3099;
+30B6;30B6;30B5 3099;30B6;30B5 3099;
+30B8;30B8;30B7 3099;30B8;30B7 3099;
+30BA;30BA;30B9 3099;30BA;30B9 3099;
+30BC;30BC;30BB 3099;30BC;30BB 3099;
+30BE;30BE;30BD 3099;30BE;30BD 3099;
+30C0;30C0;30BF 3099;30C0;30BF 3099;
+30C2;30C2;30C1 3099;30C2;30C1 3099;
+30C5;30C5;30C4 3099;30C5;30C4 3099;
+30C7;30C7;30C6 3099;30C7;30C6 3099;
+30C9;30C9;30C8 3099;30C9;30C8 3099;
+30D0;30D0;30CF 3099;30D0;30CF 3099;
+30D1;30D1;30CF 309A;30D1;30CF 309A;
+30D3;30D3;30D2 3099;30D3;30D2 3099;
+30D4;30D4;30D2 309A;30D4;30D2 309A;
+30D6;30D6;30D5 3099;30D6;30D5 3099;
+30D7;30D7;30D5 309A;30D7;30D5 309A;
+30D9;30D9;30D8 3099;30D9;30D8 3099;
+30DA;30DA;30D8 309A;30DA;30D8 309A;
+30DC;30DC;30DB 3099;30DC;30DB 3099;
+30DD;30DD;30DB 309A;30DD;30DB 309A;
+30F4;30F4;30A6 3099;30F4;30A6 3099;
+30F7;30F7;30EF 3099;30F7;30EF 3099;
+30F8;30F8;30F0 3099;30F8;30F0 3099;
+30F9;30F9;30F1 3099;30F9;30F1 3099;
+30FA;30FA;30F2 3099;30FA;30F2 3099;
+30FE;30FE;30FD 3099;30FE;30FD 3099;
+30FF;30FF;30FF;30B3 30C8;30B3 30C8;
+3131;3131;3131;1100;1100;
+3132;3132;3132;1101;1101;
+3133;3133;3133;11AA;11AA;
+3134;3134;3134;1102;1102;
+3135;3135;3135;11AC;11AC;
+3136;3136;3136;11AD;11AD;
+3137;3137;3137;1103;1103;
+3138;3138;3138;1104;1104;
+3139;3139;3139;1105;1105;
+313A;313A;313A;11B0;11B0;
+313B;313B;313B;11B1;11B1;
+313C;313C;313C;11B2;11B2;
+313D;313D;313D;11B3;11B3;
+313E;313E;313E;11B4;11B4;
+313F;313F;313F;11B5;11B5;
+3140;3140;3140;111A;111A;
+3141;3141;3141;1106;1106;
+3142;3142;3142;1107;1107;
+3143;3143;3143;1108;1108;
+3144;3144;3144;1121;1121;
+3145;3145;3145;1109;1109;
+3146;3146;3146;110A;110A;
+3147;3147;3147;110B;110B;
+3148;3148;3148;110C;110C;
+3149;3149;3149;110D;110D;
+314A;314A;314A;110E;110E;
+314B;314B;314B;110F;110F;
+314C;314C;314C;1110;1110;
+314D;314D;314D;1111;1111;
+314E;314E;314E;1112;1112;
+314F;314F;314F;1161;1161;
+3150;3150;3150;1162;1162;
+3151;3151;3151;1163;1163;
+3152;3152;3152;1164;1164;
+3153;3153;3153;1165;1165;
+3154;3154;3154;1166;1166;
+3155;3155;3155;1167;1167;
+3156;3156;3156;1168;1168;
+3157;3157;3157;1169;1169;
+3158;3158;3158;116A;116A;
+3159;3159;3159;116B;116B;
+315A;315A;315A;116C;116C;
+315B;315B;315B;116D;116D;
+315C;315C;315C;116E;116E;
+315D;315D;315D;116F;116F;
+315E;315E;315E;1170;1170;
+315F;315F;315F;1171;1171;
+3160;3160;3160;1172;1172;
+3161;3161;3161;1173;1173;
+3162;3162;3162;1174;1174;
+3163;3163;3163;1175;1175;
+3164;3164;3164;1160;1160;
+3165;3165;3165;1114;1114;
+3166;3166;3166;1115;1115;
+3167;3167;3167;11C7;11C7;
+3168;3168;3168;11C8;11C8;
+3169;3169;3169;11CC;11CC;
+316A;316A;316A;11CE;11CE;
+316B;316B;316B;11D3;11D3;
+316C;316C;316C;11D7;11D7;
+316D;316D;316D;11D9;11D9;
+316E;316E;316E;111C;111C;
+316F;316F;316F;11DD;11DD;
+3170;3170;3170;11DF;11DF;
+3171;3171;3171;111D;111D;
+3172;3172;3172;111E;111E;
+3173;3173;3173;1120;1120;
+3174;3174;3174;1122;1122;
+3175;3175;3175;1123;1123;
+3176;3176;3176;1127;1127;
+3177;3177;3177;1129;1129;
+3178;3178;3178;112B;112B;
+3179;3179;3179;112C;112C;
+317A;317A;317A;112D;112D;
+317B;317B;317B;112E;112E;
+317C;317C;317C;112F;112F;
+317D;317D;317D;1132;1132;
+317E;317E;317E;1136;1136;
+317F;317F;317F;1140;1140;
+3180;3180;3180;1147;1147;
+3181;3181;3181;114C;114C;
+3182;3182;3182;11F1;11F1;
+3183;3183;3183;11F2;11F2;
+3184;3184;3184;1157;1157;
+3185;3185;3185;1158;1158;
+3186;3186;3186;1159;1159;
+3187;3187;3187;1184;1184;
+3188;3188;3188;1185;1185;
+3189;3189;3189;1188;1188;
+318A;318A;318A;1191;1191;
+318B;318B;318B;1192;1192;
+318C;318C;318C;1194;1194;
+318D;318D;318D;119E;119E;
+318E;318E;318E;11A1;11A1;
+3192;3192;3192;4E00;4E00;
+3193;3193;3193;4E8C;4E8C;
+3194;3194;3194;4E09;4E09;
+3195;3195;3195;56DB;56DB;
+3196;3196;3196;4E0A;4E0A;
+3197;3197;3197;4E2D;4E2D;
+3198;3198;3198;4E0B;4E0B;
+3199;3199;3199;7532;7532;
+319A;319A;319A;4E59;4E59;
+319B;319B;319B;4E19;4E19;
+319C;319C;319C;4E01;4E01;
+319D;319D;319D;5929;5929;
+319E;319E;319E;5730;5730;
+319F;319F;319F;4EBA;4EBA;
+3200;3200;3200;0028 1100 0029;0028 1100 0029;
+3201;3201;3201;0028 1102 0029;0028 1102 0029;
+3202;3202;3202;0028 1103 0029;0028 1103 0029;
+3203;3203;3203;0028 1105 0029;0028 1105 0029;
+3204;3204;3204;0028 1106 0029;0028 1106 0029;
+3205;3205;3205;0028 1107 0029;0028 1107 0029;
+3206;3206;3206;0028 1109 0029;0028 1109 0029;
+3207;3207;3207;0028 110B 0029;0028 110B 0029;
+3208;3208;3208;0028 110C 0029;0028 110C 0029;
+3209;3209;3209;0028 110E 0029;0028 110E 0029;
+320A;320A;320A;0028 110F 0029;0028 110F 0029;
+320B;320B;320B;0028 1110 0029;0028 1110 0029;
+320C;320C;320C;0028 1111 0029;0028 1111 0029;
+320D;320D;320D;0028 1112 0029;0028 1112 0029;
+320E;320E;320E;0028 AC00 0029;0028 1100 1161 0029;
+320F;320F;320F;0028 B098 0029;0028 1102 1161 0029;
+3210;3210;3210;0028 B2E4 0029;0028 1103 1161 0029;
+3211;3211;3211;0028 B77C 0029;0028 1105 1161 0029;
+3212;3212;3212;0028 B9C8 0029;0028 1106 1161 0029;
+3213;3213;3213;0028 BC14 0029;0028 1107 1161 0029;
+3214;3214;3214;0028 C0AC 0029;0028 1109 1161 0029;
+3215;3215;3215;0028 C544 0029;0028 110B 1161 0029;
+3216;3216;3216;0028 C790 0029;0028 110C 1161 0029;
+3217;3217;3217;0028 CC28 0029;0028 110E 1161 0029;
+3218;3218;3218;0028 CE74 0029;0028 110F 1161 0029;
+3219;3219;3219;0028 D0C0 0029;0028 1110 1161 0029;
+321A;321A;321A;0028 D30C 0029;0028 1111 1161 0029;
+321B;321B;321B;0028 D558 0029;0028 1112 1161 0029;
+321C;321C;321C;0028 C8FC 0029;0028 110C 116E 0029;
+321D;321D;321D;0028 C624 C804 0029;0028 110B 1169 110C 1165 11AB 0029;
+321E;321E;321E;0028 C624 D6C4 0029;0028 110B 1169 1112 116E 0029;
+3220;3220;3220;0028 4E00 0029;0028 4E00 0029;
+3221;3221;3221;0028 4E8C 0029;0028 4E8C 0029;
+3222;3222;3222;0028 4E09 0029;0028 4E09 0029;
+3223;3223;3223;0028 56DB 0029;0028 56DB 0029;
+3224;3224;3224;0028 4E94 0029;0028 4E94 0029;
+3225;3225;3225;0028 516D 0029;0028 516D 0029;
+3226;3226;3226;0028 4E03 0029;0028 4E03 0029;
+3227;3227;3227;0028 516B 0029;0028 516B 0029;
+3228;3228;3228;0028 4E5D 0029;0028 4E5D 0029;
+3229;3229;3229;0028 5341 0029;0028 5341 0029;
+322A;322A;322A;0028 6708 0029;0028 6708 0029;
+322B;322B;322B;0028 706B 0029;0028 706B 0029;
+322C;322C;322C;0028 6C34 0029;0028 6C34 0029;
+322D;322D;322D;0028 6728 0029;0028 6728 0029;
+322E;322E;322E;0028 91D1 0029;0028 91D1 0029;
+322F;322F;322F;0028 571F 0029;0028 571F 0029;
+3230;3230;3230;0028 65E5 0029;0028 65E5 0029;
+3231;3231;3231;0028 682A 0029;0028 682A 0029;
+3232;3232;3232;0028 6709 0029;0028 6709 0029;
+3233;3233;3233;0028 793E 0029;0028 793E 0029;
+3234;3234;3234;0028 540D 0029;0028 540D 0029;
+3235;3235;3235;0028 7279 0029;0028 7279 0029;
+3236;3236;3236;0028 8CA1 0029;0028 8CA1 0029;
+3237;3237;3237;0028 795D 0029;0028 795D 0029;
+3238;3238;3238;0028 52B4 0029;0028 52B4 0029;
+3239;3239;3239;0028 4EE3 0029;0028 4EE3 0029;
+323A;323A;323A;0028 547C 0029;0028 547C 0029;
+323B;323B;323B;0028 5B66 0029;0028 5B66 0029;
+323C;323C;323C;0028 76E3 0029;0028 76E3 0029;
+323D;323D;323D;0028 4F01 0029;0028 4F01 0029;
+323E;323E;323E;0028 8CC7 0029;0028 8CC7 0029;
+323F;323F;323F;0028 5354 0029;0028 5354 0029;
+3240;3240;3240;0028 796D 0029;0028 796D 0029;
+3241;3241;3241;0028 4F11 0029;0028 4F11 0029;
+3242;3242;3242;0028 81EA 0029;0028 81EA 0029;
+3243;3243;3243;0028 81F3 0029;0028 81F3 0029;
+3250;3250;3250;0050 0054 0045;0050 0054 0045;
+3251;3251;3251;0032 0031;0032 0031;
+3252;3252;3252;0032 0032;0032 0032;
+3253;3253;3253;0032 0033;0032 0033;
+3254;3254;3254;0032 0034;0032 0034;
+3255;3255;3255;0032 0035;0032 0035;
+3256;3256;3256;0032 0036;0032 0036;
+3257;3257;3257;0032 0037;0032 0037;
+3258;3258;3258;0032 0038;0032 0038;
+3259;3259;3259;0032 0039;0032 0039;
+325A;325A;325A;0033 0030;0033 0030;
+325B;325B;325B;0033 0031;0033 0031;
+325C;325C;325C;0033 0032;0033 0032;
+325D;325D;325D;0033 0033;0033 0033;
+325E;325E;325E;0033 0034;0033 0034;
+325F;325F;325F;0033 0035;0033 0035;
+3260;3260;3260;1100;1100;
+3261;3261;3261;1102;1102;
+3262;3262;3262;1103;1103;
+3263;3263;3263;1105;1105;
+3264;3264;3264;1106;1106;
+3265;3265;3265;1107;1107;
+3266;3266;3266;1109;1109;
+3267;3267;3267;110B;110B;
+3268;3268;3268;110C;110C;
+3269;3269;3269;110E;110E;
+326A;326A;326A;110F;110F;
+326B;326B;326B;1110;1110;
+326C;326C;326C;1111;1111;
+326D;326D;326D;1112;1112;
+326E;326E;326E;AC00;1100 1161;
+326F;326F;326F;B098;1102 1161;
+3270;3270;3270;B2E4;1103 1161;
+3271;3271;3271;B77C;1105 1161;
+3272;3272;3272;B9C8;1106 1161;
+3273;3273;3273;BC14;1107 1161;
+3274;3274;3274;C0AC;1109 1161;
+3275;3275;3275;C544;110B 1161;
+3276;3276;3276;C790;110C 1161;
+3277;3277;3277;CC28;110E 1161;
+3278;3278;3278;CE74;110F 1161;
+3279;3279;3279;D0C0;1110 1161;
+327A;327A;327A;D30C;1111 1161;
+327B;327B;327B;D558;1112 1161;
+327C;327C;327C;CC38 ACE0;110E 1161 11B7 1100 1169;
+327D;327D;327D;C8FC C758;110C 116E 110B 1174;
+327E;327E;327E;C6B0;110B 116E;
+3280;3280;3280;4E00;4E00;
+3281;3281;3281;4E8C;4E8C;
+3282;3282;3282;4E09;4E09;
+3283;3283;3283;56DB;56DB;
+3284;3284;3284;4E94;4E94;
+3285;3285;3285;516D;516D;
+3286;3286;3286;4E03;4E03;
+3287;3287;3287;516B;516B;
+3288;3288;3288;4E5D;4E5D;
+3289;3289;3289;5341;5341;
+328A;328A;328A;6708;6708;
+328B;328B;328B;706B;706B;
+328C;328C;328C;6C34;6C34;
+328D;328D;328D;6728;6728;
+328E;328E;328E;91D1;91D1;
+328F;328F;328F;571F;571F;
+3290;3290;3290;65E5;65E5;
+3291;3291;3291;682A;682A;
+3292;3292;3292;6709;6709;
+3293;3293;3293;793E;793E;
+3294;3294;3294;540D;540D;
+3295;3295;3295;7279;7279;
+3296;3296;3296;8CA1;8CA1;
+3297;3297;3297;795D;795D;
+3298;3298;3298;52B4;52B4;
+3299;3299;3299;79D8;79D8;
+329A;329A;329A;7537;7537;
+329B;329B;329B;5973;5973;
+329C;329C;329C;9069;9069;
+329D;329D;329D;512A;512A;
+329E;329E;329E;5370;5370;
+329F;329F;329F;6CE8;6CE8;
+32A0;32A0;32A0;9805;9805;
+32A1;32A1;32A1;4F11;4F11;
+32A2;32A2;32A2;5199;5199;
+32A3;32A3;32A3;6B63;6B63;
+32A4;32A4;32A4;4E0A;4E0A;
+32A5;32A5;32A5;4E2D;4E2D;
+32A6;32A6;32A6;4E0B;4E0B;
+32A7;32A7;32A7;5DE6;5DE6;
+32A8;32A8;32A8;53F3;53F3;
+32A9;32A9;32A9;533B;533B;
+32AA;32AA;32AA;5B97;5B97;
+32AB;32AB;32AB;5B66;5B66;
+32AC;32AC;32AC;76E3;76E3;
+32AD;32AD;32AD;4F01;4F01;
+32AE;32AE;32AE;8CC7;8CC7;
+32AF;32AF;32AF;5354;5354;
+32B0;32B0;32B0;591C;591C;
+32B1;32B1;32B1;0033 0036;0033 0036;
+32B2;32B2;32B2;0033 0037;0033 0037;
+32B3;32B3;32B3;0033 0038;0033 0038;
+32B4;32B4;32B4;0033 0039;0033 0039;
+32B5;32B5;32B5;0034 0030;0034 0030;
+32B6;32B6;32B6;0034 0031;0034 0031;
+32B7;32B7;32B7;0034 0032;0034 0032;
+32B8;32B8;32B8;0034 0033;0034 0033;
+32B9;32B9;32B9;0034 0034;0034 0034;
+32BA;32BA;32BA;0034 0035;0034 0035;
+32BB;32BB;32BB;0034 0036;0034 0036;
+32BC;32BC;32BC;0034 0037;0034 0037;
+32BD;32BD;32BD;0034 0038;0034 0038;
+32BE;32BE;32BE;0034 0039;0034 0039;
+32BF;32BF;32BF;0035 0030;0035 0030;
+32C0;32C0;32C0;0031 6708;0031 6708;
+32C1;32C1;32C1;0032 6708;0032 6708;
+32C2;32C2;32C2;0033 6708;0033 6708;
+32C3;32C3;32C3;0034 6708;0034 6708;
+32C4;32C4;32C4;0035 6708;0035 6708;
+32C5;32C5;32C5;0036 6708;0036 6708;
+32C6;32C6;32C6;0037 6708;0037 6708;
+32C7;32C7;32C7;0038 6708;0038 6708;
+32C8;32C8;32C8;0039 6708;0039 6708;
+32C9;32C9;32C9;0031 0030 6708;0031 0030 6708;
+32CA;32CA;32CA;0031 0031 6708;0031 0031 6708;
+32CB;32CB;32CB;0031 0032 6708;0031 0032 6708;
+32CC;32CC;32CC;0048 0067;0048 0067;
+32CD;32CD;32CD;0065 0072 0067;0065 0072 0067;
+32CE;32CE;32CE;0065 0056;0065 0056;
+32CF;32CF;32CF;004C 0054 0044;004C 0054 0044;
+32D0;32D0;32D0;30A2;30A2;
+32D1;32D1;32D1;30A4;30A4;
+32D2;32D2;32D2;30A6;30A6;
+32D3;32D3;32D3;30A8;30A8;
+32D4;32D4;32D4;30AA;30AA;
+32D5;32D5;32D5;30AB;30AB;
+32D6;32D6;32D6;30AD;30AD;
+32D7;32D7;32D7;30AF;30AF;
+32D8;32D8;32D8;30B1;30B1;
+32D9;32D9;32D9;30B3;30B3;
+32DA;32DA;32DA;30B5;30B5;
+32DB;32DB;32DB;30B7;30B7;
+32DC;32DC;32DC;30B9;30B9;
+32DD;32DD;32DD;30BB;30BB;
+32DE;32DE;32DE;30BD;30BD;
+32DF;32DF;32DF;30BF;30BF;
+32E0;32E0;32E0;30C1;30C1;
+32E1;32E1;32E1;30C4;30C4;
+32E2;32E2;32E2;30C6;30C6;
+32E3;32E3;32E3;30C8;30C8;
+32E4;32E4;32E4;30CA;30CA;
+32E5;32E5;32E5;30CB;30CB;
+32E6;32E6;32E6;30CC;30CC;
+32E7;32E7;32E7;30CD;30CD;
+32E8;32E8;32E8;30CE;30CE;
+32E9;32E9;32E9;30CF;30CF;
+32EA;32EA;32EA;30D2;30D2;
+32EB;32EB;32EB;30D5;30D5;
+32EC;32EC;32EC;30D8;30D8;
+32ED;32ED;32ED;30DB;30DB;
+32EE;32EE;32EE;30DE;30DE;
+32EF;32EF;32EF;30DF;30DF;
+32F0;32F0;32F0;30E0;30E0;
+32F1;32F1;32F1;30E1;30E1;
+32F2;32F2;32F2;30E2;30E2;
+32F3;32F3;32F3;30E4;30E4;
+32F4;32F4;32F4;30E6;30E6;
+32F5;32F5;32F5;30E8;30E8;
+32F6;32F6;32F6;30E9;30E9;
+32F7;32F7;32F7;30EA;30EA;
+32F8;32F8;32F8;30EB;30EB;
+32F9;32F9;32F9;30EC;30EC;
+32FA;32FA;32FA;30ED;30ED;
+32FB;32FB;32FB;30EF;30EF;
+32FC;32FC;32FC;30F0;30F0;
+32FD;32FD;32FD;30F1;30F1;
+32FE;32FE;32FE;30F2;30F2;
+3300;3300;3300;30A2 30D1 30FC 30C8;30A2 30CF 309A 30FC 30C8;
+3301;3301;3301;30A2 30EB 30D5 30A1;30A2 30EB 30D5 30A1;
+3302;3302;3302;30A2 30F3 30DA 30A2;30A2 30F3 30D8 309A 30A2;
+3303;3303;3303;30A2 30FC 30EB;30A2 30FC 30EB;
+3304;3304;3304;30A4 30CB 30F3 30B0;30A4 30CB 30F3 30AF 3099;
+3305;3305;3305;30A4 30F3 30C1;30A4 30F3 30C1;
+3306;3306;3306;30A6 30A9 30F3;30A6 30A9 30F3;
+3307;3307;3307;30A8 30B9 30AF 30FC 30C9;30A8 30B9 30AF 30FC 30C8 3099;
+3308;3308;3308;30A8 30FC 30AB 30FC;30A8 30FC 30AB 30FC;
+3309;3309;3309;30AA 30F3 30B9;30AA 30F3 30B9;
+330A;330A;330A;30AA 30FC 30E0;30AA 30FC 30E0;
+330B;330B;330B;30AB 30A4 30EA;30AB 30A4 30EA;
+330C;330C;330C;30AB 30E9 30C3 30C8;30AB 30E9 30C3 30C8;
+330D;330D;330D;30AB 30ED 30EA 30FC;30AB 30ED 30EA 30FC;
+330E;330E;330E;30AC 30ED 30F3;30AB 3099 30ED 30F3;
+330F;330F;330F;30AC 30F3 30DE;30AB 3099 30F3 30DE;
+3310;3310;3310;30AE 30AC;30AD 3099 30AB 3099;
+3311;3311;3311;30AE 30CB 30FC;30AD 3099 30CB 30FC;
+3312;3312;3312;30AD 30E5 30EA 30FC;30AD 30E5 30EA 30FC;
+3313;3313;3313;30AE 30EB 30C0 30FC;30AD 3099 30EB 30BF 3099 30FC;
+3314;3314;3314;30AD 30ED;30AD 30ED;
+3315;3315;3315;30AD 30ED 30B0 30E9 30E0;30AD 30ED 30AF 3099 30E9 30E0;
+3316;3316;3316;30AD 30ED 30E1 30FC 30C8 30EB;30AD 30ED 30E1 30FC 30C8 30EB;
+3317;3317;3317;30AD 30ED 30EF 30C3 30C8;30AD 30ED 30EF 30C3 30C8;
+3318;3318;3318;30B0 30E9 30E0;30AF 3099 30E9 30E0;
+3319;3319;3319;30B0 30E9 30E0 30C8 30F3;30AF 3099 30E9 30E0 30C8 30F3;
+331A;331A;331A;30AF 30EB 30BC 30A4 30ED;30AF 30EB 30BB 3099 30A4 30ED;
+331B;331B;331B;30AF 30ED 30FC 30CD;30AF 30ED 30FC 30CD;
+331C;331C;331C;30B1 30FC 30B9;30B1 30FC 30B9;
+331D;331D;331D;30B3 30EB 30CA;30B3 30EB 30CA;
+331E;331E;331E;30B3 30FC 30DD;30B3 30FC 30DB 309A;
+331F;331F;331F;30B5 30A4 30AF 30EB;30B5 30A4 30AF 30EB;
+3320;3320;3320;30B5 30F3 30C1 30FC 30E0;30B5 30F3 30C1 30FC 30E0;
+3321;3321;3321;30B7 30EA 30F3 30B0;30B7 30EA 30F3 30AF 3099;
+3322;3322;3322;30BB 30F3 30C1;30BB 30F3 30C1;
+3323;3323;3323;30BB 30F3 30C8;30BB 30F3 30C8;
+3324;3324;3324;30C0 30FC 30B9;30BF 3099 30FC 30B9;
+3325;3325;3325;30C7 30B7;30C6 3099 30B7;
+3326;3326;3326;30C9 30EB;30C8 3099 30EB;
+3327;3327;3327;30C8 30F3;30C8 30F3;
+3328;3328;3328;30CA 30CE;30CA 30CE;
+3329;3329;3329;30CE 30C3 30C8;30CE 30C3 30C8;
+332A;332A;332A;30CF 30A4 30C4;30CF 30A4 30C4;
+332B;332B;332B;30D1 30FC 30BB 30F3 30C8;30CF 309A 30FC 30BB 30F3 30C8;
+332C;332C;332C;30D1 30FC 30C4;30CF 309A 30FC 30C4;
+332D;332D;332D;30D0 30FC 30EC 30EB;30CF 3099 30FC 30EC 30EB;
+332E;332E;332E;30D4 30A2 30B9 30C8 30EB;30D2 309A 30A2 30B9 30C8 30EB;
+332F;332F;332F;30D4 30AF 30EB;30D2 309A 30AF 30EB;
+3330;3330;3330;30D4 30B3;30D2 309A 30B3;
+3331;3331;3331;30D3 30EB;30D2 3099 30EB;
+3332;3332;3332;30D5 30A1 30E9 30C3 30C9;30D5 30A1 30E9 30C3 30C8 3099;
+3333;3333;3333;30D5 30A3 30FC 30C8;30D5 30A3 30FC 30C8;
+3334;3334;3334;30D6 30C3 30B7 30A7 30EB;30D5 3099 30C3 30B7 30A7 30EB;
+3335;3335;3335;30D5 30E9 30F3;30D5 30E9 30F3;
+3336;3336;3336;30D8 30AF 30BF 30FC 30EB;30D8 30AF 30BF 30FC 30EB;
+3337;3337;3337;30DA 30BD;30D8 309A 30BD;
+3338;3338;3338;30DA 30CB 30D2;30D8 309A 30CB 30D2;
+3339;3339;3339;30D8 30EB 30C4;30D8 30EB 30C4;
+333A;333A;333A;30DA 30F3 30B9;30D8 309A 30F3 30B9;
+333B;333B;333B;30DA 30FC 30B8;30D8 309A 30FC 30B7 3099;
+333C;333C;333C;30D9 30FC 30BF;30D8 3099 30FC 30BF;
+333D;333D;333D;30DD 30A4 30F3 30C8;30DB 309A 30A4 30F3 30C8;
+333E;333E;333E;30DC 30EB 30C8;30DB 3099 30EB 30C8;
+333F;333F;333F;30DB 30F3;30DB 30F3;
+3340;3340;3340;30DD 30F3 30C9;30DB 309A 30F3 30C8 3099;
+3341;3341;3341;30DB 30FC 30EB;30DB 30FC 30EB;
+3342;3342;3342;30DB 30FC 30F3;30DB 30FC 30F3;
+3343;3343;3343;30DE 30A4 30AF 30ED;30DE 30A4 30AF 30ED;
+3344;3344;3344;30DE 30A4 30EB;30DE 30A4 30EB;
+3345;3345;3345;30DE 30C3 30CF;30DE 30C3 30CF;
+3346;3346;3346;30DE 30EB 30AF;30DE 30EB 30AF;
+3347;3347;3347;30DE 30F3 30B7 30E7 30F3;30DE 30F3 30B7 30E7 30F3;
+3348;3348;3348;30DF 30AF 30ED 30F3;30DF 30AF 30ED 30F3;
+3349;3349;3349;30DF 30EA;30DF 30EA;
+334A;334A;334A;30DF 30EA 30D0 30FC 30EB;30DF 30EA 30CF 3099 30FC 30EB;
+334B;334B;334B;30E1 30AC;30E1 30AB 3099;
+334C;334C;334C;30E1 30AC 30C8 30F3;30E1 30AB 3099 30C8 30F3;
+334D;334D;334D;30E1 30FC 30C8 30EB;30E1 30FC 30C8 30EB;
+334E;334E;334E;30E4 30FC 30C9;30E4 30FC 30C8 3099;
+334F;334F;334F;30E4 30FC 30EB;30E4 30FC 30EB;
+3350;3350;3350;30E6 30A2 30F3;30E6 30A2 30F3;
+3351;3351;3351;30EA 30C3 30C8 30EB;30EA 30C3 30C8 30EB;
+3352;3352;3352;30EA 30E9;30EA 30E9;
+3353;3353;3353;30EB 30D4 30FC;30EB 30D2 309A 30FC;
+3354;3354;3354;30EB 30FC 30D6 30EB;30EB 30FC 30D5 3099 30EB;
+3355;3355;3355;30EC 30E0;30EC 30E0;
+3356;3356;3356;30EC 30F3 30C8 30B2 30F3;30EC 30F3 30C8 30B1 3099 30F3;
+3357;3357;3357;30EF 30C3 30C8;30EF 30C3 30C8;
+3358;3358;3358;0030 70B9;0030 70B9;
+3359;3359;3359;0031 70B9;0031 70B9;
+335A;335A;335A;0032 70B9;0032 70B9;
+335B;335B;335B;0033 70B9;0033 70B9;
+335C;335C;335C;0034 70B9;0034 70B9;
+335D;335D;335D;0035 70B9;0035 70B9;
+335E;335E;335E;0036 70B9;0036 70B9;
+335F;335F;335F;0037 70B9;0037 70B9;
+3360;3360;3360;0038 70B9;0038 70B9;
+3361;3361;3361;0039 70B9;0039 70B9;
+3362;3362;3362;0031 0030 70B9;0031 0030 70B9;
+3363;3363;3363;0031 0031 70B9;0031 0031 70B9;
+3364;3364;3364;0031 0032 70B9;0031 0032 70B9;
+3365;3365;3365;0031 0033 70B9;0031 0033 70B9;
+3366;3366;3366;0031 0034 70B9;0031 0034 70B9;
+3367;3367;3367;0031 0035 70B9;0031 0035 70B9;
+3368;3368;3368;0031 0036 70B9;0031 0036 70B9;
+3369;3369;3369;0031 0037 70B9;0031 0037 70B9;
+336A;336A;336A;0031 0038 70B9;0031 0038 70B9;
+336B;336B;336B;0031 0039 70B9;0031 0039 70B9;
+336C;336C;336C;0032 0030 70B9;0032 0030 70B9;
+336D;336D;336D;0032 0031 70B9;0032 0031 70B9;
+336E;336E;336E;0032 0032 70B9;0032 0032 70B9;
+336F;336F;336F;0032 0033 70B9;0032 0033 70B9;
+3370;3370;3370;0032 0034 70B9;0032 0034 70B9;
+3371;3371;3371;0068 0050 0061;0068 0050 0061;
+3372;3372;3372;0064 0061;0064 0061;
+3373;3373;3373;0041 0055;0041 0055;
+3374;3374;3374;0062 0061 0072;0062 0061 0072;
+3375;3375;3375;006F 0056;006F 0056;
+3376;3376;3376;0070 0063;0070 0063;
+3377;3377;3377;0064 006D;0064 006D;
+3378;3378;3378;0064 006D 0032;0064 006D 0032;
+3379;3379;3379;0064 006D 0033;0064 006D 0033;
+337A;337A;337A;0049 0055;0049 0055;
+337B;337B;337B;5E73 6210;5E73 6210;
+337C;337C;337C;662D 548C;662D 548C;
+337D;337D;337D;5927 6B63;5927 6B63;
+337E;337E;337E;660E 6CBB;660E 6CBB;
+337F;337F;337F;682A 5F0F 4F1A 793E;682A 5F0F 4F1A 793E;
+3380;3380;3380;0070 0041;0070 0041;
+3381;3381;3381;006E 0041;006E 0041;
+3382;3382;3382;03BC 0041;03BC 0041;
+3383;3383;3383;006D 0041;006D 0041;
+3384;3384;3384;006B 0041;006B 0041;
+3385;3385;3385;004B 0042;004B 0042;
+3386;3386;3386;004D 0042;004D 0042;
+3387;3387;3387;0047 0042;0047 0042;
+3388;3388;3388;0063 0061 006C;0063 0061 006C;
+3389;3389;3389;006B 0063 0061 006C;006B 0063 0061 006C;
+338A;338A;338A;0070 0046;0070 0046;
+338B;338B;338B;006E 0046;006E 0046;
+338C;338C;338C;03BC 0046;03BC 0046;
+338D;338D;338D;03BC 0067;03BC 0067;
+338E;338E;338E;006D 0067;006D 0067;
+338F;338F;338F;006B 0067;006B 0067;
+3390;3390;3390;0048 007A;0048 007A;
+3391;3391;3391;006B 0048 007A;006B 0048 007A;
+3392;3392;3392;004D 0048 007A;004D 0048 007A;
+3393;3393;3393;0047 0048 007A;0047 0048 007A;
+3394;3394;3394;0054 0048 007A;0054 0048 007A;
+3395;3395;3395;03BC 006C;03BC 006C;
+3396;3396;3396;006D 006C;006D 006C;
+3397;3397;3397;0064 006C;0064 006C;
+3398;3398;3398;006B 006C;006B 006C;
+3399;3399;3399;0066 006D;0066 006D;
+339A;339A;339A;006E 006D;006E 006D;
+339B;339B;339B;03BC 006D;03BC 006D;
+339C;339C;339C;006D 006D;006D 006D;
+339D;339D;339D;0063 006D;0063 006D;
+339E;339E;339E;006B 006D;006B 006D;
+339F;339F;339F;006D 006D 0032;006D 006D 0032;
+33A0;33A0;33A0;0063 006D 0032;0063 006D 0032;
+33A1;33A1;33A1;006D 0032;006D 0032;
+33A2;33A2;33A2;006B 006D 0032;006B 006D 0032;
+33A3;33A3;33A3;006D 006D 0033;006D 006D 0033;
+33A4;33A4;33A4;0063 006D 0033;0063 006D 0033;
+33A5;33A5;33A5;006D 0033;006D 0033;
+33A6;33A6;33A6;006B 006D 0033;006B 006D 0033;
+33A7;33A7;33A7;006D 2215 0073;006D 2215 0073;
+33A8;33A8;33A8;006D 2215 0073 0032;006D 2215 0073 0032;
+33A9;33A9;33A9;0050 0061;0050 0061;
+33AA;33AA;33AA;006B 0050 0061;006B 0050 0061;
+33AB;33AB;33AB;004D 0050 0061;004D 0050 0061;
+33AC;33AC;33AC;0047 0050 0061;0047 0050 0061;
+33AD;33AD;33AD;0072 0061 0064;0072 0061 0064;
+33AE;33AE;33AE;0072 0061 0064 2215 0073;0072 0061 0064 2215 0073;
+33AF;33AF;33AF;0072 0061 0064 2215 0073 0032;0072 0061 0064 2215 0073 0032;
+33B0;33B0;33B0;0070 0073;0070 0073;
+33B1;33B1;33B1;006E 0073;006E 0073;
+33B2;33B2;33B2;03BC 0073;03BC 0073;
+33B3;33B3;33B3;006D 0073;006D 0073;
+33B4;33B4;33B4;0070 0056;0070 0056;
+33B5;33B5;33B5;006E 0056;006E 0056;
+33B6;33B6;33B6;03BC 0056;03BC 0056;
+33B7;33B7;33B7;006D 0056;006D 0056;
+33B8;33B8;33B8;006B 0056;006B 0056;
+33B9;33B9;33B9;004D 0056;004D 0056;
+33BA;33BA;33BA;0070 0057;0070 0057;
+33BB;33BB;33BB;006E 0057;006E 0057;
+33BC;33BC;33BC;03BC 0057;03BC 0057;
+33BD;33BD;33BD;006D 0057;006D 0057;
+33BE;33BE;33BE;006B 0057;006B 0057;
+33BF;33BF;33BF;004D 0057;004D 0057;
+33C0;33C0;33C0;006B 03A9;006B 03A9;
+33C1;33C1;33C1;004D 03A9;004D 03A9;
+33C2;33C2;33C2;0061 002E 006D 002E;0061 002E 006D 002E;
+33C3;33C3;33C3;0042 0071;0042 0071;
+33C4;33C4;33C4;0063 0063;0063 0063;
+33C5;33C5;33C5;0063 0064;0063 0064;
+33C6;33C6;33C6;0043 2215 006B 0067;0043 2215 006B 0067;
+33C7;33C7;33C7;0043 006F 002E;0043 006F 002E;
+33C8;33C8;33C8;0064 0042;0064 0042;
+33C9;33C9;33C9;0047 0079;0047 0079;
+33CA;33CA;33CA;0068 0061;0068 0061;
+33CB;33CB;33CB;0048 0050;0048 0050;
+33CC;33CC;33CC;0069 006E;0069 006E;
+33CD;33CD;33CD;004B 004B;004B 004B;
+33CE;33CE;33CE;004B 004D;004B 004D;
+33CF;33CF;33CF;006B 0074;006B 0074;
+33D0;33D0;33D0;006C 006D;006C 006D;
+33D1;33D1;33D1;006C 006E;006C 006E;
+33D2;33D2;33D2;006C 006F 0067;006C 006F 0067;
+33D3;33D3;33D3;006C 0078;006C 0078;
+33D4;33D4;33D4;006D 0062;006D 0062;
+33D5;33D5;33D5;006D 0069 006C;006D 0069 006C;
+33D6;33D6;33D6;006D 006F 006C;006D 006F 006C;
+33D7;33D7;33D7;0050 0048;0050 0048;
+33D8;33D8;33D8;0070 002E 006D 002E;0070 002E 006D 002E;
+33D9;33D9;33D9;0050 0050 004D;0050 0050 004D;
+33DA;33DA;33DA;0050 0052;0050 0052;
+33DB;33DB;33DB;0073 0072;0073 0072;
+33DC;33DC;33DC;0053 0076;0053 0076;
+33DD;33DD;33DD;0057 0062;0057 0062;
+33DE;33DE;33DE;0056 2215 006D;0056 2215 006D;
+33DF;33DF;33DF;0041 2215 006D;0041 2215 006D;
+33E0;33E0;33E0;0031 65E5;0031 65E5;
+33E1;33E1;33E1;0032 65E5;0032 65E5;
+33E2;33E2;33E2;0033 65E5;0033 65E5;
+33E3;33E3;33E3;0034 65E5;0034 65E5;
+33E4;33E4;33E4;0035 65E5;0035 65E5;
+33E5;33E5;33E5;0036 65E5;0036 65E5;
+33E6;33E6;33E6;0037 65E5;0037 65E5;
+33E7;33E7;33E7;0038 65E5;0038 65E5;
+33E8;33E8;33E8;0039 65E5;0039 65E5;
+33E9;33E9;33E9;0031 0030 65E5;0031 0030 65E5;
+33EA;33EA;33EA;0031 0031 65E5;0031 0031 65E5;
+33EB;33EB;33EB;0031 0032 65E5;0031 0032 65E5;
+33EC;33EC;33EC;0031 0033 65E5;0031 0033 65E5;
+33ED;33ED;33ED;0031 0034 65E5;0031 0034 65E5;
+33EE;33EE;33EE;0031 0035 65E5;0031 0035 65E5;
+33EF;33EF;33EF;0031 0036 65E5;0031 0036 65E5;
+33F0;33F0;33F0;0031 0037 65E5;0031 0037 65E5;
+33F1;33F1;33F1;0031 0038 65E5;0031 0038 65E5;
+33F2;33F2;33F2;0031 0039 65E5;0031 0039 65E5;
+33F3;33F3;33F3;0032 0030 65E5;0032 0030 65E5;
+33F4;33F4;33F4;0032 0031 65E5;0032 0031 65E5;
+33F5;33F5;33F5;0032 0032 65E5;0032 0032 65E5;
+33F6;33F6;33F6;0032 0033 65E5;0032 0033 65E5;
+33F7;33F7;33F7;0032 0034 65E5;0032 0034 65E5;
+33F8;33F8;33F8;0032 0035 65E5;0032 0035 65E5;
+33F9;33F9;33F9;0032 0036 65E5;0032 0036 65E5;
+33FA;33FA;33FA;0032 0037 65E5;0032 0037 65E5;
+33FB;33FB;33FB;0032 0038 65E5;0032 0038 65E5;
+33FC;33FC;33FC;0032 0039 65E5;0032 0039 65E5;
+33FD;33FD;33FD;0033 0030 65E5;0033 0030 65E5;
+33FE;33FE;33FE;0033 0031 65E5;0033 0031 65E5;
+33FF;33FF;33FF;0067 0061 006C;0067 0061 006C;
+A770;A770;A770;A76F;A76F;
+AC00;AC00;1100 1161;AC00;1100 1161;
+AC01;AC01;1100 1161 11A8;AC01;1100 1161 11A8;
+AC02;AC02;1100 1161 11A9;AC02;1100 1161 11A9;
+AC03;AC03;1100 1161 11AA;AC03;1100 1161 11AA;
+AC04;AC04;1100 1161 11AB;AC04;1100 1161 11AB;
+AC05;AC05;1100 1161 11AC;AC05;1100 1161 11AC;
+AC06;AC06;1100 1161 11AD;AC06;1100 1161 11AD;
+AC07;AC07;1100 1161 11AE;AC07;1100 1161 11AE;
+AC08;AC08;1100 1161 11AF;AC08;1100 1161 11AF;
+AC09;AC09;1100 1161 11B0;AC09;1100 1161 11B0;
+AC0A;AC0A;1100 1161 11B1;AC0A;1100 1161 11B1;
+AC0B;AC0B;1100 1161 11B2;AC0B;1100 1161 11B2;
+AC0C;AC0C;1100 1161 11B3;AC0C;1100 1161 11B3;
+AC0D;AC0D;1100 1161 11B4;AC0D;1100 1161 11B4;
+AC0E;AC0E;1100 1161 11B5;AC0E;1100 1161 11B5;
+AC0F;AC0F;1100 1161 11B6;AC0F;1100 1161 11B6;
+AC10;AC10;1100 1161 11B7;AC10;1100 1161 11B7;
+AC11;AC11;1100 1161 11B8;AC11;1100 1161 11B8;
+AC12;AC12;1100 1161 11B9;AC12;1100 1161 11B9;
+AC13;AC13;1100 1161 11BA;AC13;1100 1161 11BA;
+AC14;AC14;1100 1161 11BB;AC14;1100 1161 11BB;
+AC15;AC15;1100 1161 11BC;AC15;1100 1161 11BC;
+AC16;AC16;1100 1161 11BD;AC16;1100 1161 11BD;
+AC17;AC17;1100 1161 11BE;AC17;1100 1161 11BE;
+AC18;AC18;1100 1161 11BF;AC18;1100 1161 11BF;
+AC19;AC19;1100 1161 11C0;AC19;1100 1161 11C0;
+AC1A;AC1A;1100 1161 11C1;AC1A;1100 1161 11C1;
+AC1B;AC1B;1100 1161 11C2;AC1B;1100 1161 11C2;
+AC1C;AC1C;1100 1162;AC1C;1100 1162;
+AC1D;AC1D;1100 1162 11A8;AC1D;1100 1162 11A8;
+AC1E;AC1E;1100 1162 11A9;AC1E;1100 1162 11A9;
+AC1F;AC1F;1100 1162 11AA;AC1F;1100 1162 11AA;
+AC20;AC20;1100 1162 11AB;AC20;1100 1162 11AB;
+AC21;AC21;1100 1162 11AC;AC21;1100 1162 11AC;
+AC22;AC22;1100 1162 11AD;AC22;1100 1162 11AD;
+AC23;AC23;1100 1162 11AE;AC23;1100 1162 11AE;
+AC24;AC24;1100 1162 11AF;AC24;1100 1162 11AF;
+AC25;AC25;1100 1162 11B0;AC25;1100 1162 11B0;
+AC26;AC26;1100 1162 11B1;AC26;1100 1162 11B1;
+AC27;AC27;1100 1162 11B2;AC27;1100 1162 11B2;
+AC28;AC28;1100 1162 11B3;AC28;1100 1162 11B3;
+AC29;AC29;1100 1162 11B4;AC29;1100 1162 11B4;
+AC2A;AC2A;1100 1162 11B5;AC2A;1100 1162 11B5;
+AC2B;AC2B;1100 1162 11B6;AC2B;1100 1162 11B6;
+AC2C;AC2C;1100 1162 11B7;AC2C;1100 1162 11B7;
+AC2D;AC2D;1100 1162 11B8;AC2D;1100 1162 11B8;
+AC2E;AC2E;1100 1162 11B9;AC2E;1100 1162 11B9;
+AC2F;AC2F;1100 1162 11BA;AC2F;1100 1162 11BA;
+AC30;AC30;1100 1162 11BB;AC30;1100 1162 11BB;
+AC31;AC31;1100 1162 11BC;AC31;1100 1162 11BC;
+AC32;AC32;1100 1162 11BD;AC32;1100 1162 11BD;
+AC33;AC33;1100 1162 11BE;AC33;1100 1162 11BE;
+AC34;AC34;1100 1162 11BF;AC34;1100 1162 11BF;
+AC35;AC35;1100 1162 11C0;AC35;1100 1162 11C0;
+AC36;AC36;1100 1162 11C1;AC36;1100 1162 11C1;
+AC37;AC37;1100 1162 11C2;AC37;1100 1162 11C2;
+AC38;AC38;1100 1163;AC38;1100 1163;
+AC39;AC39;1100 1163 11A8;AC39;1100 1163 11A8;
+AC3A;AC3A;1100 1163 11A9;AC3A;1100 1163 11A9;
+AC3B;AC3B;1100 1163 11AA;AC3B;1100 1163 11AA;
+AC3C;AC3C;1100 1163 11AB;AC3C;1100 1163 11AB;
+AC3D;AC3D;1100 1163 11AC;AC3D;1100 1163 11AC;
+AC3E;AC3E;1100 1163 11AD;AC3E;1100 1163 11AD;
+AC3F;AC3F;1100 1163 11AE;AC3F;1100 1163 11AE;
+AC40;AC40;1100 1163 11AF;AC40;1100 1163 11AF;
+AC41;AC41;1100 1163 11B0;AC41;1100 1163 11B0;
+AC42;AC42;1100 1163 11B1;AC42;1100 1163 11B1;
+AC43;AC43;1100 1163 11B2;AC43;1100 1163 11B2;
+AC44;AC44;1100 1163 11B3;AC44;1100 1163 11B3;
+AC45;AC45;1100 1163 11B4;AC45;1100 1163 11B4;
+AC46;AC46;1100 1163 11B5;AC46;1100 1163 11B5;
+AC47;AC47;1100 1163 11B6;AC47;1100 1163 11B6;
+AC48;AC48;1100 1163 11B7;AC48;1100 1163 11B7;
+AC49;AC49;1100 1163 11B8;AC49;1100 1163 11B8;
+AC4A;AC4A;1100 1163 11B9;AC4A;1100 1163 11B9;
+AC4B;AC4B;1100 1163 11BA;AC4B;1100 1163 11BA;
+AC4C;AC4C;1100 1163 11BB;AC4C;1100 1163 11BB;
+AC4D;AC4D;1100 1163 11BC;AC4D;1100 1163 11BC;
+AC4E;AC4E;1100 1163 11BD;AC4E;1100 1163 11BD;
+AC4F;AC4F;1100 1163 11BE;AC4F;1100 1163 11BE;
+AC50;AC50;1100 1163 11BF;AC50;1100 1163 11BF;
+AC51;AC51;1100 1163 11C0;AC51;1100 1163 11C0;
+AC52;AC52;1100 1163 11C1;AC52;1100 1163 11C1;
+AC53;AC53;1100 1163 11C2;AC53;1100 1163 11C2;
+AC54;AC54;1100 1164;AC54;1100 1164;
+AC55;AC55;1100 1164 11A8;AC55;1100 1164 11A8;
+AC56;AC56;1100 1164 11A9;AC56;1100 1164 11A9;
+AC57;AC57;1100 1164 11AA;AC57;1100 1164 11AA;
+AC58;AC58;1100 1164 11AB;AC58;1100 1164 11AB;
+AC59;AC59;1100 1164 11AC;AC59;1100 1164 11AC;
+AC5A;AC5A;1100 1164 11AD;AC5A;1100 1164 11AD;
+AC5B;AC5B;1100 1164 11AE;AC5B;1100 1164 11AE;
+AC5C;AC5C;1100 1164 11AF;AC5C;1100 1164 11AF;
+AC5D;AC5D;1100 1164 11B0;AC5D;1100 1164 11B0;
+AC5E;AC5E;1100 1164 11B1;AC5E;1100 1164 11B1;
+AC5F;AC5F;1100 1164 11B2;AC5F;1100 1164 11B2;
+AC60;AC60;1100 1164 11B3;AC60;1100 1164 11B3;
+AC61;AC61;1100 1164 11B4;AC61;1100 1164 11B4;
+AC62;AC62;1100 1164 11B5;AC62;1100 1164 11B5;
+AC63;AC63;1100 1164 11B6;AC63;1100 1164 11B6;
+AC64;AC64;1100 1164 11B7;AC64;1100 1164 11B7;
+AC65;AC65;1100 1164 11B8;AC65;1100 1164 11B8;
+AC66;AC66;1100 1164 11B9;AC66;1100 1164 11B9;
+AC67;AC67;1100 1164 11BA;AC67;1100 1164 11BA;
+AC68;AC68;1100 1164 11BB;AC68;1100 1164 11BB;
+AC69;AC69;1100 1164 11BC;AC69;1100 1164 11BC;
+AC6A;AC6A;1100 1164 11BD;AC6A;1100 1164 11BD;
+AC6B;AC6B;1100 1164 11BE;AC6B;1100 1164 11BE;
+AC6C;AC6C;1100 1164 11BF;AC6C;1100 1164 11BF;
+AC6D;AC6D;1100 1164 11C0;AC6D;1100 1164 11C0;
+AC6E;AC6E;1100 1164 11C1;AC6E;1100 1164 11C1;
+AC6F;AC6F;1100 1164 11C2;AC6F;1100 1164 11C2;
+AC70;AC70;1100 1165;AC70;1100 1165;
+AC71;AC71;1100 1165 11A8;AC71;1100 1165 11A8;
+AC72;AC72;1100 1165 11A9;AC72;1100 1165 11A9;
+AC73;AC73;1100 1165 11AA;AC73;1100 1165 11AA;
+AC74;AC74;1100 1165 11AB;AC74;1100 1165 11AB;
+AC75;AC75;1100 1165 11AC;AC75;1100 1165 11AC;
+AC76;AC76;1100 1165 11AD;AC76;1100 1165 11AD;
+AC77;AC77;1100 1165 11AE;AC77;1100 1165 11AE;
+AC78;AC78;1100 1165 11AF;AC78;1100 1165 11AF;
+AC79;AC79;1100 1165 11B0;AC79;1100 1165 11B0;
+AC7A;AC7A;1100 1165 11B1;AC7A;1100 1165 11B1;
+AC7B;AC7B;1100 1165 11B2;AC7B;1100 1165 11B2;
+AC7C;AC7C;1100 1165 11B3;AC7C;1100 1165 11B3;
+AC7D;AC7D;1100 1165 11B4;AC7D;1100 1165 11B4;
+AC7E;AC7E;1100 1165 11B5;AC7E;1100 1165 11B5;
+AC7F;AC7F;1100 1165 11B6;AC7F;1100 1165 11B6;
+AC80;AC80;1100 1165 11B7;AC80;1100 1165 11B7;
+AC81;AC81;1100 1165 11B8;AC81;1100 1165 11B8;
+AC82;AC82;1100 1165 11B9;AC82;1100 1165 11B9;
+AC83;AC83;1100 1165 11BA;AC83;1100 1165 11BA;
+AC84;AC84;1100 1165 11BB;AC84;1100 1165 11BB;
+AC85;AC85;1100 1165 11BC;AC85;1100 1165 11BC;
+AC86;AC86;1100 1165 11BD;AC86;1100 1165 11BD;
+AC87;AC87;1100 1165 11BE;AC87;1100 1165 11BE;
+AC88;AC88;1100 1165 11BF;AC88;1100 1165 11BF;
+AC89;AC89;1100 1165 11C0;AC89;1100 1165 11C0;
+AC8A;AC8A;1100 1165 11C1;AC8A;1100 1165 11C1;
+AC8B;AC8B;1100 1165 11C2;AC8B;1100 1165 11C2;
+AC8C;AC8C;1100 1166;AC8C;1100 1166;
+AC8D;AC8D;1100 1166 11A8;AC8D;1100 1166 11A8;
+AC8E;AC8E;1100 1166 11A9;AC8E;1100 1166 11A9;
+AC8F;AC8F;1100 1166 11AA;AC8F;1100 1166 11AA;
+AC90;AC90;1100 1166 11AB;AC90;1100 1166 11AB;
+AC91;AC91;1100 1166 11AC;AC91;1100 1166 11AC;
+AC92;AC92;1100 1166 11AD;AC92;1100 1166 11AD;
+AC93;AC93;1100 1166 11AE;AC93;1100 1166 11AE;
+AC94;AC94;1100 1166 11AF;AC94;1100 1166 11AF;
+AC95;AC95;1100 1166 11B0;AC95;1100 1166 11B0;
+AC96;AC96;1100 1166 11B1;AC96;1100 1166 11B1;
+AC97;AC97;1100 1166 11B2;AC97;1100 1166 11B2;
+AC98;AC98;1100 1166 11B3;AC98;1100 1166 11B3;
+AC99;AC99;1100 1166 11B4;AC99;1100 1166 11B4;
+AC9A;AC9A;1100 1166 11B5;AC9A;1100 1166 11B5;
+AC9B;AC9B;1100 1166 11B6;AC9B;1100 1166 11B6;
+AC9C;AC9C;1100 1166 11B7;AC9C;1100 1166 11B7;
+AC9D;AC9D;1100 1166 11B8;AC9D;1100 1166 11B8;
+AC9E;AC9E;1100 1166 11B9;AC9E;1100 1166 11B9;
+AC9F;AC9F;1100 1166 11BA;AC9F;1100 1166 11BA;
+ACA0;ACA0;1100 1166 11BB;ACA0;1100 1166 11BB;
+ACA1;ACA1;1100 1166 11BC;ACA1;1100 1166 11BC;
+ACA2;ACA2;1100 1166 11BD;ACA2;1100 1166 11BD;
+ACA3;ACA3;1100 1166 11BE;ACA3;1100 1166 11BE;
+ACA4;ACA4;1100 1166 11BF;ACA4;1100 1166 11BF;
+ACA5;ACA5;1100 1166 11C0;ACA5;1100 1166 11C0;
+ACA6;ACA6;1100 1166 11C1;ACA6;1100 1166 11C1;
+ACA7;ACA7;1100 1166 11C2;ACA7;1100 1166 11C2;
+ACA8;ACA8;1100 1167;ACA8;1100 1167;
+ACA9;ACA9;1100 1167 11A8;ACA9;1100 1167 11A8;
+ACAA;ACAA;1100 1167 11A9;ACAA;1100 1167 11A9;
+ACAB;ACAB;1100 1167 11AA;ACAB;1100 1167 11AA;
+ACAC;ACAC;1100 1167 11AB;ACAC;1100 1167 11AB;
+ACAD;ACAD;1100 1167 11AC;ACAD;1100 1167 11AC;
+ACAE;ACAE;1100 1167 11AD;ACAE;1100 1167 11AD;
+ACAF;ACAF;1100 1167 11AE;ACAF;1100 1167 11AE;
+ACB0;ACB0;1100 1167 11AF;ACB0;1100 1167 11AF;
+ACB1;ACB1;1100 1167 11B0;ACB1;1100 1167 11B0;
+ACB2;ACB2;1100 1167 11B1;ACB2;1100 1167 11B1;
+ACB3;ACB3;1100 1167 11B2;ACB3;1100 1167 11B2;
+ACB4;ACB4;1100 1167 11B3;ACB4;1100 1167 11B3;
+ACB5;ACB5;1100 1167 11B4;ACB5;1100 1167 11B4;
+ACB6;ACB6;1100 1167 11B5;ACB6;1100 1167 11B5;
+ACB7;ACB7;1100 1167 11B6;ACB7;1100 1167 11B6;
+ACB8;ACB8;1100 1167 11B7;ACB8;1100 1167 11B7;
+ACB9;ACB9;1100 1167 11B8;ACB9;1100 1167 11B8;
+ACBA;ACBA;1100 1167 11B9;ACBA;1100 1167 11B9;
+ACBB;ACBB;1100 1167 11BA;ACBB;1100 1167 11BA;
+ACBC;ACBC;1100 1167 11BB;ACBC;1100 1167 11BB;
+ACBD;ACBD;1100 1167 11BC;ACBD;1100 1167 11BC;
+ACBE;ACBE;1100 1167 11BD;ACBE;1100 1167 11BD;
+ACBF;ACBF;1100 1167 11BE;ACBF;1100 1167 11BE;
+ACC0;ACC0;1100 1167 11BF;ACC0;1100 1167 11BF;
+ACC1;ACC1;1100 1167 11C0;ACC1;1100 1167 11C0;
+ACC2;ACC2;1100 1167 11C1;ACC2;1100 1167 11C1;
+ACC3;ACC3;1100 1167 11C2;ACC3;1100 1167 11C2;
+ACC4;ACC4;1100 1168;ACC4;1100 1168;
+ACC5;ACC5;1100 1168 11A8;ACC5;1100 1168 11A8;
+ACC6;ACC6;1100 1168 11A9;ACC6;1100 1168 11A9;
+ACC7;ACC7;1100 1168 11AA;ACC7;1100 1168 11AA;
+ACC8;ACC8;1100 1168 11AB;ACC8;1100 1168 11AB;
+ACC9;ACC9;1100 1168 11AC;ACC9;1100 1168 11AC;
+ACCA;ACCA;1100 1168 11AD;ACCA;1100 1168 11AD;
+ACCB;ACCB;1100 1168 11AE;ACCB;1100 1168 11AE;
+ACCC;ACCC;1100 1168 11AF;ACCC;1100 1168 11AF;
+ACCD;ACCD;1100 1168 11B0;ACCD;1100 1168 11B0;
+ACCE;ACCE;1100 1168 11B1;ACCE;1100 1168 11B1;
+ACCF;ACCF;1100 1168 11B2;ACCF;1100 1168 11B2;
+ACD0;ACD0;1100 1168 11B3;ACD0;1100 1168 11B3;
+ACD1;ACD1;1100 1168 11B4;ACD1;1100 1168 11B4;
+ACD2;ACD2;1100 1168 11B5;ACD2;1100 1168 11B5;
+ACD3;ACD3;1100 1168 11B6;ACD3;1100 1168 11B6;
+ACD4;ACD4;1100 1168 11B7;ACD4;1100 1168 11B7;
+ACD5;ACD5;1100 1168 11B8;ACD5;1100 1168 11B8;
+ACD6;ACD6;1100 1168 11B9;ACD6;1100 1168 11B9;
+ACD7;ACD7;1100 1168 11BA;ACD7;1100 1168 11BA;
+ACD8;ACD8;1100 1168 11BB;ACD8;1100 1168 11BB;
+ACD9;ACD9;1100 1168 11BC;ACD9;1100 1168 11BC;
+ACDA;ACDA;1100 1168 11BD;ACDA;1100 1168 11BD;
+ACDB;ACDB;1100 1168 11BE;ACDB;1100 1168 11BE;
+ACDC;ACDC;1100 1168 11BF;ACDC;1100 1168 11BF;
+ACDD;ACDD;1100 1168 11C0;ACDD;1100 1168 11C0;
+ACDE;ACDE;1100 1168 11C1;ACDE;1100 1168 11C1;
+ACDF;ACDF;1100 1168 11C2;ACDF;1100 1168 11C2;
+ACE0;ACE0;1100 1169;ACE0;1100 1169;
+ACE1;ACE1;1100 1169 11A8;ACE1;1100 1169 11A8;
+ACE2;ACE2;1100 1169 11A9;ACE2;1100 1169 11A9;
+ACE3;ACE3;1100 1169 11AA;ACE3;1100 1169 11AA;
+ACE4;ACE4;1100 1169 11AB;ACE4;1100 1169 11AB;
+ACE5;ACE5;1100 1169 11AC;ACE5;1100 1169 11AC;
+ACE6;ACE6;1100 1169 11AD;ACE6;1100 1169 11AD;
+ACE7;ACE7;1100 1169 11AE;ACE7;1100 1169 11AE;
+ACE8;ACE8;1100 1169 11AF;ACE8;1100 1169 11AF;
+ACE9;ACE9;1100 1169 11B0;ACE9;1100 1169 11B0;
+ACEA;ACEA;1100 1169 11B1;ACEA;1100 1169 11B1;
+ACEB;ACEB;1100 1169 11B2;ACEB;1100 1169 11B2;
+ACEC;ACEC;1100 1169 11B3;ACEC;1100 1169 11B3;
+ACED;ACED;1100 1169 11B4;ACED;1100 1169 11B4;
+ACEE;ACEE;1100 1169 11B5;ACEE;1100 1169 11B5;
+ACEF;ACEF;1100 1169 11B6;ACEF;1100 1169 11B6;
+ACF0;ACF0;1100 1169 11B7;ACF0;1100 1169 11B7;
+ACF1;ACF1;1100 1169 11B8;ACF1;1100 1169 11B8;
+ACF2;ACF2;1100 1169 11B9;ACF2;1100 1169 11B9;
+ACF3;ACF3;1100 1169 11BA;ACF3;1100 1169 11BA;
+ACF4;ACF4;1100 1169 11BB;ACF4;1100 1169 11BB;
+ACF5;ACF5;1100 1169 11BC;ACF5;1100 1169 11BC;
+ACF6;ACF6;1100 1169 11BD;ACF6;1100 1169 11BD;
+ACF7;ACF7;1100 1169 11BE;ACF7;1100 1169 11BE;
+ACF8;ACF8;1100 1169 11BF;ACF8;1100 1169 11BF;
+ACF9;ACF9;1100 1169 11C0;ACF9;1100 1169 11C0;
+ACFA;ACFA;1100 1169 11C1;ACFA;1100 1169 11C1;
+ACFB;ACFB;1100 1169 11C2;ACFB;1100 1169 11C2;
+ACFC;ACFC;1100 116A;ACFC;1100 116A;
+ACFD;ACFD;1100 116A 11A8;ACFD;1100 116A 11A8;
+ACFE;ACFE;1100 116A 11A9;ACFE;1100 116A 11A9;
+ACFF;ACFF;1100 116A 11AA;ACFF;1100 116A 11AA;
+AD00;AD00;1100 116A 11AB;AD00;1100 116A 11AB;
+AD01;AD01;1100 116A 11AC;AD01;1100 116A 11AC;
+AD02;AD02;1100 116A 11AD;AD02;1100 116A 11AD;
+AD03;AD03;1100 116A 11AE;AD03;1100 116A 11AE;
+AD04;AD04;1100 116A 11AF;AD04;1100 116A 11AF;
+AD05;AD05;1100 116A 11B0;AD05;1100 116A 11B0;
+AD06;AD06;1100 116A 11B1;AD06;1100 116A 11B1;
+AD07;AD07;1100 116A 11B2;AD07;1100 116A 11B2;
+AD08;AD08;1100 116A 11B3;AD08;1100 116A 11B3;
+AD09;AD09;1100 116A 11B4;AD09;1100 116A 11B4;
+AD0A;AD0A;1100 116A 11B5;AD0A;1100 116A 11B5;
+AD0B;AD0B;1100 116A 11B6;AD0B;1100 116A 11B6;
+AD0C;AD0C;1100 116A 11B7;AD0C;1100 116A 11B7;
+AD0D;AD0D;1100 116A 11B8;AD0D;1100 116A 11B8;
+AD0E;AD0E;1100 116A 11B9;AD0E;1100 116A 11B9;
+AD0F;AD0F;1100 116A 11BA;AD0F;1100 116A 11BA;
+AD10;AD10;1100 116A 11BB;AD10;1100 116A 11BB;
+AD11;AD11;1100 116A 11BC;AD11;1100 116A 11BC;
+AD12;AD12;1100 116A 11BD;AD12;1100 116A 11BD;
+AD13;AD13;1100 116A 11BE;AD13;1100 116A 11BE;
+AD14;AD14;1100 116A 11BF;AD14;1100 116A 11BF;
+AD15;AD15;1100 116A 11C0;AD15;1100 116A 11C0;
+AD16;AD16;1100 116A 11C1;AD16;1100 116A 11C1;
+AD17;AD17;1100 116A 11C2;AD17;1100 116A 11C2;
+AD18;AD18;1100 116B;AD18;1100 116B;
+AD19;AD19;1100 116B 11A8;AD19;1100 116B 11A8;
+AD1A;AD1A;1100 116B 11A9;AD1A;1100 116B 11A9;
+AD1B;AD1B;1100 116B 11AA;AD1B;1100 116B 11AA;
+AD1C;AD1C;1100 116B 11AB;AD1C;1100 116B 11AB;
+AD1D;AD1D;1100 116B 11AC;AD1D;1100 116B 11AC;
+AD1E;AD1E;1100 116B 11AD;AD1E;1100 116B 11AD;
+AD1F;AD1F;1100 116B 11AE;AD1F;1100 116B 11AE;
+AD20;AD20;1100 116B 11AF;AD20;1100 116B 11AF;
+AD21;AD21;1100 116B 11B0;AD21;1100 116B 11B0;
+AD22;AD22;1100 116B 11B1;AD22;1100 116B 11B1;
+AD23;AD23;1100 116B 11B2;AD23;1100 116B 11B2;
+AD24;AD24;1100 116B 11B3;AD24;1100 116B 11B3;
+AD25;AD25;1100 116B 11B4;AD25;1100 116B 11B4;
+AD26;AD26;1100 116B 11B5;AD26;1100 116B 11B5;
+AD27;AD27;1100 116B 11B6;AD27;1100 116B 11B6;
+AD28;AD28;1100 116B 11B7;AD28;1100 116B 11B7;
+AD29;AD29;1100 116B 11B8;AD29;1100 116B 11B8;
+AD2A;AD2A;1100 116B 11B9;AD2A;1100 116B 11B9;
+AD2B;AD2B;1100 116B 11BA;AD2B;1100 116B 11BA;
+AD2C;AD2C;1100 116B 11BB;AD2C;1100 116B 11BB;
+AD2D;AD2D;1100 116B 11BC;AD2D;1100 116B 11BC;
+AD2E;AD2E;1100 116B 11BD;AD2E;1100 116B 11BD;
+AD2F;AD2F;1100 116B 11BE;AD2F;1100 116B 11BE;
+AD30;AD30;1100 116B 11BF;AD30;1100 116B 11BF;
+AD31;AD31;1100 116B 11C0;AD31;1100 116B 11C0;
+AD32;AD32;1100 116B 11C1;AD32;1100 116B 11C1;
+AD33;AD33;1100 116B 11C2;AD33;1100 116B 11C2;
+AD34;AD34;1100 116C;AD34;1100 116C;
+AD35;AD35;1100 116C 11A8;AD35;1100 116C 11A8;
+AD36;AD36;1100 116C 11A9;AD36;1100 116C 11A9;
+AD37;AD37;1100 116C 11AA;AD37;1100 116C 11AA;
+AD38;AD38;1100 116C 11AB;AD38;1100 116C 11AB;
+AD39;AD39;1100 116C 11AC;AD39;1100 116C 11AC;
+AD3A;AD3A;1100 116C 11AD;AD3A;1100 116C 11AD;
+AD3B;AD3B;1100 116C 11AE;AD3B;1100 116C 11AE;
+AD3C;AD3C;1100 116C 11AF;AD3C;1100 116C 11AF;
+AD3D;AD3D;1100 116C 11B0;AD3D;1100 116C 11B0;
+AD3E;AD3E;1100 116C 11B1;AD3E;1100 116C 11B1;
+AD3F;AD3F;1100 116C 11B2;AD3F;1100 116C 11B2;
+AD40;AD40;1100 116C 11B3;AD40;1100 116C 11B3;
+AD41;AD41;1100 116C 11B4;AD41;1100 116C 11B4;
+AD42;AD42;1100 116C 11B5;AD42;1100 116C 11B5;
+AD43;AD43;1100 116C 11B6;AD43;1100 116C 11B6;
+AD44;AD44;1100 116C 11B7;AD44;1100 116C 11B7;
+AD45;AD45;1100 116C 11B8;AD45;1100 116C 11B8;
+AD46;AD46;1100 116C 11B9;AD46;1100 116C 11B9;
+AD47;AD47;1100 116C 11BA;AD47;1100 116C 11BA;
+AD48;AD48;1100 116C 11BB;AD48;1100 116C 11BB;
+AD49;AD49;1100 116C 11BC;AD49;1100 116C 11BC;
+AD4A;AD4A;1100 116C 11BD;AD4A;1100 116C 11BD;
+AD4B;AD4B;1100 116C 11BE;AD4B;1100 116C 11BE;
+AD4C;AD4C;1100 116C 11BF;AD4C;1100 116C 11BF;
+AD4D;AD4D;1100 116C 11C0;AD4D;1100 116C 11C0;
+AD4E;AD4E;1100 116C 11C1;AD4E;1100 116C 11C1;
+AD4F;AD4F;1100 116C 11C2;AD4F;1100 116C 11C2;
+AD50;AD50;1100 116D;AD50;1100 116D;
+AD51;AD51;1100 116D 11A8;AD51;1100 116D 11A8;
+AD52;AD52;1100 116D 11A9;AD52;1100 116D 11A9;
+AD53;AD53;1100 116D 11AA;AD53;1100 116D 11AA;
+AD54;AD54;1100 116D 11AB;AD54;1100 116D 11AB;
+AD55;AD55;1100 116D 11AC;AD55;1100 116D 11AC;
+AD56;AD56;1100 116D 11AD;AD56;1100 116D 11AD;
+AD57;AD57;1100 116D 11AE;AD57;1100 116D 11AE;
+AD58;AD58;1100 116D 11AF;AD58;1100 116D 11AF;
+AD59;AD59;1100 116D 11B0;AD59;1100 116D 11B0;
+AD5A;AD5A;1100 116D 11B1;AD5A;1100 116D 11B1;
+AD5B;AD5B;1100 116D 11B2;AD5B;1100 116D 11B2;
+AD5C;AD5C;1100 116D 11B3;AD5C;1100 116D 11B3;
+AD5D;AD5D;1100 116D 11B4;AD5D;1100 116D 11B4;
+AD5E;AD5E;1100 116D 11B5;AD5E;1100 116D 11B5;
+AD5F;AD5F;1100 116D 11B6;AD5F;1100 116D 11B6;
+AD60;AD60;1100 116D 11B7;AD60;1100 116D 11B7;
+AD61;AD61;1100 116D 11B8;AD61;1100 116D 11B8;
+AD62;AD62;1100 116D 11B9;AD62;1100 116D 11B9;
+AD63;AD63;1100 116D 11BA;AD63;1100 116D 11BA;
+AD64;AD64;1100 116D 11BB;AD64;1100 116D 11BB;
+AD65;AD65;1100 116D 11BC;AD65;1100 116D 11BC;
+AD66;AD66;1100 116D 11BD;AD66;1100 116D 11BD;
+AD67;AD67;1100 116D 11BE;AD67;1100 116D 11BE;
+AD68;AD68;1100 116D 11BF;AD68;1100 116D 11BF;
+AD69;AD69;1100 116D 11C0;AD69;1100 116D 11C0;
+AD6A;AD6A;1100 116D 11C1;AD6A;1100 116D 11C1;
+AD6B;AD6B;1100 116D 11C2;AD6B;1100 116D 11C2;
+AD6C;AD6C;1100 116E;AD6C;1100 116E;
+AD6D;AD6D;1100 116E 11A8;AD6D;1100 116E 11A8;
+AD6E;AD6E;1100 116E 11A9;AD6E;1100 116E 11A9;
+AD6F;AD6F;1100 116E 11AA;AD6F;1100 116E 11AA;
+AD70;AD70;1100 116E 11AB;AD70;1100 116E 11AB;
+AD71;AD71;1100 116E 11AC;AD71;1100 116E 11AC;
+AD72;AD72;1100 116E 11AD;AD72;1100 116E 11AD;
+AD73;AD73;1100 116E 11AE;AD73;1100 116E 11AE;
+AD74;AD74;1100 116E 11AF;AD74;1100 116E 11AF;
+AD75;AD75;1100 116E 11B0;AD75;1100 116E 11B0;
+AD76;AD76;1100 116E 11B1;AD76;1100 116E 11B1;
+AD77;AD77;1100 116E 11B2;AD77;1100 116E 11B2;
+AD78;AD78;1100 116E 11B3;AD78;1100 116E 11B3;
+AD79;AD79;1100 116E 11B4;AD79;1100 116E 11B4;
+AD7A;AD7A;1100 116E 11B5;AD7A;1100 116E 11B5;
+AD7B;AD7B;1100 116E 11B6;AD7B;1100 116E 11B6;
+AD7C;AD7C;1100 116E 11B7;AD7C;1100 116E 11B7;
+AD7D;AD7D;1100 116E 11B8;AD7D;1100 116E 11B8;
+AD7E;AD7E;1100 116E 11B9;AD7E;1100 116E 11B9;
+AD7F;AD7F;1100 116E 11BA;AD7F;1100 116E 11BA;
+AD80;AD80;1100 116E 11BB;AD80;1100 116E 11BB;
+AD81;AD81;1100 116E 11BC;AD81;1100 116E 11BC;
+AD82;AD82;1100 116E 11BD;AD82;1100 116E 11BD;
+AD83;AD83;1100 116E 11BE;AD83;1100 116E 11BE;
+AD84;AD84;1100 116E 11BF;AD84;1100 116E 11BF;
+AD85;AD85;1100 116E 11C0;AD85;1100 116E 11C0;
+AD86;AD86;1100 116E 11C1;AD86;1100 116E 11C1;
+AD87;AD87;1100 116E 11C2;AD87;1100 116E 11C2;
+AD88;AD88;1100 116F;AD88;1100 116F;
+AD89;AD89;1100 116F 11A8;AD89;1100 116F 11A8;
+AD8A;AD8A;1100 116F 11A9;AD8A;1100 116F 11A9;
+AD8B;AD8B;1100 116F 11AA;AD8B;1100 116F 11AA;
+AD8C;AD8C;1100 116F 11AB;AD8C;1100 116F 11AB;
+AD8D;AD8D;1100 116F 11AC;AD8D;1100 116F 11AC;
+AD8E;AD8E;1100 116F 11AD;AD8E;1100 116F 11AD;
+AD8F;AD8F;1100 116F 11AE;AD8F;1100 116F 11AE;
+AD90;AD90;1100 116F 11AF;AD90;1100 116F 11AF;
+AD91;AD91;1100 116F 11B0;AD91;1100 116F 11B0;
+AD92;AD92;1100 116F 11B1;AD92;1100 116F 11B1;
+AD93;AD93;1100 116F 11B2;AD93;1100 116F 11B2;
+AD94;AD94;1100 116F 11B3;AD94;1100 116F 11B3;
+AD95;AD95;1100 116F 11B4;AD95;1100 116F 11B4;
+AD96;AD96;1100 116F 11B5;AD96;1100 116F 11B5;
+AD97;AD97;1100 116F 11B6;AD97;1100 116F 11B6;
+AD98;AD98;1100 116F 11B7;AD98;1100 116F 11B7;
+AD99;AD99;1100 116F 11B8;AD99;1100 116F 11B8;
+AD9A;AD9A;1100 116F 11B9;AD9A;1100 116F 11B9;
+AD9B;AD9B;1100 116F 11BA;AD9B;1100 116F 11BA;
+AD9C;AD9C;1100 116F 11BB;AD9C;1100 116F 11BB;
+AD9D;AD9D;1100 116F 11BC;AD9D;1100 116F 11BC;
+AD9E;AD9E;1100 116F 11BD;AD9E;1100 116F 11BD;
+AD9F;AD9F;1100 116F 11BE;AD9F;1100 116F 11BE;
+ADA0;ADA0;1100 116F 11BF;ADA0;1100 116F 11BF;
+ADA1;ADA1;1100 116F 11C0;ADA1;1100 116F 11C0;
+ADA2;ADA2;1100 116F 11C1;ADA2;1100 116F 11C1;
+ADA3;ADA3;1100 116F 11C2;ADA3;1100 116F 11C2;
+ADA4;ADA4;1100 1170;ADA4;1100 1170;
+ADA5;ADA5;1100 1170 11A8;ADA5;1100 1170 11A8;
+ADA6;ADA6;1100 1170 11A9;ADA6;1100 1170 11A9;
+ADA7;ADA7;1100 1170 11AA;ADA7;1100 1170 11AA;
+ADA8;ADA8;1100 1170 11AB;ADA8;1100 1170 11AB;
+ADA9;ADA9;1100 1170 11AC;ADA9;1100 1170 11AC;
+ADAA;ADAA;1100 1170 11AD;ADAA;1100 1170 11AD;
+ADAB;ADAB;1100 1170 11AE;ADAB;1100 1170 11AE;
+ADAC;ADAC;1100 1170 11AF;ADAC;1100 1170 11AF;
+ADAD;ADAD;1100 1170 11B0;ADAD;1100 1170 11B0;
+ADAE;ADAE;1100 1170 11B1;ADAE;1100 1170 11B1;
+ADAF;ADAF;1100 1170 11B2;ADAF;1100 1170 11B2;
+ADB0;ADB0;1100 1170 11B3;ADB0;1100 1170 11B3;
+ADB1;ADB1;1100 1170 11B4;ADB1;1100 1170 11B4;
+ADB2;ADB2;1100 1170 11B5;ADB2;1100 1170 11B5;
+ADB3;ADB3;1100 1170 11B6;ADB3;1100 1170 11B6;
+ADB4;ADB4;1100 1170 11B7;ADB4;1100 1170 11B7;
+ADB5;ADB5;1100 1170 11B8;ADB5;1100 1170 11B8;
+ADB6;ADB6;1100 1170 11B9;ADB6;1100 1170 11B9;
+ADB7;ADB7;1100 1170 11BA;ADB7;1100 1170 11BA;
+ADB8;ADB8;1100 1170 11BB;ADB8;1100 1170 11BB;
+ADB9;ADB9;1100 1170 11BC;ADB9;1100 1170 11BC;
+ADBA;ADBA;1100 1170 11BD;ADBA;1100 1170 11BD;
+ADBB;ADBB;1100 1170 11BE;ADBB;1100 1170 11BE;
+ADBC;ADBC;1100 1170 11BF;ADBC;1100 1170 11BF;
+ADBD;ADBD;1100 1170 11C0;ADBD;1100 1170 11C0;
+ADBE;ADBE;1100 1170 11C1;ADBE;1100 1170 11C1;
+ADBF;ADBF;1100 1170 11C2;ADBF;1100 1170 11C2;
+ADC0;ADC0;1100 1171;ADC0;1100 1171;
+ADC1;ADC1;1100 1171 11A8;ADC1;1100 1171 11A8;
+ADC2;ADC2;1100 1171 11A9;ADC2;1100 1171 11A9;
+ADC3;ADC3;1100 1171 11AA;ADC3;1100 1171 11AA;
+ADC4;ADC4;1100 1171 11AB;ADC4;1100 1171 11AB;
+ADC5;ADC5;1100 1171 11AC;ADC5;1100 1171 11AC;
+ADC6;ADC6;1100 1171 11AD;ADC6;1100 1171 11AD;
+ADC7;ADC7;1100 1171 11AE;ADC7;1100 1171 11AE;
+ADC8;ADC8;1100 1171 11AF;ADC8;1100 1171 11AF;
+ADC9;ADC9;1100 1171 11B0;ADC9;1100 1171 11B0;
+ADCA;ADCA;1100 1171 11B1;ADCA;1100 1171 11B1;
+ADCB;ADCB;1100 1171 11B2;ADCB;1100 1171 11B2;
+ADCC;ADCC;1100 1171 11B3;ADCC;1100 1171 11B3;
+ADCD;ADCD;1100 1171 11B4;ADCD;1100 1171 11B4;
+ADCE;ADCE;1100 1171 11B5;ADCE;1100 1171 11B5;
+ADCF;ADCF;1100 1171 11B6;ADCF;1100 1171 11B6;
+ADD0;ADD0;1100 1171 11B7;ADD0;1100 1171 11B7;
+ADD1;ADD1;1100 1171 11B8;ADD1;1100 1171 11B8;
+ADD2;ADD2;1100 1171 11B9;ADD2;1100 1171 11B9;
+ADD3;ADD3;1100 1171 11BA;ADD3;1100 1171 11BA;
+ADD4;ADD4;1100 1171 11BB;ADD4;1100 1171 11BB;
+ADD5;ADD5;1100 1171 11BC;ADD5;1100 1171 11BC;
+ADD6;ADD6;1100 1171 11BD;ADD6;1100 1171 11BD;
+ADD7;ADD7;1100 1171 11BE;ADD7;1100 1171 11BE;
+ADD8;ADD8;1100 1171 11BF;ADD8;1100 1171 11BF;
+ADD9;ADD9;1100 1171 11C0;ADD9;1100 1171 11C0;
+ADDA;ADDA;1100 1171 11C1;ADDA;1100 1171 11C1;
+ADDB;ADDB;1100 1171 11C2;ADDB;1100 1171 11C2;
+ADDC;ADDC;1100 1172;ADDC;1100 1172;
+ADDD;ADDD;1100 1172 11A8;ADDD;1100 1172 11A8;
+ADDE;ADDE;1100 1172 11A9;ADDE;1100 1172 11A9;
+ADDF;ADDF;1100 1172 11AA;ADDF;1100 1172 11AA;
+ADE0;ADE0;1100 1172 11AB;ADE0;1100 1172 11AB;
+ADE1;ADE1;1100 1172 11AC;ADE1;1100 1172 11AC;
+ADE2;ADE2;1100 1172 11AD;ADE2;1100 1172 11AD;
+ADE3;ADE3;1100 1172 11AE;ADE3;1100 1172 11AE;
+ADE4;ADE4;1100 1172 11AF;ADE4;1100 1172 11AF;
+ADE5;ADE5;1100 1172 11B0;ADE5;1100 1172 11B0;
+ADE6;ADE6;1100 1172 11B1;ADE6;1100 1172 11B1;
+ADE7;ADE7;1100 1172 11B2;ADE7;1100 1172 11B2;
+ADE8;ADE8;1100 1172 11B3;ADE8;1100 1172 11B3;
+ADE9;ADE9;1100 1172 11B4;ADE9;1100 1172 11B4;
+ADEA;ADEA;1100 1172 11B5;ADEA;1100 1172 11B5;
+ADEB;ADEB;1100 1172 11B6;ADEB;1100 1172 11B6;
+ADEC;ADEC;1100 1172 11B7;ADEC;1100 1172 11B7;
+ADED;ADED;1100 1172 11B8;ADED;1100 1172 11B8;
+ADEE;ADEE;1100 1172 11B9;ADEE;1100 1172 11B9;
+ADEF;ADEF;1100 1172 11BA;ADEF;1100 1172 11BA;
+ADF0;ADF0;1100 1172 11BB;ADF0;1100 1172 11BB;
+ADF1;ADF1;1100 1172 11BC;ADF1;1100 1172 11BC;
+ADF2;ADF2;1100 1172 11BD;ADF2;1100 1172 11BD;
+ADF3;ADF3;1100 1172 11BE;ADF3;1100 1172 11BE;
+ADF4;ADF4;1100 1172 11BF;ADF4;1100 1172 11BF;
+ADF5;ADF5;1100 1172 11C0;ADF5;1100 1172 11C0;
+ADF6;ADF6;1100 1172 11C1;ADF6;1100 1172 11C1;
+ADF7;ADF7;1100 1172 11C2;ADF7;1100 1172 11C2;
+ADF8;ADF8;1100 1173;ADF8;1100 1173;
+ADF9;ADF9;1100 1173 11A8;ADF9;1100 1173 11A8;
+ADFA;ADFA;1100 1173 11A9;ADFA;1100 1173 11A9;
+ADFB;ADFB;1100 1173 11AA;ADFB;1100 1173 11AA;
+ADFC;ADFC;1100 1173 11AB;ADFC;1100 1173 11AB;
+ADFD;ADFD;1100 1173 11AC;ADFD;1100 1173 11AC;
+ADFE;ADFE;1100 1173 11AD;ADFE;1100 1173 11AD;
+ADFF;ADFF;1100 1173 11AE;ADFF;1100 1173 11AE;
+AE00;AE00;1100 1173 11AF;AE00;1100 1173 11AF;
+AE01;AE01;1100 1173 11B0;AE01;1100 1173 11B0;
+AE02;AE02;1100 1173 11B1;AE02;1100 1173 11B1;
+AE03;AE03;1100 1173 11B2;AE03;1100 1173 11B2;
+AE04;AE04;1100 1173 11B3;AE04;1100 1173 11B3;
+AE05;AE05;1100 1173 11B4;AE05;1100 1173 11B4;
+AE06;AE06;1100 1173 11B5;AE06;1100 1173 11B5;
+AE07;AE07;1100 1173 11B6;AE07;1100 1173 11B6;
+AE08;AE08;1100 1173 11B7;AE08;1100 1173 11B7;
+AE09;AE09;1100 1173 11B8;AE09;1100 1173 11B8;
+AE0A;AE0A;1100 1173 11B9;AE0A;1100 1173 11B9;
+AE0B;AE0B;1100 1173 11BA;AE0B;1100 1173 11BA;
+AE0C;AE0C;1100 1173 11BB;AE0C;1100 1173 11BB;
+AE0D;AE0D;1100 1173 11BC;AE0D;1100 1173 11BC;
+AE0E;AE0E;1100 1173 11BD;AE0E;1100 1173 11BD;
+AE0F;AE0F;1100 1173 11BE;AE0F;1100 1173 11BE;
+AE10;AE10;1100 1173 11BF;AE10;1100 1173 11BF;
+AE11;AE11;1100 1173 11C0;AE11;1100 1173 11C0;
+AE12;AE12;1100 1173 11C1;AE12;1100 1173 11C1;
+AE13;AE13;1100 1173 11C2;AE13;1100 1173 11C2;
+AE14;AE14;1100 1174;AE14;1100 1174;
+AE15;AE15;1100 1174 11A8;AE15;1100 1174 11A8;
+AE16;AE16;1100 1174 11A9;AE16;1100 1174 11A9;
+AE17;AE17;1100 1174 11AA;AE17;1100 1174 11AA;
+AE18;AE18;1100 1174 11AB;AE18;1100 1174 11AB;
+AE19;AE19;1100 1174 11AC;AE19;1100 1174 11AC;
+AE1A;AE1A;1100 1174 11AD;AE1A;1100 1174 11AD;
+AE1B;AE1B;1100 1174 11AE;AE1B;1100 1174 11AE;
+AE1C;AE1C;1100 1174 11AF;AE1C;1100 1174 11AF;
+AE1D;AE1D;1100 1174 11B0;AE1D;1100 1174 11B0;
+AE1E;AE1E;1100 1174 11B1;AE1E;1100 1174 11B1;
+AE1F;AE1F;1100 1174 11B2;AE1F;1100 1174 11B2;
+AE20;AE20;1100 1174 11B3;AE20;1100 1174 11B3;
+AE21;AE21;1100 1174 11B4;AE21;1100 1174 11B4;
+AE22;AE22;1100 1174 11B5;AE22;1100 1174 11B5;
+AE23;AE23;1100 1174 11B6;AE23;1100 1174 11B6;
+AE24;AE24;1100 1174 11B7;AE24;1100 1174 11B7;
+AE25;AE25;1100 1174 11B8;AE25;1100 1174 11B8;
+AE26;AE26;1100 1174 11B9;AE26;1100 1174 11B9;
+AE27;AE27;1100 1174 11BA;AE27;1100 1174 11BA;
+AE28;AE28;1100 1174 11BB;AE28;1100 1174 11BB;
+AE29;AE29;1100 1174 11BC;AE29;1100 1174 11BC;
+AE2A;AE2A;1100 1174 11BD;AE2A;1100 1174 11BD;
+AE2B;AE2B;1100 1174 11BE;AE2B;1100 1174 11BE;
+AE2C;AE2C;1100 1174 11BF;AE2C;1100 1174 11BF;
+AE2D;AE2D;1100 1174 11C0;AE2D;1100 1174 11C0;
+AE2E;AE2E;1100 1174 11C1;AE2E;1100 1174 11C1;
+AE2F;AE2F;1100 1174 11C2;AE2F;1100 1174 11C2;
+AE30;AE30;1100 1175;AE30;1100 1175;
+AE31;AE31;1100 1175 11A8;AE31;1100 1175 11A8;
+AE32;AE32;1100 1175 11A9;AE32;1100 1175 11A9;
+AE33;AE33;1100 1175 11AA;AE33;1100 1175 11AA;
+AE34;AE34;1100 1175 11AB;AE34;1100 1175 11AB;
+AE35;AE35;1100 1175 11AC;AE35;1100 1175 11AC;
+AE36;AE36;1100 1175 11AD;AE36;1100 1175 11AD;
+AE37;AE37;1100 1175 11AE;AE37;1100 1175 11AE;
+AE38;AE38;1100 1175 11AF;AE38;1100 1175 11AF;
+AE39;AE39;1100 1175 11B0;AE39;1100 1175 11B0;
+AE3A;AE3A;1100 1175 11B1;AE3A;1100 1175 11B1;
+AE3B;AE3B;1100 1175 11B2;AE3B;1100 1175 11B2;
+AE3C;AE3C;1100 1175 11B3;AE3C;1100 1175 11B3;
+AE3D;AE3D;1100 1175 11B4;AE3D;1100 1175 11B4;
+AE3E;AE3E;1100 1175 11B5;AE3E;1100 1175 11B5;
+AE3F;AE3F;1100 1175 11B6;AE3F;1100 1175 11B6;
+AE40;AE40;1100 1175 11B7;AE40;1100 1175 11B7;
+AE41;AE41;1100 1175 11B8;AE41;1100 1175 11B8;
+AE42;AE42;1100 1175 11B9;AE42;1100 1175 11B9;
+AE43;AE43;1100 1175 11BA;AE43;1100 1175 11BA;
+AE44;AE44;1100 1175 11BB;AE44;1100 1175 11BB;
+AE45;AE45;1100 1175 11BC;AE45;1100 1175 11BC;
+AE46;AE46;1100 1175 11BD;AE46;1100 1175 11BD;
+AE47;AE47;1100 1175 11BE;AE47;1100 1175 11BE;
+AE48;AE48;1100 1175 11BF;AE48;1100 1175 11BF;
+AE49;AE49;1100 1175 11C0;AE49;1100 1175 11C0;
+AE4A;AE4A;1100 1175 11C1;AE4A;1100 1175 11C1;
+AE4B;AE4B;1100 1175 11C2;AE4B;1100 1175 11C2;
+AE4C;AE4C;1101 1161;AE4C;1101 1161;
+AE4D;AE4D;1101 1161 11A8;AE4D;1101 1161 11A8;
+AE4E;AE4E;1101 1161 11A9;AE4E;1101 1161 11A9;
+AE4F;AE4F;1101 1161 11AA;AE4F;1101 1161 11AA;
+AE50;AE50;1101 1161 11AB;AE50;1101 1161 11AB;
+AE51;AE51;1101 1161 11AC;AE51;1101 1161 11AC;
+AE52;AE52;1101 1161 11AD;AE52;1101 1161 11AD;
+AE53;AE53;1101 1161 11AE;AE53;1101 1161 11AE;
+AE54;AE54;1101 1161 11AF;AE54;1101 1161 11AF;
+AE55;AE55;1101 1161 11B0;AE55;1101 1161 11B0;
+AE56;AE56;1101 1161 11B1;AE56;1101 1161 11B1;
+AE57;AE57;1101 1161 11B2;AE57;1101 1161 11B2;
+AE58;AE58;1101 1161 11B3;AE58;1101 1161 11B3;
+AE59;AE59;1101 1161 11B4;AE59;1101 1161 11B4;
+AE5A;AE5A;1101 1161 11B5;AE5A;1101 1161 11B5;
+AE5B;AE5B;1101 1161 11B6;AE5B;1101 1161 11B6;
+AE5C;AE5C;1101 1161 11B7;AE5C;1101 1161 11B7;
+AE5D;AE5D;1101 1161 11B8;AE5D;1101 1161 11B8;
+AE5E;AE5E;1101 1161 11B9;AE5E;1101 1161 11B9;
+AE5F;AE5F;1101 1161 11BA;AE5F;1101 1161 11BA;
+AE60;AE60;1101 1161 11BB;AE60;1101 1161 11BB;
+AE61;AE61;1101 1161 11BC;AE61;1101 1161 11BC;
+AE62;AE62;1101 1161 11BD;AE62;1101 1161 11BD;
+AE63;AE63;1101 1161 11BE;AE63;1101 1161 11BE;
+AE64;AE64;1101 1161 11BF;AE64;1101 1161 11BF;
+AE65;AE65;1101 1161 11C0;AE65;1101 1161 11C0;
+AE66;AE66;1101 1161 11C1;AE66;1101 1161 11C1;
+AE67;AE67;1101 1161 11C2;AE67;1101 1161 11C2;
+AE68;AE68;1101 1162;AE68;1101 1162;
+AE69;AE69;1101 1162 11A8;AE69;1101 1162 11A8;
+AE6A;AE6A;1101 1162 11A9;AE6A;1101 1162 11A9;
+AE6B;AE6B;1101 1162 11AA;AE6B;1101 1162 11AA;
+AE6C;AE6C;1101 1162 11AB;AE6C;1101 1162 11AB;
+AE6D;AE6D;1101 1162 11AC;AE6D;1101 1162 11AC;
+AE6E;AE6E;1101 1162 11AD;AE6E;1101 1162 11AD;
+AE6F;AE6F;1101 1162 11AE;AE6F;1101 1162 11AE;
+AE70;AE70;1101 1162 11AF;AE70;1101 1162 11AF;
+AE71;AE71;1101 1162 11B0;AE71;1101 1162 11B0;
+AE72;AE72;1101 1162 11B1;AE72;1101 1162 11B1;
+AE73;AE73;1101 1162 11B2;AE73;1101 1162 11B2;
+AE74;AE74;1101 1162 11B3;AE74;1101 1162 11B3;
+AE75;AE75;1101 1162 11B4;AE75;1101 1162 11B4;
+AE76;AE76;1101 1162 11B5;AE76;1101 1162 11B5;
+AE77;AE77;1101 1162 11B6;AE77;1101 1162 11B6;
+AE78;AE78;1101 1162 11B7;AE78;1101 1162 11B7;
+AE79;AE79;1101 1162 11B8;AE79;1101 1162 11B8;
+AE7A;AE7A;1101 1162 11B9;AE7A;1101 1162 11B9;
+AE7B;AE7B;1101 1162 11BA;AE7B;1101 1162 11BA;
+AE7C;AE7C;1101 1162 11BB;AE7C;1101 1162 11BB;
+AE7D;AE7D;1101 1162 11BC;AE7D;1101 1162 11BC;
+AE7E;AE7E;1101 1162 11BD;AE7E;1101 1162 11BD;
+AE7F;AE7F;1101 1162 11BE;AE7F;1101 1162 11BE;
+AE80;AE80;1101 1162 11BF;AE80;1101 1162 11BF;
+AE81;AE81;1101 1162 11C0;AE81;1101 1162 11C0;
+AE82;AE82;1101 1162 11C1;AE82;1101 1162 11C1;
+AE83;AE83;1101 1162 11C2;AE83;1101 1162 11C2;
+AE84;AE84;1101 1163;AE84;1101 1163;
+AE85;AE85;1101 1163 11A8;AE85;1101 1163 11A8;
+AE86;AE86;1101 1163 11A9;AE86;1101 1163 11A9;
+AE87;AE87;1101 1163 11AA;AE87;1101 1163 11AA;
+AE88;AE88;1101 1163 11AB;AE88;1101 1163 11AB;
+AE89;AE89;1101 1163 11AC;AE89;1101 1163 11AC;
+AE8A;AE8A;1101 1163 11AD;AE8A;1101 1163 11AD;
+AE8B;AE8B;1101 1163 11AE;AE8B;1101 1163 11AE;
+AE8C;AE8C;1101 1163 11AF;AE8C;1101 1163 11AF;
+AE8D;AE8D;1101 1163 11B0;AE8D;1101 1163 11B0;
+AE8E;AE8E;1101 1163 11B1;AE8E;1101 1163 11B1;
+AE8F;AE8F;1101 1163 11B2;AE8F;1101 1163 11B2;
+AE90;AE90;1101 1163 11B3;AE90;1101 1163 11B3;
+AE91;AE91;1101 1163 11B4;AE91;1101 1163 11B4;
+AE92;AE92;1101 1163 11B5;AE92;1101 1163 11B5;
+AE93;AE93;1101 1163 11B6;AE93;1101 1163 11B6;
+AE94;AE94;1101 1163 11B7;AE94;1101 1163 11B7;
+AE95;AE95;1101 1163 11B8;AE95;1101 1163 11B8;
+AE96;AE96;1101 1163 11B9;AE96;1101 1163 11B9;
+AE97;AE97;1101 1163 11BA;AE97;1101 1163 11BA;
+AE98;AE98;1101 1163 11BB;AE98;1101 1163 11BB;
+AE99;AE99;1101 1163 11BC;AE99;1101 1163 11BC;
+AE9A;AE9A;1101 1163 11BD;AE9A;1101 1163 11BD;
+AE9B;AE9B;1101 1163 11BE;AE9B;1101 1163 11BE;
+AE9C;AE9C;1101 1163 11BF;AE9C;1101 1163 11BF;
+AE9D;AE9D;1101 1163 11C0;AE9D;1101 1163 11C0;
+AE9E;AE9E;1101 1163 11C1;AE9E;1101 1163 11C1;
+AE9F;AE9F;1101 1163 11C2;AE9F;1101 1163 11C2;
+AEA0;AEA0;1101 1164;AEA0;1101 1164;
+AEA1;AEA1;1101 1164 11A8;AEA1;1101 1164 11A8;
+AEA2;AEA2;1101 1164 11A9;AEA2;1101 1164 11A9;
+AEA3;AEA3;1101 1164 11AA;AEA3;1101 1164 11AA;
+AEA4;AEA4;1101 1164 11AB;AEA4;1101 1164 11AB;
+AEA5;AEA5;1101 1164 11AC;AEA5;1101 1164 11AC;
+AEA6;AEA6;1101 1164 11AD;AEA6;1101 1164 11AD;
+AEA7;AEA7;1101 1164 11AE;AEA7;1101 1164 11AE;
+AEA8;AEA8;1101 1164 11AF;AEA8;1101 1164 11AF;
+AEA9;AEA9;1101 1164 11B0;AEA9;1101 1164 11B0;
+AEAA;AEAA;1101 1164 11B1;AEAA;1101 1164 11B1;
+AEAB;AEAB;1101 1164 11B2;AEAB;1101 1164 11B2;
+AEAC;AEAC;1101 1164 11B3;AEAC;1101 1164 11B3;
+AEAD;AEAD;1101 1164 11B4;AEAD;1101 1164 11B4;
+AEAE;AEAE;1101 1164 11B5;AEAE;1101 1164 11B5;
+AEAF;AEAF;1101 1164 11B6;AEAF;1101 1164 11B6;
+AEB0;AEB0;1101 1164 11B7;AEB0;1101 1164 11B7;
+AEB1;AEB1;1101 1164 11B8;AEB1;1101 1164 11B8;
+AEB2;AEB2;1101 1164 11B9;AEB2;1101 1164 11B9;
+AEB3;AEB3;1101 1164 11BA;AEB3;1101 1164 11BA;
+AEB4;AEB4;1101 1164 11BB;AEB4;1101 1164 11BB;
+AEB5;AEB5;1101 1164 11BC;AEB5;1101 1164 11BC;
+AEB6;AEB6;1101 1164 11BD;AEB6;1101 1164 11BD;
+AEB7;AEB7;1101 1164 11BE;AEB7;1101 1164 11BE;
+AEB8;AEB8;1101 1164 11BF;AEB8;1101 1164 11BF;
+AEB9;AEB9;1101 1164 11C0;AEB9;1101 1164 11C0;
+AEBA;AEBA;1101 1164 11C1;AEBA;1101 1164 11C1;
+AEBB;AEBB;1101 1164 11C2;AEBB;1101 1164 11C2;
+AEBC;AEBC;1101 1165;AEBC;1101 1165;
+AEBD;AEBD;1101 1165 11A8;AEBD;1101 1165 11A8;
+AEBE;AEBE;1101 1165 11A9;AEBE;1101 1165 11A9;
+AEBF;AEBF;1101 1165 11AA;AEBF;1101 1165 11AA;
+AEC0;AEC0;1101 1165 11AB;AEC0;1101 1165 11AB;
+AEC1;AEC1;1101 1165 11AC;AEC1;1101 1165 11AC;
+AEC2;AEC2;1101 1165 11AD;AEC2;1101 1165 11AD;
+AEC3;AEC3;1101 1165 11AE;AEC3;1101 1165 11AE;
+AEC4;AEC4;1101 1165 11AF;AEC4;1101 1165 11AF;
+AEC5;AEC5;1101 1165 11B0;AEC5;1101 1165 11B0;
+AEC6;AEC6;1101 1165 11B1;AEC6;1101 1165 11B1;
+AEC7;AEC7;1101 1165 11B2;AEC7;1101 1165 11B2;
+AEC8;AEC8;1101 1165 11B3;AEC8;1101 1165 11B3;
+AEC9;AEC9;1101 1165 11B4;AEC9;1101 1165 11B4;
+AECA;AECA;1101 1165 11B5;AECA;1101 1165 11B5;
+AECB;AECB;1101 1165 11B6;AECB;1101 1165 11B6;
+AECC;AECC;1101 1165 11B7;AECC;1101 1165 11B7;
+AECD;AECD;1101 1165 11B8;AECD;1101 1165 11B8;
+AECE;AECE;1101 1165 11B9;AECE;1101 1165 11B9;
+AECF;AECF;1101 1165 11BA;AECF;1101 1165 11BA;
+AED0;AED0;1101 1165 11BB;AED0;1101 1165 11BB;
+AED1;AED1;1101 1165 11BC;AED1;1101 1165 11BC;
+AED2;AED2;1101 1165 11BD;AED2;1101 1165 11BD;
+AED3;AED3;1101 1165 11BE;AED3;1101 1165 11BE;
+AED4;AED4;1101 1165 11BF;AED4;1101 1165 11BF;
+AED5;AED5;1101 1165 11C0;AED5;1101 1165 11C0;
+AED6;AED6;1101 1165 11C1;AED6;1101 1165 11C1;
+AED7;AED7;1101 1165 11C2;AED7;1101 1165 11C2;
+AED8;AED8;1101 1166;AED8;1101 1166;
+AED9;AED9;1101 1166 11A8;AED9;1101 1166 11A8;
+AEDA;AEDA;1101 1166 11A9;AEDA;1101 1166 11A9;
+AEDB;AEDB;1101 1166 11AA;AEDB;1101 1166 11AA;
+AEDC;AEDC;1101 1166 11AB;AEDC;1101 1166 11AB;
+AEDD;AEDD;1101 1166 11AC;AEDD;1101 1166 11AC;
+AEDE;AEDE;1101 1166 11AD;AEDE;1101 1166 11AD;
+AEDF;AEDF;1101 1166 11AE;AEDF;1101 1166 11AE;
+AEE0;AEE0;1101 1166 11AF;AEE0;1101 1166 11AF;
+AEE1;AEE1;1101 1166 11B0;AEE1;1101 1166 11B0;
+AEE2;AEE2;1101 1166 11B1;AEE2;1101 1166 11B1;
+AEE3;AEE3;1101 1166 11B2;AEE3;1101 1166 11B2;
+AEE4;AEE4;1101 1166 11B3;AEE4;1101 1166 11B3;
+AEE5;AEE5;1101 1166 11B4;AEE5;1101 1166 11B4;
+AEE6;AEE6;1101 1166 11B5;AEE6;1101 1166 11B5;
+AEE7;AEE7;1101 1166 11B6;AEE7;1101 1166 11B6;
+AEE8;AEE8;1101 1166 11B7;AEE8;1101 1166 11B7;
+AEE9;AEE9;1101 1166 11B8;AEE9;1101 1166 11B8;
+AEEA;AEEA;1101 1166 11B9;AEEA;1101 1166 11B9;
+AEEB;AEEB;1101 1166 11BA;AEEB;1101 1166 11BA;
+AEEC;AEEC;1101 1166 11BB;AEEC;1101 1166 11BB;
+AEED;AEED;1101 1166 11BC;AEED;1101 1166 11BC;
+AEEE;AEEE;1101 1166 11BD;AEEE;1101 1166 11BD;
+AEEF;AEEF;1101 1166 11BE;AEEF;1101 1166 11BE;
+AEF0;AEF0;1101 1166 11BF;AEF0;1101 1166 11BF;
+AEF1;AEF1;1101 1166 11C0;AEF1;1101 1166 11C0;
+AEF2;AEF2;1101 1166 11C1;AEF2;1101 1166 11C1;
+AEF3;AEF3;1101 1166 11C2;AEF3;1101 1166 11C2;
+AEF4;AEF4;1101 1167;AEF4;1101 1167;
+AEF5;AEF5;1101 1167 11A8;AEF5;1101 1167 11A8;
+AEF6;AEF6;1101 1167 11A9;AEF6;1101 1167 11A9;
+AEF7;AEF7;1101 1167 11AA;AEF7;1101 1167 11AA;
+AEF8;AEF8;1101 1167 11AB;AEF8;1101 1167 11AB;
+AEF9;AEF9;1101 1167 11AC;AEF9;1101 1167 11AC;
+AEFA;AEFA;1101 1167 11AD;AEFA;1101 1167 11AD;
+AEFB;AEFB;1101 1167 11AE;AEFB;1101 1167 11AE;
+AEFC;AEFC;1101 1167 11AF;AEFC;1101 1167 11AF;
+AEFD;AEFD;1101 1167 11B0;AEFD;1101 1167 11B0;
+AEFE;AEFE;1101 1167 11B1;AEFE;1101 1167 11B1;
+AEFF;AEFF;1101 1167 11B2;AEFF;1101 1167 11B2;
+AF00;AF00;1101 1167 11B3;AF00;1101 1167 11B3;
+AF01;AF01;1101 1167 11B4;AF01;1101 1167 11B4;
+AF02;AF02;1101 1167 11B5;AF02;1101 1167 11B5;
+AF03;AF03;1101 1167 11B6;AF03;1101 1167 11B6;
+AF04;AF04;1101 1167 11B7;AF04;1101 1167 11B7;
+AF05;AF05;1101 1167 11B8;AF05;1101 1167 11B8;
+AF06;AF06;1101 1167 11B9;AF06;1101 1167 11B9;
+AF07;AF07;1101 1167 11BA;AF07;1101 1167 11BA;
+AF08;AF08;1101 1167 11BB;AF08;1101 1167 11BB;
+AF09;AF09;1101 1167 11BC;AF09;1101 1167 11BC;
+AF0A;AF0A;1101 1167 11BD;AF0A;1101 1167 11BD;
+AF0B;AF0B;1101 1167 11BE;AF0B;1101 1167 11BE;
+AF0C;AF0C;1101 1167 11BF;AF0C;1101 1167 11BF;
+AF0D;AF0D;1101 1167 11C0;AF0D;1101 1167 11C0;
+AF0E;AF0E;1101 1167 11C1;AF0E;1101 1167 11C1;
+AF0F;AF0F;1101 1167 11C2;AF0F;1101 1167 11C2;
+AF10;AF10;1101 1168;AF10;1101 1168;
+AF11;AF11;1101 1168 11A8;AF11;1101 1168 11A8;
+AF12;AF12;1101 1168 11A9;AF12;1101 1168 11A9;
+AF13;AF13;1101 1168 11AA;AF13;1101 1168 11AA;
+AF14;AF14;1101 1168 11AB;AF14;1101 1168 11AB;
+AF15;AF15;1101 1168 11AC;AF15;1101 1168 11AC;
+AF16;AF16;1101 1168 11AD;AF16;1101 1168 11AD;
+AF17;AF17;1101 1168 11AE;AF17;1101 1168 11AE;
+AF18;AF18;1101 1168 11AF;AF18;1101 1168 11AF;
+AF19;AF19;1101 1168 11B0;AF19;1101 1168 11B0;
+AF1A;AF1A;1101 1168 11B1;AF1A;1101 1168 11B1;
+AF1B;AF1B;1101 1168 11B2;AF1B;1101 1168 11B2;
+AF1C;AF1C;1101 1168 11B3;AF1C;1101 1168 11B3;
+AF1D;AF1D;1101 1168 11B4;AF1D;1101 1168 11B4;
+AF1E;AF1E;1101 1168 11B5;AF1E;1101 1168 11B5;
+AF1F;AF1F;1101 1168 11B6;AF1F;1101 1168 11B6;
+AF20;AF20;1101 1168 11B7;AF20;1101 1168 11B7;
+AF21;AF21;1101 1168 11B8;AF21;1101 1168 11B8;
+AF22;AF22;1101 1168 11B9;AF22;1101 1168 11B9;
+AF23;AF23;1101 1168 11BA;AF23;1101 1168 11BA;
+AF24;AF24;1101 1168 11BB;AF24;1101 1168 11BB;
+AF25;AF25;1101 1168 11BC;AF25;1101 1168 11BC;
+AF26;AF26;1101 1168 11BD;AF26;1101 1168 11BD;
+AF27;AF27;1101 1168 11BE;AF27;1101 1168 11BE;
+AF28;AF28;1101 1168 11BF;AF28;1101 1168 11BF;
+AF29;AF29;1101 1168 11C0;AF29;1101 1168 11C0;
+AF2A;AF2A;1101 1168 11C1;AF2A;1101 1168 11C1;
+AF2B;AF2B;1101 1168 11C2;AF2B;1101 1168 11C2;
+AF2C;AF2C;1101 1169;AF2C;1101 1169;
+AF2D;AF2D;1101 1169 11A8;AF2D;1101 1169 11A8;
+AF2E;AF2E;1101 1169 11A9;AF2E;1101 1169 11A9;
+AF2F;AF2F;1101 1169 11AA;AF2F;1101 1169 11AA;
+AF30;AF30;1101 1169 11AB;AF30;1101 1169 11AB;
+AF31;AF31;1101 1169 11AC;AF31;1101 1169 11AC;
+AF32;AF32;1101 1169 11AD;AF32;1101 1169 11AD;
+AF33;AF33;1101 1169 11AE;AF33;1101 1169 11AE;
+AF34;AF34;1101 1169 11AF;AF34;1101 1169 11AF;
+AF35;AF35;1101 1169 11B0;AF35;1101 1169 11B0;
+AF36;AF36;1101 1169 11B1;AF36;1101 1169 11B1;
+AF37;AF37;1101 1169 11B2;AF37;1101 1169 11B2;
+AF38;AF38;1101 1169 11B3;AF38;1101 1169 11B3;
+AF39;AF39;1101 1169 11B4;AF39;1101 1169 11B4;
+AF3A;AF3A;1101 1169 11B5;AF3A;1101 1169 11B5;
+AF3B;AF3B;1101 1169 11B6;AF3B;1101 1169 11B6;
+AF3C;AF3C;1101 1169 11B7;AF3C;1101 1169 11B7;
+AF3D;AF3D;1101 1169 11B8;AF3D;1101 1169 11B8;
+AF3E;AF3E;1101 1169 11B9;AF3E;1101 1169 11B9;
+AF3F;AF3F;1101 1169 11BA;AF3F;1101 1169 11BA;
+AF40;AF40;1101 1169 11BB;AF40;1101 1169 11BB;
+AF41;AF41;1101 1169 11BC;AF41;1101 1169 11BC;
+AF42;AF42;1101 1169 11BD;AF42;1101 1169 11BD;
+AF43;AF43;1101 1169 11BE;AF43;1101 1169 11BE;
+AF44;AF44;1101 1169 11BF;AF44;1101 1169 11BF;
+AF45;AF45;1101 1169 11C0;AF45;1101 1169 11C0;
+AF46;AF46;1101 1169 11C1;AF46;1101 1169 11C1;
+AF47;AF47;1101 1169 11C2;AF47;1101 1169 11C2;
+AF48;AF48;1101 116A;AF48;1101 116A;
+AF49;AF49;1101 116A 11A8;AF49;1101 116A 11A8;
+AF4A;AF4A;1101 116A 11A9;AF4A;1101 116A 11A9;
+AF4B;AF4B;1101 116A 11AA;AF4B;1101 116A 11AA;
+AF4C;AF4C;1101 116A 11AB;AF4C;1101 116A 11AB;
+AF4D;AF4D;1101 116A 11AC;AF4D;1101 116A 11AC;
+AF4E;AF4E;1101 116A 11AD;AF4E;1101 116A 11AD;
+AF4F;AF4F;1101 116A 11AE;AF4F;1101 116A 11AE;
+AF50;AF50;1101 116A 11AF;AF50;1101 116A 11AF;
+AF51;AF51;1101 116A 11B0;AF51;1101 116A 11B0;
+AF52;AF52;1101 116A 11B1;AF52;1101 116A 11B1;
+AF53;AF53;1101 116A 11B2;AF53;1101 116A 11B2;
+AF54;AF54;1101 116A 11B3;AF54;1101 116A 11B3;
+AF55;AF55;1101 116A 11B4;AF55;1101 116A 11B4;
+AF56;AF56;1101 116A 11B5;AF56;1101 116A 11B5;
+AF57;AF57;1101 116A 11B6;AF57;1101 116A 11B6;
+AF58;AF58;1101 116A 11B7;AF58;1101 116A 11B7;
+AF59;AF59;1101 116A 11B8;AF59;1101 116A 11B8;
+AF5A;AF5A;1101 116A 11B9;AF5A;1101 116A 11B9;
+AF5B;AF5B;1101 116A 11BA;AF5B;1101 116A 11BA;
+AF5C;AF5C;1101 116A 11BB;AF5C;1101 116A 11BB;
+AF5D;AF5D;1101 116A 11BC;AF5D;1101 116A 11BC;
+AF5E;AF5E;1101 116A 11BD;AF5E;1101 116A 11BD;
+AF5F;AF5F;1101 116A 11BE;AF5F;1101 116A 11BE;
+AF60;AF60;1101 116A 11BF;AF60;1101 116A 11BF;
+AF61;AF61;1101 116A 11C0;AF61;1101 116A 11C0;
+AF62;AF62;1101 116A 11C1;AF62;1101 116A 11C1;
+AF63;AF63;1101 116A 11C2;AF63;1101 116A 11C2;
+AF64;AF64;1101 116B;AF64;1101 116B;
+AF65;AF65;1101 116B 11A8;AF65;1101 116B 11A8;
+AF66;AF66;1101 116B 11A9;AF66;1101 116B 11A9;
+AF67;AF67;1101 116B 11AA;AF67;1101 116B 11AA;
+AF68;AF68;1101 116B 11AB;AF68;1101 116B 11AB;
+AF69;AF69;1101 116B 11AC;AF69;1101 116B 11AC;
+AF6A;AF6A;1101 116B 11AD;AF6A;1101 116B 11AD;
+AF6B;AF6B;1101 116B 11AE;AF6B;1101 116B 11AE;
+AF6C;AF6C;1101 116B 11AF;AF6C;1101 116B 11AF;
+AF6D;AF6D;1101 116B 11B0;AF6D;1101 116B 11B0;
+AF6E;AF6E;1101 116B 11B1;AF6E;1101 116B 11B1;
+AF6F;AF6F;1101 116B 11B2;AF6F;1101 116B 11B2;
+AF70;AF70;1101 116B 11B3;AF70;1101 116B 11B3;
+AF71;AF71;1101 116B 11B4;AF71;1101 116B 11B4;
+AF72;AF72;1101 116B 11B5;AF72;1101 116B 11B5;
+AF73;AF73;1101 116B 11B6;AF73;1101 116B 11B6;
+AF74;AF74;1101 116B 11B7;AF74;1101 116B 11B7;
+AF75;AF75;1101 116B 11B8;AF75;1101 116B 11B8;
+AF76;AF76;1101 116B 11B9;AF76;1101 116B 11B9;
+AF77;AF77;1101 116B 11BA;AF77;1101 116B 11BA;
+AF78;AF78;1101 116B 11BB;AF78;1101 116B 11BB;
+AF79;AF79;1101 116B 11BC;AF79;1101 116B 11BC;
+AF7A;AF7A;1101 116B 11BD;AF7A;1101 116B 11BD;
+AF7B;AF7B;1101 116B 11BE;AF7B;1101 116B 11BE;
+AF7C;AF7C;1101 116B 11BF;AF7C;1101 116B 11BF;
+AF7D;AF7D;1101 116B 11C0;AF7D;1101 116B 11C0;
+AF7E;AF7E;1101 116B 11C1;AF7E;1101 116B 11C1;
+AF7F;AF7F;1101 116B 11C2;AF7F;1101 116B 11C2;
+AF80;AF80;1101 116C;AF80;1101 116C;
+AF81;AF81;1101 116C 11A8;AF81;1101 116C 11A8;
+AF82;AF82;1101 116C 11A9;AF82;1101 116C 11A9;
+AF83;AF83;1101 116C 11AA;AF83;1101 116C 11AA;
+AF84;AF84;1101 116C 11AB;AF84;1101 116C 11AB;
+AF85;AF85;1101 116C 11AC;AF85;1101 116C 11AC;
+AF86;AF86;1101 116C 11AD;AF86;1101 116C 11AD;
+AF87;AF87;1101 116C 11AE;AF87;1101 116C 11AE;
+AF88;AF88;1101 116C 11AF;AF88;1101 116C 11AF;
+AF89;AF89;1101 116C 11B0;AF89;1101 116C 11B0;
+AF8A;AF8A;1101 116C 11B1;AF8A;1101 116C 11B1;
+AF8B;AF8B;1101 116C 11B2;AF8B;1101 116C 11B2;
+AF8C;AF8C;1101 116C 11B3;AF8C;1101 116C 11B3;
+AF8D;AF8D;1101 116C 11B4;AF8D;1101 116C 11B4;
+AF8E;AF8E;1101 116C 11B5;AF8E;1101 116C 11B5;
+AF8F;AF8F;1101 116C 11B6;AF8F;1101 116C 11B6;
+AF90;AF90;1101 116C 11B7;AF90;1101 116C 11B7;
+AF91;AF91;1101 116C 11B8;AF91;1101 116C 11B8;
+AF92;AF92;1101 116C 11B9;AF92;1101 116C 11B9;
+AF93;AF93;1101 116C 11BA;AF93;1101 116C 11BA;
+AF94;AF94;1101 116C 11BB;AF94;1101 116C 11BB;
+AF95;AF95;1101 116C 11BC;AF95;1101 116C 11BC;
+AF96;AF96;1101 116C 11BD;AF96;1101 116C 11BD;
+AF97;AF97;1101 116C 11BE;AF97;1101 116C 11BE;
+AF98;AF98;1101 116C 11BF;AF98;1101 116C 11BF;
+AF99;AF99;1101 116C 11C0;AF99;1101 116C 11C0;
+AF9A;AF9A;1101 116C 11C1;AF9A;1101 116C 11C1;
+AF9B;AF9B;1101 116C 11C2;AF9B;1101 116C 11C2;
+AF9C;AF9C;1101 116D;AF9C;1101 116D;
+AF9D;AF9D;1101 116D 11A8;AF9D;1101 116D 11A8;
+AF9E;AF9E;1101 116D 11A9;AF9E;1101 116D 11A9;
+AF9F;AF9F;1101 116D 11AA;AF9F;1101 116D 11AA;
+AFA0;AFA0;1101 116D 11AB;AFA0;1101 116D 11AB;
+AFA1;AFA1;1101 116D 11AC;AFA1;1101 116D 11AC;
+AFA2;AFA2;1101 116D 11AD;AFA2;1101 116D 11AD;
+AFA3;AFA3;1101 116D 11AE;AFA3;1101 116D 11AE;
+AFA4;AFA4;1101 116D 11AF;AFA4;1101 116D 11AF;
+AFA5;AFA5;1101 116D 11B0;AFA5;1101 116D 11B0;
+AFA6;AFA6;1101 116D 11B1;AFA6;1101 116D 11B1;
+AFA7;AFA7;1101 116D 11B2;AFA7;1101 116D 11B2;
+AFA8;AFA8;1101 116D 11B3;AFA8;1101 116D 11B3;
+AFA9;AFA9;1101 116D 11B4;AFA9;1101 116D 11B4;
+AFAA;AFAA;1101 116D 11B5;AFAA;1101 116D 11B5;
+AFAB;AFAB;1101 116D 11B6;AFAB;1101 116D 11B6;
+AFAC;AFAC;1101 116D 11B7;AFAC;1101 116D 11B7;
+AFAD;AFAD;1101 116D 11B8;AFAD;1101 116D 11B8;
+AFAE;AFAE;1101 116D 11B9;AFAE;1101 116D 11B9;
+AFAF;AFAF;1101 116D 11BA;AFAF;1101 116D 11BA;
+AFB0;AFB0;1101 116D 11BB;AFB0;1101 116D 11BB;
+AFB1;AFB1;1101 116D 11BC;AFB1;1101 116D 11BC;
+AFB2;AFB2;1101 116D 11BD;AFB2;1101 116D 11BD;
+AFB3;AFB3;1101 116D 11BE;AFB3;1101 116D 11BE;
+AFB4;AFB4;1101 116D 11BF;AFB4;1101 116D 11BF;
+AFB5;AFB5;1101 116D 11C0;AFB5;1101 116D 11C0;
+AFB6;AFB6;1101 116D 11C1;AFB6;1101 116D 11C1;
+AFB7;AFB7;1101 116D 11C2;AFB7;1101 116D 11C2;
+AFB8;AFB8;1101 116E;AFB8;1101 116E;
+AFB9;AFB9;1101 116E 11A8;AFB9;1101 116E 11A8;
+AFBA;AFBA;1101 116E 11A9;AFBA;1101 116E 11A9;
+AFBB;AFBB;1101 116E 11AA;AFBB;1101 116E 11AA;
+AFBC;AFBC;1101 116E 11AB;AFBC;1101 116E 11AB;
+AFBD;AFBD;1101 116E 11AC;AFBD;1101 116E 11AC;
+AFBE;AFBE;1101 116E 11AD;AFBE;1101 116E 11AD;
+AFBF;AFBF;1101 116E 11AE;AFBF;1101 116E 11AE;
+AFC0;AFC0;1101 116E 11AF;AFC0;1101 116E 11AF;
+AFC1;AFC1;1101 116E 11B0;AFC1;1101 116E 11B0;
+AFC2;AFC2;1101 116E 11B1;AFC2;1101 116E 11B1;
+AFC3;AFC3;1101 116E 11B2;AFC3;1101 116E 11B2;
+AFC4;AFC4;1101 116E 11B3;AFC4;1101 116E 11B3;
+AFC5;AFC5;1101 116E 11B4;AFC5;1101 116E 11B4;
+AFC6;AFC6;1101 116E 11B5;AFC6;1101 116E 11B5;
+AFC7;AFC7;1101 116E 11B6;AFC7;1101 116E 11B6;
+AFC8;AFC8;1101 116E 11B7;AFC8;1101 116E 11B7;
+AFC9;AFC9;1101 116E 11B8;AFC9;1101 116E 11B8;
+AFCA;AFCA;1101 116E 11B9;AFCA;1101 116E 11B9;
+AFCB;AFCB;1101 116E 11BA;AFCB;1101 116E 11BA;
+AFCC;AFCC;1101 116E 11BB;AFCC;1101 116E 11BB;
+AFCD;AFCD;1101 116E 11BC;AFCD;1101 116E 11BC;
+AFCE;AFCE;1101 116E 11BD;AFCE;1101 116E 11BD;
+AFCF;AFCF;1101 116E 11BE;AFCF;1101 116E 11BE;
+AFD0;AFD0;1101 116E 11BF;AFD0;1101 116E 11BF;
+AFD1;AFD1;1101 116E 11C0;AFD1;1101 116E 11C0;
+AFD2;AFD2;1101 116E 11C1;AFD2;1101 116E 11C1;
+AFD3;AFD3;1101 116E 11C2;AFD3;1101 116E 11C2;
+AFD4;AFD4;1101 116F;AFD4;1101 116F;
+AFD5;AFD5;1101 116F 11A8;AFD5;1101 116F 11A8;
+AFD6;AFD6;1101 116F 11A9;AFD6;1101 116F 11A9;
+AFD7;AFD7;1101 116F 11AA;AFD7;1101 116F 11AA;
+AFD8;AFD8;1101 116F 11AB;AFD8;1101 116F 11AB;
+AFD9;AFD9;1101 116F 11AC;AFD9;1101 116F 11AC;
+AFDA;AFDA;1101 116F 11AD;AFDA;1101 116F 11AD;
+AFDB;AFDB;1101 116F 11AE;AFDB;1101 116F 11AE;
+AFDC;AFDC;1101 116F 11AF;AFDC;1101 116F 11AF;
+AFDD;AFDD;1101 116F 11B0;AFDD;1101 116F 11B0;
+AFDE;AFDE;1101 116F 11B1;AFDE;1101 116F 11B1;
+AFDF;AFDF;1101 116F 11B2;AFDF;1101 116F 11B2;
+AFE0;AFE0;1101 116F 11B3;AFE0;1101 116F 11B3;
+AFE1;AFE1;1101 116F 11B4;AFE1;1101 116F 11B4;
+AFE2;AFE2;1101 116F 11B5;AFE2;1101 116F 11B5;
+AFE3;AFE3;1101 116F 11B6;AFE3;1101 116F 11B6;
+AFE4;AFE4;1101 116F 11B7;AFE4;1101 116F 11B7;
+AFE5;AFE5;1101 116F 11B8;AFE5;1101 116F 11B8;
+AFE6;AFE6;1101 116F 11B9;AFE6;1101 116F 11B9;
+AFE7;AFE7;1101 116F 11BA;AFE7;1101 116F 11BA;
+AFE8;AFE8;1101 116F 11BB;AFE8;1101 116F 11BB;
+AFE9;AFE9;1101 116F 11BC;AFE9;1101 116F 11BC;
+AFEA;AFEA;1101 116F 11BD;AFEA;1101 116F 11BD;
+AFEB;AFEB;1101 116F 11BE;AFEB;1101 116F 11BE;
+AFEC;AFEC;1101 116F 11BF;AFEC;1101 116F 11BF;
+AFED;AFED;1101 116F 11C0;AFED;1101 116F 11C0;
+AFEE;AFEE;1101 116F 11C1;AFEE;1101 116F 11C1;
+AFEF;AFEF;1101 116F 11C2;AFEF;1101 116F 11C2;
+AFF0;AFF0;1101 1170;AFF0;1101 1170;
+AFF1;AFF1;1101 1170 11A8;AFF1;1101 1170 11A8;
+AFF2;AFF2;1101 1170 11A9;AFF2;1101 1170 11A9;
+AFF3;AFF3;1101 1170 11AA;AFF3;1101 1170 11AA;
+AFF4;AFF4;1101 1170 11AB;AFF4;1101 1170 11AB;
+AFF5;AFF5;1101 1170 11AC;AFF5;1101 1170 11AC;
+AFF6;AFF6;1101 1170 11AD;AFF6;1101 1170 11AD;
+AFF7;AFF7;1101 1170 11AE;AFF7;1101 1170 11AE;
+AFF8;AFF8;1101 1170 11AF;AFF8;1101 1170 11AF;
+AFF9;AFF9;1101 1170 11B0;AFF9;1101 1170 11B0;
+AFFA;AFFA;1101 1170 11B1;AFFA;1101 1170 11B1;
+AFFB;AFFB;1101 1170 11B2;AFFB;1101 1170 11B2;
+AFFC;AFFC;1101 1170 11B3;AFFC;1101 1170 11B3;
+AFFD;AFFD;1101 1170 11B4;AFFD;1101 1170 11B4;
+AFFE;AFFE;1101 1170 11B5;AFFE;1101 1170 11B5;
+AFFF;AFFF;1101 1170 11B6;AFFF;1101 1170 11B6;
+B000;B000;1101 1170 11B7;B000;1101 1170 11B7;
+B001;B001;1101 1170 11B8;B001;1101 1170 11B8;
+B002;B002;1101 1170 11B9;B002;1101 1170 11B9;
+B003;B003;1101 1170 11BA;B003;1101 1170 11BA;
+B004;B004;1101 1170 11BB;B004;1101 1170 11BB;
+B005;B005;1101 1170 11BC;B005;1101 1170 11BC;
+B006;B006;1101 1170 11BD;B006;1101 1170 11BD;
+B007;B007;1101 1170 11BE;B007;1101 1170 11BE;
+B008;B008;1101 1170 11BF;B008;1101 1170 11BF;
+B009;B009;1101 1170 11C0;B009;1101 1170 11C0;
+B00A;B00A;1101 1170 11C1;B00A;1101 1170 11C1;
+B00B;B00B;1101 1170 11C2;B00B;1101 1170 11C2;
+B00C;B00C;1101 1171;B00C;1101 1171;
+B00D;B00D;1101 1171 11A8;B00D;1101 1171 11A8;
+B00E;B00E;1101 1171 11A9;B00E;1101 1171 11A9;
+B00F;B00F;1101 1171 11AA;B00F;1101 1171 11AA;
+B010;B010;1101 1171 11AB;B010;1101 1171 11AB;
+B011;B011;1101 1171 11AC;B011;1101 1171 11AC;
+B012;B012;1101 1171 11AD;B012;1101 1171 11AD;
+B013;B013;1101 1171 11AE;B013;1101 1171 11AE;
+B014;B014;1101 1171 11AF;B014;1101 1171 11AF;
+B015;B015;1101 1171 11B0;B015;1101 1171 11B0;
+B016;B016;1101 1171 11B1;B016;1101 1171 11B1;
+B017;B017;1101 1171 11B2;B017;1101 1171 11B2;
+B018;B018;1101 1171 11B3;B018;1101 1171 11B3;
+B019;B019;1101 1171 11B4;B019;1101 1171 11B4;
+B01A;B01A;1101 1171 11B5;B01A;1101 1171 11B5;
+B01B;B01B;1101 1171 11B6;B01B;1101 1171 11B6;
+B01C;B01C;1101 1171 11B7;B01C;1101 1171 11B7;
+B01D;B01D;1101 1171 11B8;B01D;1101 1171 11B8;
+B01E;B01E;1101 1171 11B9;B01E;1101 1171 11B9;
+B01F;B01F;1101 1171 11BA;B01F;1101 1171 11BA;
+B020;B020;1101 1171 11BB;B020;1101 1171 11BB;
+B021;B021;1101 1171 11BC;B021;1101 1171 11BC;
+B022;B022;1101 1171 11BD;B022;1101 1171 11BD;
+B023;B023;1101 1171 11BE;B023;1101 1171 11BE;
+B024;B024;1101 1171 11BF;B024;1101 1171 11BF;
+B025;B025;1101 1171 11C0;B025;1101 1171 11C0;
+B026;B026;1101 1171 11C1;B026;1101 1171 11C1;
+B027;B027;1101 1171 11C2;B027;1101 1171 11C2;
+B028;B028;1101 1172;B028;1101 1172;
+B029;B029;1101 1172 11A8;B029;1101 1172 11A8;
+B02A;B02A;1101 1172 11A9;B02A;1101 1172 11A9;
+B02B;B02B;1101 1172 11AA;B02B;1101 1172 11AA;
+B02C;B02C;1101 1172 11AB;B02C;1101 1172 11AB;
+B02D;B02D;1101 1172 11AC;B02D;1101 1172 11AC;
+B02E;B02E;1101 1172 11AD;B02E;1101 1172 11AD;
+B02F;B02F;1101 1172 11AE;B02F;1101 1172 11AE;
+B030;B030;1101 1172 11AF;B030;1101 1172 11AF;
+B031;B031;1101 1172 11B0;B031;1101 1172 11B0;
+B032;B032;1101 1172 11B1;B032;1101 1172 11B1;
+B033;B033;1101 1172 11B2;B033;1101 1172 11B2;
+B034;B034;1101 1172 11B3;B034;1101 1172 11B3;
+B035;B035;1101 1172 11B4;B035;1101 1172 11B4;
+B036;B036;1101 1172 11B5;B036;1101 1172 11B5;
+B037;B037;1101 1172 11B6;B037;1101 1172 11B6;
+B038;B038;1101 1172 11B7;B038;1101 1172 11B7;
+B039;B039;1101 1172 11B8;B039;1101 1172 11B8;
+B03A;B03A;1101 1172 11B9;B03A;1101 1172 11B9;
+B03B;B03B;1101 1172 11BA;B03B;1101 1172 11BA;
+B03C;B03C;1101 1172 11BB;B03C;1101 1172 11BB;
+B03D;B03D;1101 1172 11BC;B03D;1101 1172 11BC;
+B03E;B03E;1101 1172 11BD;B03E;1101 1172 11BD;
+B03F;B03F;1101 1172 11BE;B03F;1101 1172 11BE;
+B040;B040;1101 1172 11BF;B040;1101 1172 11BF;
+B041;B041;1101 1172 11C0;B041;1101 1172 11C0;
+B042;B042;1101 1172 11C1;B042;1101 1172 11C1;
+B043;B043;1101 1172 11C2;B043;1101 1172 11C2;
+B044;B044;1101 1173;B044;1101 1173;
+B045;B045;1101 1173 11A8;B045;1101 1173 11A8;
+B046;B046;1101 1173 11A9;B046;1101 1173 11A9;
+B047;B047;1101 1173 11AA;B047;1101 1173 11AA;
+B048;B048;1101 1173 11AB;B048;1101 1173 11AB;
+B049;B049;1101 1173 11AC;B049;1101 1173 11AC;
+B04A;B04A;1101 1173 11AD;B04A;1101 1173 11AD;
+B04B;B04B;1101 1173 11AE;B04B;1101 1173 11AE;
+B04C;B04C;1101 1173 11AF;B04C;1101 1173 11AF;
+B04D;B04D;1101 1173 11B0;B04D;1101 1173 11B0;
+B04E;B04E;1101 1173 11B1;B04E;1101 1173 11B1;
+B04F;B04F;1101 1173 11B2;B04F;1101 1173 11B2;
+B050;B050;1101 1173 11B3;B050;1101 1173 11B3;
+B051;B051;1101 1173 11B4;B051;1101 1173 11B4;
+B052;B052;1101 1173 11B5;B052;1101 1173 11B5;
+B053;B053;1101 1173 11B6;B053;1101 1173 11B6;
+B054;B054;1101 1173 11B7;B054;1101 1173 11B7;
+B055;B055;1101 1173 11B8;B055;1101 1173 11B8;
+B056;B056;1101 1173 11B9;B056;1101 1173 11B9;
+B057;B057;1101 1173 11BA;B057;1101 1173 11BA;
+B058;B058;1101 1173 11BB;B058;1101 1173 11BB;
+B059;B059;1101 1173 11BC;B059;1101 1173 11BC;
+B05A;B05A;1101 1173 11BD;B05A;1101 1173 11BD;
+B05B;B05B;1101 1173 11BE;B05B;1101 1173 11BE;
+B05C;B05C;1101 1173 11BF;B05C;1101 1173 11BF;
+B05D;B05D;1101 1173 11C0;B05D;1101 1173 11C0;
+B05E;B05E;1101 1173 11C1;B05E;1101 1173 11C1;
+B05F;B05F;1101 1173 11C2;B05F;1101 1173 11C2;
+B060;B060;1101 1174;B060;1101 1174;
+B061;B061;1101 1174 11A8;B061;1101 1174 11A8;
+B062;B062;1101 1174 11A9;B062;1101 1174 11A9;
+B063;B063;1101 1174 11AA;B063;1101 1174 11AA;
+B064;B064;1101 1174 11AB;B064;1101 1174 11AB;
+B065;B065;1101 1174 11AC;B065;1101 1174 11AC;
+B066;B066;1101 1174 11AD;B066;1101 1174 11AD;
+B067;B067;1101 1174 11AE;B067;1101 1174 11AE;
+B068;B068;1101 1174 11AF;B068;1101 1174 11AF;
+B069;B069;1101 1174 11B0;B069;1101 1174 11B0;
+B06A;B06A;1101 1174 11B1;B06A;1101 1174 11B1;
+B06B;B06B;1101 1174 11B2;B06B;1101 1174 11B2;
+B06C;B06C;1101 1174 11B3;B06C;1101 1174 11B3;
+B06D;B06D;1101 1174 11B4;B06D;1101 1174 11B4;
+B06E;B06E;1101 1174 11B5;B06E;1101 1174 11B5;
+B06F;B06F;1101 1174 11B6;B06F;1101 1174 11B6;
+B070;B070;1101 1174 11B7;B070;1101 1174 11B7;
+B071;B071;1101 1174 11B8;B071;1101 1174 11B8;
+B072;B072;1101 1174 11B9;B072;1101 1174 11B9;
+B073;B073;1101 1174 11BA;B073;1101 1174 11BA;
+B074;B074;1101 1174 11BB;B074;1101 1174 11BB;
+B075;B075;1101 1174 11BC;B075;1101 1174 11BC;
+B076;B076;1101 1174 11BD;B076;1101 1174 11BD;
+B077;B077;1101 1174 11BE;B077;1101 1174 11BE;
+B078;B078;1101 1174 11BF;B078;1101 1174 11BF;
+B079;B079;1101 1174 11C0;B079;1101 1174 11C0;
+B07A;B07A;1101 1174 11C1;B07A;1101 1174 11C1;
+B07B;B07B;1101 1174 11C2;B07B;1101 1174 11C2;
+B07C;B07C;1101 1175;B07C;1101 1175;
+B07D;B07D;1101 1175 11A8;B07D;1101 1175 11A8;
+B07E;B07E;1101 1175 11A9;B07E;1101 1175 11A9;
+B07F;B07F;1101 1175 11AA;B07F;1101 1175 11AA;
+B080;B080;1101 1175 11AB;B080;1101 1175 11AB;
+B081;B081;1101 1175 11AC;B081;1101 1175 11AC;
+B082;B082;1101 1175 11AD;B082;1101 1175 11AD;
+B083;B083;1101 1175 11AE;B083;1101 1175 11AE;
+B084;B084;1101 1175 11AF;B084;1101 1175 11AF;
+B085;B085;1101 1175 11B0;B085;1101 1175 11B0;
+B086;B086;1101 1175 11B1;B086;1101 1175 11B1;
+B087;B087;1101 1175 11B2;B087;1101 1175 11B2;
+B088;B088;1101 1175 11B3;B088;1101 1175 11B3;
+B089;B089;1101 1175 11B4;B089;1101 1175 11B4;
+B08A;B08A;1101 1175 11B5;B08A;1101 1175 11B5;
+B08B;B08B;1101 1175 11B6;B08B;1101 1175 11B6;
+B08C;B08C;1101 1175 11B7;B08C;1101 1175 11B7;
+B08D;B08D;1101 1175 11B8;B08D;1101 1175 11B8;
+B08E;B08E;1101 1175 11B9;B08E;1101 1175 11B9;
+B08F;B08F;1101 1175 11BA;B08F;1101 1175 11BA;
+B090;B090;1101 1175 11BB;B090;1101 1175 11BB;
+B091;B091;1101 1175 11BC;B091;1101 1175 11BC;
+B092;B092;1101 1175 11BD;B092;1101 1175 11BD;
+B093;B093;1101 1175 11BE;B093;1101 1175 11BE;
+B094;B094;1101 1175 11BF;B094;1101 1175 11BF;
+B095;B095;1101 1175 11C0;B095;1101 1175 11C0;
+B096;B096;1101 1175 11C1;B096;1101 1175 11C1;
+B097;B097;1101 1175 11C2;B097;1101 1175 11C2;
+B098;B098;1102 1161;B098;1102 1161;
+B099;B099;1102 1161 11A8;B099;1102 1161 11A8;
+B09A;B09A;1102 1161 11A9;B09A;1102 1161 11A9;
+B09B;B09B;1102 1161 11AA;B09B;1102 1161 11AA;
+B09C;B09C;1102 1161 11AB;B09C;1102 1161 11AB;
+B09D;B09D;1102 1161 11AC;B09D;1102 1161 11AC;
+B09E;B09E;1102 1161 11AD;B09E;1102 1161 11AD;
+B09F;B09F;1102 1161 11AE;B09F;1102 1161 11AE;
+B0A0;B0A0;1102 1161 11AF;B0A0;1102 1161 11AF;
+B0A1;B0A1;1102 1161 11B0;B0A1;1102 1161 11B0;
+B0A2;B0A2;1102 1161 11B1;B0A2;1102 1161 11B1;
+B0A3;B0A3;1102 1161 11B2;B0A3;1102 1161 11B2;
+B0A4;B0A4;1102 1161 11B3;B0A4;1102 1161 11B3;
+B0A5;B0A5;1102 1161 11B4;B0A5;1102 1161 11B4;
+B0A6;B0A6;1102 1161 11B5;B0A6;1102 1161 11B5;
+B0A7;B0A7;1102 1161 11B6;B0A7;1102 1161 11B6;
+B0A8;B0A8;1102 1161 11B7;B0A8;1102 1161 11B7;
+B0A9;B0A9;1102 1161 11B8;B0A9;1102 1161 11B8;
+B0AA;B0AA;1102 1161 11B9;B0AA;1102 1161 11B9;
+B0AB;B0AB;1102 1161 11BA;B0AB;1102 1161 11BA;
+B0AC;B0AC;1102 1161 11BB;B0AC;1102 1161 11BB;
+B0AD;B0AD;1102 1161 11BC;B0AD;1102 1161 11BC;
+B0AE;B0AE;1102 1161 11BD;B0AE;1102 1161 11BD;
+B0AF;B0AF;1102 1161 11BE;B0AF;1102 1161 11BE;
+B0B0;B0B0;1102 1161 11BF;B0B0;1102 1161 11BF;
+B0B1;B0B1;1102 1161 11C0;B0B1;1102 1161 11C0;
+B0B2;B0B2;1102 1161 11C1;B0B2;1102 1161 11C1;
+B0B3;B0B3;1102 1161 11C2;B0B3;1102 1161 11C2;
+B0B4;B0B4;1102 1162;B0B4;1102 1162;
+B0B5;B0B5;1102 1162 11A8;B0B5;1102 1162 11A8;
+B0B6;B0B6;1102 1162 11A9;B0B6;1102 1162 11A9;
+B0B7;B0B7;1102 1162 11AA;B0B7;1102 1162 11AA;
+B0B8;B0B8;1102 1162 11AB;B0B8;1102 1162 11AB;
+B0B9;B0B9;1102 1162 11AC;B0B9;1102 1162 11AC;
+B0BA;B0BA;1102 1162 11AD;B0BA;1102 1162 11AD;
+B0BB;B0BB;1102 1162 11AE;B0BB;1102 1162 11AE;
+B0BC;B0BC;1102 1162 11AF;B0BC;1102 1162 11AF;
+B0BD;B0BD;1102 1162 11B0;B0BD;1102 1162 11B0;
+B0BE;B0BE;1102 1162 11B1;B0BE;1102 1162 11B1;
+B0BF;B0BF;1102 1162 11B2;B0BF;1102 1162 11B2;
+B0C0;B0C0;1102 1162 11B3;B0C0;1102 1162 11B3;
+B0C1;B0C1;1102 1162 11B4;B0C1;1102 1162 11B4;
+B0C2;B0C2;1102 1162 11B5;B0C2;1102 1162 11B5;
+B0C3;B0C3;1102 1162 11B6;B0C3;1102 1162 11B6;
+B0C4;B0C4;1102 1162 11B7;B0C4;1102 1162 11B7;
+B0C5;B0C5;1102 1162 11B8;B0C5;1102 1162 11B8;
+B0C6;B0C6;1102 1162 11B9;B0C6;1102 1162 11B9;
+B0C7;B0C7;1102 1162 11BA;B0C7;1102 1162 11BA;
+B0C8;B0C8;1102 1162 11BB;B0C8;1102 1162 11BB;
+B0C9;B0C9;1102 1162 11BC;B0C9;1102 1162 11BC;
+B0CA;B0CA;1102 1162 11BD;B0CA;1102 1162 11BD;
+B0CB;B0CB;1102 1162 11BE;B0CB;1102 1162 11BE;
+B0CC;B0CC;1102 1162 11BF;B0CC;1102 1162 11BF;
+B0CD;B0CD;1102 1162 11C0;B0CD;1102 1162 11C0;
+B0CE;B0CE;1102 1162 11C1;B0CE;1102 1162 11C1;
+B0CF;B0CF;1102 1162 11C2;B0CF;1102 1162 11C2;
+B0D0;B0D0;1102 1163;B0D0;1102 1163;
+B0D1;B0D1;1102 1163 11A8;B0D1;1102 1163 11A8;
+B0D2;B0D2;1102 1163 11A9;B0D2;1102 1163 11A9;
+B0D3;B0D3;1102 1163 11AA;B0D3;1102 1163 11AA;
+B0D4;B0D4;1102 1163 11AB;B0D4;1102 1163 11AB;
+B0D5;B0D5;1102 1163 11AC;B0D5;1102 1163 11AC;
+B0D6;B0D6;1102 1163 11AD;B0D6;1102 1163 11AD;
+B0D7;B0D7;1102 1163 11AE;B0D7;1102 1163 11AE;
+B0D8;B0D8;1102 1163 11AF;B0D8;1102 1163 11AF;
+B0D9;B0D9;1102 1163 11B0;B0D9;1102 1163 11B0;
+B0DA;B0DA;1102 1163 11B1;B0DA;1102 1163 11B1;
+B0DB;B0DB;1102 1163 11B2;B0DB;1102 1163 11B2;
+B0DC;B0DC;1102 1163 11B3;B0DC;1102 1163 11B3;
+B0DD;B0DD;1102 1163 11B4;B0DD;1102 1163 11B4;
+B0DE;B0DE;1102 1163 11B5;B0DE;1102 1163 11B5;
+B0DF;B0DF;1102 1163 11B6;B0DF;1102 1163 11B6;
+B0E0;B0E0;1102 1163 11B7;B0E0;1102 1163 11B7;
+B0E1;B0E1;1102 1163 11B8;B0E1;1102 1163 11B8;
+B0E2;B0E2;1102 1163 11B9;B0E2;1102 1163 11B9;
+B0E3;B0E3;1102 1163 11BA;B0E3;1102 1163 11BA;
+B0E4;B0E4;1102 1163 11BB;B0E4;1102 1163 11BB;
+B0E5;B0E5;1102 1163 11BC;B0E5;1102 1163 11BC;
+B0E6;B0E6;1102 1163 11BD;B0E6;1102 1163 11BD;
+B0E7;B0E7;1102 1163 11BE;B0E7;1102 1163 11BE;
+B0E8;B0E8;1102 1163 11BF;B0E8;1102 1163 11BF;
+B0E9;B0E9;1102 1163 11C0;B0E9;1102 1163 11C0;
+B0EA;B0EA;1102 1163 11C1;B0EA;1102 1163 11C1;
+B0EB;B0EB;1102 1163 11C2;B0EB;1102 1163 11C2;
+B0EC;B0EC;1102 1164;B0EC;1102 1164;
+B0ED;B0ED;1102 1164 11A8;B0ED;1102 1164 11A8;
+B0EE;B0EE;1102 1164 11A9;B0EE;1102 1164 11A9;
+B0EF;B0EF;1102 1164 11AA;B0EF;1102 1164 11AA;
+B0F0;B0F0;1102 1164 11AB;B0F0;1102 1164 11AB;
+B0F1;B0F1;1102 1164 11AC;B0F1;1102 1164 11AC;
+B0F2;B0F2;1102 1164 11AD;B0F2;1102 1164 11AD;
+B0F3;B0F3;1102 1164 11AE;B0F3;1102 1164 11AE;
+B0F4;B0F4;1102 1164 11AF;B0F4;1102 1164 11AF;
+B0F5;B0F5;1102 1164 11B0;B0F5;1102 1164 11B0;
+B0F6;B0F6;1102 1164 11B1;B0F6;1102 1164 11B1;
+B0F7;B0F7;1102 1164 11B2;B0F7;1102 1164 11B2;
+B0F8;B0F8;1102 1164 11B3;B0F8;1102 1164 11B3;
+B0F9;B0F9;1102 1164 11B4;B0F9;1102 1164 11B4;
+B0FA;B0FA;1102 1164 11B5;B0FA;1102 1164 11B5;
+B0FB;B0FB;1102 1164 11B6;B0FB;1102 1164 11B6;
+B0FC;B0FC;1102 1164 11B7;B0FC;1102 1164 11B7;
+B0FD;B0FD;1102 1164 11B8;B0FD;1102 1164 11B8;
+B0FE;B0FE;1102 1164 11B9;B0FE;1102 1164 11B9;
+B0FF;B0FF;1102 1164 11BA;B0FF;1102 1164 11BA;
+B100;B100;1102 1164 11BB;B100;1102 1164 11BB;
+B101;B101;1102 1164 11BC;B101;1102 1164 11BC;
+B102;B102;1102 1164 11BD;B102;1102 1164 11BD;
+B103;B103;1102 1164 11BE;B103;1102 1164 11BE;
+B104;B104;1102 1164 11BF;B104;1102 1164 11BF;
+B105;B105;1102 1164 11C0;B105;1102 1164 11C0;
+B106;B106;1102 1164 11C1;B106;1102 1164 11C1;
+B107;B107;1102 1164 11C2;B107;1102 1164 11C2;
+B108;B108;1102 1165;B108;1102 1165;
+B109;B109;1102 1165 11A8;B109;1102 1165 11A8;
+B10A;B10A;1102 1165 11A9;B10A;1102 1165 11A9;
+B10B;B10B;1102 1165 11AA;B10B;1102 1165 11AA;
+B10C;B10C;1102 1165 11AB;B10C;1102 1165 11AB;
+B10D;B10D;1102 1165 11AC;B10D;1102 1165 11AC;
+B10E;B10E;1102 1165 11AD;B10E;1102 1165 11AD;
+B10F;B10F;1102 1165 11AE;B10F;1102 1165 11AE;
+B110;B110;1102 1165 11AF;B110;1102 1165 11AF;
+B111;B111;1102 1165 11B0;B111;1102 1165 11B0;
+B112;B112;1102 1165 11B1;B112;1102 1165 11B1;
+B113;B113;1102 1165 11B2;B113;1102 1165 11B2;
+B114;B114;1102 1165 11B3;B114;1102 1165 11B3;
+B115;B115;1102 1165 11B4;B115;1102 1165 11B4;
+B116;B116;1102 1165 11B5;B116;1102 1165 11B5;
+B117;B117;1102 1165 11B6;B117;1102 1165 11B6;
+B118;B118;1102 1165 11B7;B118;1102 1165 11B7;
+B119;B119;1102 1165 11B8;B119;1102 1165 11B8;
+B11A;B11A;1102 1165 11B9;B11A;1102 1165 11B9;
+B11B;B11B;1102 1165 11BA;B11B;1102 1165 11BA;
+B11C;B11C;1102 1165 11BB;B11C;1102 1165 11BB;
+B11D;B11D;1102 1165 11BC;B11D;1102 1165 11BC;
+B11E;B11E;1102 1165 11BD;B11E;1102 1165 11BD;
+B11F;B11F;1102 1165 11BE;B11F;1102 1165 11BE;
+B120;B120;1102 1165 11BF;B120;1102 1165 11BF;
+B121;B121;1102 1165 11C0;B121;1102 1165 11C0;
+B122;B122;1102 1165 11C1;B122;1102 1165 11C1;
+B123;B123;1102 1165 11C2;B123;1102 1165 11C2;
+B124;B124;1102 1166;B124;1102 1166;
+B125;B125;1102 1166 11A8;B125;1102 1166 11A8;
+B126;B126;1102 1166 11A9;B126;1102 1166 11A9;
+B127;B127;1102 1166 11AA;B127;1102 1166 11AA;
+B128;B128;1102 1166 11AB;B128;1102 1166 11AB;
+B129;B129;1102 1166 11AC;B129;1102 1166 11AC;
+B12A;B12A;1102 1166 11AD;B12A;1102 1166 11AD;
+B12B;B12B;1102 1166 11AE;B12B;1102 1166 11AE;
+B12C;B12C;1102 1166 11AF;B12C;1102 1166 11AF;
+B12D;B12D;1102 1166 11B0;B12D;1102 1166 11B0;
+B12E;B12E;1102 1166 11B1;B12E;1102 1166 11B1;
+B12F;B12F;1102 1166 11B2;B12F;1102 1166 11B2;
+B130;B130;1102 1166 11B3;B130;1102 1166 11B3;
+B131;B131;1102 1166 11B4;B131;1102 1166 11B4;
+B132;B132;1102 1166 11B5;B132;1102 1166 11B5;
+B133;B133;1102 1166 11B6;B133;1102 1166 11B6;
+B134;B134;1102 1166 11B7;B134;1102 1166 11B7;
+B135;B135;1102 1166 11B8;B135;1102 1166 11B8;
+B136;B136;1102 1166 11B9;B136;1102 1166 11B9;
+B137;B137;1102 1166 11BA;B137;1102 1166 11BA;
+B138;B138;1102 1166 11BB;B138;1102 1166 11BB;
+B139;B139;1102 1166 11BC;B139;1102 1166 11BC;
+B13A;B13A;1102 1166 11BD;B13A;1102 1166 11BD;
+B13B;B13B;1102 1166 11BE;B13B;1102 1166 11BE;
+B13C;B13C;1102 1166 11BF;B13C;1102 1166 11BF;
+B13D;B13D;1102 1166 11C0;B13D;1102 1166 11C0;
+B13E;B13E;1102 1166 11C1;B13E;1102 1166 11C1;
+B13F;B13F;1102 1166 11C2;B13F;1102 1166 11C2;
+B140;B140;1102 1167;B140;1102 1167;
+B141;B141;1102 1167 11A8;B141;1102 1167 11A8;
+B142;B142;1102 1167 11A9;B142;1102 1167 11A9;
+B143;B143;1102 1167 11AA;B143;1102 1167 11AA;
+B144;B144;1102 1167 11AB;B144;1102 1167 11AB;
+B145;B145;1102 1167 11AC;B145;1102 1167 11AC;
+B146;B146;1102 1167 11AD;B146;1102 1167 11AD;
+B147;B147;1102 1167 11AE;B147;1102 1167 11AE;
+B148;B148;1102 1167 11AF;B148;1102 1167 11AF;
+B149;B149;1102 1167 11B0;B149;1102 1167 11B0;
+B14A;B14A;1102 1167 11B1;B14A;1102 1167 11B1;
+B14B;B14B;1102 1167 11B2;B14B;1102 1167 11B2;
+B14C;B14C;1102 1167 11B3;B14C;1102 1167 11B3;
+B14D;B14D;1102 1167 11B4;B14D;1102 1167 11B4;
+B14E;B14E;1102 1167 11B5;B14E;1102 1167 11B5;
+B14F;B14F;1102 1167 11B6;B14F;1102 1167 11B6;
+B150;B150;1102 1167 11B7;B150;1102 1167 11B7;
+B151;B151;1102 1167 11B8;B151;1102 1167 11B8;
+B152;B152;1102 1167 11B9;B152;1102 1167 11B9;
+B153;B153;1102 1167 11BA;B153;1102 1167 11BA;
+B154;B154;1102 1167 11BB;B154;1102 1167 11BB;
+B155;B155;1102 1167 11BC;B155;1102 1167 11BC;
+B156;B156;1102 1167 11BD;B156;1102 1167 11BD;
+B157;B157;1102 1167 11BE;B157;1102 1167 11BE;
+B158;B158;1102 1167 11BF;B158;1102 1167 11BF;
+B159;B159;1102 1167 11C0;B159;1102 1167 11C0;
+B15A;B15A;1102 1167 11C1;B15A;1102 1167 11C1;
+B15B;B15B;1102 1167 11C2;B15B;1102 1167 11C2;
+B15C;B15C;1102 1168;B15C;1102 1168;
+B15D;B15D;1102 1168 11A8;B15D;1102 1168 11A8;
+B15E;B15E;1102 1168 11A9;B15E;1102 1168 11A9;
+B15F;B15F;1102 1168 11AA;B15F;1102 1168 11AA;
+B160;B160;1102 1168 11AB;B160;1102 1168 11AB;
+B161;B161;1102 1168 11AC;B161;1102 1168 11AC;
+B162;B162;1102 1168 11AD;B162;1102 1168 11AD;
+B163;B163;1102 1168 11AE;B163;1102 1168 11AE;
+B164;B164;1102 1168 11AF;B164;1102 1168 11AF;
+B165;B165;1102 1168 11B0;B165;1102 1168 11B0;
+B166;B166;1102 1168 11B1;B166;1102 1168 11B1;
+B167;B167;1102 1168 11B2;B167;1102 1168 11B2;
+B168;B168;1102 1168 11B3;B168;1102 1168 11B3;
+B169;B169;1102 1168 11B4;B169;1102 1168 11B4;
+B16A;B16A;1102 1168 11B5;B16A;1102 1168 11B5;
+B16B;B16B;1102 1168 11B6;B16B;1102 1168 11B6;
+B16C;B16C;1102 1168 11B7;B16C;1102 1168 11B7;
+B16D;B16D;1102 1168 11B8;B16D;1102 1168 11B8;
+B16E;B16E;1102 1168 11B9;B16E;1102 1168 11B9;
+B16F;B16F;1102 1168 11BA;B16F;1102 1168 11BA;
+B170;B170;1102 1168 11BB;B170;1102 1168 11BB;
+B171;B171;1102 1168 11BC;B171;1102 1168 11BC;
+B172;B172;1102 1168 11BD;B172;1102 1168 11BD;
+B173;B173;1102 1168 11BE;B173;1102 1168 11BE;
+B174;B174;1102 1168 11BF;B174;1102 1168 11BF;
+B175;B175;1102 1168 11C0;B175;1102 1168 11C0;
+B176;B176;1102 1168 11C1;B176;1102 1168 11C1;
+B177;B177;1102 1168 11C2;B177;1102 1168 11C2;
+B178;B178;1102 1169;B178;1102 1169;
+B179;B179;1102 1169 11A8;B179;1102 1169 11A8;
+B17A;B17A;1102 1169 11A9;B17A;1102 1169 11A9;
+B17B;B17B;1102 1169 11AA;B17B;1102 1169 11AA;
+B17C;B17C;1102 1169 11AB;B17C;1102 1169 11AB;
+B17D;B17D;1102 1169 11AC;B17D;1102 1169 11AC;
+B17E;B17E;1102 1169 11AD;B17E;1102 1169 11AD;
+B17F;B17F;1102 1169 11AE;B17F;1102 1169 11AE;
+B180;B180;1102 1169 11AF;B180;1102 1169 11AF;
+B181;B181;1102 1169 11B0;B181;1102 1169 11B0;
+B182;B182;1102 1169 11B1;B182;1102 1169 11B1;
+B183;B183;1102 1169 11B2;B183;1102 1169 11B2;
+B184;B184;1102 1169 11B3;B184;1102 1169 11B3;
+B185;B185;1102 1169 11B4;B185;1102 1169 11B4;
+B186;B186;1102 1169 11B5;B186;1102 1169 11B5;
+B187;B187;1102 1169 11B6;B187;1102 1169 11B6;
+B188;B188;1102 1169 11B7;B188;1102 1169 11B7;
+B189;B189;1102 1169 11B8;B189;1102 1169 11B8;
+B18A;B18A;1102 1169 11B9;B18A;1102 1169 11B9;
+B18B;B18B;1102 1169 11BA;B18B;1102 1169 11BA;
+B18C;B18C;1102 1169 11BB;B18C;1102 1169 11BB;
+B18D;B18D;1102 1169 11BC;B18D;1102 1169 11BC;
+B18E;B18E;1102 1169 11BD;B18E;1102 1169 11BD;
+B18F;B18F;1102 1169 11BE;B18F;1102 1169 11BE;
+B190;B190;1102 1169 11BF;B190;1102 1169 11BF;
+B191;B191;1102 1169 11C0;B191;1102 1169 11C0;
+B192;B192;1102 1169 11C1;B192;1102 1169 11C1;
+B193;B193;1102 1169 11C2;B193;1102 1169 11C2;
+B194;B194;1102 116A;B194;1102 116A;
+B195;B195;1102 116A 11A8;B195;1102 116A 11A8;
+B196;B196;1102 116A 11A9;B196;1102 116A 11A9;
+B197;B197;1102 116A 11AA;B197;1102 116A 11AA;
+B198;B198;1102 116A 11AB;B198;1102 116A 11AB;
+B199;B199;1102 116A 11AC;B199;1102 116A 11AC;
+B19A;B19A;1102 116A 11AD;B19A;1102 116A 11AD;
+B19B;B19B;1102 116A 11AE;B19B;1102 116A 11AE;
+B19C;B19C;1102 116A 11AF;B19C;1102 116A 11AF;
+B19D;B19D;1102 116A 11B0;B19D;1102 116A 11B0;
+B19E;B19E;1102 116A 11B1;B19E;1102 116A 11B1;
+B19F;B19F;1102 116A 11B2;B19F;1102 116A 11B2;
+B1A0;B1A0;1102 116A 11B3;B1A0;1102 116A 11B3;
+B1A1;B1A1;1102 116A 11B4;B1A1;1102 116A 11B4;
+B1A2;B1A2;1102 116A 11B5;B1A2;1102 116A 11B5;
+B1A3;B1A3;1102 116A 11B6;B1A3;1102 116A 11B6;
+B1A4;B1A4;1102 116A 11B7;B1A4;1102 116A 11B7;
+B1A5;B1A5;1102 116A 11B8;B1A5;1102 116A 11B8;
+B1A6;B1A6;1102 116A 11B9;B1A6;1102 116A 11B9;
+B1A7;B1A7;1102 116A 11BA;B1A7;1102 116A 11BA;
+B1A8;B1A8;1102 116A 11BB;B1A8;1102 116A 11BB;
+B1A9;B1A9;1102 116A 11BC;B1A9;1102 116A 11BC;
+B1AA;B1AA;1102 116A 11BD;B1AA;1102 116A 11BD;
+B1AB;B1AB;1102 116A 11BE;B1AB;1102 116A 11BE;
+B1AC;B1AC;1102 116A 11BF;B1AC;1102 116A 11BF;
+B1AD;B1AD;1102 116A 11C0;B1AD;1102 116A 11C0;
+B1AE;B1AE;1102 116A 11C1;B1AE;1102 116A 11C1;
+B1AF;B1AF;1102 116A 11C2;B1AF;1102 116A 11C2;
+B1B0;B1B0;1102 116B;B1B0;1102 116B;
+B1B1;B1B1;1102 116B 11A8;B1B1;1102 116B 11A8;
+B1B2;B1B2;1102 116B 11A9;B1B2;1102 116B 11A9;
+B1B3;B1B3;1102 116B 11AA;B1B3;1102 116B 11AA;
+B1B4;B1B4;1102 116B 11AB;B1B4;1102 116B 11AB;
+B1B5;B1B5;1102 116B 11AC;B1B5;1102 116B 11AC;
+B1B6;B1B6;1102 116B 11AD;B1B6;1102 116B 11AD;
+B1B7;B1B7;1102 116B 11AE;B1B7;1102 116B 11AE;
+B1B8;B1B8;1102 116B 11AF;B1B8;1102 116B 11AF;
+B1B9;B1B9;1102 116B 11B0;B1B9;1102 116B 11B0;
+B1BA;B1BA;1102 116B 11B1;B1BA;1102 116B 11B1;
+B1BB;B1BB;1102 116B 11B2;B1BB;1102 116B 11B2;
+B1BC;B1BC;1102 116B 11B3;B1BC;1102 116B 11B3;
+B1BD;B1BD;1102 116B 11B4;B1BD;1102 116B 11B4;
+B1BE;B1BE;1102 116B 11B5;B1BE;1102 116B 11B5;
+B1BF;B1BF;1102 116B 11B6;B1BF;1102 116B 11B6;
+B1C0;B1C0;1102 116B 11B7;B1C0;1102 116B 11B7;
+B1C1;B1C1;1102 116B 11B8;B1C1;1102 116B 11B8;
+B1C2;B1C2;1102 116B 11B9;B1C2;1102 116B 11B9;
+B1C3;B1C3;1102 116B 11BA;B1C3;1102 116B 11BA;
+B1C4;B1C4;1102 116B 11BB;B1C4;1102 116B 11BB;
+B1C5;B1C5;1102 116B 11BC;B1C5;1102 116B 11BC;
+B1C6;B1C6;1102 116B 11BD;B1C6;1102 116B 11BD;
+B1C7;B1C7;1102 116B 11BE;B1C7;1102 116B 11BE;
+B1C8;B1C8;1102 116B 11BF;B1C8;1102 116B 11BF;
+B1C9;B1C9;1102 116B 11C0;B1C9;1102 116B 11C0;
+B1CA;B1CA;1102 116B 11C1;B1CA;1102 116B 11C1;
+B1CB;B1CB;1102 116B 11C2;B1CB;1102 116B 11C2;
+B1CC;B1CC;1102 116C;B1CC;1102 116C;
+B1CD;B1CD;1102 116C 11A8;B1CD;1102 116C 11A8;
+B1CE;B1CE;1102 116C 11A9;B1CE;1102 116C 11A9;
+B1CF;B1CF;1102 116C 11AA;B1CF;1102 116C 11AA;
+B1D0;B1D0;1102 116C 11AB;B1D0;1102 116C 11AB;
+B1D1;B1D1;1102 116C 11AC;B1D1;1102 116C 11AC;
+B1D2;B1D2;1102 116C 11AD;B1D2;1102 116C 11AD;
+B1D3;B1D3;1102 116C 11AE;B1D3;1102 116C 11AE;
+B1D4;B1D4;1102 116C 11AF;B1D4;1102 116C 11AF;
+B1D5;B1D5;1102 116C 11B0;B1D5;1102 116C 11B0;
+B1D6;B1D6;1102 116C 11B1;B1D6;1102 116C 11B1;
+B1D7;B1D7;1102 116C 11B2;B1D7;1102 116C 11B2;
+B1D8;B1D8;1102 116C 11B3;B1D8;1102 116C 11B3;
+B1D9;B1D9;1102 116C 11B4;B1D9;1102 116C 11B4;
+B1DA;B1DA;1102 116C 11B5;B1DA;1102 116C 11B5;
+B1DB;B1DB;1102 116C 11B6;B1DB;1102 116C 11B6;
+B1DC;B1DC;1102 116C 11B7;B1DC;1102 116C 11B7;
+B1DD;B1DD;1102 116C 11B8;B1DD;1102 116C 11B8;
+B1DE;B1DE;1102 116C 11B9;B1DE;1102 116C 11B9;
+B1DF;B1DF;1102 116C 11BA;B1DF;1102 116C 11BA;
+B1E0;B1E0;1102 116C 11BB;B1E0;1102 116C 11BB;
+B1E1;B1E1;1102 116C 11BC;B1E1;1102 116C 11BC;
+B1E2;B1E2;1102 116C 11BD;B1E2;1102 116C 11BD;
+B1E3;B1E3;1102 116C 11BE;B1E3;1102 116C 11BE;
+B1E4;B1E4;1102 116C 11BF;B1E4;1102 116C 11BF;
+B1E5;B1E5;1102 116C 11C0;B1E5;1102 116C 11C0;
+B1E6;B1E6;1102 116C 11C1;B1E6;1102 116C 11C1;
+B1E7;B1E7;1102 116C 11C2;B1E7;1102 116C 11C2;
+B1E8;B1E8;1102 116D;B1E8;1102 116D;
+B1E9;B1E9;1102 116D 11A8;B1E9;1102 116D 11A8;
+B1EA;B1EA;1102 116D 11A9;B1EA;1102 116D 11A9;
+B1EB;B1EB;1102 116D 11AA;B1EB;1102 116D 11AA;
+B1EC;B1EC;1102 116D 11AB;B1EC;1102 116D 11AB;
+B1ED;B1ED;1102 116D 11AC;B1ED;1102 116D 11AC;
+B1EE;B1EE;1102 116D 11AD;B1EE;1102 116D 11AD;
+B1EF;B1EF;1102 116D 11AE;B1EF;1102 116D 11AE;
+B1F0;B1F0;1102 116D 11AF;B1F0;1102 116D 11AF;
+B1F1;B1F1;1102 116D 11B0;B1F1;1102 116D 11B0;
+B1F2;B1F2;1102 116D 11B1;B1F2;1102 116D 11B1;
+B1F3;B1F3;1102 116D 11B2;B1F3;1102 116D 11B2;
+B1F4;B1F4;1102 116D 11B3;B1F4;1102 116D 11B3;
+B1F5;B1F5;1102 116D 11B4;B1F5;1102 116D 11B4;
+B1F6;B1F6;1102 116D 11B5;B1F6;1102 116D 11B5;
+B1F7;B1F7;1102 116D 11B6;B1F7;1102 116D 11B6;
+B1F8;B1F8;1102 116D 11B7;B1F8;1102 116D 11B7;
+B1F9;B1F9;1102 116D 11B8;B1F9;1102 116D 11B8;
+B1FA;B1FA;1102 116D 11B9;B1FA;1102 116D 11B9;
+B1FB;B1FB;1102 116D 11BA;B1FB;1102 116D 11BA;
+B1FC;B1FC;1102 116D 11BB;B1FC;1102 116D 11BB;
+B1FD;B1FD;1102 116D 11BC;B1FD;1102 116D 11BC;
+B1FE;B1FE;1102 116D 11BD;B1FE;1102 116D 11BD;
+B1FF;B1FF;1102 116D 11BE;B1FF;1102 116D 11BE;
+B200;B200;1102 116D 11BF;B200;1102 116D 11BF;
+B201;B201;1102 116D 11C0;B201;1102 116D 11C0;
+B202;B202;1102 116D 11C1;B202;1102 116D 11C1;
+B203;B203;1102 116D 11C2;B203;1102 116D 11C2;
+B204;B204;1102 116E;B204;1102 116E;
+B205;B205;1102 116E 11A8;B205;1102 116E 11A8;
+B206;B206;1102 116E 11A9;B206;1102 116E 11A9;
+B207;B207;1102 116E 11AA;B207;1102 116E 11AA;
+B208;B208;1102 116E 11AB;B208;1102 116E 11AB;
+B209;B209;1102 116E 11AC;B209;1102 116E 11AC;
+B20A;B20A;1102 116E 11AD;B20A;1102 116E 11AD;
+B20B;B20B;1102 116E 11AE;B20B;1102 116E 11AE;
+B20C;B20C;1102 116E 11AF;B20C;1102 116E 11AF;
+B20D;B20D;1102 116E 11B0;B20D;1102 116E 11B0;
+B20E;B20E;1102 116E 11B1;B20E;1102 116E 11B1;
+B20F;B20F;1102 116E 11B2;B20F;1102 116E 11B2;
+B210;B210;1102 116E 11B3;B210;1102 116E 11B3;
+B211;B211;1102 116E 11B4;B211;1102 116E 11B4;
+B212;B212;1102 116E 11B5;B212;1102 116E 11B5;
+B213;B213;1102 116E 11B6;B213;1102 116E 11B6;
+B214;B214;1102 116E 11B7;B214;1102 116E 11B7;
+B215;B215;1102 116E 11B8;B215;1102 116E 11B8;
+B216;B216;1102 116E 11B9;B216;1102 116E 11B9;
+B217;B217;1102 116E 11BA;B217;1102 116E 11BA;
+B218;B218;1102 116E 11BB;B218;1102 116E 11BB;
+B219;B219;1102 116E 11BC;B219;1102 116E 11BC;
+B21A;B21A;1102 116E 11BD;B21A;1102 116E 11BD;
+B21B;B21B;1102 116E 11BE;B21B;1102 116E 11BE;
+B21C;B21C;1102 116E 11BF;B21C;1102 116E 11BF;
+B21D;B21D;1102 116E 11C0;B21D;1102 116E 11C0;
+B21E;B21E;1102 116E 11C1;B21E;1102 116E 11C1;
+B21F;B21F;1102 116E 11C2;B21F;1102 116E 11C2;
+B220;B220;1102 116F;B220;1102 116F;
+B221;B221;1102 116F 11A8;B221;1102 116F 11A8;
+B222;B222;1102 116F 11A9;B222;1102 116F 11A9;
+B223;B223;1102 116F 11AA;B223;1102 116F 11AA;
+B224;B224;1102 116F 11AB;B224;1102 116F 11AB;
+B225;B225;1102 116F 11AC;B225;1102 116F 11AC;
+B226;B226;1102 116F 11AD;B226;1102 116F 11AD;
+B227;B227;1102 116F 11AE;B227;1102 116F 11AE;
+B228;B228;1102 116F 11AF;B228;1102 116F 11AF;
+B229;B229;1102 116F 11B0;B229;1102 116F 11B0;
+B22A;B22A;1102 116F 11B1;B22A;1102 116F 11B1;
+B22B;B22B;1102 116F 11B2;B22B;1102 116F 11B2;
+B22C;B22C;1102 116F 11B3;B22C;1102 116F 11B3;
+B22D;B22D;1102 116F 11B4;B22D;1102 116F 11B4;
+B22E;B22E;1102 116F 11B5;B22E;1102 116F 11B5;
+B22F;B22F;1102 116F 11B6;B22F;1102 116F 11B6;
+B230;B230;1102 116F 11B7;B230;1102 116F 11B7;
+B231;B231;1102 116F 11B8;B231;1102 116F 11B8;
+B232;B232;1102 116F 11B9;B232;1102 116F 11B9;
+B233;B233;1102 116F 11BA;B233;1102 116F 11BA;
+B234;B234;1102 116F 11BB;B234;1102 116F 11BB;
+B235;B235;1102 116F 11BC;B235;1102 116F 11BC;
+B236;B236;1102 116F 11BD;B236;1102 116F 11BD;
+B237;B237;1102 116F 11BE;B237;1102 116F 11BE;
+B238;B238;1102 116F 11BF;B238;1102 116F 11BF;
+B239;B239;1102 116F 11C0;B239;1102 116F 11C0;
+B23A;B23A;1102 116F 11C1;B23A;1102 116F 11C1;
+B23B;B23B;1102 116F 11C2;B23B;1102 116F 11C2;
+B23C;B23C;1102 1170;B23C;1102 1170;
+B23D;B23D;1102 1170 11A8;B23D;1102 1170 11A8;
+B23E;B23E;1102 1170 11A9;B23E;1102 1170 11A9;
+B23F;B23F;1102 1170 11AA;B23F;1102 1170 11AA;
+B240;B240;1102 1170 11AB;B240;1102 1170 11AB;
+B241;B241;1102 1170 11AC;B241;1102 1170 11AC;
+B242;B242;1102 1170 11AD;B242;1102 1170 11AD;
+B243;B243;1102 1170 11AE;B243;1102 1170 11AE;
+B244;B244;1102 1170 11AF;B244;1102 1170 11AF;
+B245;B245;1102 1170 11B0;B245;1102 1170 11B0;
+B246;B246;1102 1170 11B1;B246;1102 1170 11B1;
+B247;B247;1102 1170 11B2;B247;1102 1170 11B2;
+B248;B248;1102 1170 11B3;B248;1102 1170 11B3;
+B249;B249;1102 1170 11B4;B249;1102 1170 11B4;
+B24A;B24A;1102 1170 11B5;B24A;1102 1170 11B5;
+B24B;B24B;1102 1170 11B6;B24B;1102 1170 11B6;
+B24C;B24C;1102 1170 11B7;B24C;1102 1170 11B7;
+B24D;B24D;1102 1170 11B8;B24D;1102 1170 11B8;
+B24E;B24E;1102 1170 11B9;B24E;1102 1170 11B9;
+B24F;B24F;1102 1170 11BA;B24F;1102 1170 11BA;
+B250;B250;1102 1170 11BB;B250;1102 1170 11BB;
+B251;B251;1102 1170 11BC;B251;1102 1170 11BC;
+B252;B252;1102 1170 11BD;B252;1102 1170 11BD;
+B253;B253;1102 1170 11BE;B253;1102 1170 11BE;
+B254;B254;1102 1170 11BF;B254;1102 1170 11BF;
+B255;B255;1102 1170 11C0;B255;1102 1170 11C0;
+B256;B256;1102 1170 11C1;B256;1102 1170 11C1;
+B257;B257;1102 1170 11C2;B257;1102 1170 11C2;
+B258;B258;1102 1171;B258;1102 1171;
+B259;B259;1102 1171 11A8;B259;1102 1171 11A8;
+B25A;B25A;1102 1171 11A9;B25A;1102 1171 11A9;
+B25B;B25B;1102 1171 11AA;B25B;1102 1171 11AA;
+B25C;B25C;1102 1171 11AB;B25C;1102 1171 11AB;
+B25D;B25D;1102 1171 11AC;B25D;1102 1171 11AC;
+B25E;B25E;1102 1171 11AD;B25E;1102 1171 11AD;
+B25F;B25F;1102 1171 11AE;B25F;1102 1171 11AE;
+B260;B260;1102 1171 11AF;B260;1102 1171 11AF;
+B261;B261;1102 1171 11B0;B261;1102 1171 11B0;
+B262;B262;1102 1171 11B1;B262;1102 1171 11B1;
+B263;B263;1102 1171 11B2;B263;1102 1171 11B2;
+B264;B264;1102 1171 11B3;B264;1102 1171 11B3;
+B265;B265;1102 1171 11B4;B265;1102 1171 11B4;
+B266;B266;1102 1171 11B5;B266;1102 1171 11B5;
+B267;B267;1102 1171 11B6;B267;1102 1171 11B6;
+B268;B268;1102 1171 11B7;B268;1102 1171 11B7;
+B269;B269;1102 1171 11B8;B269;1102 1171 11B8;
+B26A;B26A;1102 1171 11B9;B26A;1102 1171 11B9;
+B26B;B26B;1102 1171 11BA;B26B;1102 1171 11BA;
+B26C;B26C;1102 1171 11BB;B26C;1102 1171 11BB;
+B26D;B26D;1102 1171 11BC;B26D;1102 1171 11BC;
+B26E;B26E;1102 1171 11BD;B26E;1102 1171 11BD;
+B26F;B26F;1102 1171 11BE;B26F;1102 1171 11BE;
+B270;B270;1102 1171 11BF;B270;1102 1171 11BF;
+B271;B271;1102 1171 11C0;B271;1102 1171 11C0;
+B272;B272;1102 1171 11C1;B272;1102 1171 11C1;
+B273;B273;1102 1171 11C2;B273;1102 1171 11C2;
+B274;B274;1102 1172;B274;1102 1172;
+B275;B275;1102 1172 11A8;B275;1102 1172 11A8;
+B276;B276;1102 1172 11A9;B276;1102 1172 11A9;
+B277;B277;1102 1172 11AA;B277;1102 1172 11AA;
+B278;B278;1102 1172 11AB;B278;1102 1172 11AB;
+B279;B279;1102 1172 11AC;B279;1102 1172 11AC;
+B27A;B27A;1102 1172 11AD;B27A;1102 1172 11AD;
+B27B;B27B;1102 1172 11AE;B27B;1102 1172 11AE;
+B27C;B27C;1102 1172 11AF;B27C;1102 1172 11AF;
+B27D;B27D;1102 1172 11B0;B27D;1102 1172 11B0;
+B27E;B27E;1102 1172 11B1;B27E;1102 1172 11B1;
+B27F;B27F;1102 1172 11B2;B27F;1102 1172 11B2;
+B280;B280;1102 1172 11B3;B280;1102 1172 11B3;
+B281;B281;1102 1172 11B4;B281;1102 1172 11B4;
+B282;B282;1102 1172 11B5;B282;1102 1172 11B5;
+B283;B283;1102 1172 11B6;B283;1102 1172 11B6;
+B284;B284;1102 1172 11B7;B284;1102 1172 11B7;
+B285;B285;1102 1172 11B8;B285;1102 1172 11B8;
+B286;B286;1102 1172 11B9;B286;1102 1172 11B9;
+B287;B287;1102 1172 11BA;B287;1102 1172 11BA;
+B288;B288;1102 1172 11BB;B288;1102 1172 11BB;
+B289;B289;1102 1172 11BC;B289;1102 1172 11BC;
+B28A;B28A;1102 1172 11BD;B28A;1102 1172 11BD;
+B28B;B28B;1102 1172 11BE;B28B;1102 1172 11BE;
+B28C;B28C;1102 1172 11BF;B28C;1102 1172 11BF;
+B28D;B28D;1102 1172 11C0;B28D;1102 1172 11C0;
+B28E;B28E;1102 1172 11C1;B28E;1102 1172 11C1;
+B28F;B28F;1102 1172 11C2;B28F;1102 1172 11C2;
+B290;B290;1102 1173;B290;1102 1173;
+B291;B291;1102 1173 11A8;B291;1102 1173 11A8;
+B292;B292;1102 1173 11A9;B292;1102 1173 11A9;
+B293;B293;1102 1173 11AA;B293;1102 1173 11AA;
+B294;B294;1102 1173 11AB;B294;1102 1173 11AB;
+B295;B295;1102 1173 11AC;B295;1102 1173 11AC;
+B296;B296;1102 1173 11AD;B296;1102 1173 11AD;
+B297;B297;1102 1173 11AE;B297;1102 1173 11AE;
+B298;B298;1102 1173 11AF;B298;1102 1173 11AF;
+B299;B299;1102 1173 11B0;B299;1102 1173 11B0;
+B29A;B29A;1102 1173 11B1;B29A;1102 1173 11B1;
+B29B;B29B;1102 1173 11B2;B29B;1102 1173 11B2;
+B29C;B29C;1102 1173 11B3;B29C;1102 1173 11B3;
+B29D;B29D;1102 1173 11B4;B29D;1102 1173 11B4;
+B29E;B29E;1102 1173 11B5;B29E;1102 1173 11B5;
+B29F;B29F;1102 1173 11B6;B29F;1102 1173 11B6;
+B2A0;B2A0;1102 1173 11B7;B2A0;1102 1173 11B7;
+B2A1;B2A1;1102 1173 11B8;B2A1;1102 1173 11B8;
+B2A2;B2A2;1102 1173 11B9;B2A2;1102 1173 11B9;
+B2A3;B2A3;1102 1173 11BA;B2A3;1102 1173 11BA;
+B2A4;B2A4;1102 1173 11BB;B2A4;1102 1173 11BB;
+B2A5;B2A5;1102 1173 11BC;B2A5;1102 1173 11BC;
+B2A6;B2A6;1102 1173 11BD;B2A6;1102 1173 11BD;
+B2A7;B2A7;1102 1173 11BE;B2A7;1102 1173 11BE;
+B2A8;B2A8;1102 1173 11BF;B2A8;1102 1173 11BF;
+B2A9;B2A9;1102 1173 11C0;B2A9;1102 1173 11C0;
+B2AA;B2AA;1102 1173 11C1;B2AA;1102 1173 11C1;
+B2AB;B2AB;1102 1173 11C2;B2AB;1102 1173 11C2;
+B2AC;B2AC;1102 1174;B2AC;1102 1174;
+B2AD;B2AD;1102 1174 11A8;B2AD;1102 1174 11A8;
+B2AE;B2AE;1102 1174 11A9;B2AE;1102 1174 11A9;
+B2AF;B2AF;1102 1174 11AA;B2AF;1102 1174 11AA;
+B2B0;B2B0;1102 1174 11AB;B2B0;1102 1174 11AB;
+B2B1;B2B1;1102 1174 11AC;B2B1;1102 1174 11AC;
+B2B2;B2B2;1102 1174 11AD;B2B2;1102 1174 11AD;
+B2B3;B2B3;1102 1174 11AE;B2B3;1102 1174 11AE;
+B2B4;B2B4;1102 1174 11AF;B2B4;1102 1174 11AF;
+B2B5;B2B5;1102 1174 11B0;B2B5;1102 1174 11B0;
+B2B6;B2B6;1102 1174 11B1;B2B6;1102 1174 11B1;
+B2B7;B2B7;1102 1174 11B2;B2B7;1102 1174 11B2;
+B2B8;B2B8;1102 1174 11B3;B2B8;1102 1174 11B3;
+B2B9;B2B9;1102 1174 11B4;B2B9;1102 1174 11B4;
+B2BA;B2BA;1102 1174 11B5;B2BA;1102 1174 11B5;
+B2BB;B2BB;1102 1174 11B6;B2BB;1102 1174 11B6;
+B2BC;B2BC;1102 1174 11B7;B2BC;1102 1174 11B7;
+B2BD;B2BD;1102 1174 11B8;B2BD;1102 1174 11B8;
+B2BE;B2BE;1102 1174 11B9;B2BE;1102 1174 11B9;
+B2BF;B2BF;1102 1174 11BA;B2BF;1102 1174 11BA;
+B2C0;B2C0;1102 1174 11BB;B2C0;1102 1174 11BB;
+B2C1;B2C1;1102 1174 11BC;B2C1;1102 1174 11BC;
+B2C2;B2C2;1102 1174 11BD;B2C2;1102 1174 11BD;
+B2C3;B2C3;1102 1174 11BE;B2C3;1102 1174 11BE;
+B2C4;B2C4;1102 1174 11BF;B2C4;1102 1174 11BF;
+B2C5;B2C5;1102 1174 11C0;B2C5;1102 1174 11C0;
+B2C6;B2C6;1102 1174 11C1;B2C6;1102 1174 11C1;
+B2C7;B2C7;1102 1174 11C2;B2C7;1102 1174 11C2;
+B2C8;B2C8;1102 1175;B2C8;1102 1175;
+B2C9;B2C9;1102 1175 11A8;B2C9;1102 1175 11A8;
+B2CA;B2CA;1102 1175 11A9;B2CA;1102 1175 11A9;
+B2CB;B2CB;1102 1175 11AA;B2CB;1102 1175 11AA;
+B2CC;B2CC;1102 1175 11AB;B2CC;1102 1175 11AB;
+B2CD;B2CD;1102 1175 11AC;B2CD;1102 1175 11AC;
+B2CE;B2CE;1102 1175 11AD;B2CE;1102 1175 11AD;
+B2CF;B2CF;1102 1175 11AE;B2CF;1102 1175 11AE;
+B2D0;B2D0;1102 1175 11AF;B2D0;1102 1175 11AF;
+B2D1;B2D1;1102 1175 11B0;B2D1;1102 1175 11B0;
+B2D2;B2D2;1102 1175 11B1;B2D2;1102 1175 11B1;
+B2D3;B2D3;1102 1175 11B2;B2D3;1102 1175 11B2;
+B2D4;B2D4;1102 1175 11B3;B2D4;1102 1175 11B3;
+B2D5;B2D5;1102 1175 11B4;B2D5;1102 1175 11B4;
+B2D6;B2D6;1102 1175 11B5;B2D6;1102 1175 11B5;
+B2D7;B2D7;1102 1175 11B6;B2D7;1102 1175 11B6;
+B2D8;B2D8;1102 1175 11B7;B2D8;1102 1175 11B7;
+B2D9;B2D9;1102 1175 11B8;B2D9;1102 1175 11B8;
+B2DA;B2DA;1102 1175 11B9;B2DA;1102 1175 11B9;
+B2DB;B2DB;1102 1175 11BA;B2DB;1102 1175 11BA;
+B2DC;B2DC;1102 1175 11BB;B2DC;1102 1175 11BB;
+B2DD;B2DD;1102 1175 11BC;B2DD;1102 1175 11BC;
+B2DE;B2DE;1102 1175 11BD;B2DE;1102 1175 11BD;
+B2DF;B2DF;1102 1175 11BE;B2DF;1102 1175 11BE;
+B2E0;B2E0;1102 1175 11BF;B2E0;1102 1175 11BF;
+B2E1;B2E1;1102 1175 11C0;B2E1;1102 1175 11C0;
+B2E2;B2E2;1102 1175 11C1;B2E2;1102 1175 11C1;
+B2E3;B2E3;1102 1175 11C2;B2E3;1102 1175 11C2;
+B2E4;B2E4;1103 1161;B2E4;1103 1161;
+B2E5;B2E5;1103 1161 11A8;B2E5;1103 1161 11A8;
+B2E6;B2E6;1103 1161 11A9;B2E6;1103 1161 11A9;
+B2E7;B2E7;1103 1161 11AA;B2E7;1103 1161 11AA;
+B2E8;B2E8;1103 1161 11AB;B2E8;1103 1161 11AB;
+B2E9;B2E9;1103 1161 11AC;B2E9;1103 1161 11AC;
+B2EA;B2EA;1103 1161 11AD;B2EA;1103 1161 11AD;
+B2EB;B2EB;1103 1161 11AE;B2EB;1103 1161 11AE;
+B2EC;B2EC;1103 1161 11AF;B2EC;1103 1161 11AF;
+B2ED;B2ED;1103 1161 11B0;B2ED;1103 1161 11B0;
+B2EE;B2EE;1103 1161 11B1;B2EE;1103 1161 11B1;
+B2EF;B2EF;1103 1161 11B2;B2EF;1103 1161 11B2;
+B2F0;B2F0;1103 1161 11B3;B2F0;1103 1161 11B3;
+B2F1;B2F1;1103 1161 11B4;B2F1;1103 1161 11B4;
+B2F2;B2F2;1103 1161 11B5;B2F2;1103 1161 11B5;
+B2F3;B2F3;1103 1161 11B6;B2F3;1103 1161 11B6;
+B2F4;B2F4;1103 1161 11B7;B2F4;1103 1161 11B7;
+B2F5;B2F5;1103 1161 11B8;B2F5;1103 1161 11B8;
+B2F6;B2F6;1103 1161 11B9;B2F6;1103 1161 11B9;
+B2F7;B2F7;1103 1161 11BA;B2F7;1103 1161 11BA;
+B2F8;B2F8;1103 1161 11BB;B2F8;1103 1161 11BB;
+B2F9;B2F9;1103 1161 11BC;B2F9;1103 1161 11BC;
+B2FA;B2FA;1103 1161 11BD;B2FA;1103 1161 11BD;
+B2FB;B2FB;1103 1161 11BE;B2FB;1103 1161 11BE;
+B2FC;B2FC;1103 1161 11BF;B2FC;1103 1161 11BF;
+B2FD;B2FD;1103 1161 11C0;B2FD;1103 1161 11C0;
+B2FE;B2FE;1103 1161 11C1;B2FE;1103 1161 11C1;
+B2FF;B2FF;1103 1161 11C2;B2FF;1103 1161 11C2;
+B300;B300;1103 1162;B300;1103 1162;
+B301;B301;1103 1162 11A8;B301;1103 1162 11A8;
+B302;B302;1103 1162 11A9;B302;1103 1162 11A9;
+B303;B303;1103 1162 11AA;B303;1103 1162 11AA;
+B304;B304;1103 1162 11AB;B304;1103 1162 11AB;
+B305;B305;1103 1162 11AC;B305;1103 1162 11AC;
+B306;B306;1103 1162 11AD;B306;1103 1162 11AD;
+B307;B307;1103 1162 11AE;B307;1103 1162 11AE;
+B308;B308;1103 1162 11AF;B308;1103 1162 11AF;
+B309;B309;1103 1162 11B0;B309;1103 1162 11B0;
+B30A;B30A;1103 1162 11B1;B30A;1103 1162 11B1;
+B30B;B30B;1103 1162 11B2;B30B;1103 1162 11B2;
+B30C;B30C;1103 1162 11B3;B30C;1103 1162 11B3;
+B30D;B30D;1103 1162 11B4;B30D;1103 1162 11B4;
+B30E;B30E;1103 1162 11B5;B30E;1103 1162 11B5;
+B30F;B30F;1103 1162 11B6;B30F;1103 1162 11B6;
+B310;B310;1103 1162 11B7;B310;1103 1162 11B7;
+B311;B311;1103 1162 11B8;B311;1103 1162 11B8;
+B312;B312;1103 1162 11B9;B312;1103 1162 11B9;
+B313;B313;1103 1162 11BA;B313;1103 1162 11BA;
+B314;B314;1103 1162 11BB;B314;1103 1162 11BB;
+B315;B315;1103 1162 11BC;B315;1103 1162 11BC;
+B316;B316;1103 1162 11BD;B316;1103 1162 11BD;
+B317;B317;1103 1162 11BE;B317;1103 1162 11BE;
+B318;B318;1103 1162 11BF;B318;1103 1162 11BF;
+B319;B319;1103 1162 11C0;B319;1103 1162 11C0;
+B31A;B31A;1103 1162 11C1;B31A;1103 1162 11C1;
+B31B;B31B;1103 1162 11C2;B31B;1103 1162 11C2;
+B31C;B31C;1103 1163;B31C;1103 1163;
+B31D;B31D;1103 1163 11A8;B31D;1103 1163 11A8;
+B31E;B31E;1103 1163 11A9;B31E;1103 1163 11A9;
+B31F;B31F;1103 1163 11AA;B31F;1103 1163 11AA;
+B320;B320;1103 1163 11AB;B320;1103 1163 11AB;
+B321;B321;1103 1163 11AC;B321;1103 1163 11AC;
+B322;B322;1103 1163 11AD;B322;1103 1163 11AD;
+B323;B323;1103 1163 11AE;B323;1103 1163 11AE;
+B324;B324;1103 1163 11AF;B324;1103 1163 11AF;
+B325;B325;1103 1163 11B0;B325;1103 1163 11B0;
+B326;B326;1103 1163 11B1;B326;1103 1163 11B1;
+B327;B327;1103 1163 11B2;B327;1103 1163 11B2;
+B328;B328;1103 1163 11B3;B328;1103 1163 11B3;
+B329;B329;1103 1163 11B4;B329;1103 1163 11B4;
+B32A;B32A;1103 1163 11B5;B32A;1103 1163 11B5;
+B32B;B32B;1103 1163 11B6;B32B;1103 1163 11B6;
+B32C;B32C;1103 1163 11B7;B32C;1103 1163 11B7;
+B32D;B32D;1103 1163 11B8;B32D;1103 1163 11B8;
+B32E;B32E;1103 1163 11B9;B32E;1103 1163 11B9;
+B32F;B32F;1103 1163 11BA;B32F;1103 1163 11BA;
+B330;B330;1103 1163 11BB;B330;1103 1163 11BB;
+B331;B331;1103 1163 11BC;B331;1103 1163 11BC;
+B332;B332;1103 1163 11BD;B332;1103 1163 11BD;
+B333;B333;1103 1163 11BE;B333;1103 1163 11BE;
+B334;B334;1103 1163 11BF;B334;1103 1163 11BF;
+B335;B335;1103 1163 11C0;B335;1103 1163 11C0;
+B336;B336;1103 1163 11C1;B336;1103 1163 11C1;
+B337;B337;1103 1163 11C2;B337;1103 1163 11C2;
+B338;B338;1103 1164;B338;1103 1164;
+B339;B339;1103 1164 11A8;B339;1103 1164 11A8;
+B33A;B33A;1103 1164 11A9;B33A;1103 1164 11A9;
+B33B;B33B;1103 1164 11AA;B33B;1103 1164 11AA;
+B33C;B33C;1103 1164 11AB;B33C;1103 1164 11AB;
+B33D;B33D;1103 1164 11AC;B33D;1103 1164 11AC;
+B33E;B33E;1103 1164 11AD;B33E;1103 1164 11AD;
+B33F;B33F;1103 1164 11AE;B33F;1103 1164 11AE;
+B340;B340;1103 1164 11AF;B340;1103 1164 11AF;
+B341;B341;1103 1164 11B0;B341;1103 1164 11B0;
+B342;B342;1103 1164 11B1;B342;1103 1164 11B1;
+B343;B343;1103 1164 11B2;B343;1103 1164 11B2;
+B344;B344;1103 1164 11B3;B344;1103 1164 11B3;
+B345;B345;1103 1164 11B4;B345;1103 1164 11B4;
+B346;B346;1103 1164 11B5;B346;1103 1164 11B5;
+B347;B347;1103 1164 11B6;B347;1103 1164 11B6;
+B348;B348;1103 1164 11B7;B348;1103 1164 11B7;
+B349;B349;1103 1164 11B8;B349;1103 1164 11B8;
+B34A;B34A;1103 1164 11B9;B34A;1103 1164 11B9;
+B34B;B34B;1103 1164 11BA;B34B;1103 1164 11BA;
+B34C;B34C;1103 1164 11BB;B34C;1103 1164 11BB;
+B34D;B34D;1103 1164 11BC;B34D;1103 1164 11BC;
+B34E;B34E;1103 1164 11BD;B34E;1103 1164 11BD;
+B34F;B34F;1103 1164 11BE;B34F;1103 1164 11BE;
+B350;B350;1103 1164 11BF;B350;1103 1164 11BF;
+B351;B351;1103 1164 11C0;B351;1103 1164 11C0;
+B352;B352;1103 1164 11C1;B352;1103 1164 11C1;
+B353;B353;1103 1164 11C2;B353;1103 1164 11C2;
+B354;B354;1103 1165;B354;1103 1165;
+B355;B355;1103 1165 11A8;B355;1103 1165 11A8;
+B356;B356;1103 1165 11A9;B356;1103 1165 11A9;
+B357;B357;1103 1165 11AA;B357;1103 1165 11AA;
+B358;B358;1103 1165 11AB;B358;1103 1165 11AB;
+B359;B359;1103 1165 11AC;B359;1103 1165 11AC;
+B35A;B35A;1103 1165 11AD;B35A;1103 1165 11AD;
+B35B;B35B;1103 1165 11AE;B35B;1103 1165 11AE;
+B35C;B35C;1103 1165 11AF;B35C;1103 1165 11AF;
+B35D;B35D;1103 1165 11B0;B35D;1103 1165 11B0;
+B35E;B35E;1103 1165 11B1;B35E;1103 1165 11B1;
+B35F;B35F;1103 1165 11B2;B35F;1103 1165 11B2;
+B360;B360;1103 1165 11B3;B360;1103 1165 11B3;
+B361;B361;1103 1165 11B4;B361;1103 1165 11B4;
+B362;B362;1103 1165 11B5;B362;1103 1165 11B5;
+B363;B363;1103 1165 11B6;B363;1103 1165 11B6;
+B364;B364;1103 1165 11B7;B364;1103 1165 11B7;
+B365;B365;1103 1165 11B8;B365;1103 1165 11B8;
+B366;B366;1103 1165 11B9;B366;1103 1165 11B9;
+B367;B367;1103 1165 11BA;B367;1103 1165 11BA;
+B368;B368;1103 1165 11BB;B368;1103 1165 11BB;
+B369;B369;1103 1165 11BC;B369;1103 1165 11BC;
+B36A;B36A;1103 1165 11BD;B36A;1103 1165 11BD;
+B36B;B36B;1103 1165 11BE;B36B;1103 1165 11BE;
+B36C;B36C;1103 1165 11BF;B36C;1103 1165 11BF;
+B36D;B36D;1103 1165 11C0;B36D;1103 1165 11C0;
+B36E;B36E;1103 1165 11C1;B36E;1103 1165 11C1;
+B36F;B36F;1103 1165 11C2;B36F;1103 1165 11C2;
+B370;B370;1103 1166;B370;1103 1166;
+B371;B371;1103 1166 11A8;B371;1103 1166 11A8;
+B372;B372;1103 1166 11A9;B372;1103 1166 11A9;
+B373;B373;1103 1166 11AA;B373;1103 1166 11AA;
+B374;B374;1103 1166 11AB;B374;1103 1166 11AB;
+B375;B375;1103 1166 11AC;B375;1103 1166 11AC;
+B376;B376;1103 1166 11AD;B376;1103 1166 11AD;
+B377;B377;1103 1166 11AE;B377;1103 1166 11AE;
+B378;B378;1103 1166 11AF;B378;1103 1166 11AF;
+B379;B379;1103 1166 11B0;B379;1103 1166 11B0;
+B37A;B37A;1103 1166 11B1;B37A;1103 1166 11B1;
+B37B;B37B;1103 1166 11B2;B37B;1103 1166 11B2;
+B37C;B37C;1103 1166 11B3;B37C;1103 1166 11B3;
+B37D;B37D;1103 1166 11B4;B37D;1103 1166 11B4;
+B37E;B37E;1103 1166 11B5;B37E;1103 1166 11B5;
+B37F;B37F;1103 1166 11B6;B37F;1103 1166 11B6;
+B380;B380;1103 1166 11B7;B380;1103 1166 11B7;
+B381;B381;1103 1166 11B8;B381;1103 1166 11B8;
+B382;B382;1103 1166 11B9;B382;1103 1166 11B9;
+B383;B383;1103 1166 11BA;B383;1103 1166 11BA;
+B384;B384;1103 1166 11BB;B384;1103 1166 11BB;
+B385;B385;1103 1166 11BC;B385;1103 1166 11BC;
+B386;B386;1103 1166 11BD;B386;1103 1166 11BD;
+B387;B387;1103 1166 11BE;B387;1103 1166 11BE;
+B388;B388;1103 1166 11BF;B388;1103 1166 11BF;
+B389;B389;1103 1166 11C0;B389;1103 1166 11C0;
+B38A;B38A;1103 1166 11C1;B38A;1103 1166 11C1;
+B38B;B38B;1103 1166 11C2;B38B;1103 1166 11C2;
+B38C;B38C;1103 1167;B38C;1103 1167;
+B38D;B38D;1103 1167 11A8;B38D;1103 1167 11A8;
+B38E;B38E;1103 1167 11A9;B38E;1103 1167 11A9;
+B38F;B38F;1103 1167 11AA;B38F;1103 1167 11AA;
+B390;B390;1103 1167 11AB;B390;1103 1167 11AB;
+B391;B391;1103 1167 11AC;B391;1103 1167 11AC;
+B392;B392;1103 1167 11AD;B392;1103 1167 11AD;
+B393;B393;1103 1167 11AE;B393;1103 1167 11AE;
+B394;B394;1103 1167 11AF;B394;1103 1167 11AF;
+B395;B395;1103 1167 11B0;B395;1103 1167 11B0;
+B396;B396;1103 1167 11B1;B396;1103 1167 11B1;
+B397;B397;1103 1167 11B2;B397;1103 1167 11B2;
+B398;B398;1103 1167 11B3;B398;1103 1167 11B3;
+B399;B399;1103 1167 11B4;B399;1103 1167 11B4;
+B39A;B39A;1103 1167 11B5;B39A;1103 1167 11B5;
+B39B;B39B;1103 1167 11B6;B39B;1103 1167 11B6;
+B39C;B39C;1103 1167 11B7;B39C;1103 1167 11B7;
+B39D;B39D;1103 1167 11B8;B39D;1103 1167 11B8;
+B39E;B39E;1103 1167 11B9;B39E;1103 1167 11B9;
+B39F;B39F;1103 1167 11BA;B39F;1103 1167 11BA;
+B3A0;B3A0;1103 1167 11BB;B3A0;1103 1167 11BB;
+B3A1;B3A1;1103 1167 11BC;B3A1;1103 1167 11BC;
+B3A2;B3A2;1103 1167 11BD;B3A2;1103 1167 11BD;
+B3A3;B3A3;1103 1167 11BE;B3A3;1103 1167 11BE;
+B3A4;B3A4;1103 1167 11BF;B3A4;1103 1167 11BF;
+B3A5;B3A5;1103 1167 11C0;B3A5;1103 1167 11C0;
+B3A6;B3A6;1103 1167 11C1;B3A6;1103 1167 11C1;
+B3A7;B3A7;1103 1167 11C2;B3A7;1103 1167 11C2;
+B3A8;B3A8;1103 1168;B3A8;1103 1168;
+B3A9;B3A9;1103 1168 11A8;B3A9;1103 1168 11A8;
+B3AA;B3AA;1103 1168 11A9;B3AA;1103 1168 11A9;
+B3AB;B3AB;1103 1168 11AA;B3AB;1103 1168 11AA;
+B3AC;B3AC;1103 1168 11AB;B3AC;1103 1168 11AB;
+B3AD;B3AD;1103 1168 11AC;B3AD;1103 1168 11AC;
+B3AE;B3AE;1103 1168 11AD;B3AE;1103 1168 11AD;
+B3AF;B3AF;1103 1168 11AE;B3AF;1103 1168 11AE;
+B3B0;B3B0;1103 1168 11AF;B3B0;1103 1168 11AF;
+B3B1;B3B1;1103 1168 11B0;B3B1;1103 1168 11B0;
+B3B2;B3B2;1103 1168 11B1;B3B2;1103 1168 11B1;
+B3B3;B3B3;1103 1168 11B2;B3B3;1103 1168 11B2;
+B3B4;B3B4;1103 1168 11B3;B3B4;1103 1168 11B3;
+B3B5;B3B5;1103 1168 11B4;B3B5;1103 1168 11B4;
+B3B6;B3B6;1103 1168 11B5;B3B6;1103 1168 11B5;
+B3B7;B3B7;1103 1168 11B6;B3B7;1103 1168 11B6;
+B3B8;B3B8;1103 1168 11B7;B3B8;1103 1168 11B7;
+B3B9;B3B9;1103 1168 11B8;B3B9;1103 1168 11B8;
+B3BA;B3BA;1103 1168 11B9;B3BA;1103 1168 11B9;
+B3BB;B3BB;1103 1168 11BA;B3BB;1103 1168 11BA;
+B3BC;B3BC;1103 1168 11BB;B3BC;1103 1168 11BB;
+B3BD;B3BD;1103 1168 11BC;B3BD;1103 1168 11BC;
+B3BE;B3BE;1103 1168 11BD;B3BE;1103 1168 11BD;
+B3BF;B3BF;1103 1168 11BE;B3BF;1103 1168 11BE;
+B3C0;B3C0;1103 1168 11BF;B3C0;1103 1168 11BF;
+B3C1;B3C1;1103 1168 11C0;B3C1;1103 1168 11C0;
+B3C2;B3C2;1103 1168 11C1;B3C2;1103 1168 11C1;
+B3C3;B3C3;1103 1168 11C2;B3C3;1103 1168 11C2;
+B3C4;B3C4;1103 1169;B3C4;1103 1169;
+B3C5;B3C5;1103 1169 11A8;B3C5;1103 1169 11A8;
+B3C6;B3C6;1103 1169 11A9;B3C6;1103 1169 11A9;
+B3C7;B3C7;1103 1169 11AA;B3C7;1103 1169 11AA;
+B3C8;B3C8;1103 1169 11AB;B3C8;1103 1169 11AB;
+B3C9;B3C9;1103 1169 11AC;B3C9;1103 1169 11AC;
+B3CA;B3CA;1103 1169 11AD;B3CA;1103 1169 11AD;
+B3CB;B3CB;1103 1169 11AE;B3CB;1103 1169 11AE;
+B3CC;B3CC;1103 1169 11AF;B3CC;1103 1169 11AF;
+B3CD;B3CD;1103 1169 11B0;B3CD;1103 1169 11B0;
+B3CE;B3CE;1103 1169 11B1;B3CE;1103 1169 11B1;
+B3CF;B3CF;1103 1169 11B2;B3CF;1103 1169 11B2;
+B3D0;B3D0;1103 1169 11B3;B3D0;1103 1169 11B3;
+B3D1;B3D1;1103 1169 11B4;B3D1;1103 1169 11B4;
+B3D2;B3D2;1103 1169 11B5;B3D2;1103 1169 11B5;
+B3D3;B3D3;1103 1169 11B6;B3D3;1103 1169 11B6;
+B3D4;B3D4;1103 1169 11B7;B3D4;1103 1169 11B7;
+B3D5;B3D5;1103 1169 11B8;B3D5;1103 1169 11B8;
+B3D6;B3D6;1103 1169 11B9;B3D6;1103 1169 11B9;
+B3D7;B3D7;1103 1169 11BA;B3D7;1103 1169 11BA;
+B3D8;B3D8;1103 1169 11BB;B3D8;1103 1169 11BB;
+B3D9;B3D9;1103 1169 11BC;B3D9;1103 1169 11BC;
+B3DA;B3DA;1103 1169 11BD;B3DA;1103 1169 11BD;
+B3DB;B3DB;1103 1169 11BE;B3DB;1103 1169 11BE;
+B3DC;B3DC;1103 1169 11BF;B3DC;1103 1169 11BF;
+B3DD;B3DD;1103 1169 11C0;B3DD;1103 1169 11C0;
+B3DE;B3DE;1103 1169 11C1;B3DE;1103 1169 11C1;
+B3DF;B3DF;1103 1169 11C2;B3DF;1103 1169 11C2;
+B3E0;B3E0;1103 116A;B3E0;1103 116A;
+B3E1;B3E1;1103 116A 11A8;B3E1;1103 116A 11A8;
+B3E2;B3E2;1103 116A 11A9;B3E2;1103 116A 11A9;
+B3E3;B3E3;1103 116A 11AA;B3E3;1103 116A 11AA;
+B3E4;B3E4;1103 116A 11AB;B3E4;1103 116A 11AB;
+B3E5;B3E5;1103 116A 11AC;B3E5;1103 116A 11AC;
+B3E6;B3E6;1103 116A 11AD;B3E6;1103 116A 11AD;
+B3E7;B3E7;1103 116A 11AE;B3E7;1103 116A 11AE;
+B3E8;B3E8;1103 116A 11AF;B3E8;1103 116A 11AF;
+B3E9;B3E9;1103 116A 11B0;B3E9;1103 116A 11B0;
+B3EA;B3EA;1103 116A 11B1;B3EA;1103 116A 11B1;
+B3EB;B3EB;1103 116A 11B2;B3EB;1103 116A 11B2;
+B3EC;B3EC;1103 116A 11B3;B3EC;1103 116A 11B3;
+B3ED;B3ED;1103 116A 11B4;B3ED;1103 116A 11B4;
+B3EE;B3EE;1103 116A 11B5;B3EE;1103 116A 11B5;
+B3EF;B3EF;1103 116A 11B6;B3EF;1103 116A 11B6;
+B3F0;B3F0;1103 116A 11B7;B3F0;1103 116A 11B7;
+B3F1;B3F1;1103 116A 11B8;B3F1;1103 116A 11B8;
+B3F2;B3F2;1103 116A 11B9;B3F2;1103 116A 11B9;
+B3F3;B3F3;1103 116A 11BA;B3F3;1103 116A 11BA;
+B3F4;B3F4;1103 116A 11BB;B3F4;1103 116A 11BB;
+B3F5;B3F5;1103 116A 11BC;B3F5;1103 116A 11BC;
+B3F6;B3F6;1103 116A 11BD;B3F6;1103 116A 11BD;
+B3F7;B3F7;1103 116A 11BE;B3F7;1103 116A 11BE;
+B3F8;B3F8;1103 116A 11BF;B3F8;1103 116A 11BF;
+B3F9;B3F9;1103 116A 11C0;B3F9;1103 116A 11C0;
+B3FA;B3FA;1103 116A 11C1;B3FA;1103 116A 11C1;
+B3FB;B3FB;1103 116A 11C2;B3FB;1103 116A 11C2;
+B3FC;B3FC;1103 116B;B3FC;1103 116B;
+B3FD;B3FD;1103 116B 11A8;B3FD;1103 116B 11A8;
+B3FE;B3FE;1103 116B 11A9;B3FE;1103 116B 11A9;
+B3FF;B3FF;1103 116B 11AA;B3FF;1103 116B 11AA;
+B400;B400;1103 116B 11AB;B400;1103 116B 11AB;
+B401;B401;1103 116B 11AC;B401;1103 116B 11AC;
+B402;B402;1103 116B 11AD;B402;1103 116B 11AD;
+B403;B403;1103 116B 11AE;B403;1103 116B 11AE;
+B404;B404;1103 116B 11AF;B404;1103 116B 11AF;
+B405;B405;1103 116B 11B0;B405;1103 116B 11B0;
+B406;B406;1103 116B 11B1;B406;1103 116B 11B1;
+B407;B407;1103 116B 11B2;B407;1103 116B 11B2;
+B408;B408;1103 116B 11B3;B408;1103 116B 11B3;
+B409;B409;1103 116B 11B4;B409;1103 116B 11B4;
+B40A;B40A;1103 116B 11B5;B40A;1103 116B 11B5;
+B40B;B40B;1103 116B 11B6;B40B;1103 116B 11B6;
+B40C;B40C;1103 116B 11B7;B40C;1103 116B 11B7;
+B40D;B40D;1103 116B 11B8;B40D;1103 116B 11B8;
+B40E;B40E;1103 116B 11B9;B40E;1103 116B 11B9;
+B40F;B40F;1103 116B 11BA;B40F;1103 116B 11BA;
+B410;B410;1103 116B 11BB;B410;1103 116B 11BB;
+B411;B411;1103 116B 11BC;B411;1103 116B 11BC;
+B412;B412;1103 116B 11BD;B412;1103 116B 11BD;
+B413;B413;1103 116B 11BE;B413;1103 116B 11BE;
+B414;B414;1103 116B 11BF;B414;1103 116B 11BF;
+B415;B415;1103 116B 11C0;B415;1103 116B 11C0;
+B416;B416;1103 116B 11C1;B416;1103 116B 11C1;
+B417;B417;1103 116B 11C2;B417;1103 116B 11C2;
+B418;B418;1103 116C;B418;1103 116C;
+B419;B419;1103 116C 11A8;B419;1103 116C 11A8;
+B41A;B41A;1103 116C 11A9;B41A;1103 116C 11A9;
+B41B;B41B;1103 116C 11AA;B41B;1103 116C 11AA;
+B41C;B41C;1103 116C 11AB;B41C;1103 116C 11AB;
+B41D;B41D;1103 116C 11AC;B41D;1103 116C 11AC;
+B41E;B41E;1103 116C 11AD;B41E;1103 116C 11AD;
+B41F;B41F;1103 116C 11AE;B41F;1103 116C 11AE;
+B420;B420;1103 116C 11AF;B420;1103 116C 11AF;
+B421;B421;1103 116C 11B0;B421;1103 116C 11B0;
+B422;B422;1103 116C 11B1;B422;1103 116C 11B1;
+B423;B423;1103 116C 11B2;B423;1103 116C 11B2;
+B424;B424;1103 116C 11B3;B424;1103 116C 11B3;
+B425;B425;1103 116C 11B4;B425;1103 116C 11B4;
+B426;B426;1103 116C 11B5;B426;1103 116C 11B5;
+B427;B427;1103 116C 11B6;B427;1103 116C 11B6;
+B428;B428;1103 116C 11B7;B428;1103 116C 11B7;
+B429;B429;1103 116C 11B8;B429;1103 116C 11B8;
+B42A;B42A;1103 116C 11B9;B42A;1103 116C 11B9;
+B42B;B42B;1103 116C 11BA;B42B;1103 116C 11BA;
+B42C;B42C;1103 116C 11BB;B42C;1103 116C 11BB;
+B42D;B42D;1103 116C 11BC;B42D;1103 116C 11BC;
+B42E;B42E;1103 116C 11BD;B42E;1103 116C 11BD;
+B42F;B42F;1103 116C 11BE;B42F;1103 116C 11BE;
+B430;B430;1103 116C 11BF;B430;1103 116C 11BF;
+B431;B431;1103 116C 11C0;B431;1103 116C 11C0;
+B432;B432;1103 116C 11C1;B432;1103 116C 11C1;
+B433;B433;1103 116C 11C2;B433;1103 116C 11C2;
+B434;B434;1103 116D;B434;1103 116D;
+B435;B435;1103 116D 11A8;B435;1103 116D 11A8;
+B436;B436;1103 116D 11A9;B436;1103 116D 11A9;
+B437;B437;1103 116D 11AA;B437;1103 116D 11AA;
+B438;B438;1103 116D 11AB;B438;1103 116D 11AB;
+B439;B439;1103 116D 11AC;B439;1103 116D 11AC;
+B43A;B43A;1103 116D 11AD;B43A;1103 116D 11AD;
+B43B;B43B;1103 116D 11AE;B43B;1103 116D 11AE;
+B43C;B43C;1103 116D 11AF;B43C;1103 116D 11AF;
+B43D;B43D;1103 116D 11B0;B43D;1103 116D 11B0;
+B43E;B43E;1103 116D 11B1;B43E;1103 116D 11B1;
+B43F;B43F;1103 116D 11B2;B43F;1103 116D 11B2;
+B440;B440;1103 116D 11B3;B440;1103 116D 11B3;
+B441;B441;1103 116D 11B4;B441;1103 116D 11B4;
+B442;B442;1103 116D 11B5;B442;1103 116D 11B5;
+B443;B443;1103 116D 11B6;B443;1103 116D 11B6;
+B444;B444;1103 116D 11B7;B444;1103 116D 11B7;
+B445;B445;1103 116D 11B8;B445;1103 116D 11B8;
+B446;B446;1103 116D 11B9;B446;1103 116D 11B9;
+B447;B447;1103 116D 11BA;B447;1103 116D 11BA;
+B448;B448;1103 116D 11BB;B448;1103 116D 11BB;
+B449;B449;1103 116D 11BC;B449;1103 116D 11BC;
+B44A;B44A;1103 116D 11BD;B44A;1103 116D 11BD;
+B44B;B44B;1103 116D 11BE;B44B;1103 116D 11BE;
+B44C;B44C;1103 116D 11BF;B44C;1103 116D 11BF;
+B44D;B44D;1103 116D 11C0;B44D;1103 116D 11C0;
+B44E;B44E;1103 116D 11C1;B44E;1103 116D 11C1;
+B44F;B44F;1103 116D 11C2;B44F;1103 116D 11C2;
+B450;B450;1103 116E;B450;1103 116E;
+B451;B451;1103 116E 11A8;B451;1103 116E 11A8;
+B452;B452;1103 116E 11A9;B452;1103 116E 11A9;
+B453;B453;1103 116E 11AA;B453;1103 116E 11AA;
+B454;B454;1103 116E 11AB;B454;1103 116E 11AB;
+B455;B455;1103 116E 11AC;B455;1103 116E 11AC;
+B456;B456;1103 116E 11AD;B456;1103 116E 11AD;
+B457;B457;1103 116E 11AE;B457;1103 116E 11AE;
+B458;B458;1103 116E 11AF;B458;1103 116E 11AF;
+B459;B459;1103 116E 11B0;B459;1103 116E 11B0;
+B45A;B45A;1103 116E 11B1;B45A;1103 116E 11B1;
+B45B;B45B;1103 116E 11B2;B45B;1103 116E 11B2;
+B45C;B45C;1103 116E 11B3;B45C;1103 116E 11B3;
+B45D;B45D;1103 116E 11B4;B45D;1103 116E 11B4;
+B45E;B45E;1103 116E 11B5;B45E;1103 116E 11B5;
+B45F;B45F;1103 116E 11B6;B45F;1103 116E 11B6;
+B460;B460;1103 116E 11B7;B460;1103 116E 11B7;
+B461;B461;1103 116E 11B8;B461;1103 116E 11B8;
+B462;B462;1103 116E 11B9;B462;1103 116E 11B9;
+B463;B463;1103 116E 11BA;B463;1103 116E 11BA;
+B464;B464;1103 116E 11BB;B464;1103 116E 11BB;
+B465;B465;1103 116E 11BC;B465;1103 116E 11BC;
+B466;B466;1103 116E 11BD;B466;1103 116E 11BD;
+B467;B467;1103 116E 11BE;B467;1103 116E 11BE;
+B468;B468;1103 116E 11BF;B468;1103 116E 11BF;
+B469;B469;1103 116E 11C0;B469;1103 116E 11C0;
+B46A;B46A;1103 116E 11C1;B46A;1103 116E 11C1;
+B46B;B46B;1103 116E 11C2;B46B;1103 116E 11C2;
+B46C;B46C;1103 116F;B46C;1103 116F;
+B46D;B46D;1103 116F 11A8;B46D;1103 116F 11A8;
+B46E;B46E;1103 116F 11A9;B46E;1103 116F 11A9;
+B46F;B46F;1103 116F 11AA;B46F;1103 116F 11AA;
+B470;B470;1103 116F 11AB;B470;1103 116F 11AB;
+B471;B471;1103 116F 11AC;B471;1103 116F 11AC;
+B472;B472;1103 116F 11AD;B472;1103 116F 11AD;
+B473;B473;1103 116F 11AE;B473;1103 116F 11AE;
+B474;B474;1103 116F 11AF;B474;1103 116F 11AF;
+B475;B475;1103 116F 11B0;B475;1103 116F 11B0;
+B476;B476;1103 116F 11B1;B476;1103 116F 11B1;
+B477;B477;1103 116F 11B2;B477;1103 116F 11B2;
+B478;B478;1103 116F 11B3;B478;1103 116F 11B3;
+B479;B479;1103 116F 11B4;B479;1103 116F 11B4;
+B47A;B47A;1103 116F 11B5;B47A;1103 116F 11B5;
+B47B;B47B;1103 116F 11B6;B47B;1103 116F 11B6;
+B47C;B47C;1103 116F 11B7;B47C;1103 116F 11B7;
+B47D;B47D;1103 116F 11B8;B47D;1103 116F 11B8;
+B47E;B47E;1103 116F 11B9;B47E;1103 116F 11B9;
+B47F;B47F;1103 116F 11BA;B47F;1103 116F 11BA;
+B480;B480;1103 116F 11BB;B480;1103 116F 11BB;
+B481;B481;1103 116F 11BC;B481;1103 116F 11BC;
+B482;B482;1103 116F 11BD;B482;1103 116F 11BD;
+B483;B483;1103 116F 11BE;B483;1103 116F 11BE;
+B484;B484;1103 116F 11BF;B484;1103 116F 11BF;
+B485;B485;1103 116F 11C0;B485;1103 116F 11C0;
+B486;B486;1103 116F 11C1;B486;1103 116F 11C1;
+B487;B487;1103 116F 11C2;B487;1103 116F 11C2;
+B488;B488;1103 1170;B488;1103 1170;
+B489;B489;1103 1170 11A8;B489;1103 1170 11A8;
+B48A;B48A;1103 1170 11A9;B48A;1103 1170 11A9;
+B48B;B48B;1103 1170 11AA;B48B;1103 1170 11AA;
+B48C;B48C;1103 1170 11AB;B48C;1103 1170 11AB;
+B48D;B48D;1103 1170 11AC;B48D;1103 1170 11AC;
+B48E;B48E;1103 1170 11AD;B48E;1103 1170 11AD;
+B48F;B48F;1103 1170 11AE;B48F;1103 1170 11AE;
+B490;B490;1103 1170 11AF;B490;1103 1170 11AF;
+B491;B491;1103 1170 11B0;B491;1103 1170 11B0;
+B492;B492;1103 1170 11B1;B492;1103 1170 11B1;
+B493;B493;1103 1170 11B2;B493;1103 1170 11B2;
+B494;B494;1103 1170 11B3;B494;1103 1170 11B3;
+B495;B495;1103 1170 11B4;B495;1103 1170 11B4;
+B496;B496;1103 1170 11B5;B496;1103 1170 11B5;
+B497;B497;1103 1170 11B6;B497;1103 1170 11B6;
+B498;B498;1103 1170 11B7;B498;1103 1170 11B7;
+B499;B499;1103 1170 11B8;B499;1103 1170 11B8;
+B49A;B49A;1103 1170 11B9;B49A;1103 1170 11B9;
+B49B;B49B;1103 1170 11BA;B49B;1103 1170 11BA;
+B49C;B49C;1103 1170 11BB;B49C;1103 1170 11BB;
+B49D;B49D;1103 1170 11BC;B49D;1103 1170 11BC;
+B49E;B49E;1103 1170 11BD;B49E;1103 1170 11BD;
+B49F;B49F;1103 1170 11BE;B49F;1103 1170 11BE;
+B4A0;B4A0;1103 1170 11BF;B4A0;1103 1170 11BF;
+B4A1;B4A1;1103 1170 11C0;B4A1;1103 1170 11C0;
+B4A2;B4A2;1103 1170 11C1;B4A2;1103 1170 11C1;
+B4A3;B4A3;1103 1170 11C2;B4A3;1103 1170 11C2;
+B4A4;B4A4;1103 1171;B4A4;1103 1171;
+B4A5;B4A5;1103 1171 11A8;B4A5;1103 1171 11A8;
+B4A6;B4A6;1103 1171 11A9;B4A6;1103 1171 11A9;
+B4A7;B4A7;1103 1171 11AA;B4A7;1103 1171 11AA;
+B4A8;B4A8;1103 1171 11AB;B4A8;1103 1171 11AB;
+B4A9;B4A9;1103 1171 11AC;B4A9;1103 1171 11AC;
+B4AA;B4AA;1103 1171 11AD;B4AA;1103 1171 11AD;
+B4AB;B4AB;1103 1171 11AE;B4AB;1103 1171 11AE;
+B4AC;B4AC;1103 1171 11AF;B4AC;1103 1171 11AF;
+B4AD;B4AD;1103 1171 11B0;B4AD;1103 1171 11B0;
+B4AE;B4AE;1103 1171 11B1;B4AE;1103 1171 11B1;
+B4AF;B4AF;1103 1171 11B2;B4AF;1103 1171 11B2;
+B4B0;B4B0;1103 1171 11B3;B4B0;1103 1171 11B3;
+B4B1;B4B1;1103 1171 11B4;B4B1;1103 1171 11B4;
+B4B2;B4B2;1103 1171 11B5;B4B2;1103 1171 11B5;
+B4B3;B4B3;1103 1171 11B6;B4B3;1103 1171 11B6;
+B4B4;B4B4;1103 1171 11B7;B4B4;1103 1171 11B7;
+B4B5;B4B5;1103 1171 11B8;B4B5;1103 1171 11B8;
+B4B6;B4B6;1103 1171 11B9;B4B6;1103 1171 11B9;
+B4B7;B4B7;1103 1171 11BA;B4B7;1103 1171 11BA;
+B4B8;B4B8;1103 1171 11BB;B4B8;1103 1171 11BB;
+B4B9;B4B9;1103 1171 11BC;B4B9;1103 1171 11BC;
+B4BA;B4BA;1103 1171 11BD;B4BA;1103 1171 11BD;
+B4BB;B4BB;1103 1171 11BE;B4BB;1103 1171 11BE;
+B4BC;B4BC;1103 1171 11BF;B4BC;1103 1171 11BF;
+B4BD;B4BD;1103 1171 11C0;B4BD;1103 1171 11C0;
+B4BE;B4BE;1103 1171 11C1;B4BE;1103 1171 11C1;
+B4BF;B4BF;1103 1171 11C2;B4BF;1103 1171 11C2;
+B4C0;B4C0;1103 1172;B4C0;1103 1172;
+B4C1;B4C1;1103 1172 11A8;B4C1;1103 1172 11A8;
+B4C2;B4C2;1103 1172 11A9;B4C2;1103 1172 11A9;
+B4C3;B4C3;1103 1172 11AA;B4C3;1103 1172 11AA;
+B4C4;B4C4;1103 1172 11AB;B4C4;1103 1172 11AB;
+B4C5;B4C5;1103 1172 11AC;B4C5;1103 1172 11AC;
+B4C6;B4C6;1103 1172 11AD;B4C6;1103 1172 11AD;
+B4C7;B4C7;1103 1172 11AE;B4C7;1103 1172 11AE;
+B4C8;B4C8;1103 1172 11AF;B4C8;1103 1172 11AF;
+B4C9;B4C9;1103 1172 11B0;B4C9;1103 1172 11B0;
+B4CA;B4CA;1103 1172 11B1;B4CA;1103 1172 11B1;
+B4CB;B4CB;1103 1172 11B2;B4CB;1103 1172 11B2;
+B4CC;B4CC;1103 1172 11B3;B4CC;1103 1172 11B3;
+B4CD;B4CD;1103 1172 11B4;B4CD;1103 1172 11B4;
+B4CE;B4CE;1103 1172 11B5;B4CE;1103 1172 11B5;
+B4CF;B4CF;1103 1172 11B6;B4CF;1103 1172 11B6;
+B4D0;B4D0;1103 1172 11B7;B4D0;1103 1172 11B7;
+B4D1;B4D1;1103 1172 11B8;B4D1;1103 1172 11B8;
+B4D2;B4D2;1103 1172 11B9;B4D2;1103 1172 11B9;
+B4D3;B4D3;1103 1172 11BA;B4D3;1103 1172 11BA;
+B4D4;B4D4;1103 1172 11BB;B4D4;1103 1172 11BB;
+B4D5;B4D5;1103 1172 11BC;B4D5;1103 1172 11BC;
+B4D6;B4D6;1103 1172 11BD;B4D6;1103 1172 11BD;
+B4D7;B4D7;1103 1172 11BE;B4D7;1103 1172 11BE;
+B4D8;B4D8;1103 1172 11BF;B4D8;1103 1172 11BF;
+B4D9;B4D9;1103 1172 11C0;B4D9;1103 1172 11C0;
+B4DA;B4DA;1103 1172 11C1;B4DA;1103 1172 11C1;
+B4DB;B4DB;1103 1172 11C2;B4DB;1103 1172 11C2;
+B4DC;B4DC;1103 1173;B4DC;1103 1173;
+B4DD;B4DD;1103 1173 11A8;B4DD;1103 1173 11A8;
+B4DE;B4DE;1103 1173 11A9;B4DE;1103 1173 11A9;
+B4DF;B4DF;1103 1173 11AA;B4DF;1103 1173 11AA;
+B4E0;B4E0;1103 1173 11AB;B4E0;1103 1173 11AB;
+B4E1;B4E1;1103 1173 11AC;B4E1;1103 1173 11AC;
+B4E2;B4E2;1103 1173 11AD;B4E2;1103 1173 11AD;
+B4E3;B4E3;1103 1173 11AE;B4E3;1103 1173 11AE;
+B4E4;B4E4;1103 1173 11AF;B4E4;1103 1173 11AF;
+B4E5;B4E5;1103 1173 11B0;B4E5;1103 1173 11B0;
+B4E6;B4E6;1103 1173 11B1;B4E6;1103 1173 11B1;
+B4E7;B4E7;1103 1173 11B2;B4E7;1103 1173 11B2;
+B4E8;B4E8;1103 1173 11B3;B4E8;1103 1173 11B3;
+B4E9;B4E9;1103 1173 11B4;B4E9;1103 1173 11B4;
+B4EA;B4EA;1103 1173 11B5;B4EA;1103 1173 11B5;
+B4EB;B4EB;1103 1173 11B6;B4EB;1103 1173 11B6;
+B4EC;B4EC;1103 1173 11B7;B4EC;1103 1173 11B7;
+B4ED;B4ED;1103 1173 11B8;B4ED;1103 1173 11B8;
+B4EE;B4EE;1103 1173 11B9;B4EE;1103 1173 11B9;
+B4EF;B4EF;1103 1173 11BA;B4EF;1103 1173 11BA;
+B4F0;B4F0;1103 1173 11BB;B4F0;1103 1173 11BB;
+B4F1;B4F1;1103 1173 11BC;B4F1;1103 1173 11BC;
+B4F2;B4F2;1103 1173 11BD;B4F2;1103 1173 11BD;
+B4F3;B4F3;1103 1173 11BE;B4F3;1103 1173 11BE;
+B4F4;B4F4;1103 1173 11BF;B4F4;1103 1173 11BF;
+B4F5;B4F5;1103 1173 11C0;B4F5;1103 1173 11C0;
+B4F6;B4F6;1103 1173 11C1;B4F6;1103 1173 11C1;
+B4F7;B4F7;1103 1173 11C2;B4F7;1103 1173 11C2;
+B4F8;B4F8;1103 1174;B4F8;1103 1174;
+B4F9;B4F9;1103 1174 11A8;B4F9;1103 1174 11A8;
+B4FA;B4FA;1103 1174 11A9;B4FA;1103 1174 11A9;
+B4FB;B4FB;1103 1174 11AA;B4FB;1103 1174 11AA;
+B4FC;B4FC;1103 1174 11AB;B4FC;1103 1174 11AB;
+B4FD;B4FD;1103 1174 11AC;B4FD;1103 1174 11AC;
+B4FE;B4FE;1103 1174 11AD;B4FE;1103 1174 11AD;
+B4FF;B4FF;1103 1174 11AE;B4FF;1103 1174 11AE;
+B500;B500;1103 1174 11AF;B500;1103 1174 11AF;
+B501;B501;1103 1174 11B0;B501;1103 1174 11B0;
+B502;B502;1103 1174 11B1;B502;1103 1174 11B1;
+B503;B503;1103 1174 11B2;B503;1103 1174 11B2;
+B504;B504;1103 1174 11B3;B504;1103 1174 11B3;
+B505;B505;1103 1174 11B4;B505;1103 1174 11B4;
+B506;B506;1103 1174 11B5;B506;1103 1174 11B5;
+B507;B507;1103 1174 11B6;B507;1103 1174 11B6;
+B508;B508;1103 1174 11B7;B508;1103 1174 11B7;
+B509;B509;1103 1174 11B8;B509;1103 1174 11B8;
+B50A;B50A;1103 1174 11B9;B50A;1103 1174 11B9;
+B50B;B50B;1103 1174 11BA;B50B;1103 1174 11BA;
+B50C;B50C;1103 1174 11BB;B50C;1103 1174 11BB;
+B50D;B50D;1103 1174 11BC;B50D;1103 1174 11BC;
+B50E;B50E;1103 1174 11BD;B50E;1103 1174 11BD;
+B50F;B50F;1103 1174 11BE;B50F;1103 1174 11BE;
+B510;B510;1103 1174 11BF;B510;1103 1174 11BF;
+B511;B511;1103 1174 11C0;B511;1103 1174 11C0;
+B512;B512;1103 1174 11C1;B512;1103 1174 11C1;
+B513;B513;1103 1174 11C2;B513;1103 1174 11C2;
+B514;B514;1103 1175;B514;1103 1175;
+B515;B515;1103 1175 11A8;B515;1103 1175 11A8;
+B516;B516;1103 1175 11A9;B516;1103 1175 11A9;
+B517;B517;1103 1175 11AA;B517;1103 1175 11AA;
+B518;B518;1103 1175 11AB;B518;1103 1175 11AB;
+B519;B519;1103 1175 11AC;B519;1103 1175 11AC;
+B51A;B51A;1103 1175 11AD;B51A;1103 1175 11AD;
+B51B;B51B;1103 1175 11AE;B51B;1103 1175 11AE;
+B51C;B51C;1103 1175 11AF;B51C;1103 1175 11AF;
+B51D;B51D;1103 1175 11B0;B51D;1103 1175 11B0;
+B51E;B51E;1103 1175 11B1;B51E;1103 1175 11B1;
+B51F;B51F;1103 1175 11B2;B51F;1103 1175 11B2;
+B520;B520;1103 1175 11B3;B520;1103 1175 11B3;
+B521;B521;1103 1175 11B4;B521;1103 1175 11B4;
+B522;B522;1103 1175 11B5;B522;1103 1175 11B5;
+B523;B523;1103 1175 11B6;B523;1103 1175 11B6;
+B524;B524;1103 1175 11B7;B524;1103 1175 11B7;
+B525;B525;1103 1175 11B8;B525;1103 1175 11B8;
+B526;B526;1103 1175 11B9;B526;1103 1175 11B9;
+B527;B527;1103 1175 11BA;B527;1103 1175 11BA;
+B528;B528;1103 1175 11BB;B528;1103 1175 11BB;
+B529;B529;1103 1175 11BC;B529;1103 1175 11BC;
+B52A;B52A;1103 1175 11BD;B52A;1103 1175 11BD;
+B52B;B52B;1103 1175 11BE;B52B;1103 1175 11BE;
+B52C;B52C;1103 1175 11BF;B52C;1103 1175 11BF;
+B52D;B52D;1103 1175 11C0;B52D;1103 1175 11C0;
+B52E;B52E;1103 1175 11C1;B52E;1103 1175 11C1;
+B52F;B52F;1103 1175 11C2;B52F;1103 1175 11C2;
+B530;B530;1104 1161;B530;1104 1161;
+B531;B531;1104 1161 11A8;B531;1104 1161 11A8;
+B532;B532;1104 1161 11A9;B532;1104 1161 11A9;
+B533;B533;1104 1161 11AA;B533;1104 1161 11AA;
+B534;B534;1104 1161 11AB;B534;1104 1161 11AB;
+B535;B535;1104 1161 11AC;B535;1104 1161 11AC;
+B536;B536;1104 1161 11AD;B536;1104 1161 11AD;
+B537;B537;1104 1161 11AE;B537;1104 1161 11AE;
+B538;B538;1104 1161 11AF;B538;1104 1161 11AF;
+B539;B539;1104 1161 11B0;B539;1104 1161 11B0;
+B53A;B53A;1104 1161 11B1;B53A;1104 1161 11B1;
+B53B;B53B;1104 1161 11B2;B53B;1104 1161 11B2;
+B53C;B53C;1104 1161 11B3;B53C;1104 1161 11B3;
+B53D;B53D;1104 1161 11B4;B53D;1104 1161 11B4;
+B53E;B53E;1104 1161 11B5;B53E;1104 1161 11B5;
+B53F;B53F;1104 1161 11B6;B53F;1104 1161 11B6;
+B540;B540;1104 1161 11B7;B540;1104 1161 11B7;
+B541;B541;1104 1161 11B8;B541;1104 1161 11B8;
+B542;B542;1104 1161 11B9;B542;1104 1161 11B9;
+B543;B543;1104 1161 11BA;B543;1104 1161 11BA;
+B544;B544;1104 1161 11BB;B544;1104 1161 11BB;
+B545;B545;1104 1161 11BC;B545;1104 1161 11BC;
+B546;B546;1104 1161 11BD;B546;1104 1161 11BD;
+B547;B547;1104 1161 11BE;B547;1104 1161 11BE;
+B548;B548;1104 1161 11BF;B548;1104 1161 11BF;
+B549;B549;1104 1161 11C0;B549;1104 1161 11C0;
+B54A;B54A;1104 1161 11C1;B54A;1104 1161 11C1;
+B54B;B54B;1104 1161 11C2;B54B;1104 1161 11C2;
+B54C;B54C;1104 1162;B54C;1104 1162;
+B54D;B54D;1104 1162 11A8;B54D;1104 1162 11A8;
+B54E;B54E;1104 1162 11A9;B54E;1104 1162 11A9;
+B54F;B54F;1104 1162 11AA;B54F;1104 1162 11AA;
+B550;B550;1104 1162 11AB;B550;1104 1162 11AB;
+B551;B551;1104 1162 11AC;B551;1104 1162 11AC;
+B552;B552;1104 1162 11AD;B552;1104 1162 11AD;
+B553;B553;1104 1162 11AE;B553;1104 1162 11AE;
+B554;B554;1104 1162 11AF;B554;1104 1162 11AF;
+B555;B555;1104 1162 11B0;B555;1104 1162 11B0;
+B556;B556;1104 1162 11B1;B556;1104 1162 11B1;
+B557;B557;1104 1162 11B2;B557;1104 1162 11B2;
+B558;B558;1104 1162 11B3;B558;1104 1162 11B3;
+B559;B559;1104 1162 11B4;B559;1104 1162 11B4;
+B55A;B55A;1104 1162 11B5;B55A;1104 1162 11B5;
+B55B;B55B;1104 1162 11B6;B55B;1104 1162 11B6;
+B55C;B55C;1104 1162 11B7;B55C;1104 1162 11B7;
+B55D;B55D;1104 1162 11B8;B55D;1104 1162 11B8;
+B55E;B55E;1104 1162 11B9;B55E;1104 1162 11B9;
+B55F;B55F;1104 1162 11BA;B55F;1104 1162 11BA;
+B560;B560;1104 1162 11BB;B560;1104 1162 11BB;
+B561;B561;1104 1162 11BC;B561;1104 1162 11BC;
+B562;B562;1104 1162 11BD;B562;1104 1162 11BD;
+B563;B563;1104 1162 11BE;B563;1104 1162 11BE;
+B564;B564;1104 1162 11BF;B564;1104 1162 11BF;
+B565;B565;1104 1162 11C0;B565;1104 1162 11C0;
+B566;B566;1104 1162 11C1;B566;1104 1162 11C1;
+B567;B567;1104 1162 11C2;B567;1104 1162 11C2;
+B568;B568;1104 1163;B568;1104 1163;
+B569;B569;1104 1163 11A8;B569;1104 1163 11A8;
+B56A;B56A;1104 1163 11A9;B56A;1104 1163 11A9;
+B56B;B56B;1104 1163 11AA;B56B;1104 1163 11AA;
+B56C;B56C;1104 1163 11AB;B56C;1104 1163 11AB;
+B56D;B56D;1104 1163 11AC;B56D;1104 1163 11AC;
+B56E;B56E;1104 1163 11AD;B56E;1104 1163 11AD;
+B56F;B56F;1104 1163 11AE;B56F;1104 1163 11AE;
+B570;B570;1104 1163 11AF;B570;1104 1163 11AF;
+B571;B571;1104 1163 11B0;B571;1104 1163 11B0;
+B572;B572;1104 1163 11B1;B572;1104 1163 11B1;
+B573;B573;1104 1163 11B2;B573;1104 1163 11B2;
+B574;B574;1104 1163 11B3;B574;1104 1163 11B3;
+B575;B575;1104 1163 11B4;B575;1104 1163 11B4;
+B576;B576;1104 1163 11B5;B576;1104 1163 11B5;
+B577;B577;1104 1163 11B6;B577;1104 1163 11B6;
+B578;B578;1104 1163 11B7;B578;1104 1163 11B7;
+B579;B579;1104 1163 11B8;B579;1104 1163 11B8;
+B57A;B57A;1104 1163 11B9;B57A;1104 1163 11B9;
+B57B;B57B;1104 1163 11BA;B57B;1104 1163 11BA;
+B57C;B57C;1104 1163 11BB;B57C;1104 1163 11BB;
+B57D;B57D;1104 1163 11BC;B57D;1104 1163 11BC;
+B57E;B57E;1104 1163 11BD;B57E;1104 1163 11BD;
+B57F;B57F;1104 1163 11BE;B57F;1104 1163 11BE;
+B580;B580;1104 1163 11BF;B580;1104 1163 11BF;
+B581;B581;1104 1163 11C0;B581;1104 1163 11C0;
+B582;B582;1104 1163 11C1;B582;1104 1163 11C1;
+B583;B583;1104 1163 11C2;B583;1104 1163 11C2;
+B584;B584;1104 1164;B584;1104 1164;
+B585;B585;1104 1164 11A8;B585;1104 1164 11A8;
+B586;B586;1104 1164 11A9;B586;1104 1164 11A9;
+B587;B587;1104 1164 11AA;B587;1104 1164 11AA;
+B588;B588;1104 1164 11AB;B588;1104 1164 11AB;
+B589;B589;1104 1164 11AC;B589;1104 1164 11AC;
+B58A;B58A;1104 1164 11AD;B58A;1104 1164 11AD;
+B58B;B58B;1104 1164 11AE;B58B;1104 1164 11AE;
+B58C;B58C;1104 1164 11AF;B58C;1104 1164 11AF;
+B58D;B58D;1104 1164 11B0;B58D;1104 1164 11B0;
+B58E;B58E;1104 1164 11B1;B58E;1104 1164 11B1;
+B58F;B58F;1104 1164 11B2;B58F;1104 1164 11B2;
+B590;B590;1104 1164 11B3;B590;1104 1164 11B3;
+B591;B591;1104 1164 11B4;B591;1104 1164 11B4;
+B592;B592;1104 1164 11B5;B592;1104 1164 11B5;
+B593;B593;1104 1164 11B6;B593;1104 1164 11B6;
+B594;B594;1104 1164 11B7;B594;1104 1164 11B7;
+B595;B595;1104 1164 11B8;B595;1104 1164 11B8;
+B596;B596;1104 1164 11B9;B596;1104 1164 11B9;
+B597;B597;1104 1164 11BA;B597;1104 1164 11BA;
+B598;B598;1104 1164 11BB;B598;1104 1164 11BB;
+B599;B599;1104 1164 11BC;B599;1104 1164 11BC;
+B59A;B59A;1104 1164 11BD;B59A;1104 1164 11BD;
+B59B;B59B;1104 1164 11BE;B59B;1104 1164 11BE;
+B59C;B59C;1104 1164 11BF;B59C;1104 1164 11BF;
+B59D;B59D;1104 1164 11C0;B59D;1104 1164 11C0;
+B59E;B59E;1104 1164 11C1;B59E;1104 1164 11C1;
+B59F;B59F;1104 1164 11C2;B59F;1104 1164 11C2;
+B5A0;B5A0;1104 1165;B5A0;1104 1165;
+B5A1;B5A1;1104 1165 11A8;B5A1;1104 1165 11A8;
+B5A2;B5A2;1104 1165 11A9;B5A2;1104 1165 11A9;
+B5A3;B5A3;1104 1165 11AA;B5A3;1104 1165 11AA;
+B5A4;B5A4;1104 1165 11AB;B5A4;1104 1165 11AB;
+B5A5;B5A5;1104 1165 11AC;B5A5;1104 1165 11AC;
+B5A6;B5A6;1104 1165 11AD;B5A6;1104 1165 11AD;
+B5A7;B5A7;1104 1165 11AE;B5A7;1104 1165 11AE;
+B5A8;B5A8;1104 1165 11AF;B5A8;1104 1165 11AF;
+B5A9;B5A9;1104 1165 11B0;B5A9;1104 1165 11B0;
+B5AA;B5AA;1104 1165 11B1;B5AA;1104 1165 11B1;
+B5AB;B5AB;1104 1165 11B2;B5AB;1104 1165 11B2;
+B5AC;B5AC;1104 1165 11B3;B5AC;1104 1165 11B3;
+B5AD;B5AD;1104 1165 11B4;B5AD;1104 1165 11B4;
+B5AE;B5AE;1104 1165 11B5;B5AE;1104 1165 11B5;
+B5AF;B5AF;1104 1165 11B6;B5AF;1104 1165 11B6;
+B5B0;B5B0;1104 1165 11B7;B5B0;1104 1165 11B7;
+B5B1;B5B1;1104 1165 11B8;B5B1;1104 1165 11B8;
+B5B2;B5B2;1104 1165 11B9;B5B2;1104 1165 11B9;
+B5B3;B5B3;1104 1165 11BA;B5B3;1104 1165 11BA;
+B5B4;B5B4;1104 1165 11BB;B5B4;1104 1165 11BB;
+B5B5;B5B5;1104 1165 11BC;B5B5;1104 1165 11BC;
+B5B6;B5B6;1104 1165 11BD;B5B6;1104 1165 11BD;
+B5B7;B5B7;1104 1165 11BE;B5B7;1104 1165 11BE;
+B5B8;B5B8;1104 1165 11BF;B5B8;1104 1165 11BF;
+B5B9;B5B9;1104 1165 11C0;B5B9;1104 1165 11C0;
+B5BA;B5BA;1104 1165 11C1;B5BA;1104 1165 11C1;
+B5BB;B5BB;1104 1165 11C2;B5BB;1104 1165 11C2;
+B5BC;B5BC;1104 1166;B5BC;1104 1166;
+B5BD;B5BD;1104 1166 11A8;B5BD;1104 1166 11A8;
+B5BE;B5BE;1104 1166 11A9;B5BE;1104 1166 11A9;
+B5BF;B5BF;1104 1166 11AA;B5BF;1104 1166 11AA;
+B5C0;B5C0;1104 1166 11AB;B5C0;1104 1166 11AB;
+B5C1;B5C1;1104 1166 11AC;B5C1;1104 1166 11AC;
+B5C2;B5C2;1104 1166 11AD;B5C2;1104 1166 11AD;
+B5C3;B5C3;1104 1166 11AE;B5C3;1104 1166 11AE;
+B5C4;B5C4;1104 1166 11AF;B5C4;1104 1166 11AF;
+B5C5;B5C5;1104 1166 11B0;B5C5;1104 1166 11B0;
+B5C6;B5C6;1104 1166 11B1;B5C6;1104 1166 11B1;
+B5C7;B5C7;1104 1166 11B2;B5C7;1104 1166 11B2;
+B5C8;B5C8;1104 1166 11B3;B5C8;1104 1166 11B3;
+B5C9;B5C9;1104 1166 11B4;B5C9;1104 1166 11B4;
+B5CA;B5CA;1104 1166 11B5;B5CA;1104 1166 11B5;
+B5CB;B5CB;1104 1166 11B6;B5CB;1104 1166 11B6;
+B5CC;B5CC;1104 1166 11B7;B5CC;1104 1166 11B7;
+B5CD;B5CD;1104 1166 11B8;B5CD;1104 1166 11B8;
+B5CE;B5CE;1104 1166 11B9;B5CE;1104 1166 11B9;
+B5CF;B5CF;1104 1166 11BA;B5CF;1104 1166 11BA;
+B5D0;B5D0;1104 1166 11BB;B5D0;1104 1166 11BB;
+B5D1;B5D1;1104 1166 11BC;B5D1;1104 1166 11BC;
+B5D2;B5D2;1104 1166 11BD;B5D2;1104 1166 11BD;
+B5D3;B5D3;1104 1166 11BE;B5D3;1104 1166 11BE;
+B5D4;B5D4;1104 1166 11BF;B5D4;1104 1166 11BF;
+B5D5;B5D5;1104 1166 11C0;B5D5;1104 1166 11C0;
+B5D6;B5D6;1104 1166 11C1;B5D6;1104 1166 11C1;
+B5D7;B5D7;1104 1166 11C2;B5D7;1104 1166 11C2;
+B5D8;B5D8;1104 1167;B5D8;1104 1167;
+B5D9;B5D9;1104 1167 11A8;B5D9;1104 1167 11A8;
+B5DA;B5DA;1104 1167 11A9;B5DA;1104 1167 11A9;
+B5DB;B5DB;1104 1167 11AA;B5DB;1104 1167 11AA;
+B5DC;B5DC;1104 1167 11AB;B5DC;1104 1167 11AB;
+B5DD;B5DD;1104 1167 11AC;B5DD;1104 1167 11AC;
+B5DE;B5DE;1104 1167 11AD;B5DE;1104 1167 11AD;
+B5DF;B5DF;1104 1167 11AE;B5DF;1104 1167 11AE;
+B5E0;B5E0;1104 1167 11AF;B5E0;1104 1167 11AF;
+B5E1;B5E1;1104 1167 11B0;B5E1;1104 1167 11B0;
+B5E2;B5E2;1104 1167 11B1;B5E2;1104 1167 11B1;
+B5E3;B5E3;1104 1167 11B2;B5E3;1104 1167 11B2;
+B5E4;B5E4;1104 1167 11B3;B5E4;1104 1167 11B3;
+B5E5;B5E5;1104 1167 11B4;B5E5;1104 1167 11B4;
+B5E6;B5E6;1104 1167 11B5;B5E6;1104 1167 11B5;
+B5E7;B5E7;1104 1167 11B6;B5E7;1104 1167 11B6;
+B5E8;B5E8;1104 1167 11B7;B5E8;1104 1167 11B7;
+B5E9;B5E9;1104 1167 11B8;B5E9;1104 1167 11B8;
+B5EA;B5EA;1104 1167 11B9;B5EA;1104 1167 11B9;
+B5EB;B5EB;1104 1167 11BA;B5EB;1104 1167 11BA;
+B5EC;B5EC;1104 1167 11BB;B5EC;1104 1167 11BB;
+B5ED;B5ED;1104 1167 11BC;B5ED;1104 1167 11BC;
+B5EE;B5EE;1104 1167 11BD;B5EE;1104 1167 11BD;
+B5EF;B5EF;1104 1167 11BE;B5EF;1104 1167 11BE;
+B5F0;B5F0;1104 1167 11BF;B5F0;1104 1167 11BF;
+B5F1;B5F1;1104 1167 11C0;B5F1;1104 1167 11C0;
+B5F2;B5F2;1104 1167 11C1;B5F2;1104 1167 11C1;
+B5F3;B5F3;1104 1167 11C2;B5F3;1104 1167 11C2;
+B5F4;B5F4;1104 1168;B5F4;1104 1168;
+B5F5;B5F5;1104 1168 11A8;B5F5;1104 1168 11A8;
+B5F6;B5F6;1104 1168 11A9;B5F6;1104 1168 11A9;
+B5F7;B5F7;1104 1168 11AA;B5F7;1104 1168 11AA;
+B5F8;B5F8;1104 1168 11AB;B5F8;1104 1168 11AB;
+B5F9;B5F9;1104 1168 11AC;B5F9;1104 1168 11AC;
+B5FA;B5FA;1104 1168 11AD;B5FA;1104 1168 11AD;
+B5FB;B5FB;1104 1168 11AE;B5FB;1104 1168 11AE;
+B5FC;B5FC;1104 1168 11AF;B5FC;1104 1168 11AF;
+B5FD;B5FD;1104 1168 11B0;B5FD;1104 1168 11B0;
+B5FE;B5FE;1104 1168 11B1;B5FE;1104 1168 11B1;
+B5FF;B5FF;1104 1168 11B2;B5FF;1104 1168 11B2;
+B600;B600;1104 1168 11B3;B600;1104 1168 11B3;
+B601;B601;1104 1168 11B4;B601;1104 1168 11B4;
+B602;B602;1104 1168 11B5;B602;1104 1168 11B5;
+B603;B603;1104 1168 11B6;B603;1104 1168 11B6;
+B604;B604;1104 1168 11B7;B604;1104 1168 11B7;
+B605;B605;1104 1168 11B8;B605;1104 1168 11B8;
+B606;B606;1104 1168 11B9;B606;1104 1168 11B9;
+B607;B607;1104 1168 11BA;B607;1104 1168 11BA;
+B608;B608;1104 1168 11BB;B608;1104 1168 11BB;
+B609;B609;1104 1168 11BC;B609;1104 1168 11BC;
+B60A;B60A;1104 1168 11BD;B60A;1104 1168 11BD;
+B60B;B60B;1104 1168 11BE;B60B;1104 1168 11BE;
+B60C;B60C;1104 1168 11BF;B60C;1104 1168 11BF;
+B60D;B60D;1104 1168 11C0;B60D;1104 1168 11C0;
+B60E;B60E;1104 1168 11C1;B60E;1104 1168 11C1;
+B60F;B60F;1104 1168 11C2;B60F;1104 1168 11C2;
+B610;B610;1104 1169;B610;1104 1169;
+B611;B611;1104 1169 11A8;B611;1104 1169 11A8;
+B612;B612;1104 1169 11A9;B612;1104 1169 11A9;
+B613;B613;1104 1169 11AA;B613;1104 1169 11AA;
+B614;B614;1104 1169 11AB;B614;1104 1169 11AB;
+B615;B615;1104 1169 11AC;B615;1104 1169 11AC;
+B616;B616;1104 1169 11AD;B616;1104 1169 11AD;
+B617;B617;1104 1169 11AE;B617;1104 1169 11AE;
+B618;B618;1104 1169 11AF;B618;1104 1169 11AF;
+B619;B619;1104 1169 11B0;B619;1104 1169 11B0;
+B61A;B61A;1104 1169 11B1;B61A;1104 1169 11B1;
+B61B;B61B;1104 1169 11B2;B61B;1104 1169 11B2;
+B61C;B61C;1104 1169 11B3;B61C;1104 1169 11B3;
+B61D;B61D;1104 1169 11B4;B61D;1104 1169 11B4;
+B61E;B61E;1104 1169 11B5;B61E;1104 1169 11B5;
+B61F;B61F;1104 1169 11B6;B61F;1104 1169 11B6;
+B620;B620;1104 1169 11B7;B620;1104 1169 11B7;
+B621;B621;1104 1169 11B8;B621;1104 1169 11B8;
+B622;B622;1104 1169 11B9;B622;1104 1169 11B9;
+B623;B623;1104 1169 11BA;B623;1104 1169 11BA;
+B624;B624;1104 1169 11BB;B624;1104 1169 11BB;
+B625;B625;1104 1169 11BC;B625;1104 1169 11BC;
+B626;B626;1104 1169 11BD;B626;1104 1169 11BD;
+B627;B627;1104 1169 11BE;B627;1104 1169 11BE;
+B628;B628;1104 1169 11BF;B628;1104 1169 11BF;
+B629;B629;1104 1169 11C0;B629;1104 1169 11C0;
+B62A;B62A;1104 1169 11C1;B62A;1104 1169 11C1;
+B62B;B62B;1104 1169 11C2;B62B;1104 1169 11C2;
+B62C;B62C;1104 116A;B62C;1104 116A;
+B62D;B62D;1104 116A 11A8;B62D;1104 116A 11A8;
+B62E;B62E;1104 116A 11A9;B62E;1104 116A 11A9;
+B62F;B62F;1104 116A 11AA;B62F;1104 116A 11AA;
+B630;B630;1104 116A 11AB;B630;1104 116A 11AB;
+B631;B631;1104 116A 11AC;B631;1104 116A 11AC;
+B632;B632;1104 116A 11AD;B632;1104 116A 11AD;
+B633;B633;1104 116A 11AE;B633;1104 116A 11AE;
+B634;B634;1104 116A 11AF;B634;1104 116A 11AF;
+B635;B635;1104 116A 11B0;B635;1104 116A 11B0;
+B636;B636;1104 116A 11B1;B636;1104 116A 11B1;
+B637;B637;1104 116A 11B2;B637;1104 116A 11B2;
+B638;B638;1104 116A 11B3;B638;1104 116A 11B3;
+B639;B639;1104 116A 11B4;B639;1104 116A 11B4;
+B63A;B63A;1104 116A 11B5;B63A;1104 116A 11B5;
+B63B;B63B;1104 116A 11B6;B63B;1104 116A 11B6;
+B63C;B63C;1104 116A 11B7;B63C;1104 116A 11B7;
+B63D;B63D;1104 116A 11B8;B63D;1104 116A 11B8;
+B63E;B63E;1104 116A 11B9;B63E;1104 116A 11B9;
+B63F;B63F;1104 116A 11BA;B63F;1104 116A 11BA;
+B640;B640;1104 116A 11BB;B640;1104 116A 11BB;
+B641;B641;1104 116A 11BC;B641;1104 116A 11BC;
+B642;B642;1104 116A 11BD;B642;1104 116A 11BD;
+B643;B643;1104 116A 11BE;B643;1104 116A 11BE;
+B644;B644;1104 116A 11BF;B644;1104 116A 11BF;
+B645;B645;1104 116A 11C0;B645;1104 116A 11C0;
+B646;B646;1104 116A 11C1;B646;1104 116A 11C1;
+B647;B647;1104 116A 11C2;B647;1104 116A 11C2;
+B648;B648;1104 116B;B648;1104 116B;
+B649;B649;1104 116B 11A8;B649;1104 116B 11A8;
+B64A;B64A;1104 116B 11A9;B64A;1104 116B 11A9;
+B64B;B64B;1104 116B 11AA;B64B;1104 116B 11AA;
+B64C;B64C;1104 116B 11AB;B64C;1104 116B 11AB;
+B64D;B64D;1104 116B 11AC;B64D;1104 116B 11AC;
+B64E;B64E;1104 116B 11AD;B64E;1104 116B 11AD;
+B64F;B64F;1104 116B 11AE;B64F;1104 116B 11AE;
+B650;B650;1104 116B 11AF;B650;1104 116B 11AF;
+B651;B651;1104 116B 11B0;B651;1104 116B 11B0;
+B652;B652;1104 116B 11B1;B652;1104 116B 11B1;
+B653;B653;1104 116B 11B2;B653;1104 116B 11B2;
+B654;B654;1104 116B 11B3;B654;1104 116B 11B3;
+B655;B655;1104 116B 11B4;B655;1104 116B 11B4;
+B656;B656;1104 116B 11B5;B656;1104 116B 11B5;
+B657;B657;1104 116B 11B6;B657;1104 116B 11B6;
+B658;B658;1104 116B 11B7;B658;1104 116B 11B7;
+B659;B659;1104 116B 11B8;B659;1104 116B 11B8;
+B65A;B65A;1104 116B 11B9;B65A;1104 116B 11B9;
+B65B;B65B;1104 116B 11BA;B65B;1104 116B 11BA;
+B65C;B65C;1104 116B 11BB;B65C;1104 116B 11BB;
+B65D;B65D;1104 116B 11BC;B65D;1104 116B 11BC;
+B65E;B65E;1104 116B 11BD;B65E;1104 116B 11BD;
+B65F;B65F;1104 116B 11BE;B65F;1104 116B 11BE;
+B660;B660;1104 116B 11BF;B660;1104 116B 11BF;
+B661;B661;1104 116B 11C0;B661;1104 116B 11C0;
+B662;B662;1104 116B 11C1;B662;1104 116B 11C1;
+B663;B663;1104 116B 11C2;B663;1104 116B 11C2;
+B664;B664;1104 116C;B664;1104 116C;
+B665;B665;1104 116C 11A8;B665;1104 116C 11A8;
+B666;B666;1104 116C 11A9;B666;1104 116C 11A9;
+B667;B667;1104 116C 11AA;B667;1104 116C 11AA;
+B668;B668;1104 116C 11AB;B668;1104 116C 11AB;
+B669;B669;1104 116C 11AC;B669;1104 116C 11AC;
+B66A;B66A;1104 116C 11AD;B66A;1104 116C 11AD;
+B66B;B66B;1104 116C 11AE;B66B;1104 116C 11AE;
+B66C;B66C;1104 116C 11AF;B66C;1104 116C 11AF;
+B66D;B66D;1104 116C 11B0;B66D;1104 116C 11B0;
+B66E;B66E;1104 116C 11B1;B66E;1104 116C 11B1;
+B66F;B66F;1104 116C 11B2;B66F;1104 116C 11B2;
+B670;B670;1104 116C 11B3;B670;1104 116C 11B3;
+B671;B671;1104 116C 11B4;B671;1104 116C 11B4;
+B672;B672;1104 116C 11B5;B672;1104 116C 11B5;
+B673;B673;1104 116C 11B6;B673;1104 116C 11B6;
+B674;B674;1104 116C 11B7;B674;1104 116C 11B7;
+B675;B675;1104 116C 11B8;B675;1104 116C 11B8;
+B676;B676;1104 116C 11B9;B676;1104 116C 11B9;
+B677;B677;1104 116C 11BA;B677;1104 116C 11BA;
+B678;B678;1104 116C 11BB;B678;1104 116C 11BB;
+B679;B679;1104 116C 11BC;B679;1104 116C 11BC;
+B67A;B67A;1104 116C 11BD;B67A;1104 116C 11BD;
+B67B;B67B;1104 116C 11BE;B67B;1104 116C 11BE;
+B67C;B67C;1104 116C 11BF;B67C;1104 116C 11BF;
+B67D;B67D;1104 116C 11C0;B67D;1104 116C 11C0;
+B67E;B67E;1104 116C 11C1;B67E;1104 116C 11C1;
+B67F;B67F;1104 116C 11C2;B67F;1104 116C 11C2;
+B680;B680;1104 116D;B680;1104 116D;
+B681;B681;1104 116D 11A8;B681;1104 116D 11A8;
+B682;B682;1104 116D 11A9;B682;1104 116D 11A9;
+B683;B683;1104 116D 11AA;B683;1104 116D 11AA;
+B684;B684;1104 116D 11AB;B684;1104 116D 11AB;
+B685;B685;1104 116D 11AC;B685;1104 116D 11AC;
+B686;B686;1104 116D 11AD;B686;1104 116D 11AD;
+B687;B687;1104 116D 11AE;B687;1104 116D 11AE;
+B688;B688;1104 116D 11AF;B688;1104 116D 11AF;
+B689;B689;1104 116D 11B0;B689;1104 116D 11B0;
+B68A;B68A;1104 116D 11B1;B68A;1104 116D 11B1;
+B68B;B68B;1104 116D 11B2;B68B;1104 116D 11B2;
+B68C;B68C;1104 116D 11B3;B68C;1104 116D 11B3;
+B68D;B68D;1104 116D 11B4;B68D;1104 116D 11B4;
+B68E;B68E;1104 116D 11B5;B68E;1104 116D 11B5;
+B68F;B68F;1104 116D 11B6;B68F;1104 116D 11B6;
+B690;B690;1104 116D 11B7;B690;1104 116D 11B7;
+B691;B691;1104 116D 11B8;B691;1104 116D 11B8;
+B692;B692;1104 116D 11B9;B692;1104 116D 11B9;
+B693;B693;1104 116D 11BA;B693;1104 116D 11BA;
+B694;B694;1104 116D 11BB;B694;1104 116D 11BB;
+B695;B695;1104 116D 11BC;B695;1104 116D 11BC;
+B696;B696;1104 116D 11BD;B696;1104 116D 11BD;
+B697;B697;1104 116D 11BE;B697;1104 116D 11BE;
+B698;B698;1104 116D 11BF;B698;1104 116D 11BF;
+B699;B699;1104 116D 11C0;B699;1104 116D 11C0;
+B69A;B69A;1104 116D 11C1;B69A;1104 116D 11C1;
+B69B;B69B;1104 116D 11C2;B69B;1104 116D 11C2;
+B69C;B69C;1104 116E;B69C;1104 116E;
+B69D;B69D;1104 116E 11A8;B69D;1104 116E 11A8;
+B69E;B69E;1104 116E 11A9;B69E;1104 116E 11A9;
+B69F;B69F;1104 116E 11AA;B69F;1104 116E 11AA;
+B6A0;B6A0;1104 116E 11AB;B6A0;1104 116E 11AB;
+B6A1;B6A1;1104 116E 11AC;B6A1;1104 116E 11AC;
+B6A2;B6A2;1104 116E 11AD;B6A2;1104 116E 11AD;
+B6A3;B6A3;1104 116E 11AE;B6A3;1104 116E 11AE;
+B6A4;B6A4;1104 116E 11AF;B6A4;1104 116E 11AF;
+B6A5;B6A5;1104 116E 11B0;B6A5;1104 116E 11B0;
+B6A6;B6A6;1104 116E 11B1;B6A6;1104 116E 11B1;
+B6A7;B6A7;1104 116E 11B2;B6A7;1104 116E 11B2;
+B6A8;B6A8;1104 116E 11B3;B6A8;1104 116E 11B3;
+B6A9;B6A9;1104 116E 11B4;B6A9;1104 116E 11B4;
+B6AA;B6AA;1104 116E 11B5;B6AA;1104 116E 11B5;
+B6AB;B6AB;1104 116E 11B6;B6AB;1104 116E 11B6;
+B6AC;B6AC;1104 116E 11B7;B6AC;1104 116E 11B7;
+B6AD;B6AD;1104 116E 11B8;B6AD;1104 116E 11B8;
+B6AE;B6AE;1104 116E 11B9;B6AE;1104 116E 11B9;
+B6AF;B6AF;1104 116E 11BA;B6AF;1104 116E 11BA;
+B6B0;B6B0;1104 116E 11BB;B6B0;1104 116E 11BB;
+B6B1;B6B1;1104 116E 11BC;B6B1;1104 116E 11BC;
+B6B2;B6B2;1104 116E 11BD;B6B2;1104 116E 11BD;
+B6B3;B6B3;1104 116E 11BE;B6B3;1104 116E 11BE;
+B6B4;B6B4;1104 116E 11BF;B6B4;1104 116E 11BF;
+B6B5;B6B5;1104 116E 11C0;B6B5;1104 116E 11C0;
+B6B6;B6B6;1104 116E 11C1;B6B6;1104 116E 11C1;
+B6B7;B6B7;1104 116E 11C2;B6B7;1104 116E 11C2;
+B6B8;B6B8;1104 116F;B6B8;1104 116F;
+B6B9;B6B9;1104 116F 11A8;B6B9;1104 116F 11A8;
+B6BA;B6BA;1104 116F 11A9;B6BA;1104 116F 11A9;
+B6BB;B6BB;1104 116F 11AA;B6BB;1104 116F 11AA;
+B6BC;B6BC;1104 116F 11AB;B6BC;1104 116F 11AB;
+B6BD;B6BD;1104 116F 11AC;B6BD;1104 116F 11AC;
+B6BE;B6BE;1104 116F 11AD;B6BE;1104 116F 11AD;
+B6BF;B6BF;1104 116F 11AE;B6BF;1104 116F 11AE;
+B6C0;B6C0;1104 116F 11AF;B6C0;1104 116F 11AF;
+B6C1;B6C1;1104 116F 11B0;B6C1;1104 116F 11B0;
+B6C2;B6C2;1104 116F 11B1;B6C2;1104 116F 11B1;
+B6C3;B6C3;1104 116F 11B2;B6C3;1104 116F 11B2;
+B6C4;B6C4;1104 116F 11B3;B6C4;1104 116F 11B3;
+B6C5;B6C5;1104 116F 11B4;B6C5;1104 116F 11B4;
+B6C6;B6C6;1104 116F 11B5;B6C6;1104 116F 11B5;
+B6C7;B6C7;1104 116F 11B6;B6C7;1104 116F 11B6;
+B6C8;B6C8;1104 116F 11B7;B6C8;1104 116F 11B7;
+B6C9;B6C9;1104 116F 11B8;B6C9;1104 116F 11B8;
+B6CA;B6CA;1104 116F 11B9;B6CA;1104 116F 11B9;
+B6CB;B6CB;1104 116F 11BA;B6CB;1104 116F 11BA;
+B6CC;B6CC;1104 116F 11BB;B6CC;1104 116F 11BB;
+B6CD;B6CD;1104 116F 11BC;B6CD;1104 116F 11BC;
+B6CE;B6CE;1104 116F 11BD;B6CE;1104 116F 11BD;
+B6CF;B6CF;1104 116F 11BE;B6CF;1104 116F 11BE;
+B6D0;B6D0;1104 116F 11BF;B6D0;1104 116F 11BF;
+B6D1;B6D1;1104 116F 11C0;B6D1;1104 116F 11C0;
+B6D2;B6D2;1104 116F 11C1;B6D2;1104 116F 11C1;
+B6D3;B6D3;1104 116F 11C2;B6D3;1104 116F 11C2;
+B6D4;B6D4;1104 1170;B6D4;1104 1170;
+B6D5;B6D5;1104 1170 11A8;B6D5;1104 1170 11A8;
+B6D6;B6D6;1104 1170 11A9;B6D6;1104 1170 11A9;
+B6D7;B6D7;1104 1170 11AA;B6D7;1104 1170 11AA;
+B6D8;B6D8;1104 1170 11AB;B6D8;1104 1170 11AB;
+B6D9;B6D9;1104 1170 11AC;B6D9;1104 1170 11AC;
+B6DA;B6DA;1104 1170 11AD;B6DA;1104 1170 11AD;
+B6DB;B6DB;1104 1170 11AE;B6DB;1104 1170 11AE;
+B6DC;B6DC;1104 1170 11AF;B6DC;1104 1170 11AF;
+B6DD;B6DD;1104 1170 11B0;B6DD;1104 1170 11B0;
+B6DE;B6DE;1104 1170 11B1;B6DE;1104 1170 11B1;
+B6DF;B6DF;1104 1170 11B2;B6DF;1104 1170 11B2;
+B6E0;B6E0;1104 1170 11B3;B6E0;1104 1170 11B3;
+B6E1;B6E1;1104 1170 11B4;B6E1;1104 1170 11B4;
+B6E2;B6E2;1104 1170 11B5;B6E2;1104 1170 11B5;
+B6E3;B6E3;1104 1170 11B6;B6E3;1104 1170 11B6;
+B6E4;B6E4;1104 1170 11B7;B6E4;1104 1170 11B7;
+B6E5;B6E5;1104 1170 11B8;B6E5;1104 1170 11B8;
+B6E6;B6E6;1104 1170 11B9;B6E6;1104 1170 11B9;
+B6E7;B6E7;1104 1170 11BA;B6E7;1104 1170 11BA;
+B6E8;B6E8;1104 1170 11BB;B6E8;1104 1170 11BB;
+B6E9;B6E9;1104 1170 11BC;B6E9;1104 1170 11BC;
+B6EA;B6EA;1104 1170 11BD;B6EA;1104 1170 11BD;
+B6EB;B6EB;1104 1170 11BE;B6EB;1104 1170 11BE;
+B6EC;B6EC;1104 1170 11BF;B6EC;1104 1170 11BF;
+B6ED;B6ED;1104 1170 11C0;B6ED;1104 1170 11C0;
+B6EE;B6EE;1104 1170 11C1;B6EE;1104 1170 11C1;
+B6EF;B6EF;1104 1170 11C2;B6EF;1104 1170 11C2;
+B6F0;B6F0;1104 1171;B6F0;1104 1171;
+B6F1;B6F1;1104 1171 11A8;B6F1;1104 1171 11A8;
+B6F2;B6F2;1104 1171 11A9;B6F2;1104 1171 11A9;
+B6F3;B6F3;1104 1171 11AA;B6F3;1104 1171 11AA;
+B6F4;B6F4;1104 1171 11AB;B6F4;1104 1171 11AB;
+B6F5;B6F5;1104 1171 11AC;B6F5;1104 1171 11AC;
+B6F6;B6F6;1104 1171 11AD;B6F6;1104 1171 11AD;
+B6F7;B6F7;1104 1171 11AE;B6F7;1104 1171 11AE;
+B6F8;B6F8;1104 1171 11AF;B6F8;1104 1171 11AF;
+B6F9;B6F9;1104 1171 11B0;B6F9;1104 1171 11B0;
+B6FA;B6FA;1104 1171 11B1;B6FA;1104 1171 11B1;
+B6FB;B6FB;1104 1171 11B2;B6FB;1104 1171 11B2;
+B6FC;B6FC;1104 1171 11B3;B6FC;1104 1171 11B3;
+B6FD;B6FD;1104 1171 11B4;B6FD;1104 1171 11B4;
+B6FE;B6FE;1104 1171 11B5;B6FE;1104 1171 11B5;
+B6FF;B6FF;1104 1171 11B6;B6FF;1104 1171 11B6;
+B700;B700;1104 1171 11B7;B700;1104 1171 11B7;
+B701;B701;1104 1171 11B8;B701;1104 1171 11B8;
+B702;B702;1104 1171 11B9;B702;1104 1171 11B9;
+B703;B703;1104 1171 11BA;B703;1104 1171 11BA;
+B704;B704;1104 1171 11BB;B704;1104 1171 11BB;
+B705;B705;1104 1171 11BC;B705;1104 1171 11BC;
+B706;B706;1104 1171 11BD;B706;1104 1171 11BD;
+B707;B707;1104 1171 11BE;B707;1104 1171 11BE;
+B708;B708;1104 1171 11BF;B708;1104 1171 11BF;
+B709;B709;1104 1171 11C0;B709;1104 1171 11C0;
+B70A;B70A;1104 1171 11C1;B70A;1104 1171 11C1;
+B70B;B70B;1104 1171 11C2;B70B;1104 1171 11C2;
+B70C;B70C;1104 1172;B70C;1104 1172;
+B70D;B70D;1104 1172 11A8;B70D;1104 1172 11A8;
+B70E;B70E;1104 1172 11A9;B70E;1104 1172 11A9;
+B70F;B70F;1104 1172 11AA;B70F;1104 1172 11AA;
+B710;B710;1104 1172 11AB;B710;1104 1172 11AB;
+B711;B711;1104 1172 11AC;B711;1104 1172 11AC;
+B712;B712;1104 1172 11AD;B712;1104 1172 11AD;
+B713;B713;1104 1172 11AE;B713;1104 1172 11AE;
+B714;B714;1104 1172 11AF;B714;1104 1172 11AF;
+B715;B715;1104 1172 11B0;B715;1104 1172 11B0;
+B716;B716;1104 1172 11B1;B716;1104 1172 11B1;
+B717;B717;1104 1172 11B2;B717;1104 1172 11B2;
+B718;B718;1104 1172 11B3;B718;1104 1172 11B3;
+B719;B719;1104 1172 11B4;B719;1104 1172 11B4;
+B71A;B71A;1104 1172 11B5;B71A;1104 1172 11B5;
+B71B;B71B;1104 1172 11B6;B71B;1104 1172 11B6;
+B71C;B71C;1104 1172 11B7;B71C;1104 1172 11B7;
+B71D;B71D;1104 1172 11B8;B71D;1104 1172 11B8;
+B71E;B71E;1104 1172 11B9;B71E;1104 1172 11B9;
+B71F;B71F;1104 1172 11BA;B71F;1104 1172 11BA;
+B720;B720;1104 1172 11BB;B720;1104 1172 11BB;
+B721;B721;1104 1172 11BC;B721;1104 1172 11BC;
+B722;B722;1104 1172 11BD;B722;1104 1172 11BD;
+B723;B723;1104 1172 11BE;B723;1104 1172 11BE;
+B724;B724;1104 1172 11BF;B724;1104 1172 11BF;
+B725;B725;1104 1172 11C0;B725;1104 1172 11C0;
+B726;B726;1104 1172 11C1;B726;1104 1172 11C1;
+B727;B727;1104 1172 11C2;B727;1104 1172 11C2;
+B728;B728;1104 1173;B728;1104 1173;
+B729;B729;1104 1173 11A8;B729;1104 1173 11A8;
+B72A;B72A;1104 1173 11A9;B72A;1104 1173 11A9;
+B72B;B72B;1104 1173 11AA;B72B;1104 1173 11AA;
+B72C;B72C;1104 1173 11AB;B72C;1104 1173 11AB;
+B72D;B72D;1104 1173 11AC;B72D;1104 1173 11AC;
+B72E;B72E;1104 1173 11AD;B72E;1104 1173 11AD;
+B72F;B72F;1104 1173 11AE;B72F;1104 1173 11AE;
+B730;B730;1104 1173 11AF;B730;1104 1173 11AF;
+B731;B731;1104 1173 11B0;B731;1104 1173 11B0;
+B732;B732;1104 1173 11B1;B732;1104 1173 11B1;
+B733;B733;1104 1173 11B2;B733;1104 1173 11B2;
+B734;B734;1104 1173 11B3;B734;1104 1173 11B3;
+B735;B735;1104 1173 11B4;B735;1104 1173 11B4;
+B736;B736;1104 1173 11B5;B736;1104 1173 11B5;
+B737;B737;1104 1173 11B6;B737;1104 1173 11B6;
+B738;B738;1104 1173 11B7;B738;1104 1173 11B7;
+B739;B739;1104 1173 11B8;B739;1104 1173 11B8;
+B73A;B73A;1104 1173 11B9;B73A;1104 1173 11B9;
+B73B;B73B;1104 1173 11BA;B73B;1104 1173 11BA;
+B73C;B73C;1104 1173 11BB;B73C;1104 1173 11BB;
+B73D;B73D;1104 1173 11BC;B73D;1104 1173 11BC;
+B73E;B73E;1104 1173 11BD;B73E;1104 1173 11BD;
+B73F;B73F;1104 1173 11BE;B73F;1104 1173 11BE;
+B740;B740;1104 1173 11BF;B740;1104 1173 11BF;
+B741;B741;1104 1173 11C0;B741;1104 1173 11C0;
+B742;B742;1104 1173 11C1;B742;1104 1173 11C1;
+B743;B743;1104 1173 11C2;B743;1104 1173 11C2;
+B744;B744;1104 1174;B744;1104 1174;
+B745;B745;1104 1174 11A8;B745;1104 1174 11A8;
+B746;B746;1104 1174 11A9;B746;1104 1174 11A9;
+B747;B747;1104 1174 11AA;B747;1104 1174 11AA;
+B748;B748;1104 1174 11AB;B748;1104 1174 11AB;
+B749;B749;1104 1174 11AC;B749;1104 1174 11AC;
+B74A;B74A;1104 1174 11AD;B74A;1104 1174 11AD;
+B74B;B74B;1104 1174 11AE;B74B;1104 1174 11AE;
+B74C;B74C;1104 1174 11AF;B74C;1104 1174 11AF;
+B74D;B74D;1104 1174 11B0;B74D;1104 1174 11B0;
+B74E;B74E;1104 1174 11B1;B74E;1104 1174 11B1;
+B74F;B74F;1104 1174 11B2;B74F;1104 1174 11B2;
+B750;B750;1104 1174 11B3;B750;1104 1174 11B3;
+B751;B751;1104 1174 11B4;B751;1104 1174 11B4;
+B752;B752;1104 1174 11B5;B752;1104 1174 11B5;
+B753;B753;1104 1174 11B6;B753;1104 1174 11B6;
+B754;B754;1104 1174 11B7;B754;1104 1174 11B7;
+B755;B755;1104 1174 11B8;B755;1104 1174 11B8;
+B756;B756;1104 1174 11B9;B756;1104 1174 11B9;
+B757;B757;1104 1174 11BA;B757;1104 1174 11BA;
+B758;B758;1104 1174 11BB;B758;1104 1174 11BB;
+B759;B759;1104 1174 11BC;B759;1104 1174 11BC;
+B75A;B75A;1104 1174 11BD;B75A;1104 1174 11BD;
+B75B;B75B;1104 1174 11BE;B75B;1104 1174 11BE;
+B75C;B75C;1104 1174 11BF;B75C;1104 1174 11BF;
+B75D;B75D;1104 1174 11C0;B75D;1104 1174 11C0;
+B75E;B75E;1104 1174 11C1;B75E;1104 1174 11C1;
+B75F;B75F;1104 1174 11C2;B75F;1104 1174 11C2;
+B760;B760;1104 1175;B760;1104 1175;
+B761;B761;1104 1175 11A8;B761;1104 1175 11A8;
+B762;B762;1104 1175 11A9;B762;1104 1175 11A9;
+B763;B763;1104 1175 11AA;B763;1104 1175 11AA;
+B764;B764;1104 1175 11AB;B764;1104 1175 11AB;
+B765;B765;1104 1175 11AC;B765;1104 1175 11AC;
+B766;B766;1104 1175 11AD;B766;1104 1175 11AD;
+B767;B767;1104 1175 11AE;B767;1104 1175 11AE;
+B768;B768;1104 1175 11AF;B768;1104 1175 11AF;
+B769;B769;1104 1175 11B0;B769;1104 1175 11B0;
+B76A;B76A;1104 1175 11B1;B76A;1104 1175 11B1;
+B76B;B76B;1104 1175 11B2;B76B;1104 1175 11B2;
+B76C;B76C;1104 1175 11B3;B76C;1104 1175 11B3;
+B76D;B76D;1104 1175 11B4;B76D;1104 1175 11B4;
+B76E;B76E;1104 1175 11B5;B76E;1104 1175 11B5;
+B76F;B76F;1104 1175 11B6;B76F;1104 1175 11B6;
+B770;B770;1104 1175 11B7;B770;1104 1175 11B7;
+B771;B771;1104 1175 11B8;B771;1104 1175 11B8;
+B772;B772;1104 1175 11B9;B772;1104 1175 11B9;
+B773;B773;1104 1175 11BA;B773;1104 1175 11BA;
+B774;B774;1104 1175 11BB;B774;1104 1175 11BB;
+B775;B775;1104 1175 11BC;B775;1104 1175 11BC;
+B776;B776;1104 1175 11BD;B776;1104 1175 11BD;
+B777;B777;1104 1175 11BE;B777;1104 1175 11BE;
+B778;B778;1104 1175 11BF;B778;1104 1175 11BF;
+B779;B779;1104 1175 11C0;B779;1104 1175 11C0;
+B77A;B77A;1104 1175 11C1;B77A;1104 1175 11C1;
+B77B;B77B;1104 1175 11C2;B77B;1104 1175 11C2;
+B77C;B77C;1105 1161;B77C;1105 1161;
+B77D;B77D;1105 1161 11A8;B77D;1105 1161 11A8;
+B77E;B77E;1105 1161 11A9;B77E;1105 1161 11A9;
+B77F;B77F;1105 1161 11AA;B77F;1105 1161 11AA;
+B780;B780;1105 1161 11AB;B780;1105 1161 11AB;
+B781;B781;1105 1161 11AC;B781;1105 1161 11AC;
+B782;B782;1105 1161 11AD;B782;1105 1161 11AD;
+B783;B783;1105 1161 11AE;B783;1105 1161 11AE;
+B784;B784;1105 1161 11AF;B784;1105 1161 11AF;
+B785;B785;1105 1161 11B0;B785;1105 1161 11B0;
+B786;B786;1105 1161 11B1;B786;1105 1161 11B1;
+B787;B787;1105 1161 11B2;B787;1105 1161 11B2;
+B788;B788;1105 1161 11B3;B788;1105 1161 11B3;
+B789;B789;1105 1161 11B4;B789;1105 1161 11B4;
+B78A;B78A;1105 1161 11B5;B78A;1105 1161 11B5;
+B78B;B78B;1105 1161 11B6;B78B;1105 1161 11B6;
+B78C;B78C;1105 1161 11B7;B78C;1105 1161 11B7;
+B78D;B78D;1105 1161 11B8;B78D;1105 1161 11B8;
+B78E;B78E;1105 1161 11B9;B78E;1105 1161 11B9;
+B78F;B78F;1105 1161 11BA;B78F;1105 1161 11BA;
+B790;B790;1105 1161 11BB;B790;1105 1161 11BB;
+B791;B791;1105 1161 11BC;B791;1105 1161 11BC;
+B792;B792;1105 1161 11BD;B792;1105 1161 11BD;
+B793;B793;1105 1161 11BE;B793;1105 1161 11BE;
+B794;B794;1105 1161 11BF;B794;1105 1161 11BF;
+B795;B795;1105 1161 11C0;B795;1105 1161 11C0;
+B796;B796;1105 1161 11C1;B796;1105 1161 11C1;
+B797;B797;1105 1161 11C2;B797;1105 1161 11C2;
+B798;B798;1105 1162;B798;1105 1162;
+B799;B799;1105 1162 11A8;B799;1105 1162 11A8;
+B79A;B79A;1105 1162 11A9;B79A;1105 1162 11A9;
+B79B;B79B;1105 1162 11AA;B79B;1105 1162 11AA;
+B79C;B79C;1105 1162 11AB;B79C;1105 1162 11AB;
+B79D;B79D;1105 1162 11AC;B79D;1105 1162 11AC;
+B79E;B79E;1105 1162 11AD;B79E;1105 1162 11AD;
+B79F;B79F;1105 1162 11AE;B79F;1105 1162 11AE;
+B7A0;B7A0;1105 1162 11AF;B7A0;1105 1162 11AF;
+B7A1;B7A1;1105 1162 11B0;B7A1;1105 1162 11B0;
+B7A2;B7A2;1105 1162 11B1;B7A2;1105 1162 11B1;
+B7A3;B7A3;1105 1162 11B2;B7A3;1105 1162 11B2;
+B7A4;B7A4;1105 1162 11B3;B7A4;1105 1162 11B3;
+B7A5;B7A5;1105 1162 11B4;B7A5;1105 1162 11B4;
+B7A6;B7A6;1105 1162 11B5;B7A6;1105 1162 11B5;
+B7A7;B7A7;1105 1162 11B6;B7A7;1105 1162 11B6;
+B7A8;B7A8;1105 1162 11B7;B7A8;1105 1162 11B7;
+B7A9;B7A9;1105 1162 11B8;B7A9;1105 1162 11B8;
+B7AA;B7AA;1105 1162 11B9;B7AA;1105 1162 11B9;
+B7AB;B7AB;1105 1162 11BA;B7AB;1105 1162 11BA;
+B7AC;B7AC;1105 1162 11BB;B7AC;1105 1162 11BB;
+B7AD;B7AD;1105 1162 11BC;B7AD;1105 1162 11BC;
+B7AE;B7AE;1105 1162 11BD;B7AE;1105 1162 11BD;
+B7AF;B7AF;1105 1162 11BE;B7AF;1105 1162 11BE;
+B7B0;B7B0;1105 1162 11BF;B7B0;1105 1162 11BF;
+B7B1;B7B1;1105 1162 11C0;B7B1;1105 1162 11C0;
+B7B2;B7B2;1105 1162 11C1;B7B2;1105 1162 11C1;
+B7B3;B7B3;1105 1162 11C2;B7B3;1105 1162 11C2;
+B7B4;B7B4;1105 1163;B7B4;1105 1163;
+B7B5;B7B5;1105 1163 11A8;B7B5;1105 1163 11A8;
+B7B6;B7B6;1105 1163 11A9;B7B6;1105 1163 11A9;
+B7B7;B7B7;1105 1163 11AA;B7B7;1105 1163 11AA;
+B7B8;B7B8;1105 1163 11AB;B7B8;1105 1163 11AB;
+B7B9;B7B9;1105 1163 11AC;B7B9;1105 1163 11AC;
+B7BA;B7BA;1105 1163 11AD;B7BA;1105 1163 11AD;
+B7BB;B7BB;1105 1163 11AE;B7BB;1105 1163 11AE;
+B7BC;B7BC;1105 1163 11AF;B7BC;1105 1163 11AF;
+B7BD;B7BD;1105 1163 11B0;B7BD;1105 1163 11B0;
+B7BE;B7BE;1105 1163 11B1;B7BE;1105 1163 11B1;
+B7BF;B7BF;1105 1163 11B2;B7BF;1105 1163 11B2;
+B7C0;B7C0;1105 1163 11B3;B7C0;1105 1163 11B3;
+B7C1;B7C1;1105 1163 11B4;B7C1;1105 1163 11B4;
+B7C2;B7C2;1105 1163 11B5;B7C2;1105 1163 11B5;
+B7C3;B7C3;1105 1163 11B6;B7C3;1105 1163 11B6;
+B7C4;B7C4;1105 1163 11B7;B7C4;1105 1163 11B7;
+B7C5;B7C5;1105 1163 11B8;B7C5;1105 1163 11B8;
+B7C6;B7C6;1105 1163 11B9;B7C6;1105 1163 11B9;
+B7C7;B7C7;1105 1163 11BA;B7C7;1105 1163 11BA;
+B7C8;B7C8;1105 1163 11BB;B7C8;1105 1163 11BB;
+B7C9;B7C9;1105 1163 11BC;B7C9;1105 1163 11BC;
+B7CA;B7CA;1105 1163 11BD;B7CA;1105 1163 11BD;
+B7CB;B7CB;1105 1163 11BE;B7CB;1105 1163 11BE;
+B7CC;B7CC;1105 1163 11BF;B7CC;1105 1163 11BF;
+B7CD;B7CD;1105 1163 11C0;B7CD;1105 1163 11C0;
+B7CE;B7CE;1105 1163 11C1;B7CE;1105 1163 11C1;
+B7CF;B7CF;1105 1163 11C2;B7CF;1105 1163 11C2;
+B7D0;B7D0;1105 1164;B7D0;1105 1164;
+B7D1;B7D1;1105 1164 11A8;B7D1;1105 1164 11A8;
+B7D2;B7D2;1105 1164 11A9;B7D2;1105 1164 11A9;
+B7D3;B7D3;1105 1164 11AA;B7D3;1105 1164 11AA;
+B7D4;B7D4;1105 1164 11AB;B7D4;1105 1164 11AB;
+B7D5;B7D5;1105 1164 11AC;B7D5;1105 1164 11AC;
+B7D6;B7D6;1105 1164 11AD;B7D6;1105 1164 11AD;
+B7D7;B7D7;1105 1164 11AE;B7D7;1105 1164 11AE;
+B7D8;B7D8;1105 1164 11AF;B7D8;1105 1164 11AF;
+B7D9;B7D9;1105 1164 11B0;B7D9;1105 1164 11B0;
+B7DA;B7DA;1105 1164 11B1;B7DA;1105 1164 11B1;
+B7DB;B7DB;1105 1164 11B2;B7DB;1105 1164 11B2;
+B7DC;B7DC;1105 1164 11B3;B7DC;1105 1164 11B3;
+B7DD;B7DD;1105 1164 11B4;B7DD;1105 1164 11B4;
+B7DE;B7DE;1105 1164 11B5;B7DE;1105 1164 11B5;
+B7DF;B7DF;1105 1164 11B6;B7DF;1105 1164 11B6;
+B7E0;B7E0;1105 1164 11B7;B7E0;1105 1164 11B7;
+B7E1;B7E1;1105 1164 11B8;B7E1;1105 1164 11B8;
+B7E2;B7E2;1105 1164 11B9;B7E2;1105 1164 11B9;
+B7E3;B7E3;1105 1164 11BA;B7E3;1105 1164 11BA;
+B7E4;B7E4;1105 1164 11BB;B7E4;1105 1164 11BB;
+B7E5;B7E5;1105 1164 11BC;B7E5;1105 1164 11BC;
+B7E6;B7E6;1105 1164 11BD;B7E6;1105 1164 11BD;
+B7E7;B7E7;1105 1164 11BE;B7E7;1105 1164 11BE;
+B7E8;B7E8;1105 1164 11BF;B7E8;1105 1164 11BF;
+B7E9;B7E9;1105 1164 11C0;B7E9;1105 1164 11C0;
+B7EA;B7EA;1105 1164 11C1;B7EA;1105 1164 11C1;
+B7EB;B7EB;1105 1164 11C2;B7EB;1105 1164 11C2;
+B7EC;B7EC;1105 1165;B7EC;1105 1165;
+B7ED;B7ED;1105 1165 11A8;B7ED;1105 1165 11A8;
+B7EE;B7EE;1105 1165 11A9;B7EE;1105 1165 11A9;
+B7EF;B7EF;1105 1165 11AA;B7EF;1105 1165 11AA;
+B7F0;B7F0;1105 1165 11AB;B7F0;1105 1165 11AB;
+B7F1;B7F1;1105 1165 11AC;B7F1;1105 1165 11AC;
+B7F2;B7F2;1105 1165 11AD;B7F2;1105 1165 11AD;
+B7F3;B7F3;1105 1165 11AE;B7F3;1105 1165 11AE;
+B7F4;B7F4;1105 1165 11AF;B7F4;1105 1165 11AF;
+B7F5;B7F5;1105 1165 11B0;B7F5;1105 1165 11B0;
+B7F6;B7F6;1105 1165 11B1;B7F6;1105 1165 11B1;
+B7F7;B7F7;1105 1165 11B2;B7F7;1105 1165 11B2;
+B7F8;B7F8;1105 1165 11B3;B7F8;1105 1165 11B3;
+B7F9;B7F9;1105 1165 11B4;B7F9;1105 1165 11B4;
+B7FA;B7FA;1105 1165 11B5;B7FA;1105 1165 11B5;
+B7FB;B7FB;1105 1165 11B6;B7FB;1105 1165 11B6;
+B7FC;B7FC;1105 1165 11B7;B7FC;1105 1165 11B7;
+B7FD;B7FD;1105 1165 11B8;B7FD;1105 1165 11B8;
+B7FE;B7FE;1105 1165 11B9;B7FE;1105 1165 11B9;
+B7FF;B7FF;1105 1165 11BA;B7FF;1105 1165 11BA;
+B800;B800;1105 1165 11BB;B800;1105 1165 11BB;
+B801;B801;1105 1165 11BC;B801;1105 1165 11BC;
+B802;B802;1105 1165 11BD;B802;1105 1165 11BD;
+B803;B803;1105 1165 11BE;B803;1105 1165 11BE;
+B804;B804;1105 1165 11BF;B804;1105 1165 11BF;
+B805;B805;1105 1165 11C0;B805;1105 1165 11C0;
+B806;B806;1105 1165 11C1;B806;1105 1165 11C1;
+B807;B807;1105 1165 11C2;B807;1105 1165 11C2;
+B808;B808;1105 1166;B808;1105 1166;
+B809;B809;1105 1166 11A8;B809;1105 1166 11A8;
+B80A;B80A;1105 1166 11A9;B80A;1105 1166 11A9;
+B80B;B80B;1105 1166 11AA;B80B;1105 1166 11AA;
+B80C;B80C;1105 1166 11AB;B80C;1105 1166 11AB;
+B80D;B80D;1105 1166 11AC;B80D;1105 1166 11AC;
+B80E;B80E;1105 1166 11AD;B80E;1105 1166 11AD;
+B80F;B80F;1105 1166 11AE;B80F;1105 1166 11AE;
+B810;B810;1105 1166 11AF;B810;1105 1166 11AF;
+B811;B811;1105 1166 11B0;B811;1105 1166 11B0;
+B812;B812;1105 1166 11B1;B812;1105 1166 11B1;
+B813;B813;1105 1166 11B2;B813;1105 1166 11B2;
+B814;B814;1105 1166 11B3;B814;1105 1166 11B3;
+B815;B815;1105 1166 11B4;B815;1105 1166 11B4;
+B816;B816;1105 1166 11B5;B816;1105 1166 11B5;
+B817;B817;1105 1166 11B6;B817;1105 1166 11B6;
+B818;B818;1105 1166 11B7;B818;1105 1166 11B7;
+B819;B819;1105 1166 11B8;B819;1105 1166 11B8;
+B81A;B81A;1105 1166 11B9;B81A;1105 1166 11B9;
+B81B;B81B;1105 1166 11BA;B81B;1105 1166 11BA;
+B81C;B81C;1105 1166 11BB;B81C;1105 1166 11BB;
+B81D;B81D;1105 1166 11BC;B81D;1105 1166 11BC;
+B81E;B81E;1105 1166 11BD;B81E;1105 1166 11BD;
+B81F;B81F;1105 1166 11BE;B81F;1105 1166 11BE;
+B820;B820;1105 1166 11BF;B820;1105 1166 11BF;
+B821;B821;1105 1166 11C0;B821;1105 1166 11C0;
+B822;B822;1105 1166 11C1;B822;1105 1166 11C1;
+B823;B823;1105 1166 11C2;B823;1105 1166 11C2;
+B824;B824;1105 1167;B824;1105 1167;
+B825;B825;1105 1167 11A8;B825;1105 1167 11A8;
+B826;B826;1105 1167 11A9;B826;1105 1167 11A9;
+B827;B827;1105 1167 11AA;B827;1105 1167 11AA;
+B828;B828;1105 1167 11AB;B828;1105 1167 11AB;
+B829;B829;1105 1167 11AC;B829;1105 1167 11AC;
+B82A;B82A;1105 1167 11AD;B82A;1105 1167 11AD;
+B82B;B82B;1105 1167 11AE;B82B;1105 1167 11AE;
+B82C;B82C;1105 1167 11AF;B82C;1105 1167 11AF;
+B82D;B82D;1105 1167 11B0;B82D;1105 1167 11B0;
+B82E;B82E;1105 1167 11B1;B82E;1105 1167 11B1;
+B82F;B82F;1105 1167 11B2;B82F;1105 1167 11B2;
+B830;B830;1105 1167 11B3;B830;1105 1167 11B3;
+B831;B831;1105 1167 11B4;B831;1105 1167 11B4;
+B832;B832;1105 1167 11B5;B832;1105 1167 11B5;
+B833;B833;1105 1167 11B6;B833;1105 1167 11B6;
+B834;B834;1105 1167 11B7;B834;1105 1167 11B7;
+B835;B835;1105 1167 11B8;B835;1105 1167 11B8;
+B836;B836;1105 1167 11B9;B836;1105 1167 11B9;
+B837;B837;1105 1167 11BA;B837;1105 1167 11BA;
+B838;B838;1105 1167 11BB;B838;1105 1167 11BB;
+B839;B839;1105 1167 11BC;B839;1105 1167 11BC;
+B83A;B83A;1105 1167 11BD;B83A;1105 1167 11BD;
+B83B;B83B;1105 1167 11BE;B83B;1105 1167 11BE;
+B83C;B83C;1105 1167 11BF;B83C;1105 1167 11BF;
+B83D;B83D;1105 1167 11C0;B83D;1105 1167 11C0;
+B83E;B83E;1105 1167 11C1;B83E;1105 1167 11C1;
+B83F;B83F;1105 1167 11C2;B83F;1105 1167 11C2;
+B840;B840;1105 1168;B840;1105 1168;
+B841;B841;1105 1168 11A8;B841;1105 1168 11A8;
+B842;B842;1105 1168 11A9;B842;1105 1168 11A9;
+B843;B843;1105 1168 11AA;B843;1105 1168 11AA;
+B844;B844;1105 1168 11AB;B844;1105 1168 11AB;
+B845;B845;1105 1168 11AC;B845;1105 1168 11AC;
+B846;B846;1105 1168 11AD;B846;1105 1168 11AD;
+B847;B847;1105 1168 11AE;B847;1105 1168 11AE;
+B848;B848;1105 1168 11AF;B848;1105 1168 11AF;
+B849;B849;1105 1168 11B0;B849;1105 1168 11B0;
+B84A;B84A;1105 1168 11B1;B84A;1105 1168 11B1;
+B84B;B84B;1105 1168 11B2;B84B;1105 1168 11B2;
+B84C;B84C;1105 1168 11B3;B84C;1105 1168 11B3;
+B84D;B84D;1105 1168 11B4;B84D;1105 1168 11B4;
+B84E;B84E;1105 1168 11B5;B84E;1105 1168 11B5;
+B84F;B84F;1105 1168 11B6;B84F;1105 1168 11B6;
+B850;B850;1105 1168 11B7;B850;1105 1168 11B7;
+B851;B851;1105 1168 11B8;B851;1105 1168 11B8;
+B852;B852;1105 1168 11B9;B852;1105 1168 11B9;
+B853;B853;1105 1168 11BA;B853;1105 1168 11BA;
+B854;B854;1105 1168 11BB;B854;1105 1168 11BB;
+B855;B855;1105 1168 11BC;B855;1105 1168 11BC;
+B856;B856;1105 1168 11BD;B856;1105 1168 11BD;
+B857;B857;1105 1168 11BE;B857;1105 1168 11BE;
+B858;B858;1105 1168 11BF;B858;1105 1168 11BF;
+B859;B859;1105 1168 11C0;B859;1105 1168 11C0;
+B85A;B85A;1105 1168 11C1;B85A;1105 1168 11C1;
+B85B;B85B;1105 1168 11C2;B85B;1105 1168 11C2;
+B85C;B85C;1105 1169;B85C;1105 1169;
+B85D;B85D;1105 1169 11A8;B85D;1105 1169 11A8;
+B85E;B85E;1105 1169 11A9;B85E;1105 1169 11A9;
+B85F;B85F;1105 1169 11AA;B85F;1105 1169 11AA;
+B860;B860;1105 1169 11AB;B860;1105 1169 11AB;
+B861;B861;1105 1169 11AC;B861;1105 1169 11AC;
+B862;B862;1105 1169 11AD;B862;1105 1169 11AD;
+B863;B863;1105 1169 11AE;B863;1105 1169 11AE;
+B864;B864;1105 1169 11AF;B864;1105 1169 11AF;
+B865;B865;1105 1169 11B0;B865;1105 1169 11B0;
+B866;B866;1105 1169 11B1;B866;1105 1169 11B1;
+B867;B867;1105 1169 11B2;B867;1105 1169 11B2;
+B868;B868;1105 1169 11B3;B868;1105 1169 11B3;
+B869;B869;1105 1169 11B4;B869;1105 1169 11B4;
+B86A;B86A;1105 1169 11B5;B86A;1105 1169 11B5;
+B86B;B86B;1105 1169 11B6;B86B;1105 1169 11B6;
+B86C;B86C;1105 1169 11B7;B86C;1105 1169 11B7;
+B86D;B86D;1105 1169 11B8;B86D;1105 1169 11B8;
+B86E;B86E;1105 1169 11B9;B86E;1105 1169 11B9;
+B86F;B86F;1105 1169 11BA;B86F;1105 1169 11BA;
+B870;B870;1105 1169 11BB;B870;1105 1169 11BB;
+B871;B871;1105 1169 11BC;B871;1105 1169 11BC;
+B872;B872;1105 1169 11BD;B872;1105 1169 11BD;
+B873;B873;1105 1169 11BE;B873;1105 1169 11BE;
+B874;B874;1105 1169 11BF;B874;1105 1169 11BF;
+B875;B875;1105 1169 11C0;B875;1105 1169 11C0;
+B876;B876;1105 1169 11C1;B876;1105 1169 11C1;
+B877;B877;1105 1169 11C2;B877;1105 1169 11C2;
+B878;B878;1105 116A;B878;1105 116A;
+B879;B879;1105 116A 11A8;B879;1105 116A 11A8;
+B87A;B87A;1105 116A 11A9;B87A;1105 116A 11A9;
+B87B;B87B;1105 116A 11AA;B87B;1105 116A 11AA;
+B87C;B87C;1105 116A 11AB;B87C;1105 116A 11AB;
+B87D;B87D;1105 116A 11AC;B87D;1105 116A 11AC;
+B87E;B87E;1105 116A 11AD;B87E;1105 116A 11AD;
+B87F;B87F;1105 116A 11AE;B87F;1105 116A 11AE;
+B880;B880;1105 116A 11AF;B880;1105 116A 11AF;
+B881;B881;1105 116A 11B0;B881;1105 116A 11B0;
+B882;B882;1105 116A 11B1;B882;1105 116A 11B1;
+B883;B883;1105 116A 11B2;B883;1105 116A 11B2;
+B884;B884;1105 116A 11B3;B884;1105 116A 11B3;
+B885;B885;1105 116A 11B4;B885;1105 116A 11B4;
+B886;B886;1105 116A 11B5;B886;1105 116A 11B5;
+B887;B887;1105 116A 11B6;B887;1105 116A 11B6;
+B888;B888;1105 116A 11B7;B888;1105 116A 11B7;
+B889;B889;1105 116A 11B8;B889;1105 116A 11B8;
+B88A;B88A;1105 116A 11B9;B88A;1105 116A 11B9;
+B88B;B88B;1105 116A 11BA;B88B;1105 116A 11BA;
+B88C;B88C;1105 116A 11BB;B88C;1105 116A 11BB;
+B88D;B88D;1105 116A 11BC;B88D;1105 116A 11BC;
+B88E;B88E;1105 116A 11BD;B88E;1105 116A 11BD;
+B88F;B88F;1105 116A 11BE;B88F;1105 116A 11BE;
+B890;B890;1105 116A 11BF;B890;1105 116A 11BF;
+B891;B891;1105 116A 11C0;B891;1105 116A 11C0;
+B892;B892;1105 116A 11C1;B892;1105 116A 11C1;
+B893;B893;1105 116A 11C2;B893;1105 116A 11C2;
+B894;B894;1105 116B;B894;1105 116B;
+B895;B895;1105 116B 11A8;B895;1105 116B 11A8;
+B896;B896;1105 116B 11A9;B896;1105 116B 11A9;
+B897;B897;1105 116B 11AA;B897;1105 116B 11AA;
+B898;B898;1105 116B 11AB;B898;1105 116B 11AB;
+B899;B899;1105 116B 11AC;B899;1105 116B 11AC;
+B89A;B89A;1105 116B 11AD;B89A;1105 116B 11AD;
+B89B;B89B;1105 116B 11AE;B89B;1105 116B 11AE;
+B89C;B89C;1105 116B 11AF;B89C;1105 116B 11AF;
+B89D;B89D;1105 116B 11B0;B89D;1105 116B 11B0;
+B89E;B89E;1105 116B 11B1;B89E;1105 116B 11B1;
+B89F;B89F;1105 116B 11B2;B89F;1105 116B 11B2;
+B8A0;B8A0;1105 116B 11B3;B8A0;1105 116B 11B3;
+B8A1;B8A1;1105 116B 11B4;B8A1;1105 116B 11B4;
+B8A2;B8A2;1105 116B 11B5;B8A2;1105 116B 11B5;
+B8A3;B8A3;1105 116B 11B6;B8A3;1105 116B 11B6;
+B8A4;B8A4;1105 116B 11B7;B8A4;1105 116B 11B7;
+B8A5;B8A5;1105 116B 11B8;B8A5;1105 116B 11B8;
+B8A6;B8A6;1105 116B 11B9;B8A6;1105 116B 11B9;
+B8A7;B8A7;1105 116B 11BA;B8A7;1105 116B 11BA;
+B8A8;B8A8;1105 116B 11BB;B8A8;1105 116B 11BB;
+B8A9;B8A9;1105 116B 11BC;B8A9;1105 116B 11BC;
+B8AA;B8AA;1105 116B 11BD;B8AA;1105 116B 11BD;
+B8AB;B8AB;1105 116B 11BE;B8AB;1105 116B 11BE;
+B8AC;B8AC;1105 116B 11BF;B8AC;1105 116B 11BF;
+B8AD;B8AD;1105 116B 11C0;B8AD;1105 116B 11C0;
+B8AE;B8AE;1105 116B 11C1;B8AE;1105 116B 11C1;
+B8AF;B8AF;1105 116B 11C2;B8AF;1105 116B 11C2;
+B8B0;B8B0;1105 116C;B8B0;1105 116C;
+B8B1;B8B1;1105 116C 11A8;B8B1;1105 116C 11A8;
+B8B2;B8B2;1105 116C 11A9;B8B2;1105 116C 11A9;
+B8B3;B8B3;1105 116C 11AA;B8B3;1105 116C 11AA;
+B8B4;B8B4;1105 116C 11AB;B8B4;1105 116C 11AB;
+B8B5;B8B5;1105 116C 11AC;B8B5;1105 116C 11AC;
+B8B6;B8B6;1105 116C 11AD;B8B6;1105 116C 11AD;
+B8B7;B8B7;1105 116C 11AE;B8B7;1105 116C 11AE;
+B8B8;B8B8;1105 116C 11AF;B8B8;1105 116C 11AF;
+B8B9;B8B9;1105 116C 11B0;B8B9;1105 116C 11B0;
+B8BA;B8BA;1105 116C 11B1;B8BA;1105 116C 11B1;
+B8BB;B8BB;1105 116C 11B2;B8BB;1105 116C 11B2;
+B8BC;B8BC;1105 116C 11B3;B8BC;1105 116C 11B3;
+B8BD;B8BD;1105 116C 11B4;B8BD;1105 116C 11B4;
+B8BE;B8BE;1105 116C 11B5;B8BE;1105 116C 11B5;
+B8BF;B8BF;1105 116C 11B6;B8BF;1105 116C 11B6;
+B8C0;B8C0;1105 116C 11B7;B8C0;1105 116C 11B7;
+B8C1;B8C1;1105 116C 11B8;B8C1;1105 116C 11B8;
+B8C2;B8C2;1105 116C 11B9;B8C2;1105 116C 11B9;
+B8C3;B8C3;1105 116C 11BA;B8C3;1105 116C 11BA;
+B8C4;B8C4;1105 116C 11BB;B8C4;1105 116C 11BB;
+B8C5;B8C5;1105 116C 11BC;B8C5;1105 116C 11BC;
+B8C6;B8C6;1105 116C 11BD;B8C6;1105 116C 11BD;
+B8C7;B8C7;1105 116C 11BE;B8C7;1105 116C 11BE;
+B8C8;B8C8;1105 116C 11BF;B8C8;1105 116C 11BF;
+B8C9;B8C9;1105 116C 11C0;B8C9;1105 116C 11C0;
+B8CA;B8CA;1105 116C 11C1;B8CA;1105 116C 11C1;
+B8CB;B8CB;1105 116C 11C2;B8CB;1105 116C 11C2;
+B8CC;B8CC;1105 116D;B8CC;1105 116D;
+B8CD;B8CD;1105 116D 11A8;B8CD;1105 116D 11A8;
+B8CE;B8CE;1105 116D 11A9;B8CE;1105 116D 11A9;
+B8CF;B8CF;1105 116D 11AA;B8CF;1105 116D 11AA;
+B8D0;B8D0;1105 116D 11AB;B8D0;1105 116D 11AB;
+B8D1;B8D1;1105 116D 11AC;B8D1;1105 116D 11AC;
+B8D2;B8D2;1105 116D 11AD;B8D2;1105 116D 11AD;
+B8D3;B8D3;1105 116D 11AE;B8D3;1105 116D 11AE;
+B8D4;B8D4;1105 116D 11AF;B8D4;1105 116D 11AF;
+B8D5;B8D5;1105 116D 11B0;B8D5;1105 116D 11B0;
+B8D6;B8D6;1105 116D 11B1;B8D6;1105 116D 11B1;
+B8D7;B8D7;1105 116D 11B2;B8D7;1105 116D 11B2;
+B8D8;B8D8;1105 116D 11B3;B8D8;1105 116D 11B3;
+B8D9;B8D9;1105 116D 11B4;B8D9;1105 116D 11B4;
+B8DA;B8DA;1105 116D 11B5;B8DA;1105 116D 11B5;
+B8DB;B8DB;1105 116D 11B6;B8DB;1105 116D 11B6;
+B8DC;B8DC;1105 116D 11B7;B8DC;1105 116D 11B7;
+B8DD;B8DD;1105 116D 11B8;B8DD;1105 116D 11B8;
+B8DE;B8DE;1105 116D 11B9;B8DE;1105 116D 11B9;
+B8DF;B8DF;1105 116D 11BA;B8DF;1105 116D 11BA;
+B8E0;B8E0;1105 116D 11BB;B8E0;1105 116D 11BB;
+B8E1;B8E1;1105 116D 11BC;B8E1;1105 116D 11BC;
+B8E2;B8E2;1105 116D 11BD;B8E2;1105 116D 11BD;
+B8E3;B8E3;1105 116D 11BE;B8E3;1105 116D 11BE;
+B8E4;B8E4;1105 116D 11BF;B8E4;1105 116D 11BF;
+B8E5;B8E5;1105 116D 11C0;B8E5;1105 116D 11C0;
+B8E6;B8E6;1105 116D 11C1;B8E6;1105 116D 11C1;
+B8E7;B8E7;1105 116D 11C2;B8E7;1105 116D 11C2;
+B8E8;B8E8;1105 116E;B8E8;1105 116E;
+B8E9;B8E9;1105 116E 11A8;B8E9;1105 116E 11A8;
+B8EA;B8EA;1105 116E 11A9;B8EA;1105 116E 11A9;
+B8EB;B8EB;1105 116E 11AA;B8EB;1105 116E 11AA;
+B8EC;B8EC;1105 116E 11AB;B8EC;1105 116E 11AB;
+B8ED;B8ED;1105 116E 11AC;B8ED;1105 116E 11AC;
+B8EE;B8EE;1105 116E 11AD;B8EE;1105 116E 11AD;
+B8EF;B8EF;1105 116E 11AE;B8EF;1105 116E 11AE;
+B8F0;B8F0;1105 116E 11AF;B8F0;1105 116E 11AF;
+B8F1;B8F1;1105 116E 11B0;B8F1;1105 116E 11B0;
+B8F2;B8F2;1105 116E 11B1;B8F2;1105 116E 11B1;
+B8F3;B8F3;1105 116E 11B2;B8F3;1105 116E 11B2;
+B8F4;B8F4;1105 116E 11B3;B8F4;1105 116E 11B3;
+B8F5;B8F5;1105 116E 11B4;B8F5;1105 116E 11B4;
+B8F6;B8F6;1105 116E 11B5;B8F6;1105 116E 11B5;
+B8F7;B8F7;1105 116E 11B6;B8F7;1105 116E 11B6;
+B8F8;B8F8;1105 116E 11B7;B8F8;1105 116E 11B7;
+B8F9;B8F9;1105 116E 11B8;B8F9;1105 116E 11B8;
+B8FA;B8FA;1105 116E 11B9;B8FA;1105 116E 11B9;
+B8FB;B8FB;1105 116E 11BA;B8FB;1105 116E 11BA;
+B8FC;B8FC;1105 116E 11BB;B8FC;1105 116E 11BB;
+B8FD;B8FD;1105 116E 11BC;B8FD;1105 116E 11BC;
+B8FE;B8FE;1105 116E 11BD;B8FE;1105 116E 11BD;
+B8FF;B8FF;1105 116E 11BE;B8FF;1105 116E 11BE;
+B900;B900;1105 116E 11BF;B900;1105 116E 11BF;
+B901;B901;1105 116E 11C0;B901;1105 116E 11C0;
+B902;B902;1105 116E 11C1;B902;1105 116E 11C1;
+B903;B903;1105 116E 11C2;B903;1105 116E 11C2;
+B904;B904;1105 116F;B904;1105 116F;
+B905;B905;1105 116F 11A8;B905;1105 116F 11A8;
+B906;B906;1105 116F 11A9;B906;1105 116F 11A9;
+B907;B907;1105 116F 11AA;B907;1105 116F 11AA;
+B908;B908;1105 116F 11AB;B908;1105 116F 11AB;
+B909;B909;1105 116F 11AC;B909;1105 116F 11AC;
+B90A;B90A;1105 116F 11AD;B90A;1105 116F 11AD;
+B90B;B90B;1105 116F 11AE;B90B;1105 116F 11AE;
+B90C;B90C;1105 116F 11AF;B90C;1105 116F 11AF;
+B90D;B90D;1105 116F 11B0;B90D;1105 116F 11B0;
+B90E;B90E;1105 116F 11B1;B90E;1105 116F 11B1;
+B90F;B90F;1105 116F 11B2;B90F;1105 116F 11B2;
+B910;B910;1105 116F 11B3;B910;1105 116F 11B3;
+B911;B911;1105 116F 11B4;B911;1105 116F 11B4;
+B912;B912;1105 116F 11B5;B912;1105 116F 11B5;
+B913;B913;1105 116F 11B6;B913;1105 116F 11B6;
+B914;B914;1105 116F 11B7;B914;1105 116F 11B7;
+B915;B915;1105 116F 11B8;B915;1105 116F 11B8;
+B916;B916;1105 116F 11B9;B916;1105 116F 11B9;
+B917;B917;1105 116F 11BA;B917;1105 116F 11BA;
+B918;B918;1105 116F 11BB;B918;1105 116F 11BB;
+B919;B919;1105 116F 11BC;B919;1105 116F 11BC;
+B91A;B91A;1105 116F 11BD;B91A;1105 116F 11BD;
+B91B;B91B;1105 116F 11BE;B91B;1105 116F 11BE;
+B91C;B91C;1105 116F 11BF;B91C;1105 116F 11BF;
+B91D;B91D;1105 116F 11C0;B91D;1105 116F 11C0;
+B91E;B91E;1105 116F 11C1;B91E;1105 116F 11C1;
+B91F;B91F;1105 116F 11C2;B91F;1105 116F 11C2;
+B920;B920;1105 1170;B920;1105 1170;
+B921;B921;1105 1170 11A8;B921;1105 1170 11A8;
+B922;B922;1105 1170 11A9;B922;1105 1170 11A9;
+B923;B923;1105 1170 11AA;B923;1105 1170 11AA;
+B924;B924;1105 1170 11AB;B924;1105 1170 11AB;
+B925;B925;1105 1170 11AC;B925;1105 1170 11AC;
+B926;B926;1105 1170 11AD;B926;1105 1170 11AD;
+B927;B927;1105 1170 11AE;B927;1105 1170 11AE;
+B928;B928;1105 1170 11AF;B928;1105 1170 11AF;
+B929;B929;1105 1170 11B0;B929;1105 1170 11B0;
+B92A;B92A;1105 1170 11B1;B92A;1105 1170 11B1;
+B92B;B92B;1105 1170 11B2;B92B;1105 1170 11B2;
+B92C;B92C;1105 1170 11B3;B92C;1105 1170 11B3;
+B92D;B92D;1105 1170 11B4;B92D;1105 1170 11B4;
+B92E;B92E;1105 1170 11B5;B92E;1105 1170 11B5;
+B92F;B92F;1105 1170 11B6;B92F;1105 1170 11B6;
+B930;B930;1105 1170 11B7;B930;1105 1170 11B7;
+B931;B931;1105 1170 11B8;B931;1105 1170 11B8;
+B932;B932;1105 1170 11B9;B932;1105 1170 11B9;
+B933;B933;1105 1170 11BA;B933;1105 1170 11BA;
+B934;B934;1105 1170 11BB;B934;1105 1170 11BB;
+B935;B935;1105 1170 11BC;B935;1105 1170 11BC;
+B936;B936;1105 1170 11BD;B936;1105 1170 11BD;
+B937;B937;1105 1170 11BE;B937;1105 1170 11BE;
+B938;B938;1105 1170 11BF;B938;1105 1170 11BF;
+B939;B939;1105 1170 11C0;B939;1105 1170 11C0;
+B93A;B93A;1105 1170 11C1;B93A;1105 1170 11C1;
+B93B;B93B;1105 1170 11C2;B93B;1105 1170 11C2;
+B93C;B93C;1105 1171;B93C;1105 1171;
+B93D;B93D;1105 1171 11A8;B93D;1105 1171 11A8;
+B93E;B93E;1105 1171 11A9;B93E;1105 1171 11A9;
+B93F;B93F;1105 1171 11AA;B93F;1105 1171 11AA;
+B940;B940;1105 1171 11AB;B940;1105 1171 11AB;
+B941;B941;1105 1171 11AC;B941;1105 1171 11AC;
+B942;B942;1105 1171 11AD;B942;1105 1171 11AD;
+B943;B943;1105 1171 11AE;B943;1105 1171 11AE;
+B944;B944;1105 1171 11AF;B944;1105 1171 11AF;
+B945;B945;1105 1171 11B0;B945;1105 1171 11B0;
+B946;B946;1105 1171 11B1;B946;1105 1171 11B1;
+B947;B947;1105 1171 11B2;B947;1105 1171 11B2;
+B948;B948;1105 1171 11B3;B948;1105 1171 11B3;
+B949;B949;1105 1171 11B4;B949;1105 1171 11B4;
+B94A;B94A;1105 1171 11B5;B94A;1105 1171 11B5;
+B94B;B94B;1105 1171 11B6;B94B;1105 1171 11B6;
+B94C;B94C;1105 1171 11B7;B94C;1105 1171 11B7;
+B94D;B94D;1105 1171 11B8;B94D;1105 1171 11B8;
+B94E;B94E;1105 1171 11B9;B94E;1105 1171 11B9;
+B94F;B94F;1105 1171 11BA;B94F;1105 1171 11BA;
+B950;B950;1105 1171 11BB;B950;1105 1171 11BB;
+B951;B951;1105 1171 11BC;B951;1105 1171 11BC;
+B952;B952;1105 1171 11BD;B952;1105 1171 11BD;
+B953;B953;1105 1171 11BE;B953;1105 1171 11BE;
+B954;B954;1105 1171 11BF;B954;1105 1171 11BF;
+B955;B955;1105 1171 11C0;B955;1105 1171 11C0;
+B956;B956;1105 1171 11C1;B956;1105 1171 11C1;
+B957;B957;1105 1171 11C2;B957;1105 1171 11C2;
+B958;B958;1105 1172;B958;1105 1172;
+B959;B959;1105 1172 11A8;B959;1105 1172 11A8;
+B95A;B95A;1105 1172 11A9;B95A;1105 1172 11A9;
+B95B;B95B;1105 1172 11AA;B95B;1105 1172 11AA;
+B95C;B95C;1105 1172 11AB;B95C;1105 1172 11AB;
+B95D;B95D;1105 1172 11AC;B95D;1105 1172 11AC;
+B95E;B95E;1105 1172 11AD;B95E;1105 1172 11AD;
+B95F;B95F;1105 1172 11AE;B95F;1105 1172 11AE;
+B960;B960;1105 1172 11AF;B960;1105 1172 11AF;
+B961;B961;1105 1172 11B0;B961;1105 1172 11B0;
+B962;B962;1105 1172 11B1;B962;1105 1172 11B1;
+B963;B963;1105 1172 11B2;B963;1105 1172 11B2;
+B964;B964;1105 1172 11B3;B964;1105 1172 11B3;
+B965;B965;1105 1172 11B4;B965;1105 1172 11B4;
+B966;B966;1105 1172 11B5;B966;1105 1172 11B5;
+B967;B967;1105 1172 11B6;B967;1105 1172 11B6;
+B968;B968;1105 1172 11B7;B968;1105 1172 11B7;
+B969;B969;1105 1172 11B8;B969;1105 1172 11B8;
+B96A;B96A;1105 1172 11B9;B96A;1105 1172 11B9;
+B96B;B96B;1105 1172 11BA;B96B;1105 1172 11BA;
+B96C;B96C;1105 1172 11BB;B96C;1105 1172 11BB;
+B96D;B96D;1105 1172 11BC;B96D;1105 1172 11BC;
+B96E;B96E;1105 1172 11BD;B96E;1105 1172 11BD;
+B96F;B96F;1105 1172 11BE;B96F;1105 1172 11BE;
+B970;B970;1105 1172 11BF;B970;1105 1172 11BF;
+B971;B971;1105 1172 11C0;B971;1105 1172 11C0;
+B972;B972;1105 1172 11C1;B972;1105 1172 11C1;
+B973;B973;1105 1172 11C2;B973;1105 1172 11C2;
+B974;B974;1105 1173;B974;1105 1173;
+B975;B975;1105 1173 11A8;B975;1105 1173 11A8;
+B976;B976;1105 1173 11A9;B976;1105 1173 11A9;
+B977;B977;1105 1173 11AA;B977;1105 1173 11AA;
+B978;B978;1105 1173 11AB;B978;1105 1173 11AB;
+B979;B979;1105 1173 11AC;B979;1105 1173 11AC;
+B97A;B97A;1105 1173 11AD;B97A;1105 1173 11AD;
+B97B;B97B;1105 1173 11AE;B97B;1105 1173 11AE;
+B97C;B97C;1105 1173 11AF;B97C;1105 1173 11AF;
+B97D;B97D;1105 1173 11B0;B97D;1105 1173 11B0;
+B97E;B97E;1105 1173 11B1;B97E;1105 1173 11B1;
+B97F;B97F;1105 1173 11B2;B97F;1105 1173 11B2;
+B980;B980;1105 1173 11B3;B980;1105 1173 11B3;
+B981;B981;1105 1173 11B4;B981;1105 1173 11B4;
+B982;B982;1105 1173 11B5;B982;1105 1173 11B5;
+B983;B983;1105 1173 11B6;B983;1105 1173 11B6;
+B984;B984;1105 1173 11B7;B984;1105 1173 11B7;
+B985;B985;1105 1173 11B8;B985;1105 1173 11B8;
+B986;B986;1105 1173 11B9;B986;1105 1173 11B9;
+B987;B987;1105 1173 11BA;B987;1105 1173 11BA;
+B988;B988;1105 1173 11BB;B988;1105 1173 11BB;
+B989;B989;1105 1173 11BC;B989;1105 1173 11BC;
+B98A;B98A;1105 1173 11BD;B98A;1105 1173 11BD;
+B98B;B98B;1105 1173 11BE;B98B;1105 1173 11BE;
+B98C;B98C;1105 1173 11BF;B98C;1105 1173 11BF;
+B98D;B98D;1105 1173 11C0;B98D;1105 1173 11C0;
+B98E;B98E;1105 1173 11C1;B98E;1105 1173 11C1;
+B98F;B98F;1105 1173 11C2;B98F;1105 1173 11C2;
+B990;B990;1105 1174;B990;1105 1174;
+B991;B991;1105 1174 11A8;B991;1105 1174 11A8;
+B992;B992;1105 1174 11A9;B992;1105 1174 11A9;
+B993;B993;1105 1174 11AA;B993;1105 1174 11AA;
+B994;B994;1105 1174 11AB;B994;1105 1174 11AB;
+B995;B995;1105 1174 11AC;B995;1105 1174 11AC;
+B996;B996;1105 1174 11AD;B996;1105 1174 11AD;
+B997;B997;1105 1174 11AE;B997;1105 1174 11AE;
+B998;B998;1105 1174 11AF;B998;1105 1174 11AF;
+B999;B999;1105 1174 11B0;B999;1105 1174 11B0;
+B99A;B99A;1105 1174 11B1;B99A;1105 1174 11B1;
+B99B;B99B;1105 1174 11B2;B99B;1105 1174 11B2;
+B99C;B99C;1105 1174 11B3;B99C;1105 1174 11B3;
+B99D;B99D;1105 1174 11B4;B99D;1105 1174 11B4;
+B99E;B99E;1105 1174 11B5;B99E;1105 1174 11B5;
+B99F;B99F;1105 1174 11B6;B99F;1105 1174 11B6;
+B9A0;B9A0;1105 1174 11B7;B9A0;1105 1174 11B7;
+B9A1;B9A1;1105 1174 11B8;B9A1;1105 1174 11B8;
+B9A2;B9A2;1105 1174 11B9;B9A2;1105 1174 11B9;
+B9A3;B9A3;1105 1174 11BA;B9A3;1105 1174 11BA;
+B9A4;B9A4;1105 1174 11BB;B9A4;1105 1174 11BB;
+B9A5;B9A5;1105 1174 11BC;B9A5;1105 1174 11BC;
+B9A6;B9A6;1105 1174 11BD;B9A6;1105 1174 11BD;
+B9A7;B9A7;1105 1174 11BE;B9A7;1105 1174 11BE;
+B9A8;B9A8;1105 1174 11BF;B9A8;1105 1174 11BF;
+B9A9;B9A9;1105 1174 11C0;B9A9;1105 1174 11C0;
+B9AA;B9AA;1105 1174 11C1;B9AA;1105 1174 11C1;
+B9AB;B9AB;1105 1174 11C2;B9AB;1105 1174 11C2;
+B9AC;B9AC;1105 1175;B9AC;1105 1175;
+B9AD;B9AD;1105 1175 11A8;B9AD;1105 1175 11A8;
+B9AE;B9AE;1105 1175 11A9;B9AE;1105 1175 11A9;
+B9AF;B9AF;1105 1175 11AA;B9AF;1105 1175 11AA;
+B9B0;B9B0;1105 1175 11AB;B9B0;1105 1175 11AB;
+B9B1;B9B1;1105 1175 11AC;B9B1;1105 1175 11AC;
+B9B2;B9B2;1105 1175 11AD;B9B2;1105 1175 11AD;
+B9B3;B9B3;1105 1175 11AE;B9B3;1105 1175 11AE;
+B9B4;B9B4;1105 1175 11AF;B9B4;1105 1175 11AF;
+B9B5;B9B5;1105 1175 11B0;B9B5;1105 1175 11B0;
+B9B6;B9B6;1105 1175 11B1;B9B6;1105 1175 11B1;
+B9B7;B9B7;1105 1175 11B2;B9B7;1105 1175 11B2;
+B9B8;B9B8;1105 1175 11B3;B9B8;1105 1175 11B3;
+B9B9;B9B9;1105 1175 11B4;B9B9;1105 1175 11B4;
+B9BA;B9BA;1105 1175 11B5;B9BA;1105 1175 11B5;
+B9BB;B9BB;1105 1175 11B6;B9BB;1105 1175 11B6;
+B9BC;B9BC;1105 1175 11B7;B9BC;1105 1175 11B7;
+B9BD;B9BD;1105 1175 11B8;B9BD;1105 1175 11B8;
+B9BE;B9BE;1105 1175 11B9;B9BE;1105 1175 11B9;
+B9BF;B9BF;1105 1175 11BA;B9BF;1105 1175 11BA;
+B9C0;B9C0;1105 1175 11BB;B9C0;1105 1175 11BB;
+B9C1;B9C1;1105 1175 11BC;B9C1;1105 1175 11BC;
+B9C2;B9C2;1105 1175 11BD;B9C2;1105 1175 11BD;
+B9C3;B9C3;1105 1175 11BE;B9C3;1105 1175 11BE;
+B9C4;B9C4;1105 1175 11BF;B9C4;1105 1175 11BF;
+B9C5;B9C5;1105 1175 11C0;B9C5;1105 1175 11C0;
+B9C6;B9C6;1105 1175 11C1;B9C6;1105 1175 11C1;
+B9C7;B9C7;1105 1175 11C2;B9C7;1105 1175 11C2;
+B9C8;B9C8;1106 1161;B9C8;1106 1161;
+B9C9;B9C9;1106 1161 11A8;B9C9;1106 1161 11A8;
+B9CA;B9CA;1106 1161 11A9;B9CA;1106 1161 11A9;
+B9CB;B9CB;1106 1161 11AA;B9CB;1106 1161 11AA;
+B9CC;B9CC;1106 1161 11AB;B9CC;1106 1161 11AB;
+B9CD;B9CD;1106 1161 11AC;B9CD;1106 1161 11AC;
+B9CE;B9CE;1106 1161 11AD;B9CE;1106 1161 11AD;
+B9CF;B9CF;1106 1161 11AE;B9CF;1106 1161 11AE;
+B9D0;B9D0;1106 1161 11AF;B9D0;1106 1161 11AF;
+B9D1;B9D1;1106 1161 11B0;B9D1;1106 1161 11B0;
+B9D2;B9D2;1106 1161 11B1;B9D2;1106 1161 11B1;
+B9D3;B9D3;1106 1161 11B2;B9D3;1106 1161 11B2;
+B9D4;B9D4;1106 1161 11B3;B9D4;1106 1161 11B3;
+B9D5;B9D5;1106 1161 11B4;B9D5;1106 1161 11B4;
+B9D6;B9D6;1106 1161 11B5;B9D6;1106 1161 11B5;
+B9D7;B9D7;1106 1161 11B6;B9D7;1106 1161 11B6;
+B9D8;B9D8;1106 1161 11B7;B9D8;1106 1161 11B7;
+B9D9;B9D9;1106 1161 11B8;B9D9;1106 1161 11B8;
+B9DA;B9DA;1106 1161 11B9;B9DA;1106 1161 11B9;
+B9DB;B9DB;1106 1161 11BA;B9DB;1106 1161 11BA;
+B9DC;B9DC;1106 1161 11BB;B9DC;1106 1161 11BB;
+B9DD;B9DD;1106 1161 11BC;B9DD;1106 1161 11BC;
+B9DE;B9DE;1106 1161 11BD;B9DE;1106 1161 11BD;
+B9DF;B9DF;1106 1161 11BE;B9DF;1106 1161 11BE;
+B9E0;B9E0;1106 1161 11BF;B9E0;1106 1161 11BF;
+B9E1;B9E1;1106 1161 11C0;B9E1;1106 1161 11C0;
+B9E2;B9E2;1106 1161 11C1;B9E2;1106 1161 11C1;
+B9E3;B9E3;1106 1161 11C2;B9E3;1106 1161 11C2;
+B9E4;B9E4;1106 1162;B9E4;1106 1162;
+B9E5;B9E5;1106 1162 11A8;B9E5;1106 1162 11A8;
+B9E6;B9E6;1106 1162 11A9;B9E6;1106 1162 11A9;
+B9E7;B9E7;1106 1162 11AA;B9E7;1106 1162 11AA;
+B9E8;B9E8;1106 1162 11AB;B9E8;1106 1162 11AB;
+B9E9;B9E9;1106 1162 11AC;B9E9;1106 1162 11AC;
+B9EA;B9EA;1106 1162 11AD;B9EA;1106 1162 11AD;
+B9EB;B9EB;1106 1162 11AE;B9EB;1106 1162 11AE;
+B9EC;B9EC;1106 1162 11AF;B9EC;1106 1162 11AF;
+B9ED;B9ED;1106 1162 11B0;B9ED;1106 1162 11B0;
+B9EE;B9EE;1106 1162 11B1;B9EE;1106 1162 11B1;
+B9EF;B9EF;1106 1162 11B2;B9EF;1106 1162 11B2;
+B9F0;B9F0;1106 1162 11B3;B9F0;1106 1162 11B3;
+B9F1;B9F1;1106 1162 11B4;B9F1;1106 1162 11B4;
+B9F2;B9F2;1106 1162 11B5;B9F2;1106 1162 11B5;
+B9F3;B9F3;1106 1162 11B6;B9F3;1106 1162 11B6;
+B9F4;B9F4;1106 1162 11B7;B9F4;1106 1162 11B7;
+B9F5;B9F5;1106 1162 11B8;B9F5;1106 1162 11B8;
+B9F6;B9F6;1106 1162 11B9;B9F6;1106 1162 11B9;
+B9F7;B9F7;1106 1162 11BA;B9F7;1106 1162 11BA;
+B9F8;B9F8;1106 1162 11BB;B9F8;1106 1162 11BB;
+B9F9;B9F9;1106 1162 11BC;B9F9;1106 1162 11BC;
+B9FA;B9FA;1106 1162 11BD;B9FA;1106 1162 11BD;
+B9FB;B9FB;1106 1162 11BE;B9FB;1106 1162 11BE;
+B9FC;B9FC;1106 1162 11BF;B9FC;1106 1162 11BF;
+B9FD;B9FD;1106 1162 11C0;B9FD;1106 1162 11C0;
+B9FE;B9FE;1106 1162 11C1;B9FE;1106 1162 11C1;
+B9FF;B9FF;1106 1162 11C2;B9FF;1106 1162 11C2;
+BA00;BA00;1106 1163;BA00;1106 1163;
+BA01;BA01;1106 1163 11A8;BA01;1106 1163 11A8;
+BA02;BA02;1106 1163 11A9;BA02;1106 1163 11A9;
+BA03;BA03;1106 1163 11AA;BA03;1106 1163 11AA;
+BA04;BA04;1106 1163 11AB;BA04;1106 1163 11AB;
+BA05;BA05;1106 1163 11AC;BA05;1106 1163 11AC;
+BA06;BA06;1106 1163 11AD;BA06;1106 1163 11AD;
+BA07;BA07;1106 1163 11AE;BA07;1106 1163 11AE;
+BA08;BA08;1106 1163 11AF;BA08;1106 1163 11AF;
+BA09;BA09;1106 1163 11B0;BA09;1106 1163 11B0;
+BA0A;BA0A;1106 1163 11B1;BA0A;1106 1163 11B1;
+BA0B;BA0B;1106 1163 11B2;BA0B;1106 1163 11B2;
+BA0C;BA0C;1106 1163 11B3;BA0C;1106 1163 11B3;
+BA0D;BA0D;1106 1163 11B4;BA0D;1106 1163 11B4;
+BA0E;BA0E;1106 1163 11B5;BA0E;1106 1163 11B5;
+BA0F;BA0F;1106 1163 11B6;BA0F;1106 1163 11B6;
+BA10;BA10;1106 1163 11B7;BA10;1106 1163 11B7;
+BA11;BA11;1106 1163 11B8;BA11;1106 1163 11B8;
+BA12;BA12;1106 1163 11B9;BA12;1106 1163 11B9;
+BA13;BA13;1106 1163 11BA;BA13;1106 1163 11BA;
+BA14;BA14;1106 1163 11BB;BA14;1106 1163 11BB;
+BA15;BA15;1106 1163 11BC;BA15;1106 1163 11BC;
+BA16;BA16;1106 1163 11BD;BA16;1106 1163 11BD;
+BA17;BA17;1106 1163 11BE;BA17;1106 1163 11BE;
+BA18;BA18;1106 1163 11BF;BA18;1106 1163 11BF;
+BA19;BA19;1106 1163 11C0;BA19;1106 1163 11C0;
+BA1A;BA1A;1106 1163 11C1;BA1A;1106 1163 11C1;
+BA1B;BA1B;1106 1163 11C2;BA1B;1106 1163 11C2;
+BA1C;BA1C;1106 1164;BA1C;1106 1164;
+BA1D;BA1D;1106 1164 11A8;BA1D;1106 1164 11A8;
+BA1E;BA1E;1106 1164 11A9;BA1E;1106 1164 11A9;
+BA1F;BA1F;1106 1164 11AA;BA1F;1106 1164 11AA;
+BA20;BA20;1106 1164 11AB;BA20;1106 1164 11AB;
+BA21;BA21;1106 1164 11AC;BA21;1106 1164 11AC;
+BA22;BA22;1106 1164 11AD;BA22;1106 1164 11AD;
+BA23;BA23;1106 1164 11AE;BA23;1106 1164 11AE;
+BA24;BA24;1106 1164 11AF;BA24;1106 1164 11AF;
+BA25;BA25;1106 1164 11B0;BA25;1106 1164 11B0;
+BA26;BA26;1106 1164 11B1;BA26;1106 1164 11B1;
+BA27;BA27;1106 1164 11B2;BA27;1106 1164 11B2;
+BA28;BA28;1106 1164 11B3;BA28;1106 1164 11B3;
+BA29;BA29;1106 1164 11B4;BA29;1106 1164 11B4;
+BA2A;BA2A;1106 1164 11B5;BA2A;1106 1164 11B5;
+BA2B;BA2B;1106 1164 11B6;BA2B;1106 1164 11B6;
+BA2C;BA2C;1106 1164 11B7;BA2C;1106 1164 11B7;
+BA2D;BA2D;1106 1164 11B8;BA2D;1106 1164 11B8;
+BA2E;BA2E;1106 1164 11B9;BA2E;1106 1164 11B9;
+BA2F;BA2F;1106 1164 11BA;BA2F;1106 1164 11BA;
+BA30;BA30;1106 1164 11BB;BA30;1106 1164 11BB;
+BA31;BA31;1106 1164 11BC;BA31;1106 1164 11BC;
+BA32;BA32;1106 1164 11BD;BA32;1106 1164 11BD;
+BA33;BA33;1106 1164 11BE;BA33;1106 1164 11BE;
+BA34;BA34;1106 1164 11BF;BA34;1106 1164 11BF;
+BA35;BA35;1106 1164 11C0;BA35;1106 1164 11C0;
+BA36;BA36;1106 1164 11C1;BA36;1106 1164 11C1;
+BA37;BA37;1106 1164 11C2;BA37;1106 1164 11C2;
+BA38;BA38;1106 1165;BA38;1106 1165;
+BA39;BA39;1106 1165 11A8;BA39;1106 1165 11A8;
+BA3A;BA3A;1106 1165 11A9;BA3A;1106 1165 11A9;
+BA3B;BA3B;1106 1165 11AA;BA3B;1106 1165 11AA;
+BA3C;BA3C;1106 1165 11AB;BA3C;1106 1165 11AB;
+BA3D;BA3D;1106 1165 11AC;BA3D;1106 1165 11AC;
+BA3E;BA3E;1106 1165 11AD;BA3E;1106 1165 11AD;
+BA3F;BA3F;1106 1165 11AE;BA3F;1106 1165 11AE;
+BA40;BA40;1106 1165 11AF;BA40;1106 1165 11AF;
+BA41;BA41;1106 1165 11B0;BA41;1106 1165 11B0;
+BA42;BA42;1106 1165 11B1;BA42;1106 1165 11B1;
+BA43;BA43;1106 1165 11B2;BA43;1106 1165 11B2;
+BA44;BA44;1106 1165 11B3;BA44;1106 1165 11B3;
+BA45;BA45;1106 1165 11B4;BA45;1106 1165 11B4;
+BA46;BA46;1106 1165 11B5;BA46;1106 1165 11B5;
+BA47;BA47;1106 1165 11B6;BA47;1106 1165 11B6;
+BA48;BA48;1106 1165 11B7;BA48;1106 1165 11B7;
+BA49;BA49;1106 1165 11B8;BA49;1106 1165 11B8;
+BA4A;BA4A;1106 1165 11B9;BA4A;1106 1165 11B9;
+BA4B;BA4B;1106 1165 11BA;BA4B;1106 1165 11BA;
+BA4C;BA4C;1106 1165 11BB;BA4C;1106 1165 11BB;
+BA4D;BA4D;1106 1165 11BC;BA4D;1106 1165 11BC;
+BA4E;BA4E;1106 1165 11BD;BA4E;1106 1165 11BD;
+BA4F;BA4F;1106 1165 11BE;BA4F;1106 1165 11BE;
+BA50;BA50;1106 1165 11BF;BA50;1106 1165 11BF;
+BA51;BA51;1106 1165 11C0;BA51;1106 1165 11C0;
+BA52;BA52;1106 1165 11C1;BA52;1106 1165 11C1;
+BA53;BA53;1106 1165 11C2;BA53;1106 1165 11C2;
+BA54;BA54;1106 1166;BA54;1106 1166;
+BA55;BA55;1106 1166 11A8;BA55;1106 1166 11A8;
+BA56;BA56;1106 1166 11A9;BA56;1106 1166 11A9;
+BA57;BA57;1106 1166 11AA;BA57;1106 1166 11AA;
+BA58;BA58;1106 1166 11AB;BA58;1106 1166 11AB;
+BA59;BA59;1106 1166 11AC;BA59;1106 1166 11AC;
+BA5A;BA5A;1106 1166 11AD;BA5A;1106 1166 11AD;
+BA5B;BA5B;1106 1166 11AE;BA5B;1106 1166 11AE;
+BA5C;BA5C;1106 1166 11AF;BA5C;1106 1166 11AF;
+BA5D;BA5D;1106 1166 11B0;BA5D;1106 1166 11B0;
+BA5E;BA5E;1106 1166 11B1;BA5E;1106 1166 11B1;
+BA5F;BA5F;1106 1166 11B2;BA5F;1106 1166 11B2;
+BA60;BA60;1106 1166 11B3;BA60;1106 1166 11B3;
+BA61;BA61;1106 1166 11B4;BA61;1106 1166 11B4;
+BA62;BA62;1106 1166 11B5;BA62;1106 1166 11B5;
+BA63;BA63;1106 1166 11B6;BA63;1106 1166 11B6;
+BA64;BA64;1106 1166 11B7;BA64;1106 1166 11B7;
+BA65;BA65;1106 1166 11B8;BA65;1106 1166 11B8;
+BA66;BA66;1106 1166 11B9;BA66;1106 1166 11B9;
+BA67;BA67;1106 1166 11BA;BA67;1106 1166 11BA;
+BA68;BA68;1106 1166 11BB;BA68;1106 1166 11BB;
+BA69;BA69;1106 1166 11BC;BA69;1106 1166 11BC;
+BA6A;BA6A;1106 1166 11BD;BA6A;1106 1166 11BD;
+BA6B;BA6B;1106 1166 11BE;BA6B;1106 1166 11BE;
+BA6C;BA6C;1106 1166 11BF;BA6C;1106 1166 11BF;
+BA6D;BA6D;1106 1166 11C0;BA6D;1106 1166 11C0;
+BA6E;BA6E;1106 1166 11C1;BA6E;1106 1166 11C1;
+BA6F;BA6F;1106 1166 11C2;BA6F;1106 1166 11C2;
+BA70;BA70;1106 1167;BA70;1106 1167;
+BA71;BA71;1106 1167 11A8;BA71;1106 1167 11A8;
+BA72;BA72;1106 1167 11A9;BA72;1106 1167 11A9;
+BA73;BA73;1106 1167 11AA;BA73;1106 1167 11AA;
+BA74;BA74;1106 1167 11AB;BA74;1106 1167 11AB;
+BA75;BA75;1106 1167 11AC;BA75;1106 1167 11AC;
+BA76;BA76;1106 1167 11AD;BA76;1106 1167 11AD;
+BA77;BA77;1106 1167 11AE;BA77;1106 1167 11AE;
+BA78;BA78;1106 1167 11AF;BA78;1106 1167 11AF;
+BA79;BA79;1106 1167 11B0;BA79;1106 1167 11B0;
+BA7A;BA7A;1106 1167 11B1;BA7A;1106 1167 11B1;
+BA7B;BA7B;1106 1167 11B2;BA7B;1106 1167 11B2;
+BA7C;BA7C;1106 1167 11B3;BA7C;1106 1167 11B3;
+BA7D;BA7D;1106 1167 11B4;BA7D;1106 1167 11B4;
+BA7E;BA7E;1106 1167 11B5;BA7E;1106 1167 11B5;
+BA7F;BA7F;1106 1167 11B6;BA7F;1106 1167 11B6;
+BA80;BA80;1106 1167 11B7;BA80;1106 1167 11B7;
+BA81;BA81;1106 1167 11B8;BA81;1106 1167 11B8;
+BA82;BA82;1106 1167 11B9;BA82;1106 1167 11B9;
+BA83;BA83;1106 1167 11BA;BA83;1106 1167 11BA;
+BA84;BA84;1106 1167 11BB;BA84;1106 1167 11BB;
+BA85;BA85;1106 1167 11BC;BA85;1106 1167 11BC;
+BA86;BA86;1106 1167 11BD;BA86;1106 1167 11BD;
+BA87;BA87;1106 1167 11BE;BA87;1106 1167 11BE;
+BA88;BA88;1106 1167 11BF;BA88;1106 1167 11BF;
+BA89;BA89;1106 1167 11C0;BA89;1106 1167 11C0;
+BA8A;BA8A;1106 1167 11C1;BA8A;1106 1167 11C1;
+BA8B;BA8B;1106 1167 11C2;BA8B;1106 1167 11C2;
+BA8C;BA8C;1106 1168;BA8C;1106 1168;
+BA8D;BA8D;1106 1168 11A8;BA8D;1106 1168 11A8;
+BA8E;BA8E;1106 1168 11A9;BA8E;1106 1168 11A9;
+BA8F;BA8F;1106 1168 11AA;BA8F;1106 1168 11AA;
+BA90;BA90;1106 1168 11AB;BA90;1106 1168 11AB;
+BA91;BA91;1106 1168 11AC;BA91;1106 1168 11AC;
+BA92;BA92;1106 1168 11AD;BA92;1106 1168 11AD;
+BA93;BA93;1106 1168 11AE;BA93;1106 1168 11AE;
+BA94;BA94;1106 1168 11AF;BA94;1106 1168 11AF;
+BA95;BA95;1106 1168 11B0;BA95;1106 1168 11B0;
+BA96;BA96;1106 1168 11B1;BA96;1106 1168 11B1;
+BA97;BA97;1106 1168 11B2;BA97;1106 1168 11B2;
+BA98;BA98;1106 1168 11B3;BA98;1106 1168 11B3;
+BA99;BA99;1106 1168 11B4;BA99;1106 1168 11B4;
+BA9A;BA9A;1106 1168 11B5;BA9A;1106 1168 11B5;
+BA9B;BA9B;1106 1168 11B6;BA9B;1106 1168 11B6;
+BA9C;BA9C;1106 1168 11B7;BA9C;1106 1168 11B7;
+BA9D;BA9D;1106 1168 11B8;BA9D;1106 1168 11B8;
+BA9E;BA9E;1106 1168 11B9;BA9E;1106 1168 11B9;
+BA9F;BA9F;1106 1168 11BA;BA9F;1106 1168 11BA;
+BAA0;BAA0;1106 1168 11BB;BAA0;1106 1168 11BB;
+BAA1;BAA1;1106 1168 11BC;BAA1;1106 1168 11BC;
+BAA2;BAA2;1106 1168 11BD;BAA2;1106 1168 11BD;
+BAA3;BAA3;1106 1168 11BE;BAA3;1106 1168 11BE;
+BAA4;BAA4;1106 1168 11BF;BAA4;1106 1168 11BF;
+BAA5;BAA5;1106 1168 11C0;BAA5;1106 1168 11C0;
+BAA6;BAA6;1106 1168 11C1;BAA6;1106 1168 11C1;
+BAA7;BAA7;1106 1168 11C2;BAA7;1106 1168 11C2;
+BAA8;BAA8;1106 1169;BAA8;1106 1169;
+BAA9;BAA9;1106 1169 11A8;BAA9;1106 1169 11A8;
+BAAA;BAAA;1106 1169 11A9;BAAA;1106 1169 11A9;
+BAAB;BAAB;1106 1169 11AA;BAAB;1106 1169 11AA;
+BAAC;BAAC;1106 1169 11AB;BAAC;1106 1169 11AB;
+BAAD;BAAD;1106 1169 11AC;BAAD;1106 1169 11AC;
+BAAE;BAAE;1106 1169 11AD;BAAE;1106 1169 11AD;
+BAAF;BAAF;1106 1169 11AE;BAAF;1106 1169 11AE;
+BAB0;BAB0;1106 1169 11AF;BAB0;1106 1169 11AF;
+BAB1;BAB1;1106 1169 11B0;BAB1;1106 1169 11B0;
+BAB2;BAB2;1106 1169 11B1;BAB2;1106 1169 11B1;
+BAB3;BAB3;1106 1169 11B2;BAB3;1106 1169 11B2;
+BAB4;BAB4;1106 1169 11B3;BAB4;1106 1169 11B3;
+BAB5;BAB5;1106 1169 11B4;BAB5;1106 1169 11B4;
+BAB6;BAB6;1106 1169 11B5;BAB6;1106 1169 11B5;
+BAB7;BAB7;1106 1169 11B6;BAB7;1106 1169 11B6;
+BAB8;BAB8;1106 1169 11B7;BAB8;1106 1169 11B7;
+BAB9;BAB9;1106 1169 11B8;BAB9;1106 1169 11B8;
+BABA;BABA;1106 1169 11B9;BABA;1106 1169 11B9;
+BABB;BABB;1106 1169 11BA;BABB;1106 1169 11BA;
+BABC;BABC;1106 1169 11BB;BABC;1106 1169 11BB;
+BABD;BABD;1106 1169 11BC;BABD;1106 1169 11BC;
+BABE;BABE;1106 1169 11BD;BABE;1106 1169 11BD;
+BABF;BABF;1106 1169 11BE;BABF;1106 1169 11BE;
+BAC0;BAC0;1106 1169 11BF;BAC0;1106 1169 11BF;
+BAC1;BAC1;1106 1169 11C0;BAC1;1106 1169 11C0;
+BAC2;BAC2;1106 1169 11C1;BAC2;1106 1169 11C1;
+BAC3;BAC3;1106 1169 11C2;BAC3;1106 1169 11C2;
+BAC4;BAC4;1106 116A;BAC4;1106 116A;
+BAC5;BAC5;1106 116A 11A8;BAC5;1106 116A 11A8;
+BAC6;BAC6;1106 116A 11A9;BAC6;1106 116A 11A9;
+BAC7;BAC7;1106 116A 11AA;BAC7;1106 116A 11AA;
+BAC8;BAC8;1106 116A 11AB;BAC8;1106 116A 11AB;
+BAC9;BAC9;1106 116A 11AC;BAC9;1106 116A 11AC;
+BACA;BACA;1106 116A 11AD;BACA;1106 116A 11AD;
+BACB;BACB;1106 116A 11AE;BACB;1106 116A 11AE;
+BACC;BACC;1106 116A 11AF;BACC;1106 116A 11AF;
+BACD;BACD;1106 116A 11B0;BACD;1106 116A 11B0;
+BACE;BACE;1106 116A 11B1;BACE;1106 116A 11B1;
+BACF;BACF;1106 116A 11B2;BACF;1106 116A 11B2;
+BAD0;BAD0;1106 116A 11B3;BAD0;1106 116A 11B3;
+BAD1;BAD1;1106 116A 11B4;BAD1;1106 116A 11B4;
+BAD2;BAD2;1106 116A 11B5;BAD2;1106 116A 11B5;
+BAD3;BAD3;1106 116A 11B6;BAD3;1106 116A 11B6;
+BAD4;BAD4;1106 116A 11B7;BAD4;1106 116A 11B7;
+BAD5;BAD5;1106 116A 11B8;BAD5;1106 116A 11B8;
+BAD6;BAD6;1106 116A 11B9;BAD6;1106 116A 11B9;
+BAD7;BAD7;1106 116A 11BA;BAD7;1106 116A 11BA;
+BAD8;BAD8;1106 116A 11BB;BAD8;1106 116A 11BB;
+BAD9;BAD9;1106 116A 11BC;BAD9;1106 116A 11BC;
+BADA;BADA;1106 116A 11BD;BADA;1106 116A 11BD;
+BADB;BADB;1106 116A 11BE;BADB;1106 116A 11BE;
+BADC;BADC;1106 116A 11BF;BADC;1106 116A 11BF;
+BADD;BADD;1106 116A 11C0;BADD;1106 116A 11C0;
+BADE;BADE;1106 116A 11C1;BADE;1106 116A 11C1;
+BADF;BADF;1106 116A 11C2;BADF;1106 116A 11C2;
+BAE0;BAE0;1106 116B;BAE0;1106 116B;
+BAE1;BAE1;1106 116B 11A8;BAE1;1106 116B 11A8;
+BAE2;BAE2;1106 116B 11A9;BAE2;1106 116B 11A9;
+BAE3;BAE3;1106 116B 11AA;BAE3;1106 116B 11AA;
+BAE4;BAE4;1106 116B 11AB;BAE4;1106 116B 11AB;
+BAE5;BAE5;1106 116B 11AC;BAE5;1106 116B 11AC;
+BAE6;BAE6;1106 116B 11AD;BAE6;1106 116B 11AD;
+BAE7;BAE7;1106 116B 11AE;BAE7;1106 116B 11AE;
+BAE8;BAE8;1106 116B 11AF;BAE8;1106 116B 11AF;
+BAE9;BAE9;1106 116B 11B0;BAE9;1106 116B 11B0;
+BAEA;BAEA;1106 116B 11B1;BAEA;1106 116B 11B1;
+BAEB;BAEB;1106 116B 11B2;BAEB;1106 116B 11B2;
+BAEC;BAEC;1106 116B 11B3;BAEC;1106 116B 11B3;
+BAED;BAED;1106 116B 11B4;BAED;1106 116B 11B4;
+BAEE;BAEE;1106 116B 11B5;BAEE;1106 116B 11B5;
+BAEF;BAEF;1106 116B 11B6;BAEF;1106 116B 11B6;
+BAF0;BAF0;1106 116B 11B7;BAF0;1106 116B 11B7;
+BAF1;BAF1;1106 116B 11B8;BAF1;1106 116B 11B8;
+BAF2;BAF2;1106 116B 11B9;BAF2;1106 116B 11B9;
+BAF3;BAF3;1106 116B 11BA;BAF3;1106 116B 11BA;
+BAF4;BAF4;1106 116B 11BB;BAF4;1106 116B 11BB;
+BAF5;BAF5;1106 116B 11BC;BAF5;1106 116B 11BC;
+BAF6;BAF6;1106 116B 11BD;BAF6;1106 116B 11BD;
+BAF7;BAF7;1106 116B 11BE;BAF7;1106 116B 11BE;
+BAF8;BAF8;1106 116B 11BF;BAF8;1106 116B 11BF;
+BAF9;BAF9;1106 116B 11C0;BAF9;1106 116B 11C0;
+BAFA;BAFA;1106 116B 11C1;BAFA;1106 116B 11C1;
+BAFB;BAFB;1106 116B 11C2;BAFB;1106 116B 11C2;
+BAFC;BAFC;1106 116C;BAFC;1106 116C;
+BAFD;BAFD;1106 116C 11A8;BAFD;1106 116C 11A8;
+BAFE;BAFE;1106 116C 11A9;BAFE;1106 116C 11A9;
+BAFF;BAFF;1106 116C 11AA;BAFF;1106 116C 11AA;
+BB00;BB00;1106 116C 11AB;BB00;1106 116C 11AB;
+BB01;BB01;1106 116C 11AC;BB01;1106 116C 11AC;
+BB02;BB02;1106 116C 11AD;BB02;1106 116C 11AD;
+BB03;BB03;1106 116C 11AE;BB03;1106 116C 11AE;
+BB04;BB04;1106 116C 11AF;BB04;1106 116C 11AF;
+BB05;BB05;1106 116C 11B0;BB05;1106 116C 11B0;
+BB06;BB06;1106 116C 11B1;BB06;1106 116C 11B1;
+BB07;BB07;1106 116C 11B2;BB07;1106 116C 11B2;
+BB08;BB08;1106 116C 11B3;BB08;1106 116C 11B3;
+BB09;BB09;1106 116C 11B4;BB09;1106 116C 11B4;
+BB0A;BB0A;1106 116C 11B5;BB0A;1106 116C 11B5;
+BB0B;BB0B;1106 116C 11B6;BB0B;1106 116C 11B6;
+BB0C;BB0C;1106 116C 11B7;BB0C;1106 116C 11B7;
+BB0D;BB0D;1106 116C 11B8;BB0D;1106 116C 11B8;
+BB0E;BB0E;1106 116C 11B9;BB0E;1106 116C 11B9;
+BB0F;BB0F;1106 116C 11BA;BB0F;1106 116C 11BA;
+BB10;BB10;1106 116C 11BB;BB10;1106 116C 11BB;
+BB11;BB11;1106 116C 11BC;BB11;1106 116C 11BC;
+BB12;BB12;1106 116C 11BD;BB12;1106 116C 11BD;
+BB13;BB13;1106 116C 11BE;BB13;1106 116C 11BE;
+BB14;BB14;1106 116C 11BF;BB14;1106 116C 11BF;
+BB15;BB15;1106 116C 11C0;BB15;1106 116C 11C0;
+BB16;BB16;1106 116C 11C1;BB16;1106 116C 11C1;
+BB17;BB17;1106 116C 11C2;BB17;1106 116C 11C2;
+BB18;BB18;1106 116D;BB18;1106 116D;
+BB19;BB19;1106 116D 11A8;BB19;1106 116D 11A8;
+BB1A;BB1A;1106 116D 11A9;BB1A;1106 116D 11A9;
+BB1B;BB1B;1106 116D 11AA;BB1B;1106 116D 11AA;
+BB1C;BB1C;1106 116D 11AB;BB1C;1106 116D 11AB;
+BB1D;BB1D;1106 116D 11AC;BB1D;1106 116D 11AC;
+BB1E;BB1E;1106 116D 11AD;BB1E;1106 116D 11AD;
+BB1F;BB1F;1106 116D 11AE;BB1F;1106 116D 11AE;
+BB20;BB20;1106 116D 11AF;BB20;1106 116D 11AF;
+BB21;BB21;1106 116D 11B0;BB21;1106 116D 11B0;
+BB22;BB22;1106 116D 11B1;BB22;1106 116D 11B1;
+BB23;BB23;1106 116D 11B2;BB23;1106 116D 11B2;
+BB24;BB24;1106 116D 11B3;BB24;1106 116D 11B3;
+BB25;BB25;1106 116D 11B4;BB25;1106 116D 11B4;
+BB26;BB26;1106 116D 11B5;BB26;1106 116D 11B5;
+BB27;BB27;1106 116D 11B6;BB27;1106 116D 11B6;
+BB28;BB28;1106 116D 11B7;BB28;1106 116D 11B7;
+BB29;BB29;1106 116D 11B8;BB29;1106 116D 11B8;
+BB2A;BB2A;1106 116D 11B9;BB2A;1106 116D 11B9;
+BB2B;BB2B;1106 116D 11BA;BB2B;1106 116D 11BA;
+BB2C;BB2C;1106 116D 11BB;BB2C;1106 116D 11BB;
+BB2D;BB2D;1106 116D 11BC;BB2D;1106 116D 11BC;
+BB2E;BB2E;1106 116D 11BD;BB2E;1106 116D 11BD;
+BB2F;BB2F;1106 116D 11BE;BB2F;1106 116D 11BE;
+BB30;BB30;1106 116D 11BF;BB30;1106 116D 11BF;
+BB31;BB31;1106 116D 11C0;BB31;1106 116D 11C0;
+BB32;BB32;1106 116D 11C1;BB32;1106 116D 11C1;
+BB33;BB33;1106 116D 11C2;BB33;1106 116D 11C2;
+BB34;BB34;1106 116E;BB34;1106 116E;
+BB35;BB35;1106 116E 11A8;BB35;1106 116E 11A8;
+BB36;BB36;1106 116E 11A9;BB36;1106 116E 11A9;
+BB37;BB37;1106 116E 11AA;BB37;1106 116E 11AA;
+BB38;BB38;1106 116E 11AB;BB38;1106 116E 11AB;
+BB39;BB39;1106 116E 11AC;BB39;1106 116E 11AC;
+BB3A;BB3A;1106 116E 11AD;BB3A;1106 116E 11AD;
+BB3B;BB3B;1106 116E 11AE;BB3B;1106 116E 11AE;
+BB3C;BB3C;1106 116E 11AF;BB3C;1106 116E 11AF;
+BB3D;BB3D;1106 116E 11B0;BB3D;1106 116E 11B0;
+BB3E;BB3E;1106 116E 11B1;BB3E;1106 116E 11B1;
+BB3F;BB3F;1106 116E 11B2;BB3F;1106 116E 11B2;
+BB40;BB40;1106 116E 11B3;BB40;1106 116E 11B3;
+BB41;BB41;1106 116E 11B4;BB41;1106 116E 11B4;
+BB42;BB42;1106 116E 11B5;BB42;1106 116E 11B5;
+BB43;BB43;1106 116E 11B6;BB43;1106 116E 11B6;
+BB44;BB44;1106 116E 11B7;BB44;1106 116E 11B7;
+BB45;BB45;1106 116E 11B8;BB45;1106 116E 11B8;
+BB46;BB46;1106 116E 11B9;BB46;1106 116E 11B9;
+BB47;BB47;1106 116E 11BA;BB47;1106 116E 11BA;
+BB48;BB48;1106 116E 11BB;BB48;1106 116E 11BB;
+BB49;BB49;1106 116E 11BC;BB49;1106 116E 11BC;
+BB4A;BB4A;1106 116E 11BD;BB4A;1106 116E 11BD;
+BB4B;BB4B;1106 116E 11BE;BB4B;1106 116E 11BE;
+BB4C;BB4C;1106 116E 11BF;BB4C;1106 116E 11BF;
+BB4D;BB4D;1106 116E 11C0;BB4D;1106 116E 11C0;
+BB4E;BB4E;1106 116E 11C1;BB4E;1106 116E 11C1;
+BB4F;BB4F;1106 116E 11C2;BB4F;1106 116E 11C2;
+BB50;BB50;1106 116F;BB50;1106 116F;
+BB51;BB51;1106 116F 11A8;BB51;1106 116F 11A8;
+BB52;BB52;1106 116F 11A9;BB52;1106 116F 11A9;
+BB53;BB53;1106 116F 11AA;BB53;1106 116F 11AA;
+BB54;BB54;1106 116F 11AB;BB54;1106 116F 11AB;
+BB55;BB55;1106 116F 11AC;BB55;1106 116F 11AC;
+BB56;BB56;1106 116F 11AD;BB56;1106 116F 11AD;
+BB57;BB57;1106 116F 11AE;BB57;1106 116F 11AE;
+BB58;BB58;1106 116F 11AF;BB58;1106 116F 11AF;
+BB59;BB59;1106 116F 11B0;BB59;1106 116F 11B0;
+BB5A;BB5A;1106 116F 11B1;BB5A;1106 116F 11B1;
+BB5B;BB5B;1106 116F 11B2;BB5B;1106 116F 11B2;
+BB5C;BB5C;1106 116F 11B3;BB5C;1106 116F 11B3;
+BB5D;BB5D;1106 116F 11B4;BB5D;1106 116F 11B4;
+BB5E;BB5E;1106 116F 11B5;BB5E;1106 116F 11B5;
+BB5F;BB5F;1106 116F 11B6;BB5F;1106 116F 11B6;
+BB60;BB60;1106 116F 11B7;BB60;1106 116F 11B7;
+BB61;BB61;1106 116F 11B8;BB61;1106 116F 11B8;
+BB62;BB62;1106 116F 11B9;BB62;1106 116F 11B9;
+BB63;BB63;1106 116F 11BA;BB63;1106 116F 11BA;
+BB64;BB64;1106 116F 11BB;BB64;1106 116F 11BB;
+BB65;BB65;1106 116F 11BC;BB65;1106 116F 11BC;
+BB66;BB66;1106 116F 11BD;BB66;1106 116F 11BD;
+BB67;BB67;1106 116F 11BE;BB67;1106 116F 11BE;
+BB68;BB68;1106 116F 11BF;BB68;1106 116F 11BF;
+BB69;BB69;1106 116F 11C0;BB69;1106 116F 11C0;
+BB6A;BB6A;1106 116F 11C1;BB6A;1106 116F 11C1;
+BB6B;BB6B;1106 116F 11C2;BB6B;1106 116F 11C2;
+BB6C;BB6C;1106 1170;BB6C;1106 1170;
+BB6D;BB6D;1106 1170 11A8;BB6D;1106 1170 11A8;
+BB6E;BB6E;1106 1170 11A9;BB6E;1106 1170 11A9;
+BB6F;BB6F;1106 1170 11AA;BB6F;1106 1170 11AA;
+BB70;BB70;1106 1170 11AB;BB70;1106 1170 11AB;
+BB71;BB71;1106 1170 11AC;BB71;1106 1170 11AC;
+BB72;BB72;1106 1170 11AD;BB72;1106 1170 11AD;
+BB73;BB73;1106 1170 11AE;BB73;1106 1170 11AE;
+BB74;BB74;1106 1170 11AF;BB74;1106 1170 11AF;
+BB75;BB75;1106 1170 11B0;BB75;1106 1170 11B0;
+BB76;BB76;1106 1170 11B1;BB76;1106 1170 11B1;
+BB77;BB77;1106 1170 11B2;BB77;1106 1170 11B2;
+BB78;BB78;1106 1170 11B3;BB78;1106 1170 11B3;
+BB79;BB79;1106 1170 11B4;BB79;1106 1170 11B4;
+BB7A;BB7A;1106 1170 11B5;BB7A;1106 1170 11B5;
+BB7B;BB7B;1106 1170 11B6;BB7B;1106 1170 11B6;
+BB7C;BB7C;1106 1170 11B7;BB7C;1106 1170 11B7;
+BB7D;BB7D;1106 1170 11B8;BB7D;1106 1170 11B8;
+BB7E;BB7E;1106 1170 11B9;BB7E;1106 1170 11B9;
+BB7F;BB7F;1106 1170 11BA;BB7F;1106 1170 11BA;
+BB80;BB80;1106 1170 11BB;BB80;1106 1170 11BB;
+BB81;BB81;1106 1170 11BC;BB81;1106 1170 11BC;
+BB82;BB82;1106 1170 11BD;BB82;1106 1170 11BD;
+BB83;BB83;1106 1170 11BE;BB83;1106 1170 11BE;
+BB84;BB84;1106 1170 11BF;BB84;1106 1170 11BF;
+BB85;BB85;1106 1170 11C0;BB85;1106 1170 11C0;
+BB86;BB86;1106 1170 11C1;BB86;1106 1170 11C1;
+BB87;BB87;1106 1170 11C2;BB87;1106 1170 11C2;
+BB88;BB88;1106 1171;BB88;1106 1171;
+BB89;BB89;1106 1171 11A8;BB89;1106 1171 11A8;
+BB8A;BB8A;1106 1171 11A9;BB8A;1106 1171 11A9;
+BB8B;BB8B;1106 1171 11AA;BB8B;1106 1171 11AA;
+BB8C;BB8C;1106 1171 11AB;BB8C;1106 1171 11AB;
+BB8D;BB8D;1106 1171 11AC;BB8D;1106 1171 11AC;
+BB8E;BB8E;1106 1171 11AD;BB8E;1106 1171 11AD;
+BB8F;BB8F;1106 1171 11AE;BB8F;1106 1171 11AE;
+BB90;BB90;1106 1171 11AF;BB90;1106 1171 11AF;
+BB91;BB91;1106 1171 11B0;BB91;1106 1171 11B0;
+BB92;BB92;1106 1171 11B1;BB92;1106 1171 11B1;
+BB93;BB93;1106 1171 11B2;BB93;1106 1171 11B2;
+BB94;BB94;1106 1171 11B3;BB94;1106 1171 11B3;
+BB95;BB95;1106 1171 11B4;BB95;1106 1171 11B4;
+BB96;BB96;1106 1171 11B5;BB96;1106 1171 11B5;
+BB97;BB97;1106 1171 11B6;BB97;1106 1171 11B6;
+BB98;BB98;1106 1171 11B7;BB98;1106 1171 11B7;
+BB99;BB99;1106 1171 11B8;BB99;1106 1171 11B8;
+BB9A;BB9A;1106 1171 11B9;BB9A;1106 1171 11B9;
+BB9B;BB9B;1106 1171 11BA;BB9B;1106 1171 11BA;
+BB9C;BB9C;1106 1171 11BB;BB9C;1106 1171 11BB;
+BB9D;BB9D;1106 1171 11BC;BB9D;1106 1171 11BC;
+BB9E;BB9E;1106 1171 11BD;BB9E;1106 1171 11BD;
+BB9F;BB9F;1106 1171 11BE;BB9F;1106 1171 11BE;
+BBA0;BBA0;1106 1171 11BF;BBA0;1106 1171 11BF;
+BBA1;BBA1;1106 1171 11C0;BBA1;1106 1171 11C0;
+BBA2;BBA2;1106 1171 11C1;BBA2;1106 1171 11C1;
+BBA3;BBA3;1106 1171 11C2;BBA3;1106 1171 11C2;
+BBA4;BBA4;1106 1172;BBA4;1106 1172;
+BBA5;BBA5;1106 1172 11A8;BBA5;1106 1172 11A8;
+BBA6;BBA6;1106 1172 11A9;BBA6;1106 1172 11A9;
+BBA7;BBA7;1106 1172 11AA;BBA7;1106 1172 11AA;
+BBA8;BBA8;1106 1172 11AB;BBA8;1106 1172 11AB;
+BBA9;BBA9;1106 1172 11AC;BBA9;1106 1172 11AC;
+BBAA;BBAA;1106 1172 11AD;BBAA;1106 1172 11AD;
+BBAB;BBAB;1106 1172 11AE;BBAB;1106 1172 11AE;
+BBAC;BBAC;1106 1172 11AF;BBAC;1106 1172 11AF;
+BBAD;BBAD;1106 1172 11B0;BBAD;1106 1172 11B0;
+BBAE;BBAE;1106 1172 11B1;BBAE;1106 1172 11B1;
+BBAF;BBAF;1106 1172 11B2;BBAF;1106 1172 11B2;
+BBB0;BBB0;1106 1172 11B3;BBB0;1106 1172 11B3;
+BBB1;BBB1;1106 1172 11B4;BBB1;1106 1172 11B4;
+BBB2;BBB2;1106 1172 11B5;BBB2;1106 1172 11B5;
+BBB3;BBB3;1106 1172 11B6;BBB3;1106 1172 11B6;
+BBB4;BBB4;1106 1172 11B7;BBB4;1106 1172 11B7;
+BBB5;BBB5;1106 1172 11B8;BBB5;1106 1172 11B8;
+BBB6;BBB6;1106 1172 11B9;BBB6;1106 1172 11B9;
+BBB7;BBB7;1106 1172 11BA;BBB7;1106 1172 11BA;
+BBB8;BBB8;1106 1172 11BB;BBB8;1106 1172 11BB;
+BBB9;BBB9;1106 1172 11BC;BBB9;1106 1172 11BC;
+BBBA;BBBA;1106 1172 11BD;BBBA;1106 1172 11BD;
+BBBB;BBBB;1106 1172 11BE;BBBB;1106 1172 11BE;
+BBBC;BBBC;1106 1172 11BF;BBBC;1106 1172 11BF;
+BBBD;BBBD;1106 1172 11C0;BBBD;1106 1172 11C0;
+BBBE;BBBE;1106 1172 11C1;BBBE;1106 1172 11C1;
+BBBF;BBBF;1106 1172 11C2;BBBF;1106 1172 11C2;
+BBC0;BBC0;1106 1173;BBC0;1106 1173;
+BBC1;BBC1;1106 1173 11A8;BBC1;1106 1173 11A8;
+BBC2;BBC2;1106 1173 11A9;BBC2;1106 1173 11A9;
+BBC3;BBC3;1106 1173 11AA;BBC3;1106 1173 11AA;
+BBC4;BBC4;1106 1173 11AB;BBC4;1106 1173 11AB;
+BBC5;BBC5;1106 1173 11AC;BBC5;1106 1173 11AC;
+BBC6;BBC6;1106 1173 11AD;BBC6;1106 1173 11AD;
+BBC7;BBC7;1106 1173 11AE;BBC7;1106 1173 11AE;
+BBC8;BBC8;1106 1173 11AF;BBC8;1106 1173 11AF;
+BBC9;BBC9;1106 1173 11B0;BBC9;1106 1173 11B0;
+BBCA;BBCA;1106 1173 11B1;BBCA;1106 1173 11B1;
+BBCB;BBCB;1106 1173 11B2;BBCB;1106 1173 11B2;
+BBCC;BBCC;1106 1173 11B3;BBCC;1106 1173 11B3;
+BBCD;BBCD;1106 1173 11B4;BBCD;1106 1173 11B4;
+BBCE;BBCE;1106 1173 11B5;BBCE;1106 1173 11B5;
+BBCF;BBCF;1106 1173 11B6;BBCF;1106 1173 11B6;
+BBD0;BBD0;1106 1173 11B7;BBD0;1106 1173 11B7;
+BBD1;BBD1;1106 1173 11B8;BBD1;1106 1173 11B8;
+BBD2;BBD2;1106 1173 11B9;BBD2;1106 1173 11B9;
+BBD3;BBD3;1106 1173 11BA;BBD3;1106 1173 11BA;
+BBD4;BBD4;1106 1173 11BB;BBD4;1106 1173 11BB;
+BBD5;BBD5;1106 1173 11BC;BBD5;1106 1173 11BC;
+BBD6;BBD6;1106 1173 11BD;BBD6;1106 1173 11BD;
+BBD7;BBD7;1106 1173 11BE;BBD7;1106 1173 11BE;
+BBD8;BBD8;1106 1173 11BF;BBD8;1106 1173 11BF;
+BBD9;BBD9;1106 1173 11C0;BBD9;1106 1173 11C0;
+BBDA;BBDA;1106 1173 11C1;BBDA;1106 1173 11C1;
+BBDB;BBDB;1106 1173 11C2;BBDB;1106 1173 11C2;
+BBDC;BBDC;1106 1174;BBDC;1106 1174;
+BBDD;BBDD;1106 1174 11A8;BBDD;1106 1174 11A8;
+BBDE;BBDE;1106 1174 11A9;BBDE;1106 1174 11A9;
+BBDF;BBDF;1106 1174 11AA;BBDF;1106 1174 11AA;
+BBE0;BBE0;1106 1174 11AB;BBE0;1106 1174 11AB;
+BBE1;BBE1;1106 1174 11AC;BBE1;1106 1174 11AC;
+BBE2;BBE2;1106 1174 11AD;BBE2;1106 1174 11AD;
+BBE3;BBE3;1106 1174 11AE;BBE3;1106 1174 11AE;
+BBE4;BBE4;1106 1174 11AF;BBE4;1106 1174 11AF;
+BBE5;BBE5;1106 1174 11B0;BBE5;1106 1174 11B0;
+BBE6;BBE6;1106 1174 11B1;BBE6;1106 1174 11B1;
+BBE7;BBE7;1106 1174 11B2;BBE7;1106 1174 11B2;
+BBE8;BBE8;1106 1174 11B3;BBE8;1106 1174 11B3;
+BBE9;BBE9;1106 1174 11B4;BBE9;1106 1174 11B4;
+BBEA;BBEA;1106 1174 11B5;BBEA;1106 1174 11B5;
+BBEB;BBEB;1106 1174 11B6;BBEB;1106 1174 11B6;
+BBEC;BBEC;1106 1174 11B7;BBEC;1106 1174 11B7;
+BBED;BBED;1106 1174 11B8;BBED;1106 1174 11B8;
+BBEE;BBEE;1106 1174 11B9;BBEE;1106 1174 11B9;
+BBEF;BBEF;1106 1174 11BA;BBEF;1106 1174 11BA;
+BBF0;BBF0;1106 1174 11BB;BBF0;1106 1174 11BB;
+BBF1;BBF1;1106 1174 11BC;BBF1;1106 1174 11BC;
+BBF2;BBF2;1106 1174 11BD;BBF2;1106 1174 11BD;
+BBF3;BBF3;1106 1174 11BE;BBF3;1106 1174 11BE;
+BBF4;BBF4;1106 1174 11BF;BBF4;1106 1174 11BF;
+BBF5;BBF5;1106 1174 11C0;BBF5;1106 1174 11C0;
+BBF6;BBF6;1106 1174 11C1;BBF6;1106 1174 11C1;
+BBF7;BBF7;1106 1174 11C2;BBF7;1106 1174 11C2;
+BBF8;BBF8;1106 1175;BBF8;1106 1175;
+BBF9;BBF9;1106 1175 11A8;BBF9;1106 1175 11A8;
+BBFA;BBFA;1106 1175 11A9;BBFA;1106 1175 11A9;
+BBFB;BBFB;1106 1175 11AA;BBFB;1106 1175 11AA;
+BBFC;BBFC;1106 1175 11AB;BBFC;1106 1175 11AB;
+BBFD;BBFD;1106 1175 11AC;BBFD;1106 1175 11AC;
+BBFE;BBFE;1106 1175 11AD;BBFE;1106 1175 11AD;
+BBFF;BBFF;1106 1175 11AE;BBFF;1106 1175 11AE;
+BC00;BC00;1106 1175 11AF;BC00;1106 1175 11AF;
+BC01;BC01;1106 1175 11B0;BC01;1106 1175 11B0;
+BC02;BC02;1106 1175 11B1;BC02;1106 1175 11B1;
+BC03;BC03;1106 1175 11B2;BC03;1106 1175 11B2;
+BC04;BC04;1106 1175 11B3;BC04;1106 1175 11B3;
+BC05;BC05;1106 1175 11B4;BC05;1106 1175 11B4;
+BC06;BC06;1106 1175 11B5;BC06;1106 1175 11B5;
+BC07;BC07;1106 1175 11B6;BC07;1106 1175 11B6;
+BC08;BC08;1106 1175 11B7;BC08;1106 1175 11B7;
+BC09;BC09;1106 1175 11B8;BC09;1106 1175 11B8;
+BC0A;BC0A;1106 1175 11B9;BC0A;1106 1175 11B9;
+BC0B;BC0B;1106 1175 11BA;BC0B;1106 1175 11BA;
+BC0C;BC0C;1106 1175 11BB;BC0C;1106 1175 11BB;
+BC0D;BC0D;1106 1175 11BC;BC0D;1106 1175 11BC;
+BC0E;BC0E;1106 1175 11BD;BC0E;1106 1175 11BD;
+BC0F;BC0F;1106 1175 11BE;BC0F;1106 1175 11BE;
+BC10;BC10;1106 1175 11BF;BC10;1106 1175 11BF;
+BC11;BC11;1106 1175 11C0;BC11;1106 1175 11C0;
+BC12;BC12;1106 1175 11C1;BC12;1106 1175 11C1;
+BC13;BC13;1106 1175 11C2;BC13;1106 1175 11C2;
+BC14;BC14;1107 1161;BC14;1107 1161;
+BC15;BC15;1107 1161 11A8;BC15;1107 1161 11A8;
+BC16;BC16;1107 1161 11A9;BC16;1107 1161 11A9;
+BC17;BC17;1107 1161 11AA;BC17;1107 1161 11AA;
+BC18;BC18;1107 1161 11AB;BC18;1107 1161 11AB;
+BC19;BC19;1107 1161 11AC;BC19;1107 1161 11AC;
+BC1A;BC1A;1107 1161 11AD;BC1A;1107 1161 11AD;
+BC1B;BC1B;1107 1161 11AE;BC1B;1107 1161 11AE;
+BC1C;BC1C;1107 1161 11AF;BC1C;1107 1161 11AF;
+BC1D;BC1D;1107 1161 11B0;BC1D;1107 1161 11B0;
+BC1E;BC1E;1107 1161 11B1;BC1E;1107 1161 11B1;
+BC1F;BC1F;1107 1161 11B2;BC1F;1107 1161 11B2;
+BC20;BC20;1107 1161 11B3;BC20;1107 1161 11B3;
+BC21;BC21;1107 1161 11B4;BC21;1107 1161 11B4;
+BC22;BC22;1107 1161 11B5;BC22;1107 1161 11B5;
+BC23;BC23;1107 1161 11B6;BC23;1107 1161 11B6;
+BC24;BC24;1107 1161 11B7;BC24;1107 1161 11B7;
+BC25;BC25;1107 1161 11B8;BC25;1107 1161 11B8;
+BC26;BC26;1107 1161 11B9;BC26;1107 1161 11B9;
+BC27;BC27;1107 1161 11BA;BC27;1107 1161 11BA;
+BC28;BC28;1107 1161 11BB;BC28;1107 1161 11BB;
+BC29;BC29;1107 1161 11BC;BC29;1107 1161 11BC;
+BC2A;BC2A;1107 1161 11BD;BC2A;1107 1161 11BD;
+BC2B;BC2B;1107 1161 11BE;BC2B;1107 1161 11BE;
+BC2C;BC2C;1107 1161 11BF;BC2C;1107 1161 11BF;
+BC2D;BC2D;1107 1161 11C0;BC2D;1107 1161 11C0;
+BC2E;BC2E;1107 1161 11C1;BC2E;1107 1161 11C1;
+BC2F;BC2F;1107 1161 11C2;BC2F;1107 1161 11C2;
+BC30;BC30;1107 1162;BC30;1107 1162;
+BC31;BC31;1107 1162 11A8;BC31;1107 1162 11A8;
+BC32;BC32;1107 1162 11A9;BC32;1107 1162 11A9;
+BC33;BC33;1107 1162 11AA;BC33;1107 1162 11AA;
+BC34;BC34;1107 1162 11AB;BC34;1107 1162 11AB;
+BC35;BC35;1107 1162 11AC;BC35;1107 1162 11AC;
+BC36;BC36;1107 1162 11AD;BC36;1107 1162 11AD;
+BC37;BC37;1107 1162 11AE;BC37;1107 1162 11AE;
+BC38;BC38;1107 1162 11AF;BC38;1107 1162 11AF;
+BC39;BC39;1107 1162 11B0;BC39;1107 1162 11B0;
+BC3A;BC3A;1107 1162 11B1;BC3A;1107 1162 11B1;
+BC3B;BC3B;1107 1162 11B2;BC3B;1107 1162 11B2;
+BC3C;BC3C;1107 1162 11B3;BC3C;1107 1162 11B3;
+BC3D;BC3D;1107 1162 11B4;BC3D;1107 1162 11B4;
+BC3E;BC3E;1107 1162 11B5;BC3E;1107 1162 11B5;
+BC3F;BC3F;1107 1162 11B6;BC3F;1107 1162 11B6;
+BC40;BC40;1107 1162 11B7;BC40;1107 1162 11B7;
+BC41;BC41;1107 1162 11B8;BC41;1107 1162 11B8;
+BC42;BC42;1107 1162 11B9;BC42;1107 1162 11B9;
+BC43;BC43;1107 1162 11BA;BC43;1107 1162 11BA;
+BC44;BC44;1107 1162 11BB;BC44;1107 1162 11BB;
+BC45;BC45;1107 1162 11BC;BC45;1107 1162 11BC;
+BC46;BC46;1107 1162 11BD;BC46;1107 1162 11BD;
+BC47;BC47;1107 1162 11BE;BC47;1107 1162 11BE;
+BC48;BC48;1107 1162 11BF;BC48;1107 1162 11BF;
+BC49;BC49;1107 1162 11C0;BC49;1107 1162 11C0;
+BC4A;BC4A;1107 1162 11C1;BC4A;1107 1162 11C1;
+BC4B;BC4B;1107 1162 11C2;BC4B;1107 1162 11C2;
+BC4C;BC4C;1107 1163;BC4C;1107 1163;
+BC4D;BC4D;1107 1163 11A8;BC4D;1107 1163 11A8;
+BC4E;BC4E;1107 1163 11A9;BC4E;1107 1163 11A9;
+BC4F;BC4F;1107 1163 11AA;BC4F;1107 1163 11AA;
+BC50;BC50;1107 1163 11AB;BC50;1107 1163 11AB;
+BC51;BC51;1107 1163 11AC;BC51;1107 1163 11AC;
+BC52;BC52;1107 1163 11AD;BC52;1107 1163 11AD;
+BC53;BC53;1107 1163 11AE;BC53;1107 1163 11AE;
+BC54;BC54;1107 1163 11AF;BC54;1107 1163 11AF;
+BC55;BC55;1107 1163 11B0;BC55;1107 1163 11B0;
+BC56;BC56;1107 1163 11B1;BC56;1107 1163 11B1;
+BC57;BC57;1107 1163 11B2;BC57;1107 1163 11B2;
+BC58;BC58;1107 1163 11B3;BC58;1107 1163 11B3;
+BC59;BC59;1107 1163 11B4;BC59;1107 1163 11B4;
+BC5A;BC5A;1107 1163 11B5;BC5A;1107 1163 11B5;
+BC5B;BC5B;1107 1163 11B6;BC5B;1107 1163 11B6;
+BC5C;BC5C;1107 1163 11B7;BC5C;1107 1163 11B7;
+BC5D;BC5D;1107 1163 11B8;BC5D;1107 1163 11B8;
+BC5E;BC5E;1107 1163 11B9;BC5E;1107 1163 11B9;
+BC5F;BC5F;1107 1163 11BA;BC5F;1107 1163 11BA;
+BC60;BC60;1107 1163 11BB;BC60;1107 1163 11BB;
+BC61;BC61;1107 1163 11BC;BC61;1107 1163 11BC;
+BC62;BC62;1107 1163 11BD;BC62;1107 1163 11BD;
+BC63;BC63;1107 1163 11BE;BC63;1107 1163 11BE;
+BC64;BC64;1107 1163 11BF;BC64;1107 1163 11BF;
+BC65;BC65;1107 1163 11C0;BC65;1107 1163 11C0;
+BC66;BC66;1107 1163 11C1;BC66;1107 1163 11C1;
+BC67;BC67;1107 1163 11C2;BC67;1107 1163 11C2;
+BC68;BC68;1107 1164;BC68;1107 1164;
+BC69;BC69;1107 1164 11A8;BC69;1107 1164 11A8;
+BC6A;BC6A;1107 1164 11A9;BC6A;1107 1164 11A9;
+BC6B;BC6B;1107 1164 11AA;BC6B;1107 1164 11AA;
+BC6C;BC6C;1107 1164 11AB;BC6C;1107 1164 11AB;
+BC6D;BC6D;1107 1164 11AC;BC6D;1107 1164 11AC;
+BC6E;BC6E;1107 1164 11AD;BC6E;1107 1164 11AD;
+BC6F;BC6F;1107 1164 11AE;BC6F;1107 1164 11AE;
+BC70;BC70;1107 1164 11AF;BC70;1107 1164 11AF;
+BC71;BC71;1107 1164 11B0;BC71;1107 1164 11B0;
+BC72;BC72;1107 1164 11B1;BC72;1107 1164 11B1;
+BC73;BC73;1107 1164 11B2;BC73;1107 1164 11B2;
+BC74;BC74;1107 1164 11B3;BC74;1107 1164 11B3;
+BC75;BC75;1107 1164 11B4;BC75;1107 1164 11B4;
+BC76;BC76;1107 1164 11B5;BC76;1107 1164 11B5;
+BC77;BC77;1107 1164 11B6;BC77;1107 1164 11B6;
+BC78;BC78;1107 1164 11B7;BC78;1107 1164 11B7;
+BC79;BC79;1107 1164 11B8;BC79;1107 1164 11B8;
+BC7A;BC7A;1107 1164 11B9;BC7A;1107 1164 11B9;
+BC7B;BC7B;1107 1164 11BA;BC7B;1107 1164 11BA;
+BC7C;BC7C;1107 1164 11BB;BC7C;1107 1164 11BB;
+BC7D;BC7D;1107 1164 11BC;BC7D;1107 1164 11BC;
+BC7E;BC7E;1107 1164 11BD;BC7E;1107 1164 11BD;
+BC7F;BC7F;1107 1164 11BE;BC7F;1107 1164 11BE;
+BC80;BC80;1107 1164 11BF;BC80;1107 1164 11BF;
+BC81;BC81;1107 1164 11C0;BC81;1107 1164 11C0;
+BC82;BC82;1107 1164 11C1;BC82;1107 1164 11C1;
+BC83;BC83;1107 1164 11C2;BC83;1107 1164 11C2;
+BC84;BC84;1107 1165;BC84;1107 1165;
+BC85;BC85;1107 1165 11A8;BC85;1107 1165 11A8;
+BC86;BC86;1107 1165 11A9;BC86;1107 1165 11A9;
+BC87;BC87;1107 1165 11AA;BC87;1107 1165 11AA;
+BC88;BC88;1107 1165 11AB;BC88;1107 1165 11AB;
+BC89;BC89;1107 1165 11AC;BC89;1107 1165 11AC;
+BC8A;BC8A;1107 1165 11AD;BC8A;1107 1165 11AD;
+BC8B;BC8B;1107 1165 11AE;BC8B;1107 1165 11AE;
+BC8C;BC8C;1107 1165 11AF;BC8C;1107 1165 11AF;
+BC8D;BC8D;1107 1165 11B0;BC8D;1107 1165 11B0;
+BC8E;BC8E;1107 1165 11B1;BC8E;1107 1165 11B1;
+BC8F;BC8F;1107 1165 11B2;BC8F;1107 1165 11B2;
+BC90;BC90;1107 1165 11B3;BC90;1107 1165 11B3;
+BC91;BC91;1107 1165 11B4;BC91;1107 1165 11B4;
+BC92;BC92;1107 1165 11B5;BC92;1107 1165 11B5;
+BC93;BC93;1107 1165 11B6;BC93;1107 1165 11B6;
+BC94;BC94;1107 1165 11B7;BC94;1107 1165 11B7;
+BC95;BC95;1107 1165 11B8;BC95;1107 1165 11B8;
+BC96;BC96;1107 1165 11B9;BC96;1107 1165 11B9;
+BC97;BC97;1107 1165 11BA;BC97;1107 1165 11BA;
+BC98;BC98;1107 1165 11BB;BC98;1107 1165 11BB;
+BC99;BC99;1107 1165 11BC;BC99;1107 1165 11BC;
+BC9A;BC9A;1107 1165 11BD;BC9A;1107 1165 11BD;
+BC9B;BC9B;1107 1165 11BE;BC9B;1107 1165 11BE;
+BC9C;BC9C;1107 1165 11BF;BC9C;1107 1165 11BF;
+BC9D;BC9D;1107 1165 11C0;BC9D;1107 1165 11C0;
+BC9E;BC9E;1107 1165 11C1;BC9E;1107 1165 11C1;
+BC9F;BC9F;1107 1165 11C2;BC9F;1107 1165 11C2;
+BCA0;BCA0;1107 1166;BCA0;1107 1166;
+BCA1;BCA1;1107 1166 11A8;BCA1;1107 1166 11A8;
+BCA2;BCA2;1107 1166 11A9;BCA2;1107 1166 11A9;
+BCA3;BCA3;1107 1166 11AA;BCA3;1107 1166 11AA;
+BCA4;BCA4;1107 1166 11AB;BCA4;1107 1166 11AB;
+BCA5;BCA5;1107 1166 11AC;BCA5;1107 1166 11AC;
+BCA6;BCA6;1107 1166 11AD;BCA6;1107 1166 11AD;
+BCA7;BCA7;1107 1166 11AE;BCA7;1107 1166 11AE;
+BCA8;BCA8;1107 1166 11AF;BCA8;1107 1166 11AF;
+BCA9;BCA9;1107 1166 11B0;BCA9;1107 1166 11B0;
+BCAA;BCAA;1107 1166 11B1;BCAA;1107 1166 11B1;
+BCAB;BCAB;1107 1166 11B2;BCAB;1107 1166 11B2;
+BCAC;BCAC;1107 1166 11B3;BCAC;1107 1166 11B3;
+BCAD;BCAD;1107 1166 11B4;BCAD;1107 1166 11B4;
+BCAE;BCAE;1107 1166 11B5;BCAE;1107 1166 11B5;
+BCAF;BCAF;1107 1166 11B6;BCAF;1107 1166 11B6;
+BCB0;BCB0;1107 1166 11B7;BCB0;1107 1166 11B7;
+BCB1;BCB1;1107 1166 11B8;BCB1;1107 1166 11B8;
+BCB2;BCB2;1107 1166 11B9;BCB2;1107 1166 11B9;
+BCB3;BCB3;1107 1166 11BA;BCB3;1107 1166 11BA;
+BCB4;BCB4;1107 1166 11BB;BCB4;1107 1166 11BB;
+BCB5;BCB5;1107 1166 11BC;BCB5;1107 1166 11BC;
+BCB6;BCB6;1107 1166 11BD;BCB6;1107 1166 11BD;
+BCB7;BCB7;1107 1166 11BE;BCB7;1107 1166 11BE;
+BCB8;BCB8;1107 1166 11BF;BCB8;1107 1166 11BF;
+BCB9;BCB9;1107 1166 11C0;BCB9;1107 1166 11C0;
+BCBA;BCBA;1107 1166 11C1;BCBA;1107 1166 11C1;
+BCBB;BCBB;1107 1166 11C2;BCBB;1107 1166 11C2;
+BCBC;BCBC;1107 1167;BCBC;1107 1167;
+BCBD;BCBD;1107 1167 11A8;BCBD;1107 1167 11A8;
+BCBE;BCBE;1107 1167 11A9;BCBE;1107 1167 11A9;
+BCBF;BCBF;1107 1167 11AA;BCBF;1107 1167 11AA;
+BCC0;BCC0;1107 1167 11AB;BCC0;1107 1167 11AB;
+BCC1;BCC1;1107 1167 11AC;BCC1;1107 1167 11AC;
+BCC2;BCC2;1107 1167 11AD;BCC2;1107 1167 11AD;
+BCC3;BCC3;1107 1167 11AE;BCC3;1107 1167 11AE;
+BCC4;BCC4;1107 1167 11AF;BCC4;1107 1167 11AF;
+BCC5;BCC5;1107 1167 11B0;BCC5;1107 1167 11B0;
+BCC6;BCC6;1107 1167 11B1;BCC6;1107 1167 11B1;
+BCC7;BCC7;1107 1167 11B2;BCC7;1107 1167 11B2;
+BCC8;BCC8;1107 1167 11B3;BCC8;1107 1167 11B3;
+BCC9;BCC9;1107 1167 11B4;BCC9;1107 1167 11B4;
+BCCA;BCCA;1107 1167 11B5;BCCA;1107 1167 11B5;
+BCCB;BCCB;1107 1167 11B6;BCCB;1107 1167 11B6;
+BCCC;BCCC;1107 1167 11B7;BCCC;1107 1167 11B7;
+BCCD;BCCD;1107 1167 11B8;BCCD;1107 1167 11B8;
+BCCE;BCCE;1107 1167 11B9;BCCE;1107 1167 11B9;
+BCCF;BCCF;1107 1167 11BA;BCCF;1107 1167 11BA;
+BCD0;BCD0;1107 1167 11BB;BCD0;1107 1167 11BB;
+BCD1;BCD1;1107 1167 11BC;BCD1;1107 1167 11BC;
+BCD2;BCD2;1107 1167 11BD;BCD2;1107 1167 11BD;
+BCD3;BCD3;1107 1167 11BE;BCD3;1107 1167 11BE;
+BCD4;BCD4;1107 1167 11BF;BCD4;1107 1167 11BF;
+BCD5;BCD5;1107 1167 11C0;BCD5;1107 1167 11C0;
+BCD6;BCD6;1107 1167 11C1;BCD6;1107 1167 11C1;
+BCD7;BCD7;1107 1167 11C2;BCD7;1107 1167 11C2;
+BCD8;BCD8;1107 1168;BCD8;1107 1168;
+BCD9;BCD9;1107 1168 11A8;BCD9;1107 1168 11A8;
+BCDA;BCDA;1107 1168 11A9;BCDA;1107 1168 11A9;
+BCDB;BCDB;1107 1168 11AA;BCDB;1107 1168 11AA;
+BCDC;BCDC;1107 1168 11AB;BCDC;1107 1168 11AB;
+BCDD;BCDD;1107 1168 11AC;BCDD;1107 1168 11AC;
+BCDE;BCDE;1107 1168 11AD;BCDE;1107 1168 11AD;
+BCDF;BCDF;1107 1168 11AE;BCDF;1107 1168 11AE;
+BCE0;BCE0;1107 1168 11AF;BCE0;1107 1168 11AF;
+BCE1;BCE1;1107 1168 11B0;BCE1;1107 1168 11B0;
+BCE2;BCE2;1107 1168 11B1;BCE2;1107 1168 11B1;
+BCE3;BCE3;1107 1168 11B2;BCE3;1107 1168 11B2;
+BCE4;BCE4;1107 1168 11B3;BCE4;1107 1168 11B3;
+BCE5;BCE5;1107 1168 11B4;BCE5;1107 1168 11B4;
+BCE6;BCE6;1107 1168 11B5;BCE6;1107 1168 11B5;
+BCE7;BCE7;1107 1168 11B6;BCE7;1107 1168 11B6;
+BCE8;BCE8;1107 1168 11B7;BCE8;1107 1168 11B7;
+BCE9;BCE9;1107 1168 11B8;BCE9;1107 1168 11B8;
+BCEA;BCEA;1107 1168 11B9;BCEA;1107 1168 11B9;
+BCEB;BCEB;1107 1168 11BA;BCEB;1107 1168 11BA;
+BCEC;BCEC;1107 1168 11BB;BCEC;1107 1168 11BB;
+BCED;BCED;1107 1168 11BC;BCED;1107 1168 11BC;
+BCEE;BCEE;1107 1168 11BD;BCEE;1107 1168 11BD;
+BCEF;BCEF;1107 1168 11BE;BCEF;1107 1168 11BE;
+BCF0;BCF0;1107 1168 11BF;BCF0;1107 1168 11BF;
+BCF1;BCF1;1107 1168 11C0;BCF1;1107 1168 11C0;
+BCF2;BCF2;1107 1168 11C1;BCF2;1107 1168 11C1;
+BCF3;BCF3;1107 1168 11C2;BCF3;1107 1168 11C2;
+BCF4;BCF4;1107 1169;BCF4;1107 1169;
+BCF5;BCF5;1107 1169 11A8;BCF5;1107 1169 11A8;
+BCF6;BCF6;1107 1169 11A9;BCF6;1107 1169 11A9;
+BCF7;BCF7;1107 1169 11AA;BCF7;1107 1169 11AA;
+BCF8;BCF8;1107 1169 11AB;BCF8;1107 1169 11AB;
+BCF9;BCF9;1107 1169 11AC;BCF9;1107 1169 11AC;
+BCFA;BCFA;1107 1169 11AD;BCFA;1107 1169 11AD;
+BCFB;BCFB;1107 1169 11AE;BCFB;1107 1169 11AE;
+BCFC;BCFC;1107 1169 11AF;BCFC;1107 1169 11AF;
+BCFD;BCFD;1107 1169 11B0;BCFD;1107 1169 11B0;
+BCFE;BCFE;1107 1169 11B1;BCFE;1107 1169 11B1;
+BCFF;BCFF;1107 1169 11B2;BCFF;1107 1169 11B2;
+BD00;BD00;1107 1169 11B3;BD00;1107 1169 11B3;
+BD01;BD01;1107 1169 11B4;BD01;1107 1169 11B4;
+BD02;BD02;1107 1169 11B5;BD02;1107 1169 11B5;
+BD03;BD03;1107 1169 11B6;BD03;1107 1169 11B6;
+BD04;BD04;1107 1169 11B7;BD04;1107 1169 11B7;
+BD05;BD05;1107 1169 11B8;BD05;1107 1169 11B8;
+BD06;BD06;1107 1169 11B9;BD06;1107 1169 11B9;
+BD07;BD07;1107 1169 11BA;BD07;1107 1169 11BA;
+BD08;BD08;1107 1169 11BB;BD08;1107 1169 11BB;
+BD09;BD09;1107 1169 11BC;BD09;1107 1169 11BC;
+BD0A;BD0A;1107 1169 11BD;BD0A;1107 1169 11BD;
+BD0B;BD0B;1107 1169 11BE;BD0B;1107 1169 11BE;
+BD0C;BD0C;1107 1169 11BF;BD0C;1107 1169 11BF;
+BD0D;BD0D;1107 1169 11C0;BD0D;1107 1169 11C0;
+BD0E;BD0E;1107 1169 11C1;BD0E;1107 1169 11C1;
+BD0F;BD0F;1107 1169 11C2;BD0F;1107 1169 11C2;
+BD10;BD10;1107 116A;BD10;1107 116A;
+BD11;BD11;1107 116A 11A8;BD11;1107 116A 11A8;
+BD12;BD12;1107 116A 11A9;BD12;1107 116A 11A9;
+BD13;BD13;1107 116A 11AA;BD13;1107 116A 11AA;
+BD14;BD14;1107 116A 11AB;BD14;1107 116A 11AB;
+BD15;BD15;1107 116A 11AC;BD15;1107 116A 11AC;
+BD16;BD16;1107 116A 11AD;BD16;1107 116A 11AD;
+BD17;BD17;1107 116A 11AE;BD17;1107 116A 11AE;
+BD18;BD18;1107 116A 11AF;BD18;1107 116A 11AF;
+BD19;BD19;1107 116A 11B0;BD19;1107 116A 11B0;
+BD1A;BD1A;1107 116A 11B1;BD1A;1107 116A 11B1;
+BD1B;BD1B;1107 116A 11B2;BD1B;1107 116A 11B2;
+BD1C;BD1C;1107 116A 11B3;BD1C;1107 116A 11B3;
+BD1D;BD1D;1107 116A 11B4;BD1D;1107 116A 11B4;
+BD1E;BD1E;1107 116A 11B5;BD1E;1107 116A 11B5;
+BD1F;BD1F;1107 116A 11B6;BD1F;1107 116A 11B6;
+BD20;BD20;1107 116A 11B7;BD20;1107 116A 11B7;
+BD21;BD21;1107 116A 11B8;BD21;1107 116A 11B8;
+BD22;BD22;1107 116A 11B9;BD22;1107 116A 11B9;
+BD23;BD23;1107 116A 11BA;BD23;1107 116A 11BA;
+BD24;BD24;1107 116A 11BB;BD24;1107 116A 11BB;
+BD25;BD25;1107 116A 11BC;BD25;1107 116A 11BC;
+BD26;BD26;1107 116A 11BD;BD26;1107 116A 11BD;
+BD27;BD27;1107 116A 11BE;BD27;1107 116A 11BE;
+BD28;BD28;1107 116A 11BF;BD28;1107 116A 11BF;
+BD29;BD29;1107 116A 11C0;BD29;1107 116A 11C0;
+BD2A;BD2A;1107 116A 11C1;BD2A;1107 116A 11C1;
+BD2B;BD2B;1107 116A 11C2;BD2B;1107 116A 11C2;
+BD2C;BD2C;1107 116B;BD2C;1107 116B;
+BD2D;BD2D;1107 116B 11A8;BD2D;1107 116B 11A8;
+BD2E;BD2E;1107 116B 11A9;BD2E;1107 116B 11A9;
+BD2F;BD2F;1107 116B 11AA;BD2F;1107 116B 11AA;
+BD30;BD30;1107 116B 11AB;BD30;1107 116B 11AB;
+BD31;BD31;1107 116B 11AC;BD31;1107 116B 11AC;
+BD32;BD32;1107 116B 11AD;BD32;1107 116B 11AD;
+BD33;BD33;1107 116B 11AE;BD33;1107 116B 11AE;
+BD34;BD34;1107 116B 11AF;BD34;1107 116B 11AF;
+BD35;BD35;1107 116B 11B0;BD35;1107 116B 11B0;
+BD36;BD36;1107 116B 11B1;BD36;1107 116B 11B1;
+BD37;BD37;1107 116B 11B2;BD37;1107 116B 11B2;
+BD38;BD38;1107 116B 11B3;BD38;1107 116B 11B3;
+BD39;BD39;1107 116B 11B4;BD39;1107 116B 11B4;
+BD3A;BD3A;1107 116B 11B5;BD3A;1107 116B 11B5;
+BD3B;BD3B;1107 116B 11B6;BD3B;1107 116B 11B6;
+BD3C;BD3C;1107 116B 11B7;BD3C;1107 116B 11B7;
+BD3D;BD3D;1107 116B 11B8;BD3D;1107 116B 11B8;
+BD3E;BD3E;1107 116B 11B9;BD3E;1107 116B 11B9;
+BD3F;BD3F;1107 116B 11BA;BD3F;1107 116B 11BA;
+BD40;BD40;1107 116B 11BB;BD40;1107 116B 11BB;
+BD41;BD41;1107 116B 11BC;BD41;1107 116B 11BC;
+BD42;BD42;1107 116B 11BD;BD42;1107 116B 11BD;
+BD43;BD43;1107 116B 11BE;BD43;1107 116B 11BE;
+BD44;BD44;1107 116B 11BF;BD44;1107 116B 11BF;
+BD45;BD45;1107 116B 11C0;BD45;1107 116B 11C0;
+BD46;BD46;1107 116B 11C1;BD46;1107 116B 11C1;
+BD47;BD47;1107 116B 11C2;BD47;1107 116B 11C2;
+BD48;BD48;1107 116C;BD48;1107 116C;
+BD49;BD49;1107 116C 11A8;BD49;1107 116C 11A8;
+BD4A;BD4A;1107 116C 11A9;BD4A;1107 116C 11A9;
+BD4B;BD4B;1107 116C 11AA;BD4B;1107 116C 11AA;
+BD4C;BD4C;1107 116C 11AB;BD4C;1107 116C 11AB;
+BD4D;BD4D;1107 116C 11AC;BD4D;1107 116C 11AC;
+BD4E;BD4E;1107 116C 11AD;BD4E;1107 116C 11AD;
+BD4F;BD4F;1107 116C 11AE;BD4F;1107 116C 11AE;
+BD50;BD50;1107 116C 11AF;BD50;1107 116C 11AF;
+BD51;BD51;1107 116C 11B0;BD51;1107 116C 11B0;
+BD52;BD52;1107 116C 11B1;BD52;1107 116C 11B1;
+BD53;BD53;1107 116C 11B2;BD53;1107 116C 11B2;
+BD54;BD54;1107 116C 11B3;BD54;1107 116C 11B3;
+BD55;BD55;1107 116C 11B4;BD55;1107 116C 11B4;
+BD56;BD56;1107 116C 11B5;BD56;1107 116C 11B5;
+BD57;BD57;1107 116C 11B6;BD57;1107 116C 11B6;
+BD58;BD58;1107 116C 11B7;BD58;1107 116C 11B7;
+BD59;BD59;1107 116C 11B8;BD59;1107 116C 11B8;
+BD5A;BD5A;1107 116C 11B9;BD5A;1107 116C 11B9;
+BD5B;BD5B;1107 116C 11BA;BD5B;1107 116C 11BA;
+BD5C;BD5C;1107 116C 11BB;BD5C;1107 116C 11BB;
+BD5D;BD5D;1107 116C 11BC;BD5D;1107 116C 11BC;
+BD5E;BD5E;1107 116C 11BD;BD5E;1107 116C 11BD;
+BD5F;BD5F;1107 116C 11BE;BD5F;1107 116C 11BE;
+BD60;BD60;1107 116C 11BF;BD60;1107 116C 11BF;
+BD61;BD61;1107 116C 11C0;BD61;1107 116C 11C0;
+BD62;BD62;1107 116C 11C1;BD62;1107 116C 11C1;
+BD63;BD63;1107 116C 11C2;BD63;1107 116C 11C2;
+BD64;BD64;1107 116D;BD64;1107 116D;
+BD65;BD65;1107 116D 11A8;BD65;1107 116D 11A8;
+BD66;BD66;1107 116D 11A9;BD66;1107 116D 11A9;
+BD67;BD67;1107 116D 11AA;BD67;1107 116D 11AA;
+BD68;BD68;1107 116D 11AB;BD68;1107 116D 11AB;
+BD69;BD69;1107 116D 11AC;BD69;1107 116D 11AC;
+BD6A;BD6A;1107 116D 11AD;BD6A;1107 116D 11AD;
+BD6B;BD6B;1107 116D 11AE;BD6B;1107 116D 11AE;
+BD6C;BD6C;1107 116D 11AF;BD6C;1107 116D 11AF;
+BD6D;BD6D;1107 116D 11B0;BD6D;1107 116D 11B0;
+BD6E;BD6E;1107 116D 11B1;BD6E;1107 116D 11B1;
+BD6F;BD6F;1107 116D 11B2;BD6F;1107 116D 11B2;
+BD70;BD70;1107 116D 11B3;BD70;1107 116D 11B3;
+BD71;BD71;1107 116D 11B4;BD71;1107 116D 11B4;
+BD72;BD72;1107 116D 11B5;BD72;1107 116D 11B5;
+BD73;BD73;1107 116D 11B6;BD73;1107 116D 11B6;
+BD74;BD74;1107 116D 11B7;BD74;1107 116D 11B7;
+BD75;BD75;1107 116D 11B8;BD75;1107 116D 11B8;
+BD76;BD76;1107 116D 11B9;BD76;1107 116D 11B9;
+BD77;BD77;1107 116D 11BA;BD77;1107 116D 11BA;
+BD78;BD78;1107 116D 11BB;BD78;1107 116D 11BB;
+BD79;BD79;1107 116D 11BC;BD79;1107 116D 11BC;
+BD7A;BD7A;1107 116D 11BD;BD7A;1107 116D 11BD;
+BD7B;BD7B;1107 116D 11BE;BD7B;1107 116D 11BE;
+BD7C;BD7C;1107 116D 11BF;BD7C;1107 116D 11BF;
+BD7D;BD7D;1107 116D 11C0;BD7D;1107 116D 11C0;
+BD7E;BD7E;1107 116D 11C1;BD7E;1107 116D 11C1;
+BD7F;BD7F;1107 116D 11C2;BD7F;1107 116D 11C2;
+BD80;BD80;1107 116E;BD80;1107 116E;
+BD81;BD81;1107 116E 11A8;BD81;1107 116E 11A8;
+BD82;BD82;1107 116E 11A9;BD82;1107 116E 11A9;
+BD83;BD83;1107 116E 11AA;BD83;1107 116E 11AA;
+BD84;BD84;1107 116E 11AB;BD84;1107 116E 11AB;
+BD85;BD85;1107 116E 11AC;BD85;1107 116E 11AC;
+BD86;BD86;1107 116E 11AD;BD86;1107 116E 11AD;
+BD87;BD87;1107 116E 11AE;BD87;1107 116E 11AE;
+BD88;BD88;1107 116E 11AF;BD88;1107 116E 11AF;
+BD89;BD89;1107 116E 11B0;BD89;1107 116E 11B0;
+BD8A;BD8A;1107 116E 11B1;BD8A;1107 116E 11B1;
+BD8B;BD8B;1107 116E 11B2;BD8B;1107 116E 11B2;
+BD8C;BD8C;1107 116E 11B3;BD8C;1107 116E 11B3;
+BD8D;BD8D;1107 116E 11B4;BD8D;1107 116E 11B4;
+BD8E;BD8E;1107 116E 11B5;BD8E;1107 116E 11B5;
+BD8F;BD8F;1107 116E 11B6;BD8F;1107 116E 11B6;
+BD90;BD90;1107 116E 11B7;BD90;1107 116E 11B7;
+BD91;BD91;1107 116E 11B8;BD91;1107 116E 11B8;
+BD92;BD92;1107 116E 11B9;BD92;1107 116E 11B9;
+BD93;BD93;1107 116E 11BA;BD93;1107 116E 11BA;
+BD94;BD94;1107 116E 11BB;BD94;1107 116E 11BB;
+BD95;BD95;1107 116E 11BC;BD95;1107 116E 11BC;
+BD96;BD96;1107 116E 11BD;BD96;1107 116E 11BD;
+BD97;BD97;1107 116E 11BE;BD97;1107 116E 11BE;
+BD98;BD98;1107 116E 11BF;BD98;1107 116E 11BF;
+BD99;BD99;1107 116E 11C0;BD99;1107 116E 11C0;
+BD9A;BD9A;1107 116E 11C1;BD9A;1107 116E 11C1;
+BD9B;BD9B;1107 116E 11C2;BD9B;1107 116E 11C2;
+BD9C;BD9C;1107 116F;BD9C;1107 116F;
+BD9D;BD9D;1107 116F 11A8;BD9D;1107 116F 11A8;
+BD9E;BD9E;1107 116F 11A9;BD9E;1107 116F 11A9;
+BD9F;BD9F;1107 116F 11AA;BD9F;1107 116F 11AA;
+BDA0;BDA0;1107 116F 11AB;BDA0;1107 116F 11AB;
+BDA1;BDA1;1107 116F 11AC;BDA1;1107 116F 11AC;
+BDA2;BDA2;1107 116F 11AD;BDA2;1107 116F 11AD;
+BDA3;BDA3;1107 116F 11AE;BDA3;1107 116F 11AE;
+BDA4;BDA4;1107 116F 11AF;BDA4;1107 116F 11AF;
+BDA5;BDA5;1107 116F 11B0;BDA5;1107 116F 11B0;
+BDA6;BDA6;1107 116F 11B1;BDA6;1107 116F 11B1;
+BDA7;BDA7;1107 116F 11B2;BDA7;1107 116F 11B2;
+BDA8;BDA8;1107 116F 11B3;BDA8;1107 116F 11B3;
+BDA9;BDA9;1107 116F 11B4;BDA9;1107 116F 11B4;
+BDAA;BDAA;1107 116F 11B5;BDAA;1107 116F 11B5;
+BDAB;BDAB;1107 116F 11B6;BDAB;1107 116F 11B6;
+BDAC;BDAC;1107 116F 11B7;BDAC;1107 116F 11B7;
+BDAD;BDAD;1107 116F 11B8;BDAD;1107 116F 11B8;
+BDAE;BDAE;1107 116F 11B9;BDAE;1107 116F 11B9;
+BDAF;BDAF;1107 116F 11BA;BDAF;1107 116F 11BA;
+BDB0;BDB0;1107 116F 11BB;BDB0;1107 116F 11BB;
+BDB1;BDB1;1107 116F 11BC;BDB1;1107 116F 11BC;
+BDB2;BDB2;1107 116F 11BD;BDB2;1107 116F 11BD;
+BDB3;BDB3;1107 116F 11BE;BDB3;1107 116F 11BE;
+BDB4;BDB4;1107 116F 11BF;BDB4;1107 116F 11BF;
+BDB5;BDB5;1107 116F 11C0;BDB5;1107 116F 11C0;
+BDB6;BDB6;1107 116F 11C1;BDB6;1107 116F 11C1;
+BDB7;BDB7;1107 116F 11C2;BDB7;1107 116F 11C2;
+BDB8;BDB8;1107 1170;BDB8;1107 1170;
+BDB9;BDB9;1107 1170 11A8;BDB9;1107 1170 11A8;
+BDBA;BDBA;1107 1170 11A9;BDBA;1107 1170 11A9;
+BDBB;BDBB;1107 1170 11AA;BDBB;1107 1170 11AA;
+BDBC;BDBC;1107 1170 11AB;BDBC;1107 1170 11AB;
+BDBD;BDBD;1107 1170 11AC;BDBD;1107 1170 11AC;
+BDBE;BDBE;1107 1170 11AD;BDBE;1107 1170 11AD;
+BDBF;BDBF;1107 1170 11AE;BDBF;1107 1170 11AE;
+BDC0;BDC0;1107 1170 11AF;BDC0;1107 1170 11AF;
+BDC1;BDC1;1107 1170 11B0;BDC1;1107 1170 11B0;
+BDC2;BDC2;1107 1170 11B1;BDC2;1107 1170 11B1;
+BDC3;BDC3;1107 1170 11B2;BDC3;1107 1170 11B2;
+BDC4;BDC4;1107 1170 11B3;BDC4;1107 1170 11B3;
+BDC5;BDC5;1107 1170 11B4;BDC5;1107 1170 11B4;
+BDC6;BDC6;1107 1170 11B5;BDC6;1107 1170 11B5;
+BDC7;BDC7;1107 1170 11B6;BDC7;1107 1170 11B6;
+BDC8;BDC8;1107 1170 11B7;BDC8;1107 1170 11B7;
+BDC9;BDC9;1107 1170 11B8;BDC9;1107 1170 11B8;
+BDCA;BDCA;1107 1170 11B9;BDCA;1107 1170 11B9;
+BDCB;BDCB;1107 1170 11BA;BDCB;1107 1170 11BA;
+BDCC;BDCC;1107 1170 11BB;BDCC;1107 1170 11BB;
+BDCD;BDCD;1107 1170 11BC;BDCD;1107 1170 11BC;
+BDCE;BDCE;1107 1170 11BD;BDCE;1107 1170 11BD;
+BDCF;BDCF;1107 1170 11BE;BDCF;1107 1170 11BE;
+BDD0;BDD0;1107 1170 11BF;BDD0;1107 1170 11BF;
+BDD1;BDD1;1107 1170 11C0;BDD1;1107 1170 11C0;
+BDD2;BDD2;1107 1170 11C1;BDD2;1107 1170 11C1;
+BDD3;BDD3;1107 1170 11C2;BDD3;1107 1170 11C2;
+BDD4;BDD4;1107 1171;BDD4;1107 1171;
+BDD5;BDD5;1107 1171 11A8;BDD5;1107 1171 11A8;
+BDD6;BDD6;1107 1171 11A9;BDD6;1107 1171 11A9;
+BDD7;BDD7;1107 1171 11AA;BDD7;1107 1171 11AA;
+BDD8;BDD8;1107 1171 11AB;BDD8;1107 1171 11AB;
+BDD9;BDD9;1107 1171 11AC;BDD9;1107 1171 11AC;
+BDDA;BDDA;1107 1171 11AD;BDDA;1107 1171 11AD;
+BDDB;BDDB;1107 1171 11AE;BDDB;1107 1171 11AE;
+BDDC;BDDC;1107 1171 11AF;BDDC;1107 1171 11AF;
+BDDD;BDDD;1107 1171 11B0;BDDD;1107 1171 11B0;
+BDDE;BDDE;1107 1171 11B1;BDDE;1107 1171 11B1;
+BDDF;BDDF;1107 1171 11B2;BDDF;1107 1171 11B2;
+BDE0;BDE0;1107 1171 11B3;BDE0;1107 1171 11B3;
+BDE1;BDE1;1107 1171 11B4;BDE1;1107 1171 11B4;
+BDE2;BDE2;1107 1171 11B5;BDE2;1107 1171 11B5;
+BDE3;BDE3;1107 1171 11B6;BDE3;1107 1171 11B6;
+BDE4;BDE4;1107 1171 11B7;BDE4;1107 1171 11B7;
+BDE5;BDE5;1107 1171 11B8;BDE5;1107 1171 11B8;
+BDE6;BDE6;1107 1171 11B9;BDE6;1107 1171 11B9;
+BDE7;BDE7;1107 1171 11BA;BDE7;1107 1171 11BA;
+BDE8;BDE8;1107 1171 11BB;BDE8;1107 1171 11BB;
+BDE9;BDE9;1107 1171 11BC;BDE9;1107 1171 11BC;
+BDEA;BDEA;1107 1171 11BD;BDEA;1107 1171 11BD;
+BDEB;BDEB;1107 1171 11BE;BDEB;1107 1171 11BE;
+BDEC;BDEC;1107 1171 11BF;BDEC;1107 1171 11BF;
+BDED;BDED;1107 1171 11C0;BDED;1107 1171 11C0;
+BDEE;BDEE;1107 1171 11C1;BDEE;1107 1171 11C1;
+BDEF;BDEF;1107 1171 11C2;BDEF;1107 1171 11C2;
+BDF0;BDF0;1107 1172;BDF0;1107 1172;
+BDF1;BDF1;1107 1172 11A8;BDF1;1107 1172 11A8;
+BDF2;BDF2;1107 1172 11A9;BDF2;1107 1172 11A9;
+BDF3;BDF3;1107 1172 11AA;BDF3;1107 1172 11AA;
+BDF4;BDF4;1107 1172 11AB;BDF4;1107 1172 11AB;
+BDF5;BDF5;1107 1172 11AC;BDF5;1107 1172 11AC;
+BDF6;BDF6;1107 1172 11AD;BDF6;1107 1172 11AD;
+BDF7;BDF7;1107 1172 11AE;BDF7;1107 1172 11AE;
+BDF8;BDF8;1107 1172 11AF;BDF8;1107 1172 11AF;
+BDF9;BDF9;1107 1172 11B0;BDF9;1107 1172 11B0;
+BDFA;BDFA;1107 1172 11B1;BDFA;1107 1172 11B1;
+BDFB;BDFB;1107 1172 11B2;BDFB;1107 1172 11B2;
+BDFC;BDFC;1107 1172 11B3;BDFC;1107 1172 11B3;
+BDFD;BDFD;1107 1172 11B4;BDFD;1107 1172 11B4;
+BDFE;BDFE;1107 1172 11B5;BDFE;1107 1172 11B5;
+BDFF;BDFF;1107 1172 11B6;BDFF;1107 1172 11B6;
+BE00;BE00;1107 1172 11B7;BE00;1107 1172 11B7;
+BE01;BE01;1107 1172 11B8;BE01;1107 1172 11B8;
+BE02;BE02;1107 1172 11B9;BE02;1107 1172 11B9;
+BE03;BE03;1107 1172 11BA;BE03;1107 1172 11BA;
+BE04;BE04;1107 1172 11BB;BE04;1107 1172 11BB;
+BE05;BE05;1107 1172 11BC;BE05;1107 1172 11BC;
+BE06;BE06;1107 1172 11BD;BE06;1107 1172 11BD;
+BE07;BE07;1107 1172 11BE;BE07;1107 1172 11BE;
+BE08;BE08;1107 1172 11BF;BE08;1107 1172 11BF;
+BE09;BE09;1107 1172 11C0;BE09;1107 1172 11C0;
+BE0A;BE0A;1107 1172 11C1;BE0A;1107 1172 11C1;
+BE0B;BE0B;1107 1172 11C2;BE0B;1107 1172 11C2;
+BE0C;BE0C;1107 1173;BE0C;1107 1173;
+BE0D;BE0D;1107 1173 11A8;BE0D;1107 1173 11A8;
+BE0E;BE0E;1107 1173 11A9;BE0E;1107 1173 11A9;
+BE0F;BE0F;1107 1173 11AA;BE0F;1107 1173 11AA;
+BE10;BE10;1107 1173 11AB;BE10;1107 1173 11AB;
+BE11;BE11;1107 1173 11AC;BE11;1107 1173 11AC;
+BE12;BE12;1107 1173 11AD;BE12;1107 1173 11AD;
+BE13;BE13;1107 1173 11AE;BE13;1107 1173 11AE;
+BE14;BE14;1107 1173 11AF;BE14;1107 1173 11AF;
+BE15;BE15;1107 1173 11B0;BE15;1107 1173 11B0;
+BE16;BE16;1107 1173 11B1;BE16;1107 1173 11B1;
+BE17;BE17;1107 1173 11B2;BE17;1107 1173 11B2;
+BE18;BE18;1107 1173 11B3;BE18;1107 1173 11B3;
+BE19;BE19;1107 1173 11B4;BE19;1107 1173 11B4;
+BE1A;BE1A;1107 1173 11B5;BE1A;1107 1173 11B5;
+BE1B;BE1B;1107 1173 11B6;BE1B;1107 1173 11B6;
+BE1C;BE1C;1107 1173 11B7;BE1C;1107 1173 11B7;
+BE1D;BE1D;1107 1173 11B8;BE1D;1107 1173 11B8;
+BE1E;BE1E;1107 1173 11B9;BE1E;1107 1173 11B9;
+BE1F;BE1F;1107 1173 11BA;BE1F;1107 1173 11BA;
+BE20;BE20;1107 1173 11BB;BE20;1107 1173 11BB;
+BE21;BE21;1107 1173 11BC;BE21;1107 1173 11BC;
+BE22;BE22;1107 1173 11BD;BE22;1107 1173 11BD;
+BE23;BE23;1107 1173 11BE;BE23;1107 1173 11BE;
+BE24;BE24;1107 1173 11BF;BE24;1107 1173 11BF;
+BE25;BE25;1107 1173 11C0;BE25;1107 1173 11C0;
+BE26;BE26;1107 1173 11C1;BE26;1107 1173 11C1;
+BE27;BE27;1107 1173 11C2;BE27;1107 1173 11C2;
+BE28;BE28;1107 1174;BE28;1107 1174;
+BE29;BE29;1107 1174 11A8;BE29;1107 1174 11A8;
+BE2A;BE2A;1107 1174 11A9;BE2A;1107 1174 11A9;
+BE2B;BE2B;1107 1174 11AA;BE2B;1107 1174 11AA;
+BE2C;BE2C;1107 1174 11AB;BE2C;1107 1174 11AB;
+BE2D;BE2D;1107 1174 11AC;BE2D;1107 1174 11AC;
+BE2E;BE2E;1107 1174 11AD;BE2E;1107 1174 11AD;
+BE2F;BE2F;1107 1174 11AE;BE2F;1107 1174 11AE;
+BE30;BE30;1107 1174 11AF;BE30;1107 1174 11AF;
+BE31;BE31;1107 1174 11B0;BE31;1107 1174 11B0;
+BE32;BE32;1107 1174 11B1;BE32;1107 1174 11B1;
+BE33;BE33;1107 1174 11B2;BE33;1107 1174 11B2;
+BE34;BE34;1107 1174 11B3;BE34;1107 1174 11B3;
+BE35;BE35;1107 1174 11B4;BE35;1107 1174 11B4;
+BE36;BE36;1107 1174 11B5;BE36;1107 1174 11B5;
+BE37;BE37;1107 1174 11B6;BE37;1107 1174 11B6;
+BE38;BE38;1107 1174 11B7;BE38;1107 1174 11B7;
+BE39;BE39;1107 1174 11B8;BE39;1107 1174 11B8;
+BE3A;BE3A;1107 1174 11B9;BE3A;1107 1174 11B9;
+BE3B;BE3B;1107 1174 11BA;BE3B;1107 1174 11BA;
+BE3C;BE3C;1107 1174 11BB;BE3C;1107 1174 11BB;
+BE3D;BE3D;1107 1174 11BC;BE3D;1107 1174 11BC;
+BE3E;BE3E;1107 1174 11BD;BE3E;1107 1174 11BD;
+BE3F;BE3F;1107 1174 11BE;BE3F;1107 1174 11BE;
+BE40;BE40;1107 1174 11BF;BE40;1107 1174 11BF;
+BE41;BE41;1107 1174 11C0;BE41;1107 1174 11C0;
+BE42;BE42;1107 1174 11C1;BE42;1107 1174 11C1;
+BE43;BE43;1107 1174 11C2;BE43;1107 1174 11C2;
+BE44;BE44;1107 1175;BE44;1107 1175;
+BE45;BE45;1107 1175 11A8;BE45;1107 1175 11A8;
+BE46;BE46;1107 1175 11A9;BE46;1107 1175 11A9;
+BE47;BE47;1107 1175 11AA;BE47;1107 1175 11AA;
+BE48;BE48;1107 1175 11AB;BE48;1107 1175 11AB;
+BE49;BE49;1107 1175 11AC;BE49;1107 1175 11AC;
+BE4A;BE4A;1107 1175 11AD;BE4A;1107 1175 11AD;
+BE4B;BE4B;1107 1175 11AE;BE4B;1107 1175 11AE;
+BE4C;BE4C;1107 1175 11AF;BE4C;1107 1175 11AF;
+BE4D;BE4D;1107 1175 11B0;BE4D;1107 1175 11B0;
+BE4E;BE4E;1107 1175 11B1;BE4E;1107 1175 11B1;
+BE4F;BE4F;1107 1175 11B2;BE4F;1107 1175 11B2;
+BE50;BE50;1107 1175 11B3;BE50;1107 1175 11B3;
+BE51;BE51;1107 1175 11B4;BE51;1107 1175 11B4;
+BE52;BE52;1107 1175 11B5;BE52;1107 1175 11B5;
+BE53;BE53;1107 1175 11B6;BE53;1107 1175 11B6;
+BE54;BE54;1107 1175 11B7;BE54;1107 1175 11B7;
+BE55;BE55;1107 1175 11B8;BE55;1107 1175 11B8;
+BE56;BE56;1107 1175 11B9;BE56;1107 1175 11B9;
+BE57;BE57;1107 1175 11BA;BE57;1107 1175 11BA;
+BE58;BE58;1107 1175 11BB;BE58;1107 1175 11BB;
+BE59;BE59;1107 1175 11BC;BE59;1107 1175 11BC;
+BE5A;BE5A;1107 1175 11BD;BE5A;1107 1175 11BD;
+BE5B;BE5B;1107 1175 11BE;BE5B;1107 1175 11BE;
+BE5C;BE5C;1107 1175 11BF;BE5C;1107 1175 11BF;
+BE5D;BE5D;1107 1175 11C0;BE5D;1107 1175 11C0;
+BE5E;BE5E;1107 1175 11C1;BE5E;1107 1175 11C1;
+BE5F;BE5F;1107 1175 11C2;BE5F;1107 1175 11C2;
+BE60;BE60;1108 1161;BE60;1108 1161;
+BE61;BE61;1108 1161 11A8;BE61;1108 1161 11A8;
+BE62;BE62;1108 1161 11A9;BE62;1108 1161 11A9;
+BE63;BE63;1108 1161 11AA;BE63;1108 1161 11AA;
+BE64;BE64;1108 1161 11AB;BE64;1108 1161 11AB;
+BE65;BE65;1108 1161 11AC;BE65;1108 1161 11AC;
+BE66;BE66;1108 1161 11AD;BE66;1108 1161 11AD;
+BE67;BE67;1108 1161 11AE;BE67;1108 1161 11AE;
+BE68;BE68;1108 1161 11AF;BE68;1108 1161 11AF;
+BE69;BE69;1108 1161 11B0;BE69;1108 1161 11B0;
+BE6A;BE6A;1108 1161 11B1;BE6A;1108 1161 11B1;
+BE6B;BE6B;1108 1161 11B2;BE6B;1108 1161 11B2;
+BE6C;BE6C;1108 1161 11B3;BE6C;1108 1161 11B3;
+BE6D;BE6D;1108 1161 11B4;BE6D;1108 1161 11B4;
+BE6E;BE6E;1108 1161 11B5;BE6E;1108 1161 11B5;
+BE6F;BE6F;1108 1161 11B6;BE6F;1108 1161 11B6;
+BE70;BE70;1108 1161 11B7;BE70;1108 1161 11B7;
+BE71;BE71;1108 1161 11B8;BE71;1108 1161 11B8;
+BE72;BE72;1108 1161 11B9;BE72;1108 1161 11B9;
+BE73;BE73;1108 1161 11BA;BE73;1108 1161 11BA;
+BE74;BE74;1108 1161 11BB;BE74;1108 1161 11BB;
+BE75;BE75;1108 1161 11BC;BE75;1108 1161 11BC;
+BE76;BE76;1108 1161 11BD;BE76;1108 1161 11BD;
+BE77;BE77;1108 1161 11BE;BE77;1108 1161 11BE;
+BE78;BE78;1108 1161 11BF;BE78;1108 1161 11BF;
+BE79;BE79;1108 1161 11C0;BE79;1108 1161 11C0;
+BE7A;BE7A;1108 1161 11C1;BE7A;1108 1161 11C1;
+BE7B;BE7B;1108 1161 11C2;BE7B;1108 1161 11C2;
+BE7C;BE7C;1108 1162;BE7C;1108 1162;
+BE7D;BE7D;1108 1162 11A8;BE7D;1108 1162 11A8;
+BE7E;BE7E;1108 1162 11A9;BE7E;1108 1162 11A9;
+BE7F;BE7F;1108 1162 11AA;BE7F;1108 1162 11AA;
+BE80;BE80;1108 1162 11AB;BE80;1108 1162 11AB;
+BE81;BE81;1108 1162 11AC;BE81;1108 1162 11AC;
+BE82;BE82;1108 1162 11AD;BE82;1108 1162 11AD;
+BE83;BE83;1108 1162 11AE;BE83;1108 1162 11AE;
+BE84;BE84;1108 1162 11AF;BE84;1108 1162 11AF;
+BE85;BE85;1108 1162 11B0;BE85;1108 1162 11B0;
+BE86;BE86;1108 1162 11B1;BE86;1108 1162 11B1;
+BE87;BE87;1108 1162 11B2;BE87;1108 1162 11B2;
+BE88;BE88;1108 1162 11B3;BE88;1108 1162 11B3;
+BE89;BE89;1108 1162 11B4;BE89;1108 1162 11B4;
+BE8A;BE8A;1108 1162 11B5;BE8A;1108 1162 11B5;
+BE8B;BE8B;1108 1162 11B6;BE8B;1108 1162 11B6;
+BE8C;BE8C;1108 1162 11B7;BE8C;1108 1162 11B7;
+BE8D;BE8D;1108 1162 11B8;BE8D;1108 1162 11B8;
+BE8E;BE8E;1108 1162 11B9;BE8E;1108 1162 11B9;
+BE8F;BE8F;1108 1162 11BA;BE8F;1108 1162 11BA;
+BE90;BE90;1108 1162 11BB;BE90;1108 1162 11BB;
+BE91;BE91;1108 1162 11BC;BE91;1108 1162 11BC;
+BE92;BE92;1108 1162 11BD;BE92;1108 1162 11BD;
+BE93;BE93;1108 1162 11BE;BE93;1108 1162 11BE;
+BE94;BE94;1108 1162 11BF;BE94;1108 1162 11BF;
+BE95;BE95;1108 1162 11C0;BE95;1108 1162 11C0;
+BE96;BE96;1108 1162 11C1;BE96;1108 1162 11C1;
+BE97;BE97;1108 1162 11C2;BE97;1108 1162 11C2;
+BE98;BE98;1108 1163;BE98;1108 1163;
+BE99;BE99;1108 1163 11A8;BE99;1108 1163 11A8;
+BE9A;BE9A;1108 1163 11A9;BE9A;1108 1163 11A9;
+BE9B;BE9B;1108 1163 11AA;BE9B;1108 1163 11AA;
+BE9C;BE9C;1108 1163 11AB;BE9C;1108 1163 11AB;
+BE9D;BE9D;1108 1163 11AC;BE9D;1108 1163 11AC;
+BE9E;BE9E;1108 1163 11AD;BE9E;1108 1163 11AD;
+BE9F;BE9F;1108 1163 11AE;BE9F;1108 1163 11AE;
+BEA0;BEA0;1108 1163 11AF;BEA0;1108 1163 11AF;
+BEA1;BEA1;1108 1163 11B0;BEA1;1108 1163 11B0;
+BEA2;BEA2;1108 1163 11B1;BEA2;1108 1163 11B1;
+BEA3;BEA3;1108 1163 11B2;BEA3;1108 1163 11B2;
+BEA4;BEA4;1108 1163 11B3;BEA4;1108 1163 11B3;
+BEA5;BEA5;1108 1163 11B4;BEA5;1108 1163 11B4;
+BEA6;BEA6;1108 1163 11B5;BEA6;1108 1163 11B5;
+BEA7;BEA7;1108 1163 11B6;BEA7;1108 1163 11B6;
+BEA8;BEA8;1108 1163 11B7;BEA8;1108 1163 11B7;
+BEA9;BEA9;1108 1163 11B8;BEA9;1108 1163 11B8;
+BEAA;BEAA;1108 1163 11B9;BEAA;1108 1163 11B9;
+BEAB;BEAB;1108 1163 11BA;BEAB;1108 1163 11BA;
+BEAC;BEAC;1108 1163 11BB;BEAC;1108 1163 11BB;
+BEAD;BEAD;1108 1163 11BC;BEAD;1108 1163 11BC;
+BEAE;BEAE;1108 1163 11BD;BEAE;1108 1163 11BD;
+BEAF;BEAF;1108 1163 11BE;BEAF;1108 1163 11BE;
+BEB0;BEB0;1108 1163 11BF;BEB0;1108 1163 11BF;
+BEB1;BEB1;1108 1163 11C0;BEB1;1108 1163 11C0;
+BEB2;BEB2;1108 1163 11C1;BEB2;1108 1163 11C1;
+BEB3;BEB3;1108 1163 11C2;BEB3;1108 1163 11C2;
+BEB4;BEB4;1108 1164;BEB4;1108 1164;
+BEB5;BEB5;1108 1164 11A8;BEB5;1108 1164 11A8;
+BEB6;BEB6;1108 1164 11A9;BEB6;1108 1164 11A9;
+BEB7;BEB7;1108 1164 11AA;BEB7;1108 1164 11AA;
+BEB8;BEB8;1108 1164 11AB;BEB8;1108 1164 11AB;
+BEB9;BEB9;1108 1164 11AC;BEB9;1108 1164 11AC;
+BEBA;BEBA;1108 1164 11AD;BEBA;1108 1164 11AD;
+BEBB;BEBB;1108 1164 11AE;BEBB;1108 1164 11AE;
+BEBC;BEBC;1108 1164 11AF;BEBC;1108 1164 11AF;
+BEBD;BEBD;1108 1164 11B0;BEBD;1108 1164 11B0;
+BEBE;BEBE;1108 1164 11B1;BEBE;1108 1164 11B1;
+BEBF;BEBF;1108 1164 11B2;BEBF;1108 1164 11B2;
+BEC0;BEC0;1108 1164 11B3;BEC0;1108 1164 11B3;
+BEC1;BEC1;1108 1164 11B4;BEC1;1108 1164 11B4;
+BEC2;BEC2;1108 1164 11B5;BEC2;1108 1164 11B5;
+BEC3;BEC3;1108 1164 11B6;BEC3;1108 1164 11B6;
+BEC4;BEC4;1108 1164 11B7;BEC4;1108 1164 11B7;
+BEC5;BEC5;1108 1164 11B8;BEC5;1108 1164 11B8;
+BEC6;BEC6;1108 1164 11B9;BEC6;1108 1164 11B9;
+BEC7;BEC7;1108 1164 11BA;BEC7;1108 1164 11BA;
+BEC8;BEC8;1108 1164 11BB;BEC8;1108 1164 11BB;
+BEC9;BEC9;1108 1164 11BC;BEC9;1108 1164 11BC;
+BECA;BECA;1108 1164 11BD;BECA;1108 1164 11BD;
+BECB;BECB;1108 1164 11BE;BECB;1108 1164 11BE;
+BECC;BECC;1108 1164 11BF;BECC;1108 1164 11BF;
+BECD;BECD;1108 1164 11C0;BECD;1108 1164 11C0;
+BECE;BECE;1108 1164 11C1;BECE;1108 1164 11C1;
+BECF;BECF;1108 1164 11C2;BECF;1108 1164 11C2;
+BED0;BED0;1108 1165;BED0;1108 1165;
+BED1;BED1;1108 1165 11A8;BED1;1108 1165 11A8;
+BED2;BED2;1108 1165 11A9;BED2;1108 1165 11A9;
+BED3;BED3;1108 1165 11AA;BED3;1108 1165 11AA;
+BED4;BED4;1108 1165 11AB;BED4;1108 1165 11AB;
+BED5;BED5;1108 1165 11AC;BED5;1108 1165 11AC;
+BED6;BED6;1108 1165 11AD;BED6;1108 1165 11AD;
+BED7;BED7;1108 1165 11AE;BED7;1108 1165 11AE;
+BED8;BED8;1108 1165 11AF;BED8;1108 1165 11AF;
+BED9;BED9;1108 1165 11B0;BED9;1108 1165 11B0;
+BEDA;BEDA;1108 1165 11B1;BEDA;1108 1165 11B1;
+BEDB;BEDB;1108 1165 11B2;BEDB;1108 1165 11B2;
+BEDC;BEDC;1108 1165 11B3;BEDC;1108 1165 11B3;
+BEDD;BEDD;1108 1165 11B4;BEDD;1108 1165 11B4;
+BEDE;BEDE;1108 1165 11B5;BEDE;1108 1165 11B5;
+BEDF;BEDF;1108 1165 11B6;BEDF;1108 1165 11B6;
+BEE0;BEE0;1108 1165 11B7;BEE0;1108 1165 11B7;
+BEE1;BEE1;1108 1165 11B8;BEE1;1108 1165 11B8;
+BEE2;BEE2;1108 1165 11B9;BEE2;1108 1165 11B9;
+BEE3;BEE3;1108 1165 11BA;BEE3;1108 1165 11BA;
+BEE4;BEE4;1108 1165 11BB;BEE4;1108 1165 11BB;
+BEE5;BEE5;1108 1165 11BC;BEE5;1108 1165 11BC;
+BEE6;BEE6;1108 1165 11BD;BEE6;1108 1165 11BD;
+BEE7;BEE7;1108 1165 11BE;BEE7;1108 1165 11BE;
+BEE8;BEE8;1108 1165 11BF;BEE8;1108 1165 11BF;
+BEE9;BEE9;1108 1165 11C0;BEE9;1108 1165 11C0;
+BEEA;BEEA;1108 1165 11C1;BEEA;1108 1165 11C1;
+BEEB;BEEB;1108 1165 11C2;BEEB;1108 1165 11C2;
+BEEC;BEEC;1108 1166;BEEC;1108 1166;
+BEED;BEED;1108 1166 11A8;BEED;1108 1166 11A8;
+BEEE;BEEE;1108 1166 11A9;BEEE;1108 1166 11A9;
+BEEF;BEEF;1108 1166 11AA;BEEF;1108 1166 11AA;
+BEF0;BEF0;1108 1166 11AB;BEF0;1108 1166 11AB;
+BEF1;BEF1;1108 1166 11AC;BEF1;1108 1166 11AC;
+BEF2;BEF2;1108 1166 11AD;BEF2;1108 1166 11AD;
+BEF3;BEF3;1108 1166 11AE;BEF3;1108 1166 11AE;
+BEF4;BEF4;1108 1166 11AF;BEF4;1108 1166 11AF;
+BEF5;BEF5;1108 1166 11B0;BEF5;1108 1166 11B0;
+BEF6;BEF6;1108 1166 11B1;BEF6;1108 1166 11B1;
+BEF7;BEF7;1108 1166 11B2;BEF7;1108 1166 11B2;
+BEF8;BEF8;1108 1166 11B3;BEF8;1108 1166 11B3;
+BEF9;BEF9;1108 1166 11B4;BEF9;1108 1166 11B4;
+BEFA;BEFA;1108 1166 11B5;BEFA;1108 1166 11B5;
+BEFB;BEFB;1108 1166 11B6;BEFB;1108 1166 11B6;
+BEFC;BEFC;1108 1166 11B7;BEFC;1108 1166 11B7;
+BEFD;BEFD;1108 1166 11B8;BEFD;1108 1166 11B8;
+BEFE;BEFE;1108 1166 11B9;BEFE;1108 1166 11B9;
+BEFF;BEFF;1108 1166 11BA;BEFF;1108 1166 11BA;
+BF00;BF00;1108 1166 11BB;BF00;1108 1166 11BB;
+BF01;BF01;1108 1166 11BC;BF01;1108 1166 11BC;
+BF02;BF02;1108 1166 11BD;BF02;1108 1166 11BD;
+BF03;BF03;1108 1166 11BE;BF03;1108 1166 11BE;
+BF04;BF04;1108 1166 11BF;BF04;1108 1166 11BF;
+BF05;BF05;1108 1166 11C0;BF05;1108 1166 11C0;
+BF06;BF06;1108 1166 11C1;BF06;1108 1166 11C1;
+BF07;BF07;1108 1166 11C2;BF07;1108 1166 11C2;
+BF08;BF08;1108 1167;BF08;1108 1167;
+BF09;BF09;1108 1167 11A8;BF09;1108 1167 11A8;
+BF0A;BF0A;1108 1167 11A9;BF0A;1108 1167 11A9;
+BF0B;BF0B;1108 1167 11AA;BF0B;1108 1167 11AA;
+BF0C;BF0C;1108 1167 11AB;BF0C;1108 1167 11AB;
+BF0D;BF0D;1108 1167 11AC;BF0D;1108 1167 11AC;
+BF0E;BF0E;1108 1167 11AD;BF0E;1108 1167 11AD;
+BF0F;BF0F;1108 1167 11AE;BF0F;1108 1167 11AE;
+BF10;BF10;1108 1167 11AF;BF10;1108 1167 11AF;
+BF11;BF11;1108 1167 11B0;BF11;1108 1167 11B0;
+BF12;BF12;1108 1167 11B1;BF12;1108 1167 11B1;
+BF13;BF13;1108 1167 11B2;BF13;1108 1167 11B2;
+BF14;BF14;1108 1167 11B3;BF14;1108 1167 11B3;
+BF15;BF15;1108 1167 11B4;BF15;1108 1167 11B4;
+BF16;BF16;1108 1167 11B5;BF16;1108 1167 11B5;
+BF17;BF17;1108 1167 11B6;BF17;1108 1167 11B6;
+BF18;BF18;1108 1167 11B7;BF18;1108 1167 11B7;
+BF19;BF19;1108 1167 11B8;BF19;1108 1167 11B8;
+BF1A;BF1A;1108 1167 11B9;BF1A;1108 1167 11B9;
+BF1B;BF1B;1108 1167 11BA;BF1B;1108 1167 11BA;
+BF1C;BF1C;1108 1167 11BB;BF1C;1108 1167 11BB;
+BF1D;BF1D;1108 1167 11BC;BF1D;1108 1167 11BC;
+BF1E;BF1E;1108 1167 11BD;BF1E;1108 1167 11BD;
+BF1F;BF1F;1108 1167 11BE;BF1F;1108 1167 11BE;
+BF20;BF20;1108 1167 11BF;BF20;1108 1167 11BF;
+BF21;BF21;1108 1167 11C0;BF21;1108 1167 11C0;
+BF22;BF22;1108 1167 11C1;BF22;1108 1167 11C1;
+BF23;BF23;1108 1167 11C2;BF23;1108 1167 11C2;
+BF24;BF24;1108 1168;BF24;1108 1168;
+BF25;BF25;1108 1168 11A8;BF25;1108 1168 11A8;
+BF26;BF26;1108 1168 11A9;BF26;1108 1168 11A9;
+BF27;BF27;1108 1168 11AA;BF27;1108 1168 11AA;
+BF28;BF28;1108 1168 11AB;BF28;1108 1168 11AB;
+BF29;BF29;1108 1168 11AC;BF29;1108 1168 11AC;
+BF2A;BF2A;1108 1168 11AD;BF2A;1108 1168 11AD;
+BF2B;BF2B;1108 1168 11AE;BF2B;1108 1168 11AE;
+BF2C;BF2C;1108 1168 11AF;BF2C;1108 1168 11AF;
+BF2D;BF2D;1108 1168 11B0;BF2D;1108 1168 11B0;
+BF2E;BF2E;1108 1168 11B1;BF2E;1108 1168 11B1;
+BF2F;BF2F;1108 1168 11B2;BF2F;1108 1168 11B2;
+BF30;BF30;1108 1168 11B3;BF30;1108 1168 11B3;
+BF31;BF31;1108 1168 11B4;BF31;1108 1168 11B4;
+BF32;BF32;1108 1168 11B5;BF32;1108 1168 11B5;
+BF33;BF33;1108 1168 11B6;BF33;1108 1168 11B6;
+BF34;BF34;1108 1168 11B7;BF34;1108 1168 11B7;
+BF35;BF35;1108 1168 11B8;BF35;1108 1168 11B8;
+BF36;BF36;1108 1168 11B9;BF36;1108 1168 11B9;
+BF37;BF37;1108 1168 11BA;BF37;1108 1168 11BA;
+BF38;BF38;1108 1168 11BB;BF38;1108 1168 11BB;
+BF39;BF39;1108 1168 11BC;BF39;1108 1168 11BC;
+BF3A;BF3A;1108 1168 11BD;BF3A;1108 1168 11BD;
+BF3B;BF3B;1108 1168 11BE;BF3B;1108 1168 11BE;
+BF3C;BF3C;1108 1168 11BF;BF3C;1108 1168 11BF;
+BF3D;BF3D;1108 1168 11C0;BF3D;1108 1168 11C0;
+BF3E;BF3E;1108 1168 11C1;BF3E;1108 1168 11C1;
+BF3F;BF3F;1108 1168 11C2;BF3F;1108 1168 11C2;
+BF40;BF40;1108 1169;BF40;1108 1169;
+BF41;BF41;1108 1169 11A8;BF41;1108 1169 11A8;
+BF42;BF42;1108 1169 11A9;BF42;1108 1169 11A9;
+BF43;BF43;1108 1169 11AA;BF43;1108 1169 11AA;
+BF44;BF44;1108 1169 11AB;BF44;1108 1169 11AB;
+BF45;BF45;1108 1169 11AC;BF45;1108 1169 11AC;
+BF46;BF46;1108 1169 11AD;BF46;1108 1169 11AD;
+BF47;BF47;1108 1169 11AE;BF47;1108 1169 11AE;
+BF48;BF48;1108 1169 11AF;BF48;1108 1169 11AF;
+BF49;BF49;1108 1169 11B0;BF49;1108 1169 11B0;
+BF4A;BF4A;1108 1169 11B1;BF4A;1108 1169 11B1;
+BF4B;BF4B;1108 1169 11B2;BF4B;1108 1169 11B2;
+BF4C;BF4C;1108 1169 11B3;BF4C;1108 1169 11B3;
+BF4D;BF4D;1108 1169 11B4;BF4D;1108 1169 11B4;
+BF4E;BF4E;1108 1169 11B5;BF4E;1108 1169 11B5;
+BF4F;BF4F;1108 1169 11B6;BF4F;1108 1169 11B6;
+BF50;BF50;1108 1169 11B7;BF50;1108 1169 11B7;
+BF51;BF51;1108 1169 11B8;BF51;1108 1169 11B8;
+BF52;BF52;1108 1169 11B9;BF52;1108 1169 11B9;
+BF53;BF53;1108 1169 11BA;BF53;1108 1169 11BA;
+BF54;BF54;1108 1169 11BB;BF54;1108 1169 11BB;
+BF55;BF55;1108 1169 11BC;BF55;1108 1169 11BC;
+BF56;BF56;1108 1169 11BD;BF56;1108 1169 11BD;
+BF57;BF57;1108 1169 11BE;BF57;1108 1169 11BE;
+BF58;BF58;1108 1169 11BF;BF58;1108 1169 11BF;
+BF59;BF59;1108 1169 11C0;BF59;1108 1169 11C0;
+BF5A;BF5A;1108 1169 11C1;BF5A;1108 1169 11C1;
+BF5B;BF5B;1108 1169 11C2;BF5B;1108 1169 11C2;
+BF5C;BF5C;1108 116A;BF5C;1108 116A;
+BF5D;BF5D;1108 116A 11A8;BF5D;1108 116A 11A8;
+BF5E;BF5E;1108 116A 11A9;BF5E;1108 116A 11A9;
+BF5F;BF5F;1108 116A 11AA;BF5F;1108 116A 11AA;
+BF60;BF60;1108 116A 11AB;BF60;1108 116A 11AB;
+BF61;BF61;1108 116A 11AC;BF61;1108 116A 11AC;
+BF62;BF62;1108 116A 11AD;BF62;1108 116A 11AD;
+BF63;BF63;1108 116A 11AE;BF63;1108 116A 11AE;
+BF64;BF64;1108 116A 11AF;BF64;1108 116A 11AF;
+BF65;BF65;1108 116A 11B0;BF65;1108 116A 11B0;
+BF66;BF66;1108 116A 11B1;BF66;1108 116A 11B1;
+BF67;BF67;1108 116A 11B2;BF67;1108 116A 11B2;
+BF68;BF68;1108 116A 11B3;BF68;1108 116A 11B3;
+BF69;BF69;1108 116A 11B4;BF69;1108 116A 11B4;
+BF6A;BF6A;1108 116A 11B5;BF6A;1108 116A 11B5;
+BF6B;BF6B;1108 116A 11B6;BF6B;1108 116A 11B6;
+BF6C;BF6C;1108 116A 11B7;BF6C;1108 116A 11B7;
+BF6D;BF6D;1108 116A 11B8;BF6D;1108 116A 11B8;
+BF6E;BF6E;1108 116A 11B9;BF6E;1108 116A 11B9;
+BF6F;BF6F;1108 116A 11BA;BF6F;1108 116A 11BA;
+BF70;BF70;1108 116A 11BB;BF70;1108 116A 11BB;
+BF71;BF71;1108 116A 11BC;BF71;1108 116A 11BC;
+BF72;BF72;1108 116A 11BD;BF72;1108 116A 11BD;
+BF73;BF73;1108 116A 11BE;BF73;1108 116A 11BE;
+BF74;BF74;1108 116A 11BF;BF74;1108 116A 11BF;
+BF75;BF75;1108 116A 11C0;BF75;1108 116A 11C0;
+BF76;BF76;1108 116A 11C1;BF76;1108 116A 11C1;
+BF77;BF77;1108 116A 11C2;BF77;1108 116A 11C2;
+BF78;BF78;1108 116B;BF78;1108 116B;
+BF79;BF79;1108 116B 11A8;BF79;1108 116B 11A8;
+BF7A;BF7A;1108 116B 11A9;BF7A;1108 116B 11A9;
+BF7B;BF7B;1108 116B 11AA;BF7B;1108 116B 11AA;
+BF7C;BF7C;1108 116B 11AB;BF7C;1108 116B 11AB;
+BF7D;BF7D;1108 116B 11AC;BF7D;1108 116B 11AC;
+BF7E;BF7E;1108 116B 11AD;BF7E;1108 116B 11AD;
+BF7F;BF7F;1108 116B 11AE;BF7F;1108 116B 11AE;
+BF80;BF80;1108 116B 11AF;BF80;1108 116B 11AF;
+BF81;BF81;1108 116B 11B0;BF81;1108 116B 11B0;
+BF82;BF82;1108 116B 11B1;BF82;1108 116B 11B1;
+BF83;BF83;1108 116B 11B2;BF83;1108 116B 11B2;
+BF84;BF84;1108 116B 11B3;BF84;1108 116B 11B3;
+BF85;BF85;1108 116B 11B4;BF85;1108 116B 11B4;
+BF86;BF86;1108 116B 11B5;BF86;1108 116B 11B5;
+BF87;BF87;1108 116B 11B6;BF87;1108 116B 11B6;
+BF88;BF88;1108 116B 11B7;BF88;1108 116B 11B7;
+BF89;BF89;1108 116B 11B8;BF89;1108 116B 11B8;
+BF8A;BF8A;1108 116B 11B9;BF8A;1108 116B 11B9;
+BF8B;BF8B;1108 116B 11BA;BF8B;1108 116B 11BA;
+BF8C;BF8C;1108 116B 11BB;BF8C;1108 116B 11BB;
+BF8D;BF8D;1108 116B 11BC;BF8D;1108 116B 11BC;
+BF8E;BF8E;1108 116B 11BD;BF8E;1108 116B 11BD;
+BF8F;BF8F;1108 116B 11BE;BF8F;1108 116B 11BE;
+BF90;BF90;1108 116B 11BF;BF90;1108 116B 11BF;
+BF91;BF91;1108 116B 11C0;BF91;1108 116B 11C0;
+BF92;BF92;1108 116B 11C1;BF92;1108 116B 11C1;
+BF93;BF93;1108 116B 11C2;BF93;1108 116B 11C2;
+BF94;BF94;1108 116C;BF94;1108 116C;
+BF95;BF95;1108 116C 11A8;BF95;1108 116C 11A8;
+BF96;BF96;1108 116C 11A9;BF96;1108 116C 11A9;
+BF97;BF97;1108 116C 11AA;BF97;1108 116C 11AA;
+BF98;BF98;1108 116C 11AB;BF98;1108 116C 11AB;
+BF99;BF99;1108 116C 11AC;BF99;1108 116C 11AC;
+BF9A;BF9A;1108 116C 11AD;BF9A;1108 116C 11AD;
+BF9B;BF9B;1108 116C 11AE;BF9B;1108 116C 11AE;
+BF9C;BF9C;1108 116C 11AF;BF9C;1108 116C 11AF;
+BF9D;BF9D;1108 116C 11B0;BF9D;1108 116C 11B0;
+BF9E;BF9E;1108 116C 11B1;BF9E;1108 116C 11B1;
+BF9F;BF9F;1108 116C 11B2;BF9F;1108 116C 11B2;
+BFA0;BFA0;1108 116C 11B3;BFA0;1108 116C 11B3;
+BFA1;BFA1;1108 116C 11B4;BFA1;1108 116C 11B4;
+BFA2;BFA2;1108 116C 11B5;BFA2;1108 116C 11B5;
+BFA3;BFA3;1108 116C 11B6;BFA3;1108 116C 11B6;
+BFA4;BFA4;1108 116C 11B7;BFA4;1108 116C 11B7;
+BFA5;BFA5;1108 116C 11B8;BFA5;1108 116C 11B8;
+BFA6;BFA6;1108 116C 11B9;BFA6;1108 116C 11B9;
+BFA7;BFA7;1108 116C 11BA;BFA7;1108 116C 11BA;
+BFA8;BFA8;1108 116C 11BB;BFA8;1108 116C 11BB;
+BFA9;BFA9;1108 116C 11BC;BFA9;1108 116C 11BC;
+BFAA;BFAA;1108 116C 11BD;BFAA;1108 116C 11BD;
+BFAB;BFAB;1108 116C 11BE;BFAB;1108 116C 11BE;
+BFAC;BFAC;1108 116C 11BF;BFAC;1108 116C 11BF;
+BFAD;BFAD;1108 116C 11C0;BFAD;1108 116C 11C0;
+BFAE;BFAE;1108 116C 11C1;BFAE;1108 116C 11C1;
+BFAF;BFAF;1108 116C 11C2;BFAF;1108 116C 11C2;
+BFB0;BFB0;1108 116D;BFB0;1108 116D;
+BFB1;BFB1;1108 116D 11A8;BFB1;1108 116D 11A8;
+BFB2;BFB2;1108 116D 11A9;BFB2;1108 116D 11A9;
+BFB3;BFB3;1108 116D 11AA;BFB3;1108 116D 11AA;
+BFB4;BFB4;1108 116D 11AB;BFB4;1108 116D 11AB;
+BFB5;BFB5;1108 116D 11AC;BFB5;1108 116D 11AC;
+BFB6;BFB6;1108 116D 11AD;BFB6;1108 116D 11AD;
+BFB7;BFB7;1108 116D 11AE;BFB7;1108 116D 11AE;
+BFB8;BFB8;1108 116D 11AF;BFB8;1108 116D 11AF;
+BFB9;BFB9;1108 116D 11B0;BFB9;1108 116D 11B0;
+BFBA;BFBA;1108 116D 11B1;BFBA;1108 116D 11B1;
+BFBB;BFBB;1108 116D 11B2;BFBB;1108 116D 11B2;
+BFBC;BFBC;1108 116D 11B3;BFBC;1108 116D 11B3;
+BFBD;BFBD;1108 116D 11B4;BFBD;1108 116D 11B4;
+BFBE;BFBE;1108 116D 11B5;BFBE;1108 116D 11B5;
+BFBF;BFBF;1108 116D 11B6;BFBF;1108 116D 11B6;
+BFC0;BFC0;1108 116D 11B7;BFC0;1108 116D 11B7;
+BFC1;BFC1;1108 116D 11B8;BFC1;1108 116D 11B8;
+BFC2;BFC2;1108 116D 11B9;BFC2;1108 116D 11B9;
+BFC3;BFC3;1108 116D 11BA;BFC3;1108 116D 11BA;
+BFC4;BFC4;1108 116D 11BB;BFC4;1108 116D 11BB;
+BFC5;BFC5;1108 116D 11BC;BFC5;1108 116D 11BC;
+BFC6;BFC6;1108 116D 11BD;BFC6;1108 116D 11BD;
+BFC7;BFC7;1108 116D 11BE;BFC7;1108 116D 11BE;
+BFC8;BFC8;1108 116D 11BF;BFC8;1108 116D 11BF;
+BFC9;BFC9;1108 116D 11C0;BFC9;1108 116D 11C0;
+BFCA;BFCA;1108 116D 11C1;BFCA;1108 116D 11C1;
+BFCB;BFCB;1108 116D 11C2;BFCB;1108 116D 11C2;
+BFCC;BFCC;1108 116E;BFCC;1108 116E;
+BFCD;BFCD;1108 116E 11A8;BFCD;1108 116E 11A8;
+BFCE;BFCE;1108 116E 11A9;BFCE;1108 116E 11A9;
+BFCF;BFCF;1108 116E 11AA;BFCF;1108 116E 11AA;
+BFD0;BFD0;1108 116E 11AB;BFD0;1108 116E 11AB;
+BFD1;BFD1;1108 116E 11AC;BFD1;1108 116E 11AC;
+BFD2;BFD2;1108 116E 11AD;BFD2;1108 116E 11AD;
+BFD3;BFD3;1108 116E 11AE;BFD3;1108 116E 11AE;
+BFD4;BFD4;1108 116E 11AF;BFD4;1108 116E 11AF;
+BFD5;BFD5;1108 116E 11B0;BFD5;1108 116E 11B0;
+BFD6;BFD6;1108 116E 11B1;BFD6;1108 116E 11B1;
+BFD7;BFD7;1108 116E 11B2;BFD7;1108 116E 11B2;
+BFD8;BFD8;1108 116E 11B3;BFD8;1108 116E 11B3;
+BFD9;BFD9;1108 116E 11B4;BFD9;1108 116E 11B4;
+BFDA;BFDA;1108 116E 11B5;BFDA;1108 116E 11B5;
+BFDB;BFDB;1108 116E 11B6;BFDB;1108 116E 11B6;
+BFDC;BFDC;1108 116E 11B7;BFDC;1108 116E 11B7;
+BFDD;BFDD;1108 116E 11B8;BFDD;1108 116E 11B8;
+BFDE;BFDE;1108 116E 11B9;BFDE;1108 116E 11B9;
+BFDF;BFDF;1108 116E 11BA;BFDF;1108 116E 11BA;
+BFE0;BFE0;1108 116E 11BB;BFE0;1108 116E 11BB;
+BFE1;BFE1;1108 116E 11BC;BFE1;1108 116E 11BC;
+BFE2;BFE2;1108 116E 11BD;BFE2;1108 116E 11BD;
+BFE3;BFE3;1108 116E 11BE;BFE3;1108 116E 11BE;
+BFE4;BFE4;1108 116E 11BF;BFE4;1108 116E 11BF;
+BFE5;BFE5;1108 116E 11C0;BFE5;1108 116E 11C0;
+BFE6;BFE6;1108 116E 11C1;BFE6;1108 116E 11C1;
+BFE7;BFE7;1108 116E 11C2;BFE7;1108 116E 11C2;
+BFE8;BFE8;1108 116F;BFE8;1108 116F;
+BFE9;BFE9;1108 116F 11A8;BFE9;1108 116F 11A8;
+BFEA;BFEA;1108 116F 11A9;BFEA;1108 116F 11A9;
+BFEB;BFEB;1108 116F 11AA;BFEB;1108 116F 11AA;
+BFEC;BFEC;1108 116F 11AB;BFEC;1108 116F 11AB;
+BFED;BFED;1108 116F 11AC;BFED;1108 116F 11AC;
+BFEE;BFEE;1108 116F 11AD;BFEE;1108 116F 11AD;
+BFEF;BFEF;1108 116F 11AE;BFEF;1108 116F 11AE;
+BFF0;BFF0;1108 116F 11AF;BFF0;1108 116F 11AF;
+BFF1;BFF1;1108 116F 11B0;BFF1;1108 116F 11B0;
+BFF2;BFF2;1108 116F 11B1;BFF2;1108 116F 11B1;
+BFF3;BFF3;1108 116F 11B2;BFF3;1108 116F 11B2;
+BFF4;BFF4;1108 116F 11B3;BFF4;1108 116F 11B3;
+BFF5;BFF5;1108 116F 11B4;BFF5;1108 116F 11B4;
+BFF6;BFF6;1108 116F 11B5;BFF6;1108 116F 11B5;
+BFF7;BFF7;1108 116F 11B6;BFF7;1108 116F 11B6;
+BFF8;BFF8;1108 116F 11B7;BFF8;1108 116F 11B7;
+BFF9;BFF9;1108 116F 11B8;BFF9;1108 116F 11B8;
+BFFA;BFFA;1108 116F 11B9;BFFA;1108 116F 11B9;
+BFFB;BFFB;1108 116F 11BA;BFFB;1108 116F 11BA;
+BFFC;BFFC;1108 116F 11BB;BFFC;1108 116F 11BB;
+BFFD;BFFD;1108 116F 11BC;BFFD;1108 116F 11BC;
+BFFE;BFFE;1108 116F 11BD;BFFE;1108 116F 11BD;
+BFFF;BFFF;1108 116F 11BE;BFFF;1108 116F 11BE;
+C000;C000;1108 116F 11BF;C000;1108 116F 11BF;
+C001;C001;1108 116F 11C0;C001;1108 116F 11C0;
+C002;C002;1108 116F 11C1;C002;1108 116F 11C1;
+C003;C003;1108 116F 11C2;C003;1108 116F 11C2;
+C004;C004;1108 1170;C004;1108 1170;
+C005;C005;1108 1170 11A8;C005;1108 1170 11A8;
+C006;C006;1108 1170 11A9;C006;1108 1170 11A9;
+C007;C007;1108 1170 11AA;C007;1108 1170 11AA;
+C008;C008;1108 1170 11AB;C008;1108 1170 11AB;
+C009;C009;1108 1170 11AC;C009;1108 1170 11AC;
+C00A;C00A;1108 1170 11AD;C00A;1108 1170 11AD;
+C00B;C00B;1108 1170 11AE;C00B;1108 1170 11AE;
+C00C;C00C;1108 1170 11AF;C00C;1108 1170 11AF;
+C00D;C00D;1108 1170 11B0;C00D;1108 1170 11B0;
+C00E;C00E;1108 1170 11B1;C00E;1108 1170 11B1;
+C00F;C00F;1108 1170 11B2;C00F;1108 1170 11B2;
+C010;C010;1108 1170 11B3;C010;1108 1170 11B3;
+C011;C011;1108 1170 11B4;C011;1108 1170 11B4;
+C012;C012;1108 1170 11B5;C012;1108 1170 11B5;
+C013;C013;1108 1170 11B6;C013;1108 1170 11B6;
+C014;C014;1108 1170 11B7;C014;1108 1170 11B7;
+C015;C015;1108 1170 11B8;C015;1108 1170 11B8;
+C016;C016;1108 1170 11B9;C016;1108 1170 11B9;
+C017;C017;1108 1170 11BA;C017;1108 1170 11BA;
+C018;C018;1108 1170 11BB;C018;1108 1170 11BB;
+C019;C019;1108 1170 11BC;C019;1108 1170 11BC;
+C01A;C01A;1108 1170 11BD;C01A;1108 1170 11BD;
+C01B;C01B;1108 1170 11BE;C01B;1108 1170 11BE;
+C01C;C01C;1108 1170 11BF;C01C;1108 1170 11BF;
+C01D;C01D;1108 1170 11C0;C01D;1108 1170 11C0;
+C01E;C01E;1108 1170 11C1;C01E;1108 1170 11C1;
+C01F;C01F;1108 1170 11C2;C01F;1108 1170 11C2;
+C020;C020;1108 1171;C020;1108 1171;
+C021;C021;1108 1171 11A8;C021;1108 1171 11A8;
+C022;C022;1108 1171 11A9;C022;1108 1171 11A9;
+C023;C023;1108 1171 11AA;C023;1108 1171 11AA;
+C024;C024;1108 1171 11AB;C024;1108 1171 11AB;
+C025;C025;1108 1171 11AC;C025;1108 1171 11AC;
+C026;C026;1108 1171 11AD;C026;1108 1171 11AD;
+C027;C027;1108 1171 11AE;C027;1108 1171 11AE;
+C028;C028;1108 1171 11AF;C028;1108 1171 11AF;
+C029;C029;1108 1171 11B0;C029;1108 1171 11B0;
+C02A;C02A;1108 1171 11B1;C02A;1108 1171 11B1;
+C02B;C02B;1108 1171 11B2;C02B;1108 1171 11B2;
+C02C;C02C;1108 1171 11B3;C02C;1108 1171 11B3;
+C02D;C02D;1108 1171 11B4;C02D;1108 1171 11B4;
+C02E;C02E;1108 1171 11B5;C02E;1108 1171 11B5;
+C02F;C02F;1108 1171 11B6;C02F;1108 1171 11B6;
+C030;C030;1108 1171 11B7;C030;1108 1171 11B7;
+C031;C031;1108 1171 11B8;C031;1108 1171 11B8;
+C032;C032;1108 1171 11B9;C032;1108 1171 11B9;
+C033;C033;1108 1171 11BA;C033;1108 1171 11BA;
+C034;C034;1108 1171 11BB;C034;1108 1171 11BB;
+C035;C035;1108 1171 11BC;C035;1108 1171 11BC;
+C036;C036;1108 1171 11BD;C036;1108 1171 11BD;
+C037;C037;1108 1171 11BE;C037;1108 1171 11BE;
+C038;C038;1108 1171 11BF;C038;1108 1171 11BF;
+C039;C039;1108 1171 11C0;C039;1108 1171 11C0;
+C03A;C03A;1108 1171 11C1;C03A;1108 1171 11C1;
+C03B;C03B;1108 1171 11C2;C03B;1108 1171 11C2;
+C03C;C03C;1108 1172;C03C;1108 1172;
+C03D;C03D;1108 1172 11A8;C03D;1108 1172 11A8;
+C03E;C03E;1108 1172 11A9;C03E;1108 1172 11A9;
+C03F;C03F;1108 1172 11AA;C03F;1108 1172 11AA;
+C040;C040;1108 1172 11AB;C040;1108 1172 11AB;
+C041;C041;1108 1172 11AC;C041;1108 1172 11AC;
+C042;C042;1108 1172 11AD;C042;1108 1172 11AD;
+C043;C043;1108 1172 11AE;C043;1108 1172 11AE;
+C044;C044;1108 1172 11AF;C044;1108 1172 11AF;
+C045;C045;1108 1172 11B0;C045;1108 1172 11B0;
+C046;C046;1108 1172 11B1;C046;1108 1172 11B1;
+C047;C047;1108 1172 11B2;C047;1108 1172 11B2;
+C048;C048;1108 1172 11B3;C048;1108 1172 11B3;
+C049;C049;1108 1172 11B4;C049;1108 1172 11B4;
+C04A;C04A;1108 1172 11B5;C04A;1108 1172 11B5;
+C04B;C04B;1108 1172 11B6;C04B;1108 1172 11B6;
+C04C;C04C;1108 1172 11B7;C04C;1108 1172 11B7;
+C04D;C04D;1108 1172 11B8;C04D;1108 1172 11B8;
+C04E;C04E;1108 1172 11B9;C04E;1108 1172 11B9;
+C04F;C04F;1108 1172 11BA;C04F;1108 1172 11BA;
+C050;C050;1108 1172 11BB;C050;1108 1172 11BB;
+C051;C051;1108 1172 11BC;C051;1108 1172 11BC;
+C052;C052;1108 1172 11BD;C052;1108 1172 11BD;
+C053;C053;1108 1172 11BE;C053;1108 1172 11BE;
+C054;C054;1108 1172 11BF;C054;1108 1172 11BF;
+C055;C055;1108 1172 11C0;C055;1108 1172 11C0;
+C056;C056;1108 1172 11C1;C056;1108 1172 11C1;
+C057;C057;1108 1172 11C2;C057;1108 1172 11C2;
+C058;C058;1108 1173;C058;1108 1173;
+C059;C059;1108 1173 11A8;C059;1108 1173 11A8;
+C05A;C05A;1108 1173 11A9;C05A;1108 1173 11A9;
+C05B;C05B;1108 1173 11AA;C05B;1108 1173 11AA;
+C05C;C05C;1108 1173 11AB;C05C;1108 1173 11AB;
+C05D;C05D;1108 1173 11AC;C05D;1108 1173 11AC;
+C05E;C05E;1108 1173 11AD;C05E;1108 1173 11AD;
+C05F;C05F;1108 1173 11AE;C05F;1108 1173 11AE;
+C060;C060;1108 1173 11AF;C060;1108 1173 11AF;
+C061;C061;1108 1173 11B0;C061;1108 1173 11B0;
+C062;C062;1108 1173 11B1;C062;1108 1173 11B1;
+C063;C063;1108 1173 11B2;C063;1108 1173 11B2;
+C064;C064;1108 1173 11B3;C064;1108 1173 11B3;
+C065;C065;1108 1173 11B4;C065;1108 1173 11B4;
+C066;C066;1108 1173 11B5;C066;1108 1173 11B5;
+C067;C067;1108 1173 11B6;C067;1108 1173 11B6;
+C068;C068;1108 1173 11B7;C068;1108 1173 11B7;
+C069;C069;1108 1173 11B8;C069;1108 1173 11B8;
+C06A;C06A;1108 1173 11B9;C06A;1108 1173 11B9;
+C06B;C06B;1108 1173 11BA;C06B;1108 1173 11BA;
+C06C;C06C;1108 1173 11BB;C06C;1108 1173 11BB;
+C06D;C06D;1108 1173 11BC;C06D;1108 1173 11BC;
+C06E;C06E;1108 1173 11BD;C06E;1108 1173 11BD;
+C06F;C06F;1108 1173 11BE;C06F;1108 1173 11BE;
+C070;C070;1108 1173 11BF;C070;1108 1173 11BF;
+C071;C071;1108 1173 11C0;C071;1108 1173 11C0;
+C072;C072;1108 1173 11C1;C072;1108 1173 11C1;
+C073;C073;1108 1173 11C2;C073;1108 1173 11C2;
+C074;C074;1108 1174;C074;1108 1174;
+C075;C075;1108 1174 11A8;C075;1108 1174 11A8;
+C076;C076;1108 1174 11A9;C076;1108 1174 11A9;
+C077;C077;1108 1174 11AA;C077;1108 1174 11AA;
+C078;C078;1108 1174 11AB;C078;1108 1174 11AB;
+C079;C079;1108 1174 11AC;C079;1108 1174 11AC;
+C07A;C07A;1108 1174 11AD;C07A;1108 1174 11AD;
+C07B;C07B;1108 1174 11AE;C07B;1108 1174 11AE;
+C07C;C07C;1108 1174 11AF;C07C;1108 1174 11AF;
+C07D;C07D;1108 1174 11B0;C07D;1108 1174 11B0;
+C07E;C07E;1108 1174 11B1;C07E;1108 1174 11B1;
+C07F;C07F;1108 1174 11B2;C07F;1108 1174 11B2;
+C080;C080;1108 1174 11B3;C080;1108 1174 11B3;
+C081;C081;1108 1174 11B4;C081;1108 1174 11B4;
+C082;C082;1108 1174 11B5;C082;1108 1174 11B5;
+C083;C083;1108 1174 11B6;C083;1108 1174 11B6;
+C084;C084;1108 1174 11B7;C084;1108 1174 11B7;
+C085;C085;1108 1174 11B8;C085;1108 1174 11B8;
+C086;C086;1108 1174 11B9;C086;1108 1174 11B9;
+C087;C087;1108 1174 11BA;C087;1108 1174 11BA;
+C088;C088;1108 1174 11BB;C088;1108 1174 11BB;
+C089;C089;1108 1174 11BC;C089;1108 1174 11BC;
+C08A;C08A;1108 1174 11BD;C08A;1108 1174 11BD;
+C08B;C08B;1108 1174 11BE;C08B;1108 1174 11BE;
+C08C;C08C;1108 1174 11BF;C08C;1108 1174 11BF;
+C08D;C08D;1108 1174 11C0;C08D;1108 1174 11C0;
+C08E;C08E;1108 1174 11C1;C08E;1108 1174 11C1;
+C08F;C08F;1108 1174 11C2;C08F;1108 1174 11C2;
+C090;C090;1108 1175;C090;1108 1175;
+C091;C091;1108 1175 11A8;C091;1108 1175 11A8;
+C092;C092;1108 1175 11A9;C092;1108 1175 11A9;
+C093;C093;1108 1175 11AA;C093;1108 1175 11AA;
+C094;C094;1108 1175 11AB;C094;1108 1175 11AB;
+C095;C095;1108 1175 11AC;C095;1108 1175 11AC;
+C096;C096;1108 1175 11AD;C096;1108 1175 11AD;
+C097;C097;1108 1175 11AE;C097;1108 1175 11AE;
+C098;C098;1108 1175 11AF;C098;1108 1175 11AF;
+C099;C099;1108 1175 11B0;C099;1108 1175 11B0;
+C09A;C09A;1108 1175 11B1;C09A;1108 1175 11B1;
+C09B;C09B;1108 1175 11B2;C09B;1108 1175 11B2;
+C09C;C09C;1108 1175 11B3;C09C;1108 1175 11B3;
+C09D;C09D;1108 1175 11B4;C09D;1108 1175 11B4;
+C09E;C09E;1108 1175 11B5;C09E;1108 1175 11B5;
+C09F;C09F;1108 1175 11B6;C09F;1108 1175 11B6;
+C0A0;C0A0;1108 1175 11B7;C0A0;1108 1175 11B7;
+C0A1;C0A1;1108 1175 11B8;C0A1;1108 1175 11B8;
+C0A2;C0A2;1108 1175 11B9;C0A2;1108 1175 11B9;
+C0A3;C0A3;1108 1175 11BA;C0A3;1108 1175 11BA;
+C0A4;C0A4;1108 1175 11BB;C0A4;1108 1175 11BB;
+C0A5;C0A5;1108 1175 11BC;C0A5;1108 1175 11BC;
+C0A6;C0A6;1108 1175 11BD;C0A6;1108 1175 11BD;
+C0A7;C0A7;1108 1175 11BE;C0A7;1108 1175 11BE;
+C0A8;C0A8;1108 1175 11BF;C0A8;1108 1175 11BF;
+C0A9;C0A9;1108 1175 11C0;C0A9;1108 1175 11C0;
+C0AA;C0AA;1108 1175 11C1;C0AA;1108 1175 11C1;
+C0AB;C0AB;1108 1175 11C2;C0AB;1108 1175 11C2;
+C0AC;C0AC;1109 1161;C0AC;1109 1161;
+C0AD;C0AD;1109 1161 11A8;C0AD;1109 1161 11A8;
+C0AE;C0AE;1109 1161 11A9;C0AE;1109 1161 11A9;
+C0AF;C0AF;1109 1161 11AA;C0AF;1109 1161 11AA;
+C0B0;C0B0;1109 1161 11AB;C0B0;1109 1161 11AB;
+C0B1;C0B1;1109 1161 11AC;C0B1;1109 1161 11AC;
+C0B2;C0B2;1109 1161 11AD;C0B2;1109 1161 11AD;
+C0B3;C0B3;1109 1161 11AE;C0B3;1109 1161 11AE;
+C0B4;C0B4;1109 1161 11AF;C0B4;1109 1161 11AF;
+C0B5;C0B5;1109 1161 11B0;C0B5;1109 1161 11B0;
+C0B6;C0B6;1109 1161 11B1;C0B6;1109 1161 11B1;
+C0B7;C0B7;1109 1161 11B2;C0B7;1109 1161 11B2;
+C0B8;C0B8;1109 1161 11B3;C0B8;1109 1161 11B3;
+C0B9;C0B9;1109 1161 11B4;C0B9;1109 1161 11B4;
+C0BA;C0BA;1109 1161 11B5;C0BA;1109 1161 11B5;
+C0BB;C0BB;1109 1161 11B6;C0BB;1109 1161 11B6;
+C0BC;C0BC;1109 1161 11B7;C0BC;1109 1161 11B7;
+C0BD;C0BD;1109 1161 11B8;C0BD;1109 1161 11B8;
+C0BE;C0BE;1109 1161 11B9;C0BE;1109 1161 11B9;
+C0BF;C0BF;1109 1161 11BA;C0BF;1109 1161 11BA;
+C0C0;C0C0;1109 1161 11BB;C0C0;1109 1161 11BB;
+C0C1;C0C1;1109 1161 11BC;C0C1;1109 1161 11BC;
+C0C2;C0C2;1109 1161 11BD;C0C2;1109 1161 11BD;
+C0C3;C0C3;1109 1161 11BE;C0C3;1109 1161 11BE;
+C0C4;C0C4;1109 1161 11BF;C0C4;1109 1161 11BF;
+C0C5;C0C5;1109 1161 11C0;C0C5;1109 1161 11C0;
+C0C6;C0C6;1109 1161 11C1;C0C6;1109 1161 11C1;
+C0C7;C0C7;1109 1161 11C2;C0C7;1109 1161 11C2;
+C0C8;C0C8;1109 1162;C0C8;1109 1162;
+C0C9;C0C9;1109 1162 11A8;C0C9;1109 1162 11A8;
+C0CA;C0CA;1109 1162 11A9;C0CA;1109 1162 11A9;
+C0CB;C0CB;1109 1162 11AA;C0CB;1109 1162 11AA;
+C0CC;C0CC;1109 1162 11AB;C0CC;1109 1162 11AB;
+C0CD;C0CD;1109 1162 11AC;C0CD;1109 1162 11AC;
+C0CE;C0CE;1109 1162 11AD;C0CE;1109 1162 11AD;
+C0CF;C0CF;1109 1162 11AE;C0CF;1109 1162 11AE;
+C0D0;C0D0;1109 1162 11AF;C0D0;1109 1162 11AF;
+C0D1;C0D1;1109 1162 11B0;C0D1;1109 1162 11B0;
+C0D2;C0D2;1109 1162 11B1;C0D2;1109 1162 11B1;
+C0D3;C0D3;1109 1162 11B2;C0D3;1109 1162 11B2;
+C0D4;C0D4;1109 1162 11B3;C0D4;1109 1162 11B3;
+C0D5;C0D5;1109 1162 11B4;C0D5;1109 1162 11B4;
+C0D6;C0D6;1109 1162 11B5;C0D6;1109 1162 11B5;
+C0D7;C0D7;1109 1162 11B6;C0D7;1109 1162 11B6;
+C0D8;C0D8;1109 1162 11B7;C0D8;1109 1162 11B7;
+C0D9;C0D9;1109 1162 11B8;C0D9;1109 1162 11B8;
+C0DA;C0DA;1109 1162 11B9;C0DA;1109 1162 11B9;
+C0DB;C0DB;1109 1162 11BA;C0DB;1109 1162 11BA;
+C0DC;C0DC;1109 1162 11BB;C0DC;1109 1162 11BB;
+C0DD;C0DD;1109 1162 11BC;C0DD;1109 1162 11BC;
+C0DE;C0DE;1109 1162 11BD;C0DE;1109 1162 11BD;
+C0DF;C0DF;1109 1162 11BE;C0DF;1109 1162 11BE;
+C0E0;C0E0;1109 1162 11BF;C0E0;1109 1162 11BF;
+C0E1;C0E1;1109 1162 11C0;C0E1;1109 1162 11C0;
+C0E2;C0E2;1109 1162 11C1;C0E2;1109 1162 11C1;
+C0E3;C0E3;1109 1162 11C2;C0E3;1109 1162 11C2;
+C0E4;C0E4;1109 1163;C0E4;1109 1163;
+C0E5;C0E5;1109 1163 11A8;C0E5;1109 1163 11A8;
+C0E6;C0E6;1109 1163 11A9;C0E6;1109 1163 11A9;
+C0E7;C0E7;1109 1163 11AA;C0E7;1109 1163 11AA;
+C0E8;C0E8;1109 1163 11AB;C0E8;1109 1163 11AB;
+C0E9;C0E9;1109 1163 11AC;C0E9;1109 1163 11AC;
+C0EA;C0EA;1109 1163 11AD;C0EA;1109 1163 11AD;
+C0EB;C0EB;1109 1163 11AE;C0EB;1109 1163 11AE;
+C0EC;C0EC;1109 1163 11AF;C0EC;1109 1163 11AF;
+C0ED;C0ED;1109 1163 11B0;C0ED;1109 1163 11B0;
+C0EE;C0EE;1109 1163 11B1;C0EE;1109 1163 11B1;
+C0EF;C0EF;1109 1163 11B2;C0EF;1109 1163 11B2;
+C0F0;C0F0;1109 1163 11B3;C0F0;1109 1163 11B3;
+C0F1;C0F1;1109 1163 11B4;C0F1;1109 1163 11B4;
+C0F2;C0F2;1109 1163 11B5;C0F2;1109 1163 11B5;
+C0F3;C0F3;1109 1163 11B6;C0F3;1109 1163 11B6;
+C0F4;C0F4;1109 1163 11B7;C0F4;1109 1163 11B7;
+C0F5;C0F5;1109 1163 11B8;C0F5;1109 1163 11B8;
+C0F6;C0F6;1109 1163 11B9;C0F6;1109 1163 11B9;
+C0F7;C0F7;1109 1163 11BA;C0F7;1109 1163 11BA;
+C0F8;C0F8;1109 1163 11BB;C0F8;1109 1163 11BB;
+C0F9;C0F9;1109 1163 11BC;C0F9;1109 1163 11BC;
+C0FA;C0FA;1109 1163 11BD;C0FA;1109 1163 11BD;
+C0FB;C0FB;1109 1163 11BE;C0FB;1109 1163 11BE;
+C0FC;C0FC;1109 1163 11BF;C0FC;1109 1163 11BF;
+C0FD;C0FD;1109 1163 11C0;C0FD;1109 1163 11C0;
+C0FE;C0FE;1109 1163 11C1;C0FE;1109 1163 11C1;
+C0FF;C0FF;1109 1163 11C2;C0FF;1109 1163 11C2;
+C100;C100;1109 1164;C100;1109 1164;
+C101;C101;1109 1164 11A8;C101;1109 1164 11A8;
+C102;C102;1109 1164 11A9;C102;1109 1164 11A9;
+C103;C103;1109 1164 11AA;C103;1109 1164 11AA;
+C104;C104;1109 1164 11AB;C104;1109 1164 11AB;
+C105;C105;1109 1164 11AC;C105;1109 1164 11AC;
+C106;C106;1109 1164 11AD;C106;1109 1164 11AD;
+C107;C107;1109 1164 11AE;C107;1109 1164 11AE;
+C108;C108;1109 1164 11AF;C108;1109 1164 11AF;
+C109;C109;1109 1164 11B0;C109;1109 1164 11B0;
+C10A;C10A;1109 1164 11B1;C10A;1109 1164 11B1;
+C10B;C10B;1109 1164 11B2;C10B;1109 1164 11B2;
+C10C;C10C;1109 1164 11B3;C10C;1109 1164 11B3;
+C10D;C10D;1109 1164 11B4;C10D;1109 1164 11B4;
+C10E;C10E;1109 1164 11B5;C10E;1109 1164 11B5;
+C10F;C10F;1109 1164 11B6;C10F;1109 1164 11B6;
+C110;C110;1109 1164 11B7;C110;1109 1164 11B7;
+C111;C111;1109 1164 11B8;C111;1109 1164 11B8;
+C112;C112;1109 1164 11B9;C112;1109 1164 11B9;
+C113;C113;1109 1164 11BA;C113;1109 1164 11BA;
+C114;C114;1109 1164 11BB;C114;1109 1164 11BB;
+C115;C115;1109 1164 11BC;C115;1109 1164 11BC;
+C116;C116;1109 1164 11BD;C116;1109 1164 11BD;
+C117;C117;1109 1164 11BE;C117;1109 1164 11BE;
+C118;C118;1109 1164 11BF;C118;1109 1164 11BF;
+C119;C119;1109 1164 11C0;C119;1109 1164 11C0;
+C11A;C11A;1109 1164 11C1;C11A;1109 1164 11C1;
+C11B;C11B;1109 1164 11C2;C11B;1109 1164 11C2;
+C11C;C11C;1109 1165;C11C;1109 1165;
+C11D;C11D;1109 1165 11A8;C11D;1109 1165 11A8;
+C11E;C11E;1109 1165 11A9;C11E;1109 1165 11A9;
+C11F;C11F;1109 1165 11AA;C11F;1109 1165 11AA;
+C120;C120;1109 1165 11AB;C120;1109 1165 11AB;
+C121;C121;1109 1165 11AC;C121;1109 1165 11AC;
+C122;C122;1109 1165 11AD;C122;1109 1165 11AD;
+C123;C123;1109 1165 11AE;C123;1109 1165 11AE;
+C124;C124;1109 1165 11AF;C124;1109 1165 11AF;
+C125;C125;1109 1165 11B0;C125;1109 1165 11B0;
+C126;C126;1109 1165 11B1;C126;1109 1165 11B1;
+C127;C127;1109 1165 11B2;C127;1109 1165 11B2;
+C128;C128;1109 1165 11B3;C128;1109 1165 11B3;
+C129;C129;1109 1165 11B4;C129;1109 1165 11B4;
+C12A;C12A;1109 1165 11B5;C12A;1109 1165 11B5;
+C12B;C12B;1109 1165 11B6;C12B;1109 1165 11B6;
+C12C;C12C;1109 1165 11B7;C12C;1109 1165 11B7;
+C12D;C12D;1109 1165 11B8;C12D;1109 1165 11B8;
+C12E;C12E;1109 1165 11B9;C12E;1109 1165 11B9;
+C12F;C12F;1109 1165 11BA;C12F;1109 1165 11BA;
+C130;C130;1109 1165 11BB;C130;1109 1165 11BB;
+C131;C131;1109 1165 11BC;C131;1109 1165 11BC;
+C132;C132;1109 1165 11BD;C132;1109 1165 11BD;
+C133;C133;1109 1165 11BE;C133;1109 1165 11BE;
+C134;C134;1109 1165 11BF;C134;1109 1165 11BF;
+C135;C135;1109 1165 11C0;C135;1109 1165 11C0;
+C136;C136;1109 1165 11C1;C136;1109 1165 11C1;
+C137;C137;1109 1165 11C2;C137;1109 1165 11C2;
+C138;C138;1109 1166;C138;1109 1166;
+C139;C139;1109 1166 11A8;C139;1109 1166 11A8;
+C13A;C13A;1109 1166 11A9;C13A;1109 1166 11A9;
+C13B;C13B;1109 1166 11AA;C13B;1109 1166 11AA;
+C13C;C13C;1109 1166 11AB;C13C;1109 1166 11AB;
+C13D;C13D;1109 1166 11AC;C13D;1109 1166 11AC;
+C13E;C13E;1109 1166 11AD;C13E;1109 1166 11AD;
+C13F;C13F;1109 1166 11AE;C13F;1109 1166 11AE;
+C140;C140;1109 1166 11AF;C140;1109 1166 11AF;
+C141;C141;1109 1166 11B0;C141;1109 1166 11B0;
+C142;C142;1109 1166 11B1;C142;1109 1166 11B1;
+C143;C143;1109 1166 11B2;C143;1109 1166 11B2;
+C144;C144;1109 1166 11B3;C144;1109 1166 11B3;
+C145;C145;1109 1166 11B4;C145;1109 1166 11B4;
+C146;C146;1109 1166 11B5;C146;1109 1166 11B5;
+C147;C147;1109 1166 11B6;C147;1109 1166 11B6;
+C148;C148;1109 1166 11B7;C148;1109 1166 11B7;
+C149;C149;1109 1166 11B8;C149;1109 1166 11B8;
+C14A;C14A;1109 1166 11B9;C14A;1109 1166 11B9;
+C14B;C14B;1109 1166 11BA;C14B;1109 1166 11BA;
+C14C;C14C;1109 1166 11BB;C14C;1109 1166 11BB;
+C14D;C14D;1109 1166 11BC;C14D;1109 1166 11BC;
+C14E;C14E;1109 1166 11BD;C14E;1109 1166 11BD;
+C14F;C14F;1109 1166 11BE;C14F;1109 1166 11BE;
+C150;C150;1109 1166 11BF;C150;1109 1166 11BF;
+C151;C151;1109 1166 11C0;C151;1109 1166 11C0;
+C152;C152;1109 1166 11C1;C152;1109 1166 11C1;
+C153;C153;1109 1166 11C2;C153;1109 1166 11C2;
+C154;C154;1109 1167;C154;1109 1167;
+C155;C155;1109 1167 11A8;C155;1109 1167 11A8;
+C156;C156;1109 1167 11A9;C156;1109 1167 11A9;
+C157;C157;1109 1167 11AA;C157;1109 1167 11AA;
+C158;C158;1109 1167 11AB;C158;1109 1167 11AB;
+C159;C159;1109 1167 11AC;C159;1109 1167 11AC;
+C15A;C15A;1109 1167 11AD;C15A;1109 1167 11AD;
+C15B;C15B;1109 1167 11AE;C15B;1109 1167 11AE;
+C15C;C15C;1109 1167 11AF;C15C;1109 1167 11AF;
+C15D;C15D;1109 1167 11B0;C15D;1109 1167 11B0;
+C15E;C15E;1109 1167 11B1;C15E;1109 1167 11B1;
+C15F;C15F;1109 1167 11B2;C15F;1109 1167 11B2;
+C160;C160;1109 1167 11B3;C160;1109 1167 11B3;
+C161;C161;1109 1167 11B4;C161;1109 1167 11B4;
+C162;C162;1109 1167 11B5;C162;1109 1167 11B5;
+C163;C163;1109 1167 11B6;C163;1109 1167 11B6;
+C164;C164;1109 1167 11B7;C164;1109 1167 11B7;
+C165;C165;1109 1167 11B8;C165;1109 1167 11B8;
+C166;C166;1109 1167 11B9;C166;1109 1167 11B9;
+C167;C167;1109 1167 11BA;C167;1109 1167 11BA;
+C168;C168;1109 1167 11BB;C168;1109 1167 11BB;
+C169;C169;1109 1167 11BC;C169;1109 1167 11BC;
+C16A;C16A;1109 1167 11BD;C16A;1109 1167 11BD;
+C16B;C16B;1109 1167 11BE;C16B;1109 1167 11BE;
+C16C;C16C;1109 1167 11BF;C16C;1109 1167 11BF;
+C16D;C16D;1109 1167 11C0;C16D;1109 1167 11C0;
+C16E;C16E;1109 1167 11C1;C16E;1109 1167 11C1;
+C16F;C16F;1109 1167 11C2;C16F;1109 1167 11C2;
+C170;C170;1109 1168;C170;1109 1168;
+C171;C171;1109 1168 11A8;C171;1109 1168 11A8;
+C172;C172;1109 1168 11A9;C172;1109 1168 11A9;
+C173;C173;1109 1168 11AA;C173;1109 1168 11AA;
+C174;C174;1109 1168 11AB;C174;1109 1168 11AB;
+C175;C175;1109 1168 11AC;C175;1109 1168 11AC;
+C176;C176;1109 1168 11AD;C176;1109 1168 11AD;
+C177;C177;1109 1168 11AE;C177;1109 1168 11AE;
+C178;C178;1109 1168 11AF;C178;1109 1168 11AF;
+C179;C179;1109 1168 11B0;C179;1109 1168 11B0;
+C17A;C17A;1109 1168 11B1;C17A;1109 1168 11B1;
+C17B;C17B;1109 1168 11B2;C17B;1109 1168 11B2;
+C17C;C17C;1109 1168 11B3;C17C;1109 1168 11B3;
+C17D;C17D;1109 1168 11B4;C17D;1109 1168 11B4;
+C17E;C17E;1109 1168 11B5;C17E;1109 1168 11B5;
+C17F;C17F;1109 1168 11B6;C17F;1109 1168 11B6;
+C180;C180;1109 1168 11B7;C180;1109 1168 11B7;
+C181;C181;1109 1168 11B8;C181;1109 1168 11B8;
+C182;C182;1109 1168 11B9;C182;1109 1168 11B9;
+C183;C183;1109 1168 11BA;C183;1109 1168 11BA;
+C184;C184;1109 1168 11BB;C184;1109 1168 11BB;
+C185;C185;1109 1168 11BC;C185;1109 1168 11BC;
+C186;C186;1109 1168 11BD;C186;1109 1168 11BD;
+C187;C187;1109 1168 11BE;C187;1109 1168 11BE;
+C188;C188;1109 1168 11BF;C188;1109 1168 11BF;
+C189;C189;1109 1168 11C0;C189;1109 1168 11C0;
+C18A;C18A;1109 1168 11C1;C18A;1109 1168 11C1;
+C18B;C18B;1109 1168 11C2;C18B;1109 1168 11C2;
+C18C;C18C;1109 1169;C18C;1109 1169;
+C18D;C18D;1109 1169 11A8;C18D;1109 1169 11A8;
+C18E;C18E;1109 1169 11A9;C18E;1109 1169 11A9;
+C18F;C18F;1109 1169 11AA;C18F;1109 1169 11AA;
+C190;C190;1109 1169 11AB;C190;1109 1169 11AB;
+C191;C191;1109 1169 11AC;C191;1109 1169 11AC;
+C192;C192;1109 1169 11AD;C192;1109 1169 11AD;
+C193;C193;1109 1169 11AE;C193;1109 1169 11AE;
+C194;C194;1109 1169 11AF;C194;1109 1169 11AF;
+C195;C195;1109 1169 11B0;C195;1109 1169 11B0;
+C196;C196;1109 1169 11B1;C196;1109 1169 11B1;
+C197;C197;1109 1169 11B2;C197;1109 1169 11B2;
+C198;C198;1109 1169 11B3;C198;1109 1169 11B3;
+C199;C199;1109 1169 11B4;C199;1109 1169 11B4;
+C19A;C19A;1109 1169 11B5;C19A;1109 1169 11B5;
+C19B;C19B;1109 1169 11B6;C19B;1109 1169 11B6;
+C19C;C19C;1109 1169 11B7;C19C;1109 1169 11B7;
+C19D;C19D;1109 1169 11B8;C19D;1109 1169 11B8;
+C19E;C19E;1109 1169 11B9;C19E;1109 1169 11B9;
+C19F;C19F;1109 1169 11BA;C19F;1109 1169 11BA;
+C1A0;C1A0;1109 1169 11BB;C1A0;1109 1169 11BB;
+C1A1;C1A1;1109 1169 11BC;C1A1;1109 1169 11BC;
+C1A2;C1A2;1109 1169 11BD;C1A2;1109 1169 11BD;
+C1A3;C1A3;1109 1169 11BE;C1A3;1109 1169 11BE;
+C1A4;C1A4;1109 1169 11BF;C1A4;1109 1169 11BF;
+C1A5;C1A5;1109 1169 11C0;C1A5;1109 1169 11C0;
+C1A6;C1A6;1109 1169 11C1;C1A6;1109 1169 11C1;
+C1A7;C1A7;1109 1169 11C2;C1A7;1109 1169 11C2;
+C1A8;C1A8;1109 116A;C1A8;1109 116A;
+C1A9;C1A9;1109 116A 11A8;C1A9;1109 116A 11A8;
+C1AA;C1AA;1109 116A 11A9;C1AA;1109 116A 11A9;
+C1AB;C1AB;1109 116A 11AA;C1AB;1109 116A 11AA;
+C1AC;C1AC;1109 116A 11AB;C1AC;1109 116A 11AB;
+C1AD;C1AD;1109 116A 11AC;C1AD;1109 116A 11AC;
+C1AE;C1AE;1109 116A 11AD;C1AE;1109 116A 11AD;
+C1AF;C1AF;1109 116A 11AE;C1AF;1109 116A 11AE;
+C1B0;C1B0;1109 116A 11AF;C1B0;1109 116A 11AF;
+C1B1;C1B1;1109 116A 11B0;C1B1;1109 116A 11B0;
+C1B2;C1B2;1109 116A 11B1;C1B2;1109 116A 11B1;
+C1B3;C1B3;1109 116A 11B2;C1B3;1109 116A 11B2;
+C1B4;C1B4;1109 116A 11B3;C1B4;1109 116A 11B3;
+C1B5;C1B5;1109 116A 11B4;C1B5;1109 116A 11B4;
+C1B6;C1B6;1109 116A 11B5;C1B6;1109 116A 11B5;
+C1B7;C1B7;1109 116A 11B6;C1B7;1109 116A 11B6;
+C1B8;C1B8;1109 116A 11B7;C1B8;1109 116A 11B7;
+C1B9;C1B9;1109 116A 11B8;C1B9;1109 116A 11B8;
+C1BA;C1BA;1109 116A 11B9;C1BA;1109 116A 11B9;
+C1BB;C1BB;1109 116A 11BA;C1BB;1109 116A 11BA;
+C1BC;C1BC;1109 116A 11BB;C1BC;1109 116A 11BB;
+C1BD;C1BD;1109 116A 11BC;C1BD;1109 116A 11BC;
+C1BE;C1BE;1109 116A 11BD;C1BE;1109 116A 11BD;
+C1BF;C1BF;1109 116A 11BE;C1BF;1109 116A 11BE;
+C1C0;C1C0;1109 116A 11BF;C1C0;1109 116A 11BF;
+C1C1;C1C1;1109 116A 11C0;C1C1;1109 116A 11C0;
+C1C2;C1C2;1109 116A 11C1;C1C2;1109 116A 11C1;
+C1C3;C1C3;1109 116A 11C2;C1C3;1109 116A 11C2;
+C1C4;C1C4;1109 116B;C1C4;1109 116B;
+C1C5;C1C5;1109 116B 11A8;C1C5;1109 116B 11A8;
+C1C6;C1C6;1109 116B 11A9;C1C6;1109 116B 11A9;
+C1C7;C1C7;1109 116B 11AA;C1C7;1109 116B 11AA;
+C1C8;C1C8;1109 116B 11AB;C1C8;1109 116B 11AB;
+C1C9;C1C9;1109 116B 11AC;C1C9;1109 116B 11AC;
+C1CA;C1CA;1109 116B 11AD;C1CA;1109 116B 11AD;
+C1CB;C1CB;1109 116B 11AE;C1CB;1109 116B 11AE;
+C1CC;C1CC;1109 116B 11AF;C1CC;1109 116B 11AF;
+C1CD;C1CD;1109 116B 11B0;C1CD;1109 116B 11B0;
+C1CE;C1CE;1109 116B 11B1;C1CE;1109 116B 11B1;
+C1CF;C1CF;1109 116B 11B2;C1CF;1109 116B 11B2;
+C1D0;C1D0;1109 116B 11B3;C1D0;1109 116B 11B3;
+C1D1;C1D1;1109 116B 11B4;C1D1;1109 116B 11B4;
+C1D2;C1D2;1109 116B 11B5;C1D2;1109 116B 11B5;
+C1D3;C1D3;1109 116B 11B6;C1D3;1109 116B 11B6;
+C1D4;C1D4;1109 116B 11B7;C1D4;1109 116B 11B7;
+C1D5;C1D5;1109 116B 11B8;C1D5;1109 116B 11B8;
+C1D6;C1D6;1109 116B 11B9;C1D6;1109 116B 11B9;
+C1D7;C1D7;1109 116B 11BA;C1D7;1109 116B 11BA;
+C1D8;C1D8;1109 116B 11BB;C1D8;1109 116B 11BB;
+C1D9;C1D9;1109 116B 11BC;C1D9;1109 116B 11BC;
+C1DA;C1DA;1109 116B 11BD;C1DA;1109 116B 11BD;
+C1DB;C1DB;1109 116B 11BE;C1DB;1109 116B 11BE;
+C1DC;C1DC;1109 116B 11BF;C1DC;1109 116B 11BF;
+C1DD;C1DD;1109 116B 11C0;C1DD;1109 116B 11C0;
+C1DE;C1DE;1109 116B 11C1;C1DE;1109 116B 11C1;
+C1DF;C1DF;1109 116B 11C2;C1DF;1109 116B 11C2;
+C1E0;C1E0;1109 116C;C1E0;1109 116C;
+C1E1;C1E1;1109 116C 11A8;C1E1;1109 116C 11A8;
+C1E2;C1E2;1109 116C 11A9;C1E2;1109 116C 11A9;
+C1E3;C1E3;1109 116C 11AA;C1E3;1109 116C 11AA;
+C1E4;C1E4;1109 116C 11AB;C1E4;1109 116C 11AB;
+C1E5;C1E5;1109 116C 11AC;C1E5;1109 116C 11AC;
+C1E6;C1E6;1109 116C 11AD;C1E6;1109 116C 11AD;
+C1E7;C1E7;1109 116C 11AE;C1E7;1109 116C 11AE;
+C1E8;C1E8;1109 116C 11AF;C1E8;1109 116C 11AF;
+C1E9;C1E9;1109 116C 11B0;C1E9;1109 116C 11B0;
+C1EA;C1EA;1109 116C 11B1;C1EA;1109 116C 11B1;
+C1EB;C1EB;1109 116C 11B2;C1EB;1109 116C 11B2;
+C1EC;C1EC;1109 116C 11B3;C1EC;1109 116C 11B3;
+C1ED;C1ED;1109 116C 11B4;C1ED;1109 116C 11B4;
+C1EE;C1EE;1109 116C 11B5;C1EE;1109 116C 11B5;
+C1EF;C1EF;1109 116C 11B6;C1EF;1109 116C 11B6;
+C1F0;C1F0;1109 116C 11B7;C1F0;1109 116C 11B7;
+C1F1;C1F1;1109 116C 11B8;C1F1;1109 116C 11B8;
+C1F2;C1F2;1109 116C 11B9;C1F2;1109 116C 11B9;
+C1F3;C1F3;1109 116C 11BA;C1F3;1109 116C 11BA;
+C1F4;C1F4;1109 116C 11BB;C1F4;1109 116C 11BB;
+C1F5;C1F5;1109 116C 11BC;C1F5;1109 116C 11BC;
+C1F6;C1F6;1109 116C 11BD;C1F6;1109 116C 11BD;
+C1F7;C1F7;1109 116C 11BE;C1F7;1109 116C 11BE;
+C1F8;C1F8;1109 116C 11BF;C1F8;1109 116C 11BF;
+C1F9;C1F9;1109 116C 11C0;C1F9;1109 116C 11C0;
+C1FA;C1FA;1109 116C 11C1;C1FA;1109 116C 11C1;
+C1FB;C1FB;1109 116C 11C2;C1FB;1109 116C 11C2;
+C1FC;C1FC;1109 116D;C1FC;1109 116D;
+C1FD;C1FD;1109 116D 11A8;C1FD;1109 116D 11A8;
+C1FE;C1FE;1109 116D 11A9;C1FE;1109 116D 11A9;
+C1FF;C1FF;1109 116D 11AA;C1FF;1109 116D 11AA;
+C200;C200;1109 116D 11AB;C200;1109 116D 11AB;
+C201;C201;1109 116D 11AC;C201;1109 116D 11AC;
+C202;C202;1109 116D 11AD;C202;1109 116D 11AD;
+C203;C203;1109 116D 11AE;C203;1109 116D 11AE;
+C204;C204;1109 116D 11AF;C204;1109 116D 11AF;
+C205;C205;1109 116D 11B0;C205;1109 116D 11B0;
+C206;C206;1109 116D 11B1;C206;1109 116D 11B1;
+C207;C207;1109 116D 11B2;C207;1109 116D 11B2;
+C208;C208;1109 116D 11B3;C208;1109 116D 11B3;
+C209;C209;1109 116D 11B4;C209;1109 116D 11B4;
+C20A;C20A;1109 116D 11B5;C20A;1109 116D 11B5;
+C20B;C20B;1109 116D 11B6;C20B;1109 116D 11B6;
+C20C;C20C;1109 116D 11B7;C20C;1109 116D 11B7;
+C20D;C20D;1109 116D 11B8;C20D;1109 116D 11B8;
+C20E;C20E;1109 116D 11B9;C20E;1109 116D 11B9;
+C20F;C20F;1109 116D 11BA;C20F;1109 116D 11BA;
+C210;C210;1109 116D 11BB;C210;1109 116D 11BB;
+C211;C211;1109 116D 11BC;C211;1109 116D 11BC;
+C212;C212;1109 116D 11BD;C212;1109 116D 11BD;
+C213;C213;1109 116D 11BE;C213;1109 116D 11BE;
+C214;C214;1109 116D 11BF;C214;1109 116D 11BF;
+C215;C215;1109 116D 11C0;C215;1109 116D 11C0;
+C216;C216;1109 116D 11C1;C216;1109 116D 11C1;
+C217;C217;1109 116D 11C2;C217;1109 116D 11C2;
+C218;C218;1109 116E;C218;1109 116E;
+C219;C219;1109 116E 11A8;C219;1109 116E 11A8;
+C21A;C21A;1109 116E 11A9;C21A;1109 116E 11A9;
+C21B;C21B;1109 116E 11AA;C21B;1109 116E 11AA;
+C21C;C21C;1109 116E 11AB;C21C;1109 116E 11AB;
+C21D;C21D;1109 116E 11AC;C21D;1109 116E 11AC;
+C21E;C21E;1109 116E 11AD;C21E;1109 116E 11AD;
+C21F;C21F;1109 116E 11AE;C21F;1109 116E 11AE;
+C220;C220;1109 116E 11AF;C220;1109 116E 11AF;
+C221;C221;1109 116E 11B0;C221;1109 116E 11B0;
+C222;C222;1109 116E 11B1;C222;1109 116E 11B1;
+C223;C223;1109 116E 11B2;C223;1109 116E 11B2;
+C224;C224;1109 116E 11B3;C224;1109 116E 11B3;
+C225;C225;1109 116E 11B4;C225;1109 116E 11B4;
+C226;C226;1109 116E 11B5;C226;1109 116E 11B5;
+C227;C227;1109 116E 11B6;C227;1109 116E 11B6;
+C228;C228;1109 116E 11B7;C228;1109 116E 11B7;
+C229;C229;1109 116E 11B8;C229;1109 116E 11B8;
+C22A;C22A;1109 116E 11B9;C22A;1109 116E 11B9;
+C22B;C22B;1109 116E 11BA;C22B;1109 116E 11BA;
+C22C;C22C;1109 116E 11BB;C22C;1109 116E 11BB;
+C22D;C22D;1109 116E 11BC;C22D;1109 116E 11BC;
+C22E;C22E;1109 116E 11BD;C22E;1109 116E 11BD;
+C22F;C22F;1109 116E 11BE;C22F;1109 116E 11BE;
+C230;C230;1109 116E 11BF;C230;1109 116E 11BF;
+C231;C231;1109 116E 11C0;C231;1109 116E 11C0;
+C232;C232;1109 116E 11C1;C232;1109 116E 11C1;
+C233;C233;1109 116E 11C2;C233;1109 116E 11C2;
+C234;C234;1109 116F;C234;1109 116F;
+C235;C235;1109 116F 11A8;C235;1109 116F 11A8;
+C236;C236;1109 116F 11A9;C236;1109 116F 11A9;
+C237;C237;1109 116F 11AA;C237;1109 116F 11AA;
+C238;C238;1109 116F 11AB;C238;1109 116F 11AB;
+C239;C239;1109 116F 11AC;C239;1109 116F 11AC;
+C23A;C23A;1109 116F 11AD;C23A;1109 116F 11AD;
+C23B;C23B;1109 116F 11AE;C23B;1109 116F 11AE;
+C23C;C23C;1109 116F 11AF;C23C;1109 116F 11AF;
+C23D;C23D;1109 116F 11B0;C23D;1109 116F 11B0;
+C23E;C23E;1109 116F 11B1;C23E;1109 116F 11B1;
+C23F;C23F;1109 116F 11B2;C23F;1109 116F 11B2;
+C240;C240;1109 116F 11B3;C240;1109 116F 11B3;
+C241;C241;1109 116F 11B4;C241;1109 116F 11B4;
+C242;C242;1109 116F 11B5;C242;1109 116F 11B5;
+C243;C243;1109 116F 11B6;C243;1109 116F 11B6;
+C244;C244;1109 116F 11B7;C244;1109 116F 11B7;
+C245;C245;1109 116F 11B8;C245;1109 116F 11B8;
+C246;C246;1109 116F 11B9;C246;1109 116F 11B9;
+C247;C247;1109 116F 11BA;C247;1109 116F 11BA;
+C248;C248;1109 116F 11BB;C248;1109 116F 11BB;
+C249;C249;1109 116F 11BC;C249;1109 116F 11BC;
+C24A;C24A;1109 116F 11BD;C24A;1109 116F 11BD;
+C24B;C24B;1109 116F 11BE;C24B;1109 116F 11BE;
+C24C;C24C;1109 116F 11BF;C24C;1109 116F 11BF;
+C24D;C24D;1109 116F 11C0;C24D;1109 116F 11C0;
+C24E;C24E;1109 116F 11C1;C24E;1109 116F 11C1;
+C24F;C24F;1109 116F 11C2;C24F;1109 116F 11C2;
+C250;C250;1109 1170;C250;1109 1170;
+C251;C251;1109 1170 11A8;C251;1109 1170 11A8;
+C252;C252;1109 1170 11A9;C252;1109 1170 11A9;
+C253;C253;1109 1170 11AA;C253;1109 1170 11AA;
+C254;C254;1109 1170 11AB;C254;1109 1170 11AB;
+C255;C255;1109 1170 11AC;C255;1109 1170 11AC;
+C256;C256;1109 1170 11AD;C256;1109 1170 11AD;
+C257;C257;1109 1170 11AE;C257;1109 1170 11AE;
+C258;C258;1109 1170 11AF;C258;1109 1170 11AF;
+C259;C259;1109 1170 11B0;C259;1109 1170 11B0;
+C25A;C25A;1109 1170 11B1;C25A;1109 1170 11B1;
+C25B;C25B;1109 1170 11B2;C25B;1109 1170 11B2;
+C25C;C25C;1109 1170 11B3;C25C;1109 1170 11B3;
+C25D;C25D;1109 1170 11B4;C25D;1109 1170 11B4;
+C25E;C25E;1109 1170 11B5;C25E;1109 1170 11B5;
+C25F;C25F;1109 1170 11B6;C25F;1109 1170 11B6;
+C260;C260;1109 1170 11B7;C260;1109 1170 11B7;
+C261;C261;1109 1170 11B8;C261;1109 1170 11B8;
+C262;C262;1109 1170 11B9;C262;1109 1170 11B9;
+C263;C263;1109 1170 11BA;C263;1109 1170 11BA;
+C264;C264;1109 1170 11BB;C264;1109 1170 11BB;
+C265;C265;1109 1170 11BC;C265;1109 1170 11BC;
+C266;C266;1109 1170 11BD;C266;1109 1170 11BD;
+C267;C267;1109 1170 11BE;C267;1109 1170 11BE;
+C268;C268;1109 1170 11BF;C268;1109 1170 11BF;
+C269;C269;1109 1170 11C0;C269;1109 1170 11C0;
+C26A;C26A;1109 1170 11C1;C26A;1109 1170 11C1;
+C26B;C26B;1109 1170 11C2;C26B;1109 1170 11C2;
+C26C;C26C;1109 1171;C26C;1109 1171;
+C26D;C26D;1109 1171 11A8;C26D;1109 1171 11A8;
+C26E;C26E;1109 1171 11A9;C26E;1109 1171 11A9;
+C26F;C26F;1109 1171 11AA;C26F;1109 1171 11AA;
+C270;C270;1109 1171 11AB;C270;1109 1171 11AB;
+C271;C271;1109 1171 11AC;C271;1109 1171 11AC;
+C272;C272;1109 1171 11AD;C272;1109 1171 11AD;
+C273;C273;1109 1171 11AE;C273;1109 1171 11AE;
+C274;C274;1109 1171 11AF;C274;1109 1171 11AF;
+C275;C275;1109 1171 11B0;C275;1109 1171 11B0;
+C276;C276;1109 1171 11B1;C276;1109 1171 11B1;
+C277;C277;1109 1171 11B2;C277;1109 1171 11B2;
+C278;C278;1109 1171 11B3;C278;1109 1171 11B3;
+C279;C279;1109 1171 11B4;C279;1109 1171 11B4;
+C27A;C27A;1109 1171 11B5;C27A;1109 1171 11B5;
+C27B;C27B;1109 1171 11B6;C27B;1109 1171 11B6;
+C27C;C27C;1109 1171 11B7;C27C;1109 1171 11B7;
+C27D;C27D;1109 1171 11B8;C27D;1109 1171 11B8;
+C27E;C27E;1109 1171 11B9;C27E;1109 1171 11B9;
+C27F;C27F;1109 1171 11BA;C27F;1109 1171 11BA;
+C280;C280;1109 1171 11BB;C280;1109 1171 11BB;
+C281;C281;1109 1171 11BC;C281;1109 1171 11BC;
+C282;C282;1109 1171 11BD;C282;1109 1171 11BD;
+C283;C283;1109 1171 11BE;C283;1109 1171 11BE;
+C284;C284;1109 1171 11BF;C284;1109 1171 11BF;
+C285;C285;1109 1171 11C0;C285;1109 1171 11C0;
+C286;C286;1109 1171 11C1;C286;1109 1171 11C1;
+C287;C287;1109 1171 11C2;C287;1109 1171 11C2;
+C288;C288;1109 1172;C288;1109 1172;
+C289;C289;1109 1172 11A8;C289;1109 1172 11A8;
+C28A;C28A;1109 1172 11A9;C28A;1109 1172 11A9;
+C28B;C28B;1109 1172 11AA;C28B;1109 1172 11AA;
+C28C;C28C;1109 1172 11AB;C28C;1109 1172 11AB;
+C28D;C28D;1109 1172 11AC;C28D;1109 1172 11AC;
+C28E;C28E;1109 1172 11AD;C28E;1109 1172 11AD;
+C28F;C28F;1109 1172 11AE;C28F;1109 1172 11AE;
+C290;C290;1109 1172 11AF;C290;1109 1172 11AF;
+C291;C291;1109 1172 11B0;C291;1109 1172 11B0;
+C292;C292;1109 1172 11B1;C292;1109 1172 11B1;
+C293;C293;1109 1172 11B2;C293;1109 1172 11B2;
+C294;C294;1109 1172 11B3;C294;1109 1172 11B3;
+C295;C295;1109 1172 11B4;C295;1109 1172 11B4;
+C296;C296;1109 1172 11B5;C296;1109 1172 11B5;
+C297;C297;1109 1172 11B6;C297;1109 1172 11B6;
+C298;C298;1109 1172 11B7;C298;1109 1172 11B7;
+C299;C299;1109 1172 11B8;C299;1109 1172 11B8;
+C29A;C29A;1109 1172 11B9;C29A;1109 1172 11B9;
+C29B;C29B;1109 1172 11BA;C29B;1109 1172 11BA;
+C29C;C29C;1109 1172 11BB;C29C;1109 1172 11BB;
+C29D;C29D;1109 1172 11BC;C29D;1109 1172 11BC;
+C29E;C29E;1109 1172 11BD;C29E;1109 1172 11BD;
+C29F;C29F;1109 1172 11BE;C29F;1109 1172 11BE;
+C2A0;C2A0;1109 1172 11BF;C2A0;1109 1172 11BF;
+C2A1;C2A1;1109 1172 11C0;C2A1;1109 1172 11C0;
+C2A2;C2A2;1109 1172 11C1;C2A2;1109 1172 11C1;
+C2A3;C2A3;1109 1172 11C2;C2A3;1109 1172 11C2;
+C2A4;C2A4;1109 1173;C2A4;1109 1173;
+C2A5;C2A5;1109 1173 11A8;C2A5;1109 1173 11A8;
+C2A6;C2A6;1109 1173 11A9;C2A6;1109 1173 11A9;
+C2A7;C2A7;1109 1173 11AA;C2A7;1109 1173 11AA;
+C2A8;C2A8;1109 1173 11AB;C2A8;1109 1173 11AB;
+C2A9;C2A9;1109 1173 11AC;C2A9;1109 1173 11AC;
+C2AA;C2AA;1109 1173 11AD;C2AA;1109 1173 11AD;
+C2AB;C2AB;1109 1173 11AE;C2AB;1109 1173 11AE;
+C2AC;C2AC;1109 1173 11AF;C2AC;1109 1173 11AF;
+C2AD;C2AD;1109 1173 11B0;C2AD;1109 1173 11B0;
+C2AE;C2AE;1109 1173 11B1;C2AE;1109 1173 11B1;
+C2AF;C2AF;1109 1173 11B2;C2AF;1109 1173 11B2;
+C2B0;C2B0;1109 1173 11B3;C2B0;1109 1173 11B3;
+C2B1;C2B1;1109 1173 11B4;C2B1;1109 1173 11B4;
+C2B2;C2B2;1109 1173 11B5;C2B2;1109 1173 11B5;
+C2B3;C2B3;1109 1173 11B6;C2B3;1109 1173 11B6;
+C2B4;C2B4;1109 1173 11B7;C2B4;1109 1173 11B7;
+C2B5;C2B5;1109 1173 11B8;C2B5;1109 1173 11B8;
+C2B6;C2B6;1109 1173 11B9;C2B6;1109 1173 11B9;
+C2B7;C2B7;1109 1173 11BA;C2B7;1109 1173 11BA;
+C2B8;C2B8;1109 1173 11BB;C2B8;1109 1173 11BB;
+C2B9;C2B9;1109 1173 11BC;C2B9;1109 1173 11BC;
+C2BA;C2BA;1109 1173 11BD;C2BA;1109 1173 11BD;
+C2BB;C2BB;1109 1173 11BE;C2BB;1109 1173 11BE;
+C2BC;C2BC;1109 1173 11BF;C2BC;1109 1173 11BF;
+C2BD;C2BD;1109 1173 11C0;C2BD;1109 1173 11C0;
+C2BE;C2BE;1109 1173 11C1;C2BE;1109 1173 11C1;
+C2BF;C2BF;1109 1173 11C2;C2BF;1109 1173 11C2;
+C2C0;C2C0;1109 1174;C2C0;1109 1174;
+C2C1;C2C1;1109 1174 11A8;C2C1;1109 1174 11A8;
+C2C2;C2C2;1109 1174 11A9;C2C2;1109 1174 11A9;
+C2C3;C2C3;1109 1174 11AA;C2C3;1109 1174 11AA;
+C2C4;C2C4;1109 1174 11AB;C2C4;1109 1174 11AB;
+C2C5;C2C5;1109 1174 11AC;C2C5;1109 1174 11AC;
+C2C6;C2C6;1109 1174 11AD;C2C6;1109 1174 11AD;
+C2C7;C2C7;1109 1174 11AE;C2C7;1109 1174 11AE;
+C2C8;C2C8;1109 1174 11AF;C2C8;1109 1174 11AF;
+C2C9;C2C9;1109 1174 11B0;C2C9;1109 1174 11B0;
+C2CA;C2CA;1109 1174 11B1;C2CA;1109 1174 11B1;
+C2CB;C2CB;1109 1174 11B2;C2CB;1109 1174 11B2;
+C2CC;C2CC;1109 1174 11B3;C2CC;1109 1174 11B3;
+C2CD;C2CD;1109 1174 11B4;C2CD;1109 1174 11B4;
+C2CE;C2CE;1109 1174 11B5;C2CE;1109 1174 11B5;
+C2CF;C2CF;1109 1174 11B6;C2CF;1109 1174 11B6;
+C2D0;C2D0;1109 1174 11B7;C2D0;1109 1174 11B7;
+C2D1;C2D1;1109 1174 11B8;C2D1;1109 1174 11B8;
+C2D2;C2D2;1109 1174 11B9;C2D2;1109 1174 11B9;
+C2D3;C2D3;1109 1174 11BA;C2D3;1109 1174 11BA;
+C2D4;C2D4;1109 1174 11BB;C2D4;1109 1174 11BB;
+C2D5;C2D5;1109 1174 11BC;C2D5;1109 1174 11BC;
+C2D6;C2D6;1109 1174 11BD;C2D6;1109 1174 11BD;
+C2D7;C2D7;1109 1174 11BE;C2D7;1109 1174 11BE;
+C2D8;C2D8;1109 1174 11BF;C2D8;1109 1174 11BF;
+C2D9;C2D9;1109 1174 11C0;C2D9;1109 1174 11C0;
+C2DA;C2DA;1109 1174 11C1;C2DA;1109 1174 11C1;
+C2DB;C2DB;1109 1174 11C2;C2DB;1109 1174 11C2;
+C2DC;C2DC;1109 1175;C2DC;1109 1175;
+C2DD;C2DD;1109 1175 11A8;C2DD;1109 1175 11A8;
+C2DE;C2DE;1109 1175 11A9;C2DE;1109 1175 11A9;
+C2DF;C2DF;1109 1175 11AA;C2DF;1109 1175 11AA;
+C2E0;C2E0;1109 1175 11AB;C2E0;1109 1175 11AB;
+C2E1;C2E1;1109 1175 11AC;C2E1;1109 1175 11AC;
+C2E2;C2E2;1109 1175 11AD;C2E2;1109 1175 11AD;
+C2E3;C2E3;1109 1175 11AE;C2E3;1109 1175 11AE;
+C2E4;C2E4;1109 1175 11AF;C2E4;1109 1175 11AF;
+C2E5;C2E5;1109 1175 11B0;C2E5;1109 1175 11B0;
+C2E6;C2E6;1109 1175 11B1;C2E6;1109 1175 11B1;
+C2E7;C2E7;1109 1175 11B2;C2E7;1109 1175 11B2;
+C2E8;C2E8;1109 1175 11B3;C2E8;1109 1175 11B3;
+C2E9;C2E9;1109 1175 11B4;C2E9;1109 1175 11B4;
+C2EA;C2EA;1109 1175 11B5;C2EA;1109 1175 11B5;
+C2EB;C2EB;1109 1175 11B6;C2EB;1109 1175 11B6;
+C2EC;C2EC;1109 1175 11B7;C2EC;1109 1175 11B7;
+C2ED;C2ED;1109 1175 11B8;C2ED;1109 1175 11B8;
+C2EE;C2EE;1109 1175 11B9;C2EE;1109 1175 11B9;
+C2EF;C2EF;1109 1175 11BA;C2EF;1109 1175 11BA;
+C2F0;C2F0;1109 1175 11BB;C2F0;1109 1175 11BB;
+C2F1;C2F1;1109 1175 11BC;C2F1;1109 1175 11BC;
+C2F2;C2F2;1109 1175 11BD;C2F2;1109 1175 11BD;
+C2F3;C2F3;1109 1175 11BE;C2F3;1109 1175 11BE;
+C2F4;C2F4;1109 1175 11BF;C2F4;1109 1175 11BF;
+C2F5;C2F5;1109 1175 11C0;C2F5;1109 1175 11C0;
+C2F6;C2F6;1109 1175 11C1;C2F6;1109 1175 11C1;
+C2F7;C2F7;1109 1175 11C2;C2F7;1109 1175 11C2;
+C2F8;C2F8;110A 1161;C2F8;110A 1161;
+C2F9;C2F9;110A 1161 11A8;C2F9;110A 1161 11A8;
+C2FA;C2FA;110A 1161 11A9;C2FA;110A 1161 11A9;
+C2FB;C2FB;110A 1161 11AA;C2FB;110A 1161 11AA;
+C2FC;C2FC;110A 1161 11AB;C2FC;110A 1161 11AB;
+C2FD;C2FD;110A 1161 11AC;C2FD;110A 1161 11AC;
+C2FE;C2FE;110A 1161 11AD;C2FE;110A 1161 11AD;
+C2FF;C2FF;110A 1161 11AE;C2FF;110A 1161 11AE;
+C300;C300;110A 1161 11AF;C300;110A 1161 11AF;
+C301;C301;110A 1161 11B0;C301;110A 1161 11B0;
+C302;C302;110A 1161 11B1;C302;110A 1161 11B1;
+C303;C303;110A 1161 11B2;C303;110A 1161 11B2;
+C304;C304;110A 1161 11B3;C304;110A 1161 11B3;
+C305;C305;110A 1161 11B4;C305;110A 1161 11B4;
+C306;C306;110A 1161 11B5;C306;110A 1161 11B5;
+C307;C307;110A 1161 11B6;C307;110A 1161 11B6;
+C308;C308;110A 1161 11B7;C308;110A 1161 11B7;
+C309;C309;110A 1161 11B8;C309;110A 1161 11B8;
+C30A;C30A;110A 1161 11B9;C30A;110A 1161 11B9;
+C30B;C30B;110A 1161 11BA;C30B;110A 1161 11BA;
+C30C;C30C;110A 1161 11BB;C30C;110A 1161 11BB;
+C30D;C30D;110A 1161 11BC;C30D;110A 1161 11BC;
+C30E;C30E;110A 1161 11BD;C30E;110A 1161 11BD;
+C30F;C30F;110A 1161 11BE;C30F;110A 1161 11BE;
+C310;C310;110A 1161 11BF;C310;110A 1161 11BF;
+C311;C311;110A 1161 11C0;C311;110A 1161 11C0;
+C312;C312;110A 1161 11C1;C312;110A 1161 11C1;
+C313;C313;110A 1161 11C2;C313;110A 1161 11C2;
+C314;C314;110A 1162;C314;110A 1162;
+C315;C315;110A 1162 11A8;C315;110A 1162 11A8;
+C316;C316;110A 1162 11A9;C316;110A 1162 11A9;
+C317;C317;110A 1162 11AA;C317;110A 1162 11AA;
+C318;C318;110A 1162 11AB;C318;110A 1162 11AB;
+C319;C319;110A 1162 11AC;C319;110A 1162 11AC;
+C31A;C31A;110A 1162 11AD;C31A;110A 1162 11AD;
+C31B;C31B;110A 1162 11AE;C31B;110A 1162 11AE;
+C31C;C31C;110A 1162 11AF;C31C;110A 1162 11AF;
+C31D;C31D;110A 1162 11B0;C31D;110A 1162 11B0;
+C31E;C31E;110A 1162 11B1;C31E;110A 1162 11B1;
+C31F;C31F;110A 1162 11B2;C31F;110A 1162 11B2;
+C320;C320;110A 1162 11B3;C320;110A 1162 11B3;
+C321;C321;110A 1162 11B4;C321;110A 1162 11B4;
+C322;C322;110A 1162 11B5;C322;110A 1162 11B5;
+C323;C323;110A 1162 11B6;C323;110A 1162 11B6;
+C324;C324;110A 1162 11B7;C324;110A 1162 11B7;
+C325;C325;110A 1162 11B8;C325;110A 1162 11B8;
+C326;C326;110A 1162 11B9;C326;110A 1162 11B9;
+C327;C327;110A 1162 11BA;C327;110A 1162 11BA;
+C328;C328;110A 1162 11BB;C328;110A 1162 11BB;
+C329;C329;110A 1162 11BC;C329;110A 1162 11BC;
+C32A;C32A;110A 1162 11BD;C32A;110A 1162 11BD;
+C32B;C32B;110A 1162 11BE;C32B;110A 1162 11BE;
+C32C;C32C;110A 1162 11BF;C32C;110A 1162 11BF;
+C32D;C32D;110A 1162 11C0;C32D;110A 1162 11C0;
+C32E;C32E;110A 1162 11C1;C32E;110A 1162 11C1;
+C32F;C32F;110A 1162 11C2;C32F;110A 1162 11C2;
+C330;C330;110A 1163;C330;110A 1163;
+C331;C331;110A 1163 11A8;C331;110A 1163 11A8;
+C332;C332;110A 1163 11A9;C332;110A 1163 11A9;
+C333;C333;110A 1163 11AA;C333;110A 1163 11AA;
+C334;C334;110A 1163 11AB;C334;110A 1163 11AB;
+C335;C335;110A 1163 11AC;C335;110A 1163 11AC;
+C336;C336;110A 1163 11AD;C336;110A 1163 11AD;
+C337;C337;110A 1163 11AE;C337;110A 1163 11AE;
+C338;C338;110A 1163 11AF;C338;110A 1163 11AF;
+C339;C339;110A 1163 11B0;C339;110A 1163 11B0;
+C33A;C33A;110A 1163 11B1;C33A;110A 1163 11B1;
+C33B;C33B;110A 1163 11B2;C33B;110A 1163 11B2;
+C33C;C33C;110A 1163 11B3;C33C;110A 1163 11B3;
+C33D;C33D;110A 1163 11B4;C33D;110A 1163 11B4;
+C33E;C33E;110A 1163 11B5;C33E;110A 1163 11B5;
+C33F;C33F;110A 1163 11B6;C33F;110A 1163 11B6;
+C340;C340;110A 1163 11B7;C340;110A 1163 11B7;
+C341;C341;110A 1163 11B8;C341;110A 1163 11B8;
+C342;C342;110A 1163 11B9;C342;110A 1163 11B9;
+C343;C343;110A 1163 11BA;C343;110A 1163 11BA;
+C344;C344;110A 1163 11BB;C344;110A 1163 11BB;
+C345;C345;110A 1163 11BC;C345;110A 1163 11BC;
+C346;C346;110A 1163 11BD;C346;110A 1163 11BD;
+C347;C347;110A 1163 11BE;C347;110A 1163 11BE;
+C348;C348;110A 1163 11BF;C348;110A 1163 11BF;
+C349;C349;110A 1163 11C0;C349;110A 1163 11C0;
+C34A;C34A;110A 1163 11C1;C34A;110A 1163 11C1;
+C34B;C34B;110A 1163 11C2;C34B;110A 1163 11C2;
+C34C;C34C;110A 1164;C34C;110A 1164;
+C34D;C34D;110A 1164 11A8;C34D;110A 1164 11A8;
+C34E;C34E;110A 1164 11A9;C34E;110A 1164 11A9;
+C34F;C34F;110A 1164 11AA;C34F;110A 1164 11AA;
+C350;C350;110A 1164 11AB;C350;110A 1164 11AB;
+C351;C351;110A 1164 11AC;C351;110A 1164 11AC;
+C352;C352;110A 1164 11AD;C352;110A 1164 11AD;
+C353;C353;110A 1164 11AE;C353;110A 1164 11AE;
+C354;C354;110A 1164 11AF;C354;110A 1164 11AF;
+C355;C355;110A 1164 11B0;C355;110A 1164 11B0;
+C356;C356;110A 1164 11B1;C356;110A 1164 11B1;
+C357;C357;110A 1164 11B2;C357;110A 1164 11B2;
+C358;C358;110A 1164 11B3;C358;110A 1164 11B3;
+C359;C359;110A 1164 11B4;C359;110A 1164 11B4;
+C35A;C35A;110A 1164 11B5;C35A;110A 1164 11B5;
+C35B;C35B;110A 1164 11B6;C35B;110A 1164 11B6;
+C35C;C35C;110A 1164 11B7;C35C;110A 1164 11B7;
+C35D;C35D;110A 1164 11B8;C35D;110A 1164 11B8;
+C35E;C35E;110A 1164 11B9;C35E;110A 1164 11B9;
+C35F;C35F;110A 1164 11BA;C35F;110A 1164 11BA;
+C360;C360;110A 1164 11BB;C360;110A 1164 11BB;
+C361;C361;110A 1164 11BC;C361;110A 1164 11BC;
+C362;C362;110A 1164 11BD;C362;110A 1164 11BD;
+C363;C363;110A 1164 11BE;C363;110A 1164 11BE;
+C364;C364;110A 1164 11BF;C364;110A 1164 11BF;
+C365;C365;110A 1164 11C0;C365;110A 1164 11C0;
+C366;C366;110A 1164 11C1;C366;110A 1164 11C1;
+C367;C367;110A 1164 11C2;C367;110A 1164 11C2;
+C368;C368;110A 1165;C368;110A 1165;
+C369;C369;110A 1165 11A8;C369;110A 1165 11A8;
+C36A;C36A;110A 1165 11A9;C36A;110A 1165 11A9;
+C36B;C36B;110A 1165 11AA;C36B;110A 1165 11AA;
+C36C;C36C;110A 1165 11AB;C36C;110A 1165 11AB;
+C36D;C36D;110A 1165 11AC;C36D;110A 1165 11AC;
+C36E;C36E;110A 1165 11AD;C36E;110A 1165 11AD;
+C36F;C36F;110A 1165 11AE;C36F;110A 1165 11AE;
+C370;C370;110A 1165 11AF;C370;110A 1165 11AF;
+C371;C371;110A 1165 11B0;C371;110A 1165 11B0;
+C372;C372;110A 1165 11B1;C372;110A 1165 11B1;
+C373;C373;110A 1165 11B2;C373;110A 1165 11B2;
+C374;C374;110A 1165 11B3;C374;110A 1165 11B3;
+C375;C375;110A 1165 11B4;C375;110A 1165 11B4;
+C376;C376;110A 1165 11B5;C376;110A 1165 11B5;
+C377;C377;110A 1165 11B6;C377;110A 1165 11B6;
+C378;C378;110A 1165 11B7;C378;110A 1165 11B7;
+C379;C379;110A 1165 11B8;C379;110A 1165 11B8;
+C37A;C37A;110A 1165 11B9;C37A;110A 1165 11B9;
+C37B;C37B;110A 1165 11BA;C37B;110A 1165 11BA;
+C37C;C37C;110A 1165 11BB;C37C;110A 1165 11BB;
+C37D;C37D;110A 1165 11BC;C37D;110A 1165 11BC;
+C37E;C37E;110A 1165 11BD;C37E;110A 1165 11BD;
+C37F;C37F;110A 1165 11BE;C37F;110A 1165 11BE;
+C380;C380;110A 1165 11BF;C380;110A 1165 11BF;
+C381;C381;110A 1165 11C0;C381;110A 1165 11C0;
+C382;C382;110A 1165 11C1;C382;110A 1165 11C1;
+C383;C383;110A 1165 11C2;C383;110A 1165 11C2;
+C384;C384;110A 1166;C384;110A 1166;
+C385;C385;110A 1166 11A8;C385;110A 1166 11A8;
+C386;C386;110A 1166 11A9;C386;110A 1166 11A9;
+C387;C387;110A 1166 11AA;C387;110A 1166 11AA;
+C388;C388;110A 1166 11AB;C388;110A 1166 11AB;
+C389;C389;110A 1166 11AC;C389;110A 1166 11AC;
+C38A;C38A;110A 1166 11AD;C38A;110A 1166 11AD;
+C38B;C38B;110A 1166 11AE;C38B;110A 1166 11AE;
+C38C;C38C;110A 1166 11AF;C38C;110A 1166 11AF;
+C38D;C38D;110A 1166 11B0;C38D;110A 1166 11B0;
+C38E;C38E;110A 1166 11B1;C38E;110A 1166 11B1;
+C38F;C38F;110A 1166 11B2;C38F;110A 1166 11B2;
+C390;C390;110A 1166 11B3;C390;110A 1166 11B3;
+C391;C391;110A 1166 11B4;C391;110A 1166 11B4;
+C392;C392;110A 1166 11B5;C392;110A 1166 11B5;
+C393;C393;110A 1166 11B6;C393;110A 1166 11B6;
+C394;C394;110A 1166 11B7;C394;110A 1166 11B7;
+C395;C395;110A 1166 11B8;C395;110A 1166 11B8;
+C396;C396;110A 1166 11B9;C396;110A 1166 11B9;
+C397;C397;110A 1166 11BA;C397;110A 1166 11BA;
+C398;C398;110A 1166 11BB;C398;110A 1166 11BB;
+C399;C399;110A 1166 11BC;C399;110A 1166 11BC;
+C39A;C39A;110A 1166 11BD;C39A;110A 1166 11BD;
+C39B;C39B;110A 1166 11BE;C39B;110A 1166 11BE;
+C39C;C39C;110A 1166 11BF;C39C;110A 1166 11BF;
+C39D;C39D;110A 1166 11C0;C39D;110A 1166 11C0;
+C39E;C39E;110A 1166 11C1;C39E;110A 1166 11C1;
+C39F;C39F;110A 1166 11C2;C39F;110A 1166 11C2;
+C3A0;C3A0;110A 1167;C3A0;110A 1167;
+C3A1;C3A1;110A 1167 11A8;C3A1;110A 1167 11A8;
+C3A2;C3A2;110A 1167 11A9;C3A2;110A 1167 11A9;
+C3A3;C3A3;110A 1167 11AA;C3A3;110A 1167 11AA;
+C3A4;C3A4;110A 1167 11AB;C3A4;110A 1167 11AB;
+C3A5;C3A5;110A 1167 11AC;C3A5;110A 1167 11AC;
+C3A6;C3A6;110A 1167 11AD;C3A6;110A 1167 11AD;
+C3A7;C3A7;110A 1167 11AE;C3A7;110A 1167 11AE;
+C3A8;C3A8;110A 1167 11AF;C3A8;110A 1167 11AF;
+C3A9;C3A9;110A 1167 11B0;C3A9;110A 1167 11B0;
+C3AA;C3AA;110A 1167 11B1;C3AA;110A 1167 11B1;
+C3AB;C3AB;110A 1167 11B2;C3AB;110A 1167 11B2;
+C3AC;C3AC;110A 1167 11B3;C3AC;110A 1167 11B3;
+C3AD;C3AD;110A 1167 11B4;C3AD;110A 1167 11B4;
+C3AE;C3AE;110A 1167 11B5;C3AE;110A 1167 11B5;
+C3AF;C3AF;110A 1167 11B6;C3AF;110A 1167 11B6;
+C3B0;C3B0;110A 1167 11B7;C3B0;110A 1167 11B7;
+C3B1;C3B1;110A 1167 11B8;C3B1;110A 1167 11B8;
+C3B2;C3B2;110A 1167 11B9;C3B2;110A 1167 11B9;
+C3B3;C3B3;110A 1167 11BA;C3B3;110A 1167 11BA;
+C3B4;C3B4;110A 1167 11BB;C3B4;110A 1167 11BB;
+C3B5;C3B5;110A 1167 11BC;C3B5;110A 1167 11BC;
+C3B6;C3B6;110A 1167 11BD;C3B6;110A 1167 11BD;
+C3B7;C3B7;110A 1167 11BE;C3B7;110A 1167 11BE;
+C3B8;C3B8;110A 1167 11BF;C3B8;110A 1167 11BF;
+C3B9;C3B9;110A 1167 11C0;C3B9;110A 1167 11C0;
+C3BA;C3BA;110A 1167 11C1;C3BA;110A 1167 11C1;
+C3BB;C3BB;110A 1167 11C2;C3BB;110A 1167 11C2;
+C3BC;C3BC;110A 1168;C3BC;110A 1168;
+C3BD;C3BD;110A 1168 11A8;C3BD;110A 1168 11A8;
+C3BE;C3BE;110A 1168 11A9;C3BE;110A 1168 11A9;
+C3BF;C3BF;110A 1168 11AA;C3BF;110A 1168 11AA;
+C3C0;C3C0;110A 1168 11AB;C3C0;110A 1168 11AB;
+C3C1;C3C1;110A 1168 11AC;C3C1;110A 1168 11AC;
+C3C2;C3C2;110A 1168 11AD;C3C2;110A 1168 11AD;
+C3C3;C3C3;110A 1168 11AE;C3C3;110A 1168 11AE;
+C3C4;C3C4;110A 1168 11AF;C3C4;110A 1168 11AF;
+C3C5;C3C5;110A 1168 11B0;C3C5;110A 1168 11B0;
+C3C6;C3C6;110A 1168 11B1;C3C6;110A 1168 11B1;
+C3C7;C3C7;110A 1168 11B2;C3C7;110A 1168 11B2;
+C3C8;C3C8;110A 1168 11B3;C3C8;110A 1168 11B3;
+C3C9;C3C9;110A 1168 11B4;C3C9;110A 1168 11B4;
+C3CA;C3CA;110A 1168 11B5;C3CA;110A 1168 11B5;
+C3CB;C3CB;110A 1168 11B6;C3CB;110A 1168 11B6;
+C3CC;C3CC;110A 1168 11B7;C3CC;110A 1168 11B7;
+C3CD;C3CD;110A 1168 11B8;C3CD;110A 1168 11B8;
+C3CE;C3CE;110A 1168 11B9;C3CE;110A 1168 11B9;
+C3CF;C3CF;110A 1168 11BA;C3CF;110A 1168 11BA;
+C3D0;C3D0;110A 1168 11BB;C3D0;110A 1168 11BB;
+C3D1;C3D1;110A 1168 11BC;C3D1;110A 1168 11BC;
+C3D2;C3D2;110A 1168 11BD;C3D2;110A 1168 11BD;
+C3D3;C3D3;110A 1168 11BE;C3D3;110A 1168 11BE;
+C3D4;C3D4;110A 1168 11BF;C3D4;110A 1168 11BF;
+C3D5;C3D5;110A 1168 11C0;C3D5;110A 1168 11C0;
+C3D6;C3D6;110A 1168 11C1;C3D6;110A 1168 11C1;
+C3D7;C3D7;110A 1168 11C2;C3D7;110A 1168 11C2;
+C3D8;C3D8;110A 1169;C3D8;110A 1169;
+C3D9;C3D9;110A 1169 11A8;C3D9;110A 1169 11A8;
+C3DA;C3DA;110A 1169 11A9;C3DA;110A 1169 11A9;
+C3DB;C3DB;110A 1169 11AA;C3DB;110A 1169 11AA;
+C3DC;C3DC;110A 1169 11AB;C3DC;110A 1169 11AB;
+C3DD;C3DD;110A 1169 11AC;C3DD;110A 1169 11AC;
+C3DE;C3DE;110A 1169 11AD;C3DE;110A 1169 11AD;
+C3DF;C3DF;110A 1169 11AE;C3DF;110A 1169 11AE;
+C3E0;C3E0;110A 1169 11AF;C3E0;110A 1169 11AF;
+C3E1;C3E1;110A 1169 11B0;C3E1;110A 1169 11B0;
+C3E2;C3E2;110A 1169 11B1;C3E2;110A 1169 11B1;
+C3E3;C3E3;110A 1169 11B2;C3E3;110A 1169 11B2;
+C3E4;C3E4;110A 1169 11B3;C3E4;110A 1169 11B3;
+C3E5;C3E5;110A 1169 11B4;C3E5;110A 1169 11B4;
+C3E6;C3E6;110A 1169 11B5;C3E6;110A 1169 11B5;
+C3E7;C3E7;110A 1169 11B6;C3E7;110A 1169 11B6;
+C3E8;C3E8;110A 1169 11B7;C3E8;110A 1169 11B7;
+C3E9;C3E9;110A 1169 11B8;C3E9;110A 1169 11B8;
+C3EA;C3EA;110A 1169 11B9;C3EA;110A 1169 11B9;
+C3EB;C3EB;110A 1169 11BA;C3EB;110A 1169 11BA;
+C3EC;C3EC;110A 1169 11BB;C3EC;110A 1169 11BB;
+C3ED;C3ED;110A 1169 11BC;C3ED;110A 1169 11BC;
+C3EE;C3EE;110A 1169 11BD;C3EE;110A 1169 11BD;
+C3EF;C3EF;110A 1169 11BE;C3EF;110A 1169 11BE;
+C3F0;C3F0;110A 1169 11BF;C3F0;110A 1169 11BF;
+C3F1;C3F1;110A 1169 11C0;C3F1;110A 1169 11C0;
+C3F2;C3F2;110A 1169 11C1;C3F2;110A 1169 11C1;
+C3F3;C3F3;110A 1169 11C2;C3F3;110A 1169 11C2;
+C3F4;C3F4;110A 116A;C3F4;110A 116A;
+C3F5;C3F5;110A 116A 11A8;C3F5;110A 116A 11A8;
+C3F6;C3F6;110A 116A 11A9;C3F6;110A 116A 11A9;
+C3F7;C3F7;110A 116A 11AA;C3F7;110A 116A 11AA;
+C3F8;C3F8;110A 116A 11AB;C3F8;110A 116A 11AB;
+C3F9;C3F9;110A 116A 11AC;C3F9;110A 116A 11AC;
+C3FA;C3FA;110A 116A 11AD;C3FA;110A 116A 11AD;
+C3FB;C3FB;110A 116A 11AE;C3FB;110A 116A 11AE;
+C3FC;C3FC;110A 116A 11AF;C3FC;110A 116A 11AF;
+C3FD;C3FD;110A 116A 11B0;C3FD;110A 116A 11B0;
+C3FE;C3FE;110A 116A 11B1;C3FE;110A 116A 11B1;
+C3FF;C3FF;110A 116A 11B2;C3FF;110A 116A 11B2;
+C400;C400;110A 116A 11B3;C400;110A 116A 11B3;
+C401;C401;110A 116A 11B4;C401;110A 116A 11B4;
+C402;C402;110A 116A 11B5;C402;110A 116A 11B5;
+C403;C403;110A 116A 11B6;C403;110A 116A 11B6;
+C404;C404;110A 116A 11B7;C404;110A 116A 11B7;
+C405;C405;110A 116A 11B8;C405;110A 116A 11B8;
+C406;C406;110A 116A 11B9;C406;110A 116A 11B9;
+C407;C407;110A 116A 11BA;C407;110A 116A 11BA;
+C408;C408;110A 116A 11BB;C408;110A 116A 11BB;
+C409;C409;110A 116A 11BC;C409;110A 116A 11BC;
+C40A;C40A;110A 116A 11BD;C40A;110A 116A 11BD;
+C40B;C40B;110A 116A 11BE;C40B;110A 116A 11BE;
+C40C;C40C;110A 116A 11BF;C40C;110A 116A 11BF;
+C40D;C40D;110A 116A 11C0;C40D;110A 116A 11C0;
+C40E;C40E;110A 116A 11C1;C40E;110A 116A 11C1;
+C40F;C40F;110A 116A 11C2;C40F;110A 116A 11C2;
+C410;C410;110A 116B;C410;110A 116B;
+C411;C411;110A 116B 11A8;C411;110A 116B 11A8;
+C412;C412;110A 116B 11A9;C412;110A 116B 11A9;
+C413;C413;110A 116B 11AA;C413;110A 116B 11AA;
+C414;C414;110A 116B 11AB;C414;110A 116B 11AB;
+C415;C415;110A 116B 11AC;C415;110A 116B 11AC;
+C416;C416;110A 116B 11AD;C416;110A 116B 11AD;
+C417;C417;110A 116B 11AE;C417;110A 116B 11AE;
+C418;C418;110A 116B 11AF;C418;110A 116B 11AF;
+C419;C419;110A 116B 11B0;C419;110A 116B 11B0;
+C41A;C41A;110A 116B 11B1;C41A;110A 116B 11B1;
+C41B;C41B;110A 116B 11B2;C41B;110A 116B 11B2;
+C41C;C41C;110A 116B 11B3;C41C;110A 116B 11B3;
+C41D;C41D;110A 116B 11B4;C41D;110A 116B 11B4;
+C41E;C41E;110A 116B 11B5;C41E;110A 116B 11B5;
+C41F;C41F;110A 116B 11B6;C41F;110A 116B 11B6;
+C420;C420;110A 116B 11B7;C420;110A 116B 11B7;
+C421;C421;110A 116B 11B8;C421;110A 116B 11B8;
+C422;C422;110A 116B 11B9;C422;110A 116B 11B9;
+C423;C423;110A 116B 11BA;C423;110A 116B 11BA;
+C424;C424;110A 116B 11BB;C424;110A 116B 11BB;
+C425;C425;110A 116B 11BC;C425;110A 116B 11BC;
+C426;C426;110A 116B 11BD;C426;110A 116B 11BD;
+C427;C427;110A 116B 11BE;C427;110A 116B 11BE;
+C428;C428;110A 116B 11BF;C428;110A 116B 11BF;
+C429;C429;110A 116B 11C0;C429;110A 116B 11C0;
+C42A;C42A;110A 116B 11C1;C42A;110A 116B 11C1;
+C42B;C42B;110A 116B 11C2;C42B;110A 116B 11C2;
+C42C;C42C;110A 116C;C42C;110A 116C;
+C42D;C42D;110A 116C 11A8;C42D;110A 116C 11A8;
+C42E;C42E;110A 116C 11A9;C42E;110A 116C 11A9;
+C42F;C42F;110A 116C 11AA;C42F;110A 116C 11AA;
+C430;C430;110A 116C 11AB;C430;110A 116C 11AB;
+C431;C431;110A 116C 11AC;C431;110A 116C 11AC;
+C432;C432;110A 116C 11AD;C432;110A 116C 11AD;
+C433;C433;110A 116C 11AE;C433;110A 116C 11AE;
+C434;C434;110A 116C 11AF;C434;110A 116C 11AF;
+C435;C435;110A 116C 11B0;C435;110A 116C 11B0;
+C436;C436;110A 116C 11B1;C436;110A 116C 11B1;
+C437;C437;110A 116C 11B2;C437;110A 116C 11B2;
+C438;C438;110A 116C 11B3;C438;110A 116C 11B3;
+C439;C439;110A 116C 11B4;C439;110A 116C 11B4;
+C43A;C43A;110A 116C 11B5;C43A;110A 116C 11B5;
+C43B;C43B;110A 116C 11B6;C43B;110A 116C 11B6;
+C43C;C43C;110A 116C 11B7;C43C;110A 116C 11B7;
+C43D;C43D;110A 116C 11B8;C43D;110A 116C 11B8;
+C43E;C43E;110A 116C 11B9;C43E;110A 116C 11B9;
+C43F;C43F;110A 116C 11BA;C43F;110A 116C 11BA;
+C440;C440;110A 116C 11BB;C440;110A 116C 11BB;
+C441;C441;110A 116C 11BC;C441;110A 116C 11BC;
+C442;C442;110A 116C 11BD;C442;110A 116C 11BD;
+C443;C443;110A 116C 11BE;C443;110A 116C 11BE;
+C444;C444;110A 116C 11BF;C444;110A 116C 11BF;
+C445;C445;110A 116C 11C0;C445;110A 116C 11C0;
+C446;C446;110A 116C 11C1;C446;110A 116C 11C1;
+C447;C447;110A 116C 11C2;C447;110A 116C 11C2;
+C448;C448;110A 116D;C448;110A 116D;
+C449;C449;110A 116D 11A8;C449;110A 116D 11A8;
+C44A;C44A;110A 116D 11A9;C44A;110A 116D 11A9;
+C44B;C44B;110A 116D 11AA;C44B;110A 116D 11AA;
+C44C;C44C;110A 116D 11AB;C44C;110A 116D 11AB;
+C44D;C44D;110A 116D 11AC;C44D;110A 116D 11AC;
+C44E;C44E;110A 116D 11AD;C44E;110A 116D 11AD;
+C44F;C44F;110A 116D 11AE;C44F;110A 116D 11AE;
+C450;C450;110A 116D 11AF;C450;110A 116D 11AF;
+C451;C451;110A 116D 11B0;C451;110A 116D 11B0;
+C452;C452;110A 116D 11B1;C452;110A 116D 11B1;
+C453;C453;110A 116D 11B2;C453;110A 116D 11B2;
+C454;C454;110A 116D 11B3;C454;110A 116D 11B3;
+C455;C455;110A 116D 11B4;C455;110A 116D 11B4;
+C456;C456;110A 116D 11B5;C456;110A 116D 11B5;
+C457;C457;110A 116D 11B6;C457;110A 116D 11B6;
+C458;C458;110A 116D 11B7;C458;110A 116D 11B7;
+C459;C459;110A 116D 11B8;C459;110A 116D 11B8;
+C45A;C45A;110A 116D 11B9;C45A;110A 116D 11B9;
+C45B;C45B;110A 116D 11BA;C45B;110A 116D 11BA;
+C45C;C45C;110A 116D 11BB;C45C;110A 116D 11BB;
+C45D;C45D;110A 116D 11BC;C45D;110A 116D 11BC;
+C45E;C45E;110A 116D 11BD;C45E;110A 116D 11BD;
+C45F;C45F;110A 116D 11BE;C45F;110A 116D 11BE;
+C460;C460;110A 116D 11BF;C460;110A 116D 11BF;
+C461;C461;110A 116D 11C0;C461;110A 116D 11C0;
+C462;C462;110A 116D 11C1;C462;110A 116D 11C1;
+C463;C463;110A 116D 11C2;C463;110A 116D 11C2;
+C464;C464;110A 116E;C464;110A 116E;
+C465;C465;110A 116E 11A8;C465;110A 116E 11A8;
+C466;C466;110A 116E 11A9;C466;110A 116E 11A9;
+C467;C467;110A 116E 11AA;C467;110A 116E 11AA;
+C468;C468;110A 116E 11AB;C468;110A 116E 11AB;
+C469;C469;110A 116E 11AC;C469;110A 116E 11AC;
+C46A;C46A;110A 116E 11AD;C46A;110A 116E 11AD;
+C46B;C46B;110A 116E 11AE;C46B;110A 116E 11AE;
+C46C;C46C;110A 116E 11AF;C46C;110A 116E 11AF;
+C46D;C46D;110A 116E 11B0;C46D;110A 116E 11B0;
+C46E;C46E;110A 116E 11B1;C46E;110A 116E 11B1;
+C46F;C46F;110A 116E 11B2;C46F;110A 116E 11B2;
+C470;C470;110A 116E 11B3;C470;110A 116E 11B3;
+C471;C471;110A 116E 11B4;C471;110A 116E 11B4;
+C472;C472;110A 116E 11B5;C472;110A 116E 11B5;
+C473;C473;110A 116E 11B6;C473;110A 116E 11B6;
+C474;C474;110A 116E 11B7;C474;110A 116E 11B7;
+C475;C475;110A 116E 11B8;C475;110A 116E 11B8;
+C476;C476;110A 116E 11B9;C476;110A 116E 11B9;
+C477;C477;110A 116E 11BA;C477;110A 116E 11BA;
+C478;C478;110A 116E 11BB;C478;110A 116E 11BB;
+C479;C479;110A 116E 11BC;C479;110A 116E 11BC;
+C47A;C47A;110A 116E 11BD;C47A;110A 116E 11BD;
+C47B;C47B;110A 116E 11BE;C47B;110A 116E 11BE;
+C47C;C47C;110A 116E 11BF;C47C;110A 116E 11BF;
+C47D;C47D;110A 116E 11C0;C47D;110A 116E 11C0;
+C47E;C47E;110A 116E 11C1;C47E;110A 116E 11C1;
+C47F;C47F;110A 116E 11C2;C47F;110A 116E 11C2;
+C480;C480;110A 116F;C480;110A 116F;
+C481;C481;110A 116F 11A8;C481;110A 116F 11A8;
+C482;C482;110A 116F 11A9;C482;110A 116F 11A9;
+C483;C483;110A 116F 11AA;C483;110A 116F 11AA;
+C484;C484;110A 116F 11AB;C484;110A 116F 11AB;
+C485;C485;110A 116F 11AC;C485;110A 116F 11AC;
+C486;C486;110A 116F 11AD;C486;110A 116F 11AD;
+C487;C487;110A 116F 11AE;C487;110A 116F 11AE;
+C488;C488;110A 116F 11AF;C488;110A 116F 11AF;
+C489;C489;110A 116F 11B0;C489;110A 116F 11B0;
+C48A;C48A;110A 116F 11B1;C48A;110A 116F 11B1;
+C48B;C48B;110A 116F 11B2;C48B;110A 116F 11B2;
+C48C;C48C;110A 116F 11B3;C48C;110A 116F 11B3;
+C48D;C48D;110A 116F 11B4;C48D;110A 116F 11B4;
+C48E;C48E;110A 116F 11B5;C48E;110A 116F 11B5;
+C48F;C48F;110A 116F 11B6;C48F;110A 116F 11B6;
+C490;C490;110A 116F 11B7;C490;110A 116F 11B7;
+C491;C491;110A 116F 11B8;C491;110A 116F 11B8;
+C492;C492;110A 116F 11B9;C492;110A 116F 11B9;
+C493;C493;110A 116F 11BA;C493;110A 116F 11BA;
+C494;C494;110A 116F 11BB;C494;110A 116F 11BB;
+C495;C495;110A 116F 11BC;C495;110A 116F 11BC;
+C496;C496;110A 116F 11BD;C496;110A 116F 11BD;
+C497;C497;110A 116F 11BE;C497;110A 116F 11BE;
+C498;C498;110A 116F 11BF;C498;110A 116F 11BF;
+C499;C499;110A 116F 11C0;C499;110A 116F 11C0;
+C49A;C49A;110A 116F 11C1;C49A;110A 116F 11C1;
+C49B;C49B;110A 116F 11C2;C49B;110A 116F 11C2;
+C49C;C49C;110A 1170;C49C;110A 1170;
+C49D;C49D;110A 1170 11A8;C49D;110A 1170 11A8;
+C49E;C49E;110A 1170 11A9;C49E;110A 1170 11A9;
+C49F;C49F;110A 1170 11AA;C49F;110A 1170 11AA;
+C4A0;C4A0;110A 1170 11AB;C4A0;110A 1170 11AB;
+C4A1;C4A1;110A 1170 11AC;C4A1;110A 1170 11AC;
+C4A2;C4A2;110A 1170 11AD;C4A2;110A 1170 11AD;
+C4A3;C4A3;110A 1170 11AE;C4A3;110A 1170 11AE;
+C4A4;C4A4;110A 1170 11AF;C4A4;110A 1170 11AF;
+C4A5;C4A5;110A 1170 11B0;C4A5;110A 1170 11B0;
+C4A6;C4A6;110A 1170 11B1;C4A6;110A 1170 11B1;
+C4A7;C4A7;110A 1170 11B2;C4A7;110A 1170 11B2;
+C4A8;C4A8;110A 1170 11B3;C4A8;110A 1170 11B3;
+C4A9;C4A9;110A 1170 11B4;C4A9;110A 1170 11B4;
+C4AA;C4AA;110A 1170 11B5;C4AA;110A 1170 11B5;
+C4AB;C4AB;110A 1170 11B6;C4AB;110A 1170 11B6;
+C4AC;C4AC;110A 1170 11B7;C4AC;110A 1170 11B7;
+C4AD;C4AD;110A 1170 11B8;C4AD;110A 1170 11B8;
+C4AE;C4AE;110A 1170 11B9;C4AE;110A 1170 11B9;
+C4AF;C4AF;110A 1170 11BA;C4AF;110A 1170 11BA;
+C4B0;C4B0;110A 1170 11BB;C4B0;110A 1170 11BB;
+C4B1;C4B1;110A 1170 11BC;C4B1;110A 1170 11BC;
+C4B2;C4B2;110A 1170 11BD;C4B2;110A 1170 11BD;
+C4B3;C4B3;110A 1170 11BE;C4B3;110A 1170 11BE;
+C4B4;C4B4;110A 1170 11BF;C4B4;110A 1170 11BF;
+C4B5;C4B5;110A 1170 11C0;C4B5;110A 1170 11C0;
+C4B6;C4B6;110A 1170 11C1;C4B6;110A 1170 11C1;
+C4B7;C4B7;110A 1170 11C2;C4B7;110A 1170 11C2;
+C4B8;C4B8;110A 1171;C4B8;110A 1171;
+C4B9;C4B9;110A 1171 11A8;C4B9;110A 1171 11A8;
+C4BA;C4BA;110A 1171 11A9;C4BA;110A 1171 11A9;
+C4BB;C4BB;110A 1171 11AA;C4BB;110A 1171 11AA;
+C4BC;C4BC;110A 1171 11AB;C4BC;110A 1171 11AB;
+C4BD;C4BD;110A 1171 11AC;C4BD;110A 1171 11AC;
+C4BE;C4BE;110A 1171 11AD;C4BE;110A 1171 11AD;
+C4BF;C4BF;110A 1171 11AE;C4BF;110A 1171 11AE;
+C4C0;C4C0;110A 1171 11AF;C4C0;110A 1171 11AF;
+C4C1;C4C1;110A 1171 11B0;C4C1;110A 1171 11B0;
+C4C2;C4C2;110A 1171 11B1;C4C2;110A 1171 11B1;
+C4C3;C4C3;110A 1171 11B2;C4C3;110A 1171 11B2;
+C4C4;C4C4;110A 1171 11B3;C4C4;110A 1171 11B3;
+C4C5;C4C5;110A 1171 11B4;C4C5;110A 1171 11B4;
+C4C6;C4C6;110A 1171 11B5;C4C6;110A 1171 11B5;
+C4C7;C4C7;110A 1171 11B6;C4C7;110A 1171 11B6;
+C4C8;C4C8;110A 1171 11B7;C4C8;110A 1171 11B7;
+C4C9;C4C9;110A 1171 11B8;C4C9;110A 1171 11B8;
+C4CA;C4CA;110A 1171 11B9;C4CA;110A 1171 11B9;
+C4CB;C4CB;110A 1171 11BA;C4CB;110A 1171 11BA;
+C4CC;C4CC;110A 1171 11BB;C4CC;110A 1171 11BB;
+C4CD;C4CD;110A 1171 11BC;C4CD;110A 1171 11BC;
+C4CE;C4CE;110A 1171 11BD;C4CE;110A 1171 11BD;
+C4CF;C4CF;110A 1171 11BE;C4CF;110A 1171 11BE;
+C4D0;C4D0;110A 1171 11BF;C4D0;110A 1171 11BF;
+C4D1;C4D1;110A 1171 11C0;C4D1;110A 1171 11C0;
+C4D2;C4D2;110A 1171 11C1;C4D2;110A 1171 11C1;
+C4D3;C4D3;110A 1171 11C2;C4D3;110A 1171 11C2;
+C4D4;C4D4;110A 1172;C4D4;110A 1172;
+C4D5;C4D5;110A 1172 11A8;C4D5;110A 1172 11A8;
+C4D6;C4D6;110A 1172 11A9;C4D6;110A 1172 11A9;
+C4D7;C4D7;110A 1172 11AA;C4D7;110A 1172 11AA;
+C4D8;C4D8;110A 1172 11AB;C4D8;110A 1172 11AB;
+C4D9;C4D9;110A 1172 11AC;C4D9;110A 1172 11AC;
+C4DA;C4DA;110A 1172 11AD;C4DA;110A 1172 11AD;
+C4DB;C4DB;110A 1172 11AE;C4DB;110A 1172 11AE;
+C4DC;C4DC;110A 1172 11AF;C4DC;110A 1172 11AF;
+C4DD;C4DD;110A 1172 11B0;C4DD;110A 1172 11B0;
+C4DE;C4DE;110A 1172 11B1;C4DE;110A 1172 11B1;
+C4DF;C4DF;110A 1172 11B2;C4DF;110A 1172 11B2;
+C4E0;C4E0;110A 1172 11B3;C4E0;110A 1172 11B3;
+C4E1;C4E1;110A 1172 11B4;C4E1;110A 1172 11B4;
+C4E2;C4E2;110A 1172 11B5;C4E2;110A 1172 11B5;
+C4E3;C4E3;110A 1172 11B6;C4E3;110A 1172 11B6;
+C4E4;C4E4;110A 1172 11B7;C4E4;110A 1172 11B7;
+C4E5;C4E5;110A 1172 11B8;C4E5;110A 1172 11B8;
+C4E6;C4E6;110A 1172 11B9;C4E6;110A 1172 11B9;
+C4E7;C4E7;110A 1172 11BA;C4E7;110A 1172 11BA;
+C4E8;C4E8;110A 1172 11BB;C4E8;110A 1172 11BB;
+C4E9;C4E9;110A 1172 11BC;C4E9;110A 1172 11BC;
+C4EA;C4EA;110A 1172 11BD;C4EA;110A 1172 11BD;
+C4EB;C4EB;110A 1172 11BE;C4EB;110A 1172 11BE;
+C4EC;C4EC;110A 1172 11BF;C4EC;110A 1172 11BF;
+C4ED;C4ED;110A 1172 11C0;C4ED;110A 1172 11C0;
+C4EE;C4EE;110A 1172 11C1;C4EE;110A 1172 11C1;
+C4EF;C4EF;110A 1172 11C2;C4EF;110A 1172 11C2;
+C4F0;C4F0;110A 1173;C4F0;110A 1173;
+C4F1;C4F1;110A 1173 11A8;C4F1;110A 1173 11A8;
+C4F2;C4F2;110A 1173 11A9;C4F2;110A 1173 11A9;
+C4F3;C4F3;110A 1173 11AA;C4F3;110A 1173 11AA;
+C4F4;C4F4;110A 1173 11AB;C4F4;110A 1173 11AB;
+C4F5;C4F5;110A 1173 11AC;C4F5;110A 1173 11AC;
+C4F6;C4F6;110A 1173 11AD;C4F6;110A 1173 11AD;
+C4F7;C4F7;110A 1173 11AE;C4F7;110A 1173 11AE;
+C4F8;C4F8;110A 1173 11AF;C4F8;110A 1173 11AF;
+C4F9;C4F9;110A 1173 11B0;C4F9;110A 1173 11B0;
+C4FA;C4FA;110A 1173 11B1;C4FA;110A 1173 11B1;
+C4FB;C4FB;110A 1173 11B2;C4FB;110A 1173 11B2;
+C4FC;C4FC;110A 1173 11B3;C4FC;110A 1173 11B3;
+C4FD;C4FD;110A 1173 11B4;C4FD;110A 1173 11B4;
+C4FE;C4FE;110A 1173 11B5;C4FE;110A 1173 11B5;
+C4FF;C4FF;110A 1173 11B6;C4FF;110A 1173 11B6;
+C500;C500;110A 1173 11B7;C500;110A 1173 11B7;
+C501;C501;110A 1173 11B8;C501;110A 1173 11B8;
+C502;C502;110A 1173 11B9;C502;110A 1173 11B9;
+C503;C503;110A 1173 11BA;C503;110A 1173 11BA;
+C504;C504;110A 1173 11BB;C504;110A 1173 11BB;
+C505;C505;110A 1173 11BC;C505;110A 1173 11BC;
+C506;C506;110A 1173 11BD;C506;110A 1173 11BD;
+C507;C507;110A 1173 11BE;C507;110A 1173 11BE;
+C508;C508;110A 1173 11BF;C508;110A 1173 11BF;
+C509;C509;110A 1173 11C0;C509;110A 1173 11C0;
+C50A;C50A;110A 1173 11C1;C50A;110A 1173 11C1;
+C50B;C50B;110A 1173 11C2;C50B;110A 1173 11C2;
+C50C;C50C;110A 1174;C50C;110A 1174;
+C50D;C50D;110A 1174 11A8;C50D;110A 1174 11A8;
+C50E;C50E;110A 1174 11A9;C50E;110A 1174 11A9;
+C50F;C50F;110A 1174 11AA;C50F;110A 1174 11AA;
+C510;C510;110A 1174 11AB;C510;110A 1174 11AB;
+C511;C511;110A 1174 11AC;C511;110A 1174 11AC;
+C512;C512;110A 1174 11AD;C512;110A 1174 11AD;
+C513;C513;110A 1174 11AE;C513;110A 1174 11AE;
+C514;C514;110A 1174 11AF;C514;110A 1174 11AF;
+C515;C515;110A 1174 11B0;C515;110A 1174 11B0;
+C516;C516;110A 1174 11B1;C516;110A 1174 11B1;
+C517;C517;110A 1174 11B2;C517;110A 1174 11B2;
+C518;C518;110A 1174 11B3;C518;110A 1174 11B3;
+C519;C519;110A 1174 11B4;C519;110A 1174 11B4;
+C51A;C51A;110A 1174 11B5;C51A;110A 1174 11B5;
+C51B;C51B;110A 1174 11B6;C51B;110A 1174 11B6;
+C51C;C51C;110A 1174 11B7;C51C;110A 1174 11B7;
+C51D;C51D;110A 1174 11B8;C51D;110A 1174 11B8;
+C51E;C51E;110A 1174 11B9;C51E;110A 1174 11B9;
+C51F;C51F;110A 1174 11BA;C51F;110A 1174 11BA;
+C520;C520;110A 1174 11BB;C520;110A 1174 11BB;
+C521;C521;110A 1174 11BC;C521;110A 1174 11BC;
+C522;C522;110A 1174 11BD;C522;110A 1174 11BD;
+C523;C523;110A 1174 11BE;C523;110A 1174 11BE;
+C524;C524;110A 1174 11BF;C524;110A 1174 11BF;
+C525;C525;110A 1174 11C0;C525;110A 1174 11C0;
+C526;C526;110A 1174 11C1;C526;110A 1174 11C1;
+C527;C527;110A 1174 11C2;C527;110A 1174 11C2;
+C528;C528;110A 1175;C528;110A 1175;
+C529;C529;110A 1175 11A8;C529;110A 1175 11A8;
+C52A;C52A;110A 1175 11A9;C52A;110A 1175 11A9;
+C52B;C52B;110A 1175 11AA;C52B;110A 1175 11AA;
+C52C;C52C;110A 1175 11AB;C52C;110A 1175 11AB;
+C52D;C52D;110A 1175 11AC;C52D;110A 1175 11AC;
+C52E;C52E;110A 1175 11AD;C52E;110A 1175 11AD;
+C52F;C52F;110A 1175 11AE;C52F;110A 1175 11AE;
+C530;C530;110A 1175 11AF;C530;110A 1175 11AF;
+C531;C531;110A 1175 11B0;C531;110A 1175 11B0;
+C532;C532;110A 1175 11B1;C532;110A 1175 11B1;
+C533;C533;110A 1175 11B2;C533;110A 1175 11B2;
+C534;C534;110A 1175 11B3;C534;110A 1175 11B3;
+C535;C535;110A 1175 11B4;C535;110A 1175 11B4;
+C536;C536;110A 1175 11B5;C536;110A 1175 11B5;
+C537;C537;110A 1175 11B6;C537;110A 1175 11B6;
+C538;C538;110A 1175 11B7;C538;110A 1175 11B7;
+C539;C539;110A 1175 11B8;C539;110A 1175 11B8;
+C53A;C53A;110A 1175 11B9;C53A;110A 1175 11B9;
+C53B;C53B;110A 1175 11BA;C53B;110A 1175 11BA;
+C53C;C53C;110A 1175 11BB;C53C;110A 1175 11BB;
+C53D;C53D;110A 1175 11BC;C53D;110A 1175 11BC;
+C53E;C53E;110A 1175 11BD;C53E;110A 1175 11BD;
+C53F;C53F;110A 1175 11BE;C53F;110A 1175 11BE;
+C540;C540;110A 1175 11BF;C540;110A 1175 11BF;
+C541;C541;110A 1175 11C0;C541;110A 1175 11C0;
+C542;C542;110A 1175 11C1;C542;110A 1175 11C1;
+C543;C543;110A 1175 11C2;C543;110A 1175 11C2;
+C544;C544;110B 1161;C544;110B 1161;
+C545;C545;110B 1161 11A8;C545;110B 1161 11A8;
+C546;C546;110B 1161 11A9;C546;110B 1161 11A9;
+C547;C547;110B 1161 11AA;C547;110B 1161 11AA;
+C548;C548;110B 1161 11AB;C548;110B 1161 11AB;
+C549;C549;110B 1161 11AC;C549;110B 1161 11AC;
+C54A;C54A;110B 1161 11AD;C54A;110B 1161 11AD;
+C54B;C54B;110B 1161 11AE;C54B;110B 1161 11AE;
+C54C;C54C;110B 1161 11AF;C54C;110B 1161 11AF;
+C54D;C54D;110B 1161 11B0;C54D;110B 1161 11B0;
+C54E;C54E;110B 1161 11B1;C54E;110B 1161 11B1;
+C54F;C54F;110B 1161 11B2;C54F;110B 1161 11B2;
+C550;C550;110B 1161 11B3;C550;110B 1161 11B3;
+C551;C551;110B 1161 11B4;C551;110B 1161 11B4;
+C552;C552;110B 1161 11B5;C552;110B 1161 11B5;
+C553;C553;110B 1161 11B6;C553;110B 1161 11B6;
+C554;C554;110B 1161 11B7;C554;110B 1161 11B7;
+C555;C555;110B 1161 11B8;C555;110B 1161 11B8;
+C556;C556;110B 1161 11B9;C556;110B 1161 11B9;
+C557;C557;110B 1161 11BA;C557;110B 1161 11BA;
+C558;C558;110B 1161 11BB;C558;110B 1161 11BB;
+C559;C559;110B 1161 11BC;C559;110B 1161 11BC;
+C55A;C55A;110B 1161 11BD;C55A;110B 1161 11BD;
+C55B;C55B;110B 1161 11BE;C55B;110B 1161 11BE;
+C55C;C55C;110B 1161 11BF;C55C;110B 1161 11BF;
+C55D;C55D;110B 1161 11C0;C55D;110B 1161 11C0;
+C55E;C55E;110B 1161 11C1;C55E;110B 1161 11C1;
+C55F;C55F;110B 1161 11C2;C55F;110B 1161 11C2;
+C560;C560;110B 1162;C560;110B 1162;
+C561;C561;110B 1162 11A8;C561;110B 1162 11A8;
+C562;C562;110B 1162 11A9;C562;110B 1162 11A9;
+C563;C563;110B 1162 11AA;C563;110B 1162 11AA;
+C564;C564;110B 1162 11AB;C564;110B 1162 11AB;
+C565;C565;110B 1162 11AC;C565;110B 1162 11AC;
+C566;C566;110B 1162 11AD;C566;110B 1162 11AD;
+C567;C567;110B 1162 11AE;C567;110B 1162 11AE;
+C568;C568;110B 1162 11AF;C568;110B 1162 11AF;
+C569;C569;110B 1162 11B0;C569;110B 1162 11B0;
+C56A;C56A;110B 1162 11B1;C56A;110B 1162 11B1;
+C56B;C56B;110B 1162 11B2;C56B;110B 1162 11B2;
+C56C;C56C;110B 1162 11B3;C56C;110B 1162 11B3;
+C56D;C56D;110B 1162 11B4;C56D;110B 1162 11B4;
+C56E;C56E;110B 1162 11B5;C56E;110B 1162 11B5;
+C56F;C56F;110B 1162 11B6;C56F;110B 1162 11B6;
+C570;C570;110B 1162 11B7;C570;110B 1162 11B7;
+C571;C571;110B 1162 11B8;C571;110B 1162 11B8;
+C572;C572;110B 1162 11B9;C572;110B 1162 11B9;
+C573;C573;110B 1162 11BA;C573;110B 1162 11BA;
+C574;C574;110B 1162 11BB;C574;110B 1162 11BB;
+C575;C575;110B 1162 11BC;C575;110B 1162 11BC;
+C576;C576;110B 1162 11BD;C576;110B 1162 11BD;
+C577;C577;110B 1162 11BE;C577;110B 1162 11BE;
+C578;C578;110B 1162 11BF;C578;110B 1162 11BF;
+C579;C579;110B 1162 11C0;C579;110B 1162 11C0;
+C57A;C57A;110B 1162 11C1;C57A;110B 1162 11C1;
+C57B;C57B;110B 1162 11C2;C57B;110B 1162 11C2;
+C57C;C57C;110B 1163;C57C;110B 1163;
+C57D;C57D;110B 1163 11A8;C57D;110B 1163 11A8;
+C57E;C57E;110B 1163 11A9;C57E;110B 1163 11A9;
+C57F;C57F;110B 1163 11AA;C57F;110B 1163 11AA;
+C580;C580;110B 1163 11AB;C580;110B 1163 11AB;
+C581;C581;110B 1163 11AC;C581;110B 1163 11AC;
+C582;C582;110B 1163 11AD;C582;110B 1163 11AD;
+C583;C583;110B 1163 11AE;C583;110B 1163 11AE;
+C584;C584;110B 1163 11AF;C584;110B 1163 11AF;
+C585;C585;110B 1163 11B0;C585;110B 1163 11B0;
+C586;C586;110B 1163 11B1;C586;110B 1163 11B1;
+C587;C587;110B 1163 11B2;C587;110B 1163 11B2;
+C588;C588;110B 1163 11B3;C588;110B 1163 11B3;
+C589;C589;110B 1163 11B4;C589;110B 1163 11B4;
+C58A;C58A;110B 1163 11B5;C58A;110B 1163 11B5;
+C58B;C58B;110B 1163 11B6;C58B;110B 1163 11B6;
+C58C;C58C;110B 1163 11B7;C58C;110B 1163 11B7;
+C58D;C58D;110B 1163 11B8;C58D;110B 1163 11B8;
+C58E;C58E;110B 1163 11B9;C58E;110B 1163 11B9;
+C58F;C58F;110B 1163 11BA;C58F;110B 1163 11BA;
+C590;C590;110B 1163 11BB;C590;110B 1163 11BB;
+C591;C591;110B 1163 11BC;C591;110B 1163 11BC;
+C592;C592;110B 1163 11BD;C592;110B 1163 11BD;
+C593;C593;110B 1163 11BE;C593;110B 1163 11BE;
+C594;C594;110B 1163 11BF;C594;110B 1163 11BF;
+C595;C595;110B 1163 11C0;C595;110B 1163 11C0;
+C596;C596;110B 1163 11C1;C596;110B 1163 11C1;
+C597;C597;110B 1163 11C2;C597;110B 1163 11C2;
+C598;C598;110B 1164;C598;110B 1164;
+C599;C599;110B 1164 11A8;C599;110B 1164 11A8;
+C59A;C59A;110B 1164 11A9;C59A;110B 1164 11A9;
+C59B;C59B;110B 1164 11AA;C59B;110B 1164 11AA;
+C59C;C59C;110B 1164 11AB;C59C;110B 1164 11AB;
+C59D;C59D;110B 1164 11AC;C59D;110B 1164 11AC;
+C59E;C59E;110B 1164 11AD;C59E;110B 1164 11AD;
+C59F;C59F;110B 1164 11AE;C59F;110B 1164 11AE;
+C5A0;C5A0;110B 1164 11AF;C5A0;110B 1164 11AF;
+C5A1;C5A1;110B 1164 11B0;C5A1;110B 1164 11B0;
+C5A2;C5A2;110B 1164 11B1;C5A2;110B 1164 11B1;
+C5A3;C5A3;110B 1164 11B2;C5A3;110B 1164 11B2;
+C5A4;C5A4;110B 1164 11B3;C5A4;110B 1164 11B3;
+C5A5;C5A5;110B 1164 11B4;C5A5;110B 1164 11B4;
+C5A6;C5A6;110B 1164 11B5;C5A6;110B 1164 11B5;
+C5A7;C5A7;110B 1164 11B6;C5A7;110B 1164 11B6;
+C5A8;C5A8;110B 1164 11B7;C5A8;110B 1164 11B7;
+C5A9;C5A9;110B 1164 11B8;C5A9;110B 1164 11B8;
+C5AA;C5AA;110B 1164 11B9;C5AA;110B 1164 11B9;
+C5AB;C5AB;110B 1164 11BA;C5AB;110B 1164 11BA;
+C5AC;C5AC;110B 1164 11BB;C5AC;110B 1164 11BB;
+C5AD;C5AD;110B 1164 11BC;C5AD;110B 1164 11BC;
+C5AE;C5AE;110B 1164 11BD;C5AE;110B 1164 11BD;
+C5AF;C5AF;110B 1164 11BE;C5AF;110B 1164 11BE;
+C5B0;C5B0;110B 1164 11BF;C5B0;110B 1164 11BF;
+C5B1;C5B1;110B 1164 11C0;C5B1;110B 1164 11C0;
+C5B2;C5B2;110B 1164 11C1;C5B2;110B 1164 11C1;
+C5B3;C5B3;110B 1164 11C2;C5B3;110B 1164 11C2;
+C5B4;C5B4;110B 1165;C5B4;110B 1165;
+C5B5;C5B5;110B 1165 11A8;C5B5;110B 1165 11A8;
+C5B6;C5B6;110B 1165 11A9;C5B6;110B 1165 11A9;
+C5B7;C5B7;110B 1165 11AA;C5B7;110B 1165 11AA;
+C5B8;C5B8;110B 1165 11AB;C5B8;110B 1165 11AB;
+C5B9;C5B9;110B 1165 11AC;C5B9;110B 1165 11AC;
+C5BA;C5BA;110B 1165 11AD;C5BA;110B 1165 11AD;
+C5BB;C5BB;110B 1165 11AE;C5BB;110B 1165 11AE;
+C5BC;C5BC;110B 1165 11AF;C5BC;110B 1165 11AF;
+C5BD;C5BD;110B 1165 11B0;C5BD;110B 1165 11B0;
+C5BE;C5BE;110B 1165 11B1;C5BE;110B 1165 11B1;
+C5BF;C5BF;110B 1165 11B2;C5BF;110B 1165 11B2;
+C5C0;C5C0;110B 1165 11B3;C5C0;110B 1165 11B3;
+C5C1;C5C1;110B 1165 11B4;C5C1;110B 1165 11B4;
+C5C2;C5C2;110B 1165 11B5;C5C2;110B 1165 11B5;
+C5C3;C5C3;110B 1165 11B6;C5C3;110B 1165 11B6;
+C5C4;C5C4;110B 1165 11B7;C5C4;110B 1165 11B7;
+C5C5;C5C5;110B 1165 11B8;C5C5;110B 1165 11B8;
+C5C6;C5C6;110B 1165 11B9;C5C6;110B 1165 11B9;
+C5C7;C5C7;110B 1165 11BA;C5C7;110B 1165 11BA;
+C5C8;C5C8;110B 1165 11BB;C5C8;110B 1165 11BB;
+C5C9;C5C9;110B 1165 11BC;C5C9;110B 1165 11BC;
+C5CA;C5CA;110B 1165 11BD;C5CA;110B 1165 11BD;
+C5CB;C5CB;110B 1165 11BE;C5CB;110B 1165 11BE;
+C5CC;C5CC;110B 1165 11BF;C5CC;110B 1165 11BF;
+C5CD;C5CD;110B 1165 11C0;C5CD;110B 1165 11C0;
+C5CE;C5CE;110B 1165 11C1;C5CE;110B 1165 11C1;
+C5CF;C5CF;110B 1165 11C2;C5CF;110B 1165 11C2;
+C5D0;C5D0;110B 1166;C5D0;110B 1166;
+C5D1;C5D1;110B 1166 11A8;C5D1;110B 1166 11A8;
+C5D2;C5D2;110B 1166 11A9;C5D2;110B 1166 11A9;
+C5D3;C5D3;110B 1166 11AA;C5D3;110B 1166 11AA;
+C5D4;C5D4;110B 1166 11AB;C5D4;110B 1166 11AB;
+C5D5;C5D5;110B 1166 11AC;C5D5;110B 1166 11AC;
+C5D6;C5D6;110B 1166 11AD;C5D6;110B 1166 11AD;
+C5D7;C5D7;110B 1166 11AE;C5D7;110B 1166 11AE;
+C5D8;C5D8;110B 1166 11AF;C5D8;110B 1166 11AF;
+C5D9;C5D9;110B 1166 11B0;C5D9;110B 1166 11B0;
+C5DA;C5DA;110B 1166 11B1;C5DA;110B 1166 11B1;
+C5DB;C5DB;110B 1166 11B2;C5DB;110B 1166 11B2;
+C5DC;C5DC;110B 1166 11B3;C5DC;110B 1166 11B3;
+C5DD;C5DD;110B 1166 11B4;C5DD;110B 1166 11B4;
+C5DE;C5DE;110B 1166 11B5;C5DE;110B 1166 11B5;
+C5DF;C5DF;110B 1166 11B6;C5DF;110B 1166 11B6;
+C5E0;C5E0;110B 1166 11B7;C5E0;110B 1166 11B7;
+C5E1;C5E1;110B 1166 11B8;C5E1;110B 1166 11B8;
+C5E2;C5E2;110B 1166 11B9;C5E2;110B 1166 11B9;
+C5E3;C5E3;110B 1166 11BA;C5E3;110B 1166 11BA;
+C5E4;C5E4;110B 1166 11BB;C5E4;110B 1166 11BB;
+C5E5;C5E5;110B 1166 11BC;C5E5;110B 1166 11BC;
+C5E6;C5E6;110B 1166 11BD;C5E6;110B 1166 11BD;
+C5E7;C5E7;110B 1166 11BE;C5E7;110B 1166 11BE;
+C5E8;C5E8;110B 1166 11BF;C5E8;110B 1166 11BF;
+C5E9;C5E9;110B 1166 11C0;C5E9;110B 1166 11C0;
+C5EA;C5EA;110B 1166 11C1;C5EA;110B 1166 11C1;
+C5EB;C5EB;110B 1166 11C2;C5EB;110B 1166 11C2;
+C5EC;C5EC;110B 1167;C5EC;110B 1167;
+C5ED;C5ED;110B 1167 11A8;C5ED;110B 1167 11A8;
+C5EE;C5EE;110B 1167 11A9;C5EE;110B 1167 11A9;
+C5EF;C5EF;110B 1167 11AA;C5EF;110B 1167 11AA;
+C5F0;C5F0;110B 1167 11AB;C5F0;110B 1167 11AB;
+C5F1;C5F1;110B 1167 11AC;C5F1;110B 1167 11AC;
+C5F2;C5F2;110B 1167 11AD;C5F2;110B 1167 11AD;
+C5F3;C5F3;110B 1167 11AE;C5F3;110B 1167 11AE;
+C5F4;C5F4;110B 1167 11AF;C5F4;110B 1167 11AF;
+C5F5;C5F5;110B 1167 11B0;C5F5;110B 1167 11B0;
+C5F6;C5F6;110B 1167 11B1;C5F6;110B 1167 11B1;
+C5F7;C5F7;110B 1167 11B2;C5F7;110B 1167 11B2;
+C5F8;C5F8;110B 1167 11B3;C5F8;110B 1167 11B3;
+C5F9;C5F9;110B 1167 11B4;C5F9;110B 1167 11B4;
+C5FA;C5FA;110B 1167 11B5;C5FA;110B 1167 11B5;
+C5FB;C5FB;110B 1167 11B6;C5FB;110B 1167 11B6;
+C5FC;C5FC;110B 1167 11B7;C5FC;110B 1167 11B7;
+C5FD;C5FD;110B 1167 11B8;C5FD;110B 1167 11B8;
+C5FE;C5FE;110B 1167 11B9;C5FE;110B 1167 11B9;
+C5FF;C5FF;110B 1167 11BA;C5FF;110B 1167 11BA;
+C600;C600;110B 1167 11BB;C600;110B 1167 11BB;
+C601;C601;110B 1167 11BC;C601;110B 1167 11BC;
+C602;C602;110B 1167 11BD;C602;110B 1167 11BD;
+C603;C603;110B 1167 11BE;C603;110B 1167 11BE;
+C604;C604;110B 1167 11BF;C604;110B 1167 11BF;
+C605;C605;110B 1167 11C0;C605;110B 1167 11C0;
+C606;C606;110B 1167 11C1;C606;110B 1167 11C1;
+C607;C607;110B 1167 11C2;C607;110B 1167 11C2;
+C608;C608;110B 1168;C608;110B 1168;
+C609;C609;110B 1168 11A8;C609;110B 1168 11A8;
+C60A;C60A;110B 1168 11A9;C60A;110B 1168 11A9;
+C60B;C60B;110B 1168 11AA;C60B;110B 1168 11AA;
+C60C;C60C;110B 1168 11AB;C60C;110B 1168 11AB;
+C60D;C60D;110B 1168 11AC;C60D;110B 1168 11AC;
+C60E;C60E;110B 1168 11AD;C60E;110B 1168 11AD;
+C60F;C60F;110B 1168 11AE;C60F;110B 1168 11AE;
+C610;C610;110B 1168 11AF;C610;110B 1168 11AF;
+C611;C611;110B 1168 11B0;C611;110B 1168 11B0;
+C612;C612;110B 1168 11B1;C612;110B 1168 11B1;
+C613;C613;110B 1168 11B2;C613;110B 1168 11B2;
+C614;C614;110B 1168 11B3;C614;110B 1168 11B3;
+C615;C615;110B 1168 11B4;C615;110B 1168 11B4;
+C616;C616;110B 1168 11B5;C616;110B 1168 11B5;
+C617;C617;110B 1168 11B6;C617;110B 1168 11B6;
+C618;C618;110B 1168 11B7;C618;110B 1168 11B7;
+C619;C619;110B 1168 11B8;C619;110B 1168 11B8;
+C61A;C61A;110B 1168 11B9;C61A;110B 1168 11B9;
+C61B;C61B;110B 1168 11BA;C61B;110B 1168 11BA;
+C61C;C61C;110B 1168 11BB;C61C;110B 1168 11BB;
+C61D;C61D;110B 1168 11BC;C61D;110B 1168 11BC;
+C61E;C61E;110B 1168 11BD;C61E;110B 1168 11BD;
+C61F;C61F;110B 1168 11BE;C61F;110B 1168 11BE;
+C620;C620;110B 1168 11BF;C620;110B 1168 11BF;
+C621;C621;110B 1168 11C0;C621;110B 1168 11C0;
+C622;C622;110B 1168 11C1;C622;110B 1168 11C1;
+C623;C623;110B 1168 11C2;C623;110B 1168 11C2;
+C624;C624;110B 1169;C624;110B 1169;
+C625;C625;110B 1169 11A8;C625;110B 1169 11A8;
+C626;C626;110B 1169 11A9;C626;110B 1169 11A9;
+C627;C627;110B 1169 11AA;C627;110B 1169 11AA;
+C628;C628;110B 1169 11AB;C628;110B 1169 11AB;
+C629;C629;110B 1169 11AC;C629;110B 1169 11AC;
+C62A;C62A;110B 1169 11AD;C62A;110B 1169 11AD;
+C62B;C62B;110B 1169 11AE;C62B;110B 1169 11AE;
+C62C;C62C;110B 1169 11AF;C62C;110B 1169 11AF;
+C62D;C62D;110B 1169 11B0;C62D;110B 1169 11B0;
+C62E;C62E;110B 1169 11B1;C62E;110B 1169 11B1;
+C62F;C62F;110B 1169 11B2;C62F;110B 1169 11B2;
+C630;C630;110B 1169 11B3;C630;110B 1169 11B3;
+C631;C631;110B 1169 11B4;C631;110B 1169 11B4;
+C632;C632;110B 1169 11B5;C632;110B 1169 11B5;
+C633;C633;110B 1169 11B6;C633;110B 1169 11B6;
+C634;C634;110B 1169 11B7;C634;110B 1169 11B7;
+C635;C635;110B 1169 11B8;C635;110B 1169 11B8;
+C636;C636;110B 1169 11B9;C636;110B 1169 11B9;
+C637;C637;110B 1169 11BA;C637;110B 1169 11BA;
+C638;C638;110B 1169 11BB;C638;110B 1169 11BB;
+C639;C639;110B 1169 11BC;C639;110B 1169 11BC;
+C63A;C63A;110B 1169 11BD;C63A;110B 1169 11BD;
+C63B;C63B;110B 1169 11BE;C63B;110B 1169 11BE;
+C63C;C63C;110B 1169 11BF;C63C;110B 1169 11BF;
+C63D;C63D;110B 1169 11C0;C63D;110B 1169 11C0;
+C63E;C63E;110B 1169 11C1;C63E;110B 1169 11C1;
+C63F;C63F;110B 1169 11C2;C63F;110B 1169 11C2;
+C640;C640;110B 116A;C640;110B 116A;
+C641;C641;110B 116A 11A8;C641;110B 116A 11A8;
+C642;C642;110B 116A 11A9;C642;110B 116A 11A9;
+C643;C643;110B 116A 11AA;C643;110B 116A 11AA;
+C644;C644;110B 116A 11AB;C644;110B 116A 11AB;
+C645;C645;110B 116A 11AC;C645;110B 116A 11AC;
+C646;C646;110B 116A 11AD;C646;110B 116A 11AD;
+C647;C647;110B 116A 11AE;C647;110B 116A 11AE;
+C648;C648;110B 116A 11AF;C648;110B 116A 11AF;
+C649;C649;110B 116A 11B0;C649;110B 116A 11B0;
+C64A;C64A;110B 116A 11B1;C64A;110B 116A 11B1;
+C64B;C64B;110B 116A 11B2;C64B;110B 116A 11B2;
+C64C;C64C;110B 116A 11B3;C64C;110B 116A 11B3;
+C64D;C64D;110B 116A 11B4;C64D;110B 116A 11B4;
+C64E;C64E;110B 116A 11B5;C64E;110B 116A 11B5;
+C64F;C64F;110B 116A 11B6;C64F;110B 116A 11B6;
+C650;C650;110B 116A 11B7;C650;110B 116A 11B7;
+C651;C651;110B 116A 11B8;C651;110B 116A 11B8;
+C652;C652;110B 116A 11B9;C652;110B 116A 11B9;
+C653;C653;110B 116A 11BA;C653;110B 116A 11BA;
+C654;C654;110B 116A 11BB;C654;110B 116A 11BB;
+C655;C655;110B 116A 11BC;C655;110B 116A 11BC;
+C656;C656;110B 116A 11BD;C656;110B 116A 11BD;
+C657;C657;110B 116A 11BE;C657;110B 116A 11BE;
+C658;C658;110B 116A 11BF;C658;110B 116A 11BF;
+C659;C659;110B 116A 11C0;C659;110B 116A 11C0;
+C65A;C65A;110B 116A 11C1;C65A;110B 116A 11C1;
+C65B;C65B;110B 116A 11C2;C65B;110B 116A 11C2;
+C65C;C65C;110B 116B;C65C;110B 116B;
+C65D;C65D;110B 116B 11A8;C65D;110B 116B 11A8;
+C65E;C65E;110B 116B 11A9;C65E;110B 116B 11A9;
+C65F;C65F;110B 116B 11AA;C65F;110B 116B 11AA;
+C660;C660;110B 116B 11AB;C660;110B 116B 11AB;
+C661;C661;110B 116B 11AC;C661;110B 116B 11AC;
+C662;C662;110B 116B 11AD;C662;110B 116B 11AD;
+C663;C663;110B 116B 11AE;C663;110B 116B 11AE;
+C664;C664;110B 116B 11AF;C664;110B 116B 11AF;
+C665;C665;110B 116B 11B0;C665;110B 116B 11B0;
+C666;C666;110B 116B 11B1;C666;110B 116B 11B1;
+C667;C667;110B 116B 11B2;C667;110B 116B 11B2;
+C668;C668;110B 116B 11B3;C668;110B 116B 11B3;
+C669;C669;110B 116B 11B4;C669;110B 116B 11B4;
+C66A;C66A;110B 116B 11B5;C66A;110B 116B 11B5;
+C66B;C66B;110B 116B 11B6;C66B;110B 116B 11B6;
+C66C;C66C;110B 116B 11B7;C66C;110B 116B 11B7;
+C66D;C66D;110B 116B 11B8;C66D;110B 116B 11B8;
+C66E;C66E;110B 116B 11B9;C66E;110B 116B 11B9;
+C66F;C66F;110B 116B 11BA;C66F;110B 116B 11BA;
+C670;C670;110B 116B 11BB;C670;110B 116B 11BB;
+C671;C671;110B 116B 11BC;C671;110B 116B 11BC;
+C672;C672;110B 116B 11BD;C672;110B 116B 11BD;
+C673;C673;110B 116B 11BE;C673;110B 116B 11BE;
+C674;C674;110B 116B 11BF;C674;110B 116B 11BF;
+C675;C675;110B 116B 11C0;C675;110B 116B 11C0;
+C676;C676;110B 116B 11C1;C676;110B 116B 11C1;
+C677;C677;110B 116B 11C2;C677;110B 116B 11C2;
+C678;C678;110B 116C;C678;110B 116C;
+C679;C679;110B 116C 11A8;C679;110B 116C 11A8;
+C67A;C67A;110B 116C 11A9;C67A;110B 116C 11A9;
+C67B;C67B;110B 116C 11AA;C67B;110B 116C 11AA;
+C67C;C67C;110B 116C 11AB;C67C;110B 116C 11AB;
+C67D;C67D;110B 116C 11AC;C67D;110B 116C 11AC;
+C67E;C67E;110B 116C 11AD;C67E;110B 116C 11AD;
+C67F;C67F;110B 116C 11AE;C67F;110B 116C 11AE;
+C680;C680;110B 116C 11AF;C680;110B 116C 11AF;
+C681;C681;110B 116C 11B0;C681;110B 116C 11B0;
+C682;C682;110B 116C 11B1;C682;110B 116C 11B1;
+C683;C683;110B 116C 11B2;C683;110B 116C 11B2;
+C684;C684;110B 116C 11B3;C684;110B 116C 11B3;
+C685;C685;110B 116C 11B4;C685;110B 116C 11B4;
+C686;C686;110B 116C 11B5;C686;110B 116C 11B5;
+C687;C687;110B 116C 11B6;C687;110B 116C 11B6;
+C688;C688;110B 116C 11B7;C688;110B 116C 11B7;
+C689;C689;110B 116C 11B8;C689;110B 116C 11B8;
+C68A;C68A;110B 116C 11B9;C68A;110B 116C 11B9;
+C68B;C68B;110B 116C 11BA;C68B;110B 116C 11BA;
+C68C;C68C;110B 116C 11BB;C68C;110B 116C 11BB;
+C68D;C68D;110B 116C 11BC;C68D;110B 116C 11BC;
+C68E;C68E;110B 116C 11BD;C68E;110B 116C 11BD;
+C68F;C68F;110B 116C 11BE;C68F;110B 116C 11BE;
+C690;C690;110B 116C 11BF;C690;110B 116C 11BF;
+C691;C691;110B 116C 11C0;C691;110B 116C 11C0;
+C692;C692;110B 116C 11C1;C692;110B 116C 11C1;
+C693;C693;110B 116C 11C2;C693;110B 116C 11C2;
+C694;C694;110B 116D;C694;110B 116D;
+C695;C695;110B 116D 11A8;C695;110B 116D 11A8;
+C696;C696;110B 116D 11A9;C696;110B 116D 11A9;
+C697;C697;110B 116D 11AA;C697;110B 116D 11AA;
+C698;C698;110B 116D 11AB;C698;110B 116D 11AB;
+C699;C699;110B 116D 11AC;C699;110B 116D 11AC;
+C69A;C69A;110B 116D 11AD;C69A;110B 116D 11AD;
+C69B;C69B;110B 116D 11AE;C69B;110B 116D 11AE;
+C69C;C69C;110B 116D 11AF;C69C;110B 116D 11AF;
+C69D;C69D;110B 116D 11B0;C69D;110B 116D 11B0;
+C69E;C69E;110B 116D 11B1;C69E;110B 116D 11B1;
+C69F;C69F;110B 116D 11B2;C69F;110B 116D 11B2;
+C6A0;C6A0;110B 116D 11B3;C6A0;110B 116D 11B3;
+C6A1;C6A1;110B 116D 11B4;C6A1;110B 116D 11B4;
+C6A2;C6A2;110B 116D 11B5;C6A2;110B 116D 11B5;
+C6A3;C6A3;110B 116D 11B6;C6A3;110B 116D 11B6;
+C6A4;C6A4;110B 116D 11B7;C6A4;110B 116D 11B7;
+C6A5;C6A5;110B 116D 11B8;C6A5;110B 116D 11B8;
+C6A6;C6A6;110B 116D 11B9;C6A6;110B 116D 11B9;
+C6A7;C6A7;110B 116D 11BA;C6A7;110B 116D 11BA;
+C6A8;C6A8;110B 116D 11BB;C6A8;110B 116D 11BB;
+C6A9;C6A9;110B 116D 11BC;C6A9;110B 116D 11BC;
+C6AA;C6AA;110B 116D 11BD;C6AA;110B 116D 11BD;
+C6AB;C6AB;110B 116D 11BE;C6AB;110B 116D 11BE;
+C6AC;C6AC;110B 116D 11BF;C6AC;110B 116D 11BF;
+C6AD;C6AD;110B 116D 11C0;C6AD;110B 116D 11C0;
+C6AE;C6AE;110B 116D 11C1;C6AE;110B 116D 11C1;
+C6AF;C6AF;110B 116D 11C2;C6AF;110B 116D 11C2;
+C6B0;C6B0;110B 116E;C6B0;110B 116E;
+C6B1;C6B1;110B 116E 11A8;C6B1;110B 116E 11A8;
+C6B2;C6B2;110B 116E 11A9;C6B2;110B 116E 11A9;
+C6B3;C6B3;110B 116E 11AA;C6B3;110B 116E 11AA;
+C6B4;C6B4;110B 116E 11AB;C6B4;110B 116E 11AB;
+C6B5;C6B5;110B 116E 11AC;C6B5;110B 116E 11AC;
+C6B6;C6B6;110B 116E 11AD;C6B6;110B 116E 11AD;
+C6B7;C6B7;110B 116E 11AE;C6B7;110B 116E 11AE;
+C6B8;C6B8;110B 116E 11AF;C6B8;110B 116E 11AF;
+C6B9;C6B9;110B 116E 11B0;C6B9;110B 116E 11B0;
+C6BA;C6BA;110B 116E 11B1;C6BA;110B 116E 11B1;
+C6BB;C6BB;110B 116E 11B2;C6BB;110B 116E 11B2;
+C6BC;C6BC;110B 116E 11B3;C6BC;110B 116E 11B3;
+C6BD;C6BD;110B 116E 11B4;C6BD;110B 116E 11B4;
+C6BE;C6BE;110B 116E 11B5;C6BE;110B 116E 11B5;
+C6BF;C6BF;110B 116E 11B6;C6BF;110B 116E 11B6;
+C6C0;C6C0;110B 116E 11B7;C6C0;110B 116E 11B7;
+C6C1;C6C1;110B 116E 11B8;C6C1;110B 116E 11B8;
+C6C2;C6C2;110B 116E 11B9;C6C2;110B 116E 11B9;
+C6C3;C6C3;110B 116E 11BA;C6C3;110B 116E 11BA;
+C6C4;C6C4;110B 116E 11BB;C6C4;110B 116E 11BB;
+C6C5;C6C5;110B 116E 11BC;C6C5;110B 116E 11BC;
+C6C6;C6C6;110B 116E 11BD;C6C6;110B 116E 11BD;
+C6C7;C6C7;110B 116E 11BE;C6C7;110B 116E 11BE;
+C6C8;C6C8;110B 116E 11BF;C6C8;110B 116E 11BF;
+C6C9;C6C9;110B 116E 11C0;C6C9;110B 116E 11C0;
+C6CA;C6CA;110B 116E 11C1;C6CA;110B 116E 11C1;
+C6CB;C6CB;110B 116E 11C2;C6CB;110B 116E 11C2;
+C6CC;C6CC;110B 116F;C6CC;110B 116F;
+C6CD;C6CD;110B 116F 11A8;C6CD;110B 116F 11A8;
+C6CE;C6CE;110B 116F 11A9;C6CE;110B 116F 11A9;
+C6CF;C6CF;110B 116F 11AA;C6CF;110B 116F 11AA;
+C6D0;C6D0;110B 116F 11AB;C6D0;110B 116F 11AB;
+C6D1;C6D1;110B 116F 11AC;C6D1;110B 116F 11AC;
+C6D2;C6D2;110B 116F 11AD;C6D2;110B 116F 11AD;
+C6D3;C6D3;110B 116F 11AE;C6D3;110B 116F 11AE;
+C6D4;C6D4;110B 116F 11AF;C6D4;110B 116F 11AF;
+C6D5;C6D5;110B 116F 11B0;C6D5;110B 116F 11B0;
+C6D6;C6D6;110B 116F 11B1;C6D6;110B 116F 11B1;
+C6D7;C6D7;110B 116F 11B2;C6D7;110B 116F 11B2;
+C6D8;C6D8;110B 116F 11B3;C6D8;110B 116F 11B3;
+C6D9;C6D9;110B 116F 11B4;C6D9;110B 116F 11B4;
+C6DA;C6DA;110B 116F 11B5;C6DA;110B 116F 11B5;
+C6DB;C6DB;110B 116F 11B6;C6DB;110B 116F 11B6;
+C6DC;C6DC;110B 116F 11B7;C6DC;110B 116F 11B7;
+C6DD;C6DD;110B 116F 11B8;C6DD;110B 116F 11B8;
+C6DE;C6DE;110B 116F 11B9;C6DE;110B 116F 11B9;
+C6DF;C6DF;110B 116F 11BA;C6DF;110B 116F 11BA;
+C6E0;C6E0;110B 116F 11BB;C6E0;110B 116F 11BB;
+C6E1;C6E1;110B 116F 11BC;C6E1;110B 116F 11BC;
+C6E2;C6E2;110B 116F 11BD;C6E2;110B 116F 11BD;
+C6E3;C6E3;110B 116F 11BE;C6E3;110B 116F 11BE;
+C6E4;C6E4;110B 116F 11BF;C6E4;110B 116F 11BF;
+C6E5;C6E5;110B 116F 11C0;C6E5;110B 116F 11C0;
+C6E6;C6E6;110B 116F 11C1;C6E6;110B 116F 11C1;
+C6E7;C6E7;110B 116F 11C2;C6E7;110B 116F 11C2;
+C6E8;C6E8;110B 1170;C6E8;110B 1170;
+C6E9;C6E9;110B 1170 11A8;C6E9;110B 1170 11A8;
+C6EA;C6EA;110B 1170 11A9;C6EA;110B 1170 11A9;
+C6EB;C6EB;110B 1170 11AA;C6EB;110B 1170 11AA;
+C6EC;C6EC;110B 1170 11AB;C6EC;110B 1170 11AB;
+C6ED;C6ED;110B 1170 11AC;C6ED;110B 1170 11AC;
+C6EE;C6EE;110B 1170 11AD;C6EE;110B 1170 11AD;
+C6EF;C6EF;110B 1170 11AE;C6EF;110B 1170 11AE;
+C6F0;C6F0;110B 1170 11AF;C6F0;110B 1170 11AF;
+C6F1;C6F1;110B 1170 11B0;C6F1;110B 1170 11B0;
+C6F2;C6F2;110B 1170 11B1;C6F2;110B 1170 11B1;
+C6F3;C6F3;110B 1170 11B2;C6F3;110B 1170 11B2;
+C6F4;C6F4;110B 1170 11B3;C6F4;110B 1170 11B3;
+C6F5;C6F5;110B 1170 11B4;C6F5;110B 1170 11B4;
+C6F6;C6F6;110B 1170 11B5;C6F6;110B 1170 11B5;
+C6F7;C6F7;110B 1170 11B6;C6F7;110B 1170 11B6;
+C6F8;C6F8;110B 1170 11B7;C6F8;110B 1170 11B7;
+C6F9;C6F9;110B 1170 11B8;C6F9;110B 1170 11B8;
+C6FA;C6FA;110B 1170 11B9;C6FA;110B 1170 11B9;
+C6FB;C6FB;110B 1170 11BA;C6FB;110B 1170 11BA;
+C6FC;C6FC;110B 1170 11BB;C6FC;110B 1170 11BB;
+C6FD;C6FD;110B 1170 11BC;C6FD;110B 1170 11BC;
+C6FE;C6FE;110B 1170 11BD;C6FE;110B 1170 11BD;
+C6FF;C6FF;110B 1170 11BE;C6FF;110B 1170 11BE;
+C700;C700;110B 1170 11BF;C700;110B 1170 11BF;
+C701;C701;110B 1170 11C0;C701;110B 1170 11C0;
+C702;C702;110B 1170 11C1;C702;110B 1170 11C1;
+C703;C703;110B 1170 11C2;C703;110B 1170 11C2;
+C704;C704;110B 1171;C704;110B 1171;
+C705;C705;110B 1171 11A8;C705;110B 1171 11A8;
+C706;C706;110B 1171 11A9;C706;110B 1171 11A9;
+C707;C707;110B 1171 11AA;C707;110B 1171 11AA;
+C708;C708;110B 1171 11AB;C708;110B 1171 11AB;
+C709;C709;110B 1171 11AC;C709;110B 1171 11AC;
+C70A;C70A;110B 1171 11AD;C70A;110B 1171 11AD;
+C70B;C70B;110B 1171 11AE;C70B;110B 1171 11AE;
+C70C;C70C;110B 1171 11AF;C70C;110B 1171 11AF;
+C70D;C70D;110B 1171 11B0;C70D;110B 1171 11B0;
+C70E;C70E;110B 1171 11B1;C70E;110B 1171 11B1;
+C70F;C70F;110B 1171 11B2;C70F;110B 1171 11B2;
+C710;C710;110B 1171 11B3;C710;110B 1171 11B3;
+C711;C711;110B 1171 11B4;C711;110B 1171 11B4;
+C712;C712;110B 1171 11B5;C712;110B 1171 11B5;
+C713;C713;110B 1171 11B6;C713;110B 1171 11B6;
+C714;C714;110B 1171 11B7;C714;110B 1171 11B7;
+C715;C715;110B 1171 11B8;C715;110B 1171 11B8;
+C716;C716;110B 1171 11B9;C716;110B 1171 11B9;
+C717;C717;110B 1171 11BA;C717;110B 1171 11BA;
+C718;C718;110B 1171 11BB;C718;110B 1171 11BB;
+C719;C719;110B 1171 11BC;C719;110B 1171 11BC;
+C71A;C71A;110B 1171 11BD;C71A;110B 1171 11BD;
+C71B;C71B;110B 1171 11BE;C71B;110B 1171 11BE;
+C71C;C71C;110B 1171 11BF;C71C;110B 1171 11BF;
+C71D;C71D;110B 1171 11C0;C71D;110B 1171 11C0;
+C71E;C71E;110B 1171 11C1;C71E;110B 1171 11C1;
+C71F;C71F;110B 1171 11C2;C71F;110B 1171 11C2;
+C720;C720;110B 1172;C720;110B 1172;
+C721;C721;110B 1172 11A8;C721;110B 1172 11A8;
+C722;C722;110B 1172 11A9;C722;110B 1172 11A9;
+C723;C723;110B 1172 11AA;C723;110B 1172 11AA;
+C724;C724;110B 1172 11AB;C724;110B 1172 11AB;
+C725;C725;110B 1172 11AC;C725;110B 1172 11AC;
+C726;C726;110B 1172 11AD;C726;110B 1172 11AD;
+C727;C727;110B 1172 11AE;C727;110B 1172 11AE;
+C728;C728;110B 1172 11AF;C728;110B 1172 11AF;
+C729;C729;110B 1172 11B0;C729;110B 1172 11B0;
+C72A;C72A;110B 1172 11B1;C72A;110B 1172 11B1;
+C72B;C72B;110B 1172 11B2;C72B;110B 1172 11B2;
+C72C;C72C;110B 1172 11B3;C72C;110B 1172 11B3;
+C72D;C72D;110B 1172 11B4;C72D;110B 1172 11B4;
+C72E;C72E;110B 1172 11B5;C72E;110B 1172 11B5;
+C72F;C72F;110B 1172 11B6;C72F;110B 1172 11B6;
+C730;C730;110B 1172 11B7;C730;110B 1172 11B7;
+C731;C731;110B 1172 11B8;C731;110B 1172 11B8;
+C732;C732;110B 1172 11B9;C732;110B 1172 11B9;
+C733;C733;110B 1172 11BA;C733;110B 1172 11BA;
+C734;C734;110B 1172 11BB;C734;110B 1172 11BB;
+C735;C735;110B 1172 11BC;C735;110B 1172 11BC;
+C736;C736;110B 1172 11BD;C736;110B 1172 11BD;
+C737;C737;110B 1172 11BE;C737;110B 1172 11BE;
+C738;C738;110B 1172 11BF;C738;110B 1172 11BF;
+C739;C739;110B 1172 11C0;C739;110B 1172 11C0;
+C73A;C73A;110B 1172 11C1;C73A;110B 1172 11C1;
+C73B;C73B;110B 1172 11C2;C73B;110B 1172 11C2;
+C73C;C73C;110B 1173;C73C;110B 1173;
+C73D;C73D;110B 1173 11A8;C73D;110B 1173 11A8;
+C73E;C73E;110B 1173 11A9;C73E;110B 1173 11A9;
+C73F;C73F;110B 1173 11AA;C73F;110B 1173 11AA;
+C740;C740;110B 1173 11AB;C740;110B 1173 11AB;
+C741;C741;110B 1173 11AC;C741;110B 1173 11AC;
+C742;C742;110B 1173 11AD;C742;110B 1173 11AD;
+C743;C743;110B 1173 11AE;C743;110B 1173 11AE;
+C744;C744;110B 1173 11AF;C744;110B 1173 11AF;
+C745;C745;110B 1173 11B0;C745;110B 1173 11B0;
+C746;C746;110B 1173 11B1;C746;110B 1173 11B1;
+C747;C747;110B 1173 11B2;C747;110B 1173 11B2;
+C748;C748;110B 1173 11B3;C748;110B 1173 11B3;
+C749;C749;110B 1173 11B4;C749;110B 1173 11B4;
+C74A;C74A;110B 1173 11B5;C74A;110B 1173 11B5;
+C74B;C74B;110B 1173 11B6;C74B;110B 1173 11B6;
+C74C;C74C;110B 1173 11B7;C74C;110B 1173 11B7;
+C74D;C74D;110B 1173 11B8;C74D;110B 1173 11B8;
+C74E;C74E;110B 1173 11B9;C74E;110B 1173 11B9;
+C74F;C74F;110B 1173 11BA;C74F;110B 1173 11BA;
+C750;C750;110B 1173 11BB;C750;110B 1173 11BB;
+C751;C751;110B 1173 11BC;C751;110B 1173 11BC;
+C752;C752;110B 1173 11BD;C752;110B 1173 11BD;
+C753;C753;110B 1173 11BE;C753;110B 1173 11BE;
+C754;C754;110B 1173 11BF;C754;110B 1173 11BF;
+C755;C755;110B 1173 11C0;C755;110B 1173 11C0;
+C756;C756;110B 1173 11C1;C756;110B 1173 11C1;
+C757;C757;110B 1173 11C2;C757;110B 1173 11C2;
+C758;C758;110B 1174;C758;110B 1174;
+C759;C759;110B 1174 11A8;C759;110B 1174 11A8;
+C75A;C75A;110B 1174 11A9;C75A;110B 1174 11A9;
+C75B;C75B;110B 1174 11AA;C75B;110B 1174 11AA;
+C75C;C75C;110B 1174 11AB;C75C;110B 1174 11AB;
+C75D;C75D;110B 1174 11AC;C75D;110B 1174 11AC;
+C75E;C75E;110B 1174 11AD;C75E;110B 1174 11AD;
+C75F;C75F;110B 1174 11AE;C75F;110B 1174 11AE;
+C760;C760;110B 1174 11AF;C760;110B 1174 11AF;
+C761;C761;110B 1174 11B0;C761;110B 1174 11B0;
+C762;C762;110B 1174 11B1;C762;110B 1174 11B1;
+C763;C763;110B 1174 11B2;C763;110B 1174 11B2;
+C764;C764;110B 1174 11B3;C764;110B 1174 11B3;
+C765;C765;110B 1174 11B4;C765;110B 1174 11B4;
+C766;C766;110B 1174 11B5;C766;110B 1174 11B5;
+C767;C767;110B 1174 11B6;C767;110B 1174 11B6;
+C768;C768;110B 1174 11B7;C768;110B 1174 11B7;
+C769;C769;110B 1174 11B8;C769;110B 1174 11B8;
+C76A;C76A;110B 1174 11B9;C76A;110B 1174 11B9;
+C76B;C76B;110B 1174 11BA;C76B;110B 1174 11BA;
+C76C;C76C;110B 1174 11BB;C76C;110B 1174 11BB;
+C76D;C76D;110B 1174 11BC;C76D;110B 1174 11BC;
+C76E;C76E;110B 1174 11BD;C76E;110B 1174 11BD;
+C76F;C76F;110B 1174 11BE;C76F;110B 1174 11BE;
+C770;C770;110B 1174 11BF;C770;110B 1174 11BF;
+C771;C771;110B 1174 11C0;C771;110B 1174 11C0;
+C772;C772;110B 1174 11C1;C772;110B 1174 11C1;
+C773;C773;110B 1174 11C2;C773;110B 1174 11C2;
+C774;C774;110B 1175;C774;110B 1175;
+C775;C775;110B 1175 11A8;C775;110B 1175 11A8;
+C776;C776;110B 1175 11A9;C776;110B 1175 11A9;
+C777;C777;110B 1175 11AA;C777;110B 1175 11AA;
+C778;C778;110B 1175 11AB;C778;110B 1175 11AB;
+C779;C779;110B 1175 11AC;C779;110B 1175 11AC;
+C77A;C77A;110B 1175 11AD;C77A;110B 1175 11AD;
+C77B;C77B;110B 1175 11AE;C77B;110B 1175 11AE;
+C77C;C77C;110B 1175 11AF;C77C;110B 1175 11AF;
+C77D;C77D;110B 1175 11B0;C77D;110B 1175 11B0;
+C77E;C77E;110B 1175 11B1;C77E;110B 1175 11B1;
+C77F;C77F;110B 1175 11B2;C77F;110B 1175 11B2;
+C780;C780;110B 1175 11B3;C780;110B 1175 11B3;
+C781;C781;110B 1175 11B4;C781;110B 1175 11B4;
+C782;C782;110B 1175 11B5;C782;110B 1175 11B5;
+C783;C783;110B 1175 11B6;C783;110B 1175 11B6;
+C784;C784;110B 1175 11B7;C784;110B 1175 11B7;
+C785;C785;110B 1175 11B8;C785;110B 1175 11B8;
+C786;C786;110B 1175 11B9;C786;110B 1175 11B9;
+C787;C787;110B 1175 11BA;C787;110B 1175 11BA;
+C788;C788;110B 1175 11BB;C788;110B 1175 11BB;
+C789;C789;110B 1175 11BC;C789;110B 1175 11BC;
+C78A;C78A;110B 1175 11BD;C78A;110B 1175 11BD;
+C78B;C78B;110B 1175 11BE;C78B;110B 1175 11BE;
+C78C;C78C;110B 1175 11BF;C78C;110B 1175 11BF;
+C78D;C78D;110B 1175 11C0;C78D;110B 1175 11C0;
+C78E;C78E;110B 1175 11C1;C78E;110B 1175 11C1;
+C78F;C78F;110B 1175 11C2;C78F;110B 1175 11C2;
+C790;C790;110C 1161;C790;110C 1161;
+C791;C791;110C 1161 11A8;C791;110C 1161 11A8;
+C792;C792;110C 1161 11A9;C792;110C 1161 11A9;
+C793;C793;110C 1161 11AA;C793;110C 1161 11AA;
+C794;C794;110C 1161 11AB;C794;110C 1161 11AB;
+C795;C795;110C 1161 11AC;C795;110C 1161 11AC;
+C796;C796;110C 1161 11AD;C796;110C 1161 11AD;
+C797;C797;110C 1161 11AE;C797;110C 1161 11AE;
+C798;C798;110C 1161 11AF;C798;110C 1161 11AF;
+C799;C799;110C 1161 11B0;C799;110C 1161 11B0;
+C79A;C79A;110C 1161 11B1;C79A;110C 1161 11B1;
+C79B;C79B;110C 1161 11B2;C79B;110C 1161 11B2;
+C79C;C79C;110C 1161 11B3;C79C;110C 1161 11B3;
+C79D;C79D;110C 1161 11B4;C79D;110C 1161 11B4;
+C79E;C79E;110C 1161 11B5;C79E;110C 1161 11B5;
+C79F;C79F;110C 1161 11B6;C79F;110C 1161 11B6;
+C7A0;C7A0;110C 1161 11B7;C7A0;110C 1161 11B7;
+C7A1;C7A1;110C 1161 11B8;C7A1;110C 1161 11B8;
+C7A2;C7A2;110C 1161 11B9;C7A2;110C 1161 11B9;
+C7A3;C7A3;110C 1161 11BA;C7A3;110C 1161 11BA;
+C7A4;C7A4;110C 1161 11BB;C7A4;110C 1161 11BB;
+C7A5;C7A5;110C 1161 11BC;C7A5;110C 1161 11BC;
+C7A6;C7A6;110C 1161 11BD;C7A6;110C 1161 11BD;
+C7A7;C7A7;110C 1161 11BE;C7A7;110C 1161 11BE;
+C7A8;C7A8;110C 1161 11BF;C7A8;110C 1161 11BF;
+C7A9;C7A9;110C 1161 11C0;C7A9;110C 1161 11C0;
+C7AA;C7AA;110C 1161 11C1;C7AA;110C 1161 11C1;
+C7AB;C7AB;110C 1161 11C2;C7AB;110C 1161 11C2;
+C7AC;C7AC;110C 1162;C7AC;110C 1162;
+C7AD;C7AD;110C 1162 11A8;C7AD;110C 1162 11A8;
+C7AE;C7AE;110C 1162 11A9;C7AE;110C 1162 11A9;
+C7AF;C7AF;110C 1162 11AA;C7AF;110C 1162 11AA;
+C7B0;C7B0;110C 1162 11AB;C7B0;110C 1162 11AB;
+C7B1;C7B1;110C 1162 11AC;C7B1;110C 1162 11AC;
+C7B2;C7B2;110C 1162 11AD;C7B2;110C 1162 11AD;
+C7B3;C7B3;110C 1162 11AE;C7B3;110C 1162 11AE;
+C7B4;C7B4;110C 1162 11AF;C7B4;110C 1162 11AF;
+C7B5;C7B5;110C 1162 11B0;C7B5;110C 1162 11B0;
+C7B6;C7B6;110C 1162 11B1;C7B6;110C 1162 11B1;
+C7B7;C7B7;110C 1162 11B2;C7B7;110C 1162 11B2;
+C7B8;C7B8;110C 1162 11B3;C7B8;110C 1162 11B3;
+C7B9;C7B9;110C 1162 11B4;C7B9;110C 1162 11B4;
+C7BA;C7BA;110C 1162 11B5;C7BA;110C 1162 11B5;
+C7BB;C7BB;110C 1162 11B6;C7BB;110C 1162 11B6;
+C7BC;C7BC;110C 1162 11B7;C7BC;110C 1162 11B7;
+C7BD;C7BD;110C 1162 11B8;C7BD;110C 1162 11B8;
+C7BE;C7BE;110C 1162 11B9;C7BE;110C 1162 11B9;
+C7BF;C7BF;110C 1162 11BA;C7BF;110C 1162 11BA;
+C7C0;C7C0;110C 1162 11BB;C7C0;110C 1162 11BB;
+C7C1;C7C1;110C 1162 11BC;C7C1;110C 1162 11BC;
+C7C2;C7C2;110C 1162 11BD;C7C2;110C 1162 11BD;
+C7C3;C7C3;110C 1162 11BE;C7C3;110C 1162 11BE;
+C7C4;C7C4;110C 1162 11BF;C7C4;110C 1162 11BF;
+C7C5;C7C5;110C 1162 11C0;C7C5;110C 1162 11C0;
+C7C6;C7C6;110C 1162 11C1;C7C6;110C 1162 11C1;
+C7C7;C7C7;110C 1162 11C2;C7C7;110C 1162 11C2;
+C7C8;C7C8;110C 1163;C7C8;110C 1163;
+C7C9;C7C9;110C 1163 11A8;C7C9;110C 1163 11A8;
+C7CA;C7CA;110C 1163 11A9;C7CA;110C 1163 11A9;
+C7CB;C7CB;110C 1163 11AA;C7CB;110C 1163 11AA;
+C7CC;C7CC;110C 1163 11AB;C7CC;110C 1163 11AB;
+C7CD;C7CD;110C 1163 11AC;C7CD;110C 1163 11AC;
+C7CE;C7CE;110C 1163 11AD;C7CE;110C 1163 11AD;
+C7CF;C7CF;110C 1163 11AE;C7CF;110C 1163 11AE;
+C7D0;C7D0;110C 1163 11AF;C7D0;110C 1163 11AF;
+C7D1;C7D1;110C 1163 11B0;C7D1;110C 1163 11B0;
+C7D2;C7D2;110C 1163 11B1;C7D2;110C 1163 11B1;
+C7D3;C7D3;110C 1163 11B2;C7D3;110C 1163 11B2;
+C7D4;C7D4;110C 1163 11B3;C7D4;110C 1163 11B3;
+C7D5;C7D5;110C 1163 11B4;C7D5;110C 1163 11B4;
+C7D6;C7D6;110C 1163 11B5;C7D6;110C 1163 11B5;
+C7D7;C7D7;110C 1163 11B6;C7D7;110C 1163 11B6;
+C7D8;C7D8;110C 1163 11B7;C7D8;110C 1163 11B7;
+C7D9;C7D9;110C 1163 11B8;C7D9;110C 1163 11B8;
+C7DA;C7DA;110C 1163 11B9;C7DA;110C 1163 11B9;
+C7DB;C7DB;110C 1163 11BA;C7DB;110C 1163 11BA;
+C7DC;C7DC;110C 1163 11BB;C7DC;110C 1163 11BB;
+C7DD;C7DD;110C 1163 11BC;C7DD;110C 1163 11BC;
+C7DE;C7DE;110C 1163 11BD;C7DE;110C 1163 11BD;
+C7DF;C7DF;110C 1163 11BE;C7DF;110C 1163 11BE;
+C7E0;C7E0;110C 1163 11BF;C7E0;110C 1163 11BF;
+C7E1;C7E1;110C 1163 11C0;C7E1;110C 1163 11C0;
+C7E2;C7E2;110C 1163 11C1;C7E2;110C 1163 11C1;
+C7E3;C7E3;110C 1163 11C2;C7E3;110C 1163 11C2;
+C7E4;C7E4;110C 1164;C7E4;110C 1164;
+C7E5;C7E5;110C 1164 11A8;C7E5;110C 1164 11A8;
+C7E6;C7E6;110C 1164 11A9;C7E6;110C 1164 11A9;
+C7E7;C7E7;110C 1164 11AA;C7E7;110C 1164 11AA;
+C7E8;C7E8;110C 1164 11AB;C7E8;110C 1164 11AB;
+C7E9;C7E9;110C 1164 11AC;C7E9;110C 1164 11AC;
+C7EA;C7EA;110C 1164 11AD;C7EA;110C 1164 11AD;
+C7EB;C7EB;110C 1164 11AE;C7EB;110C 1164 11AE;
+C7EC;C7EC;110C 1164 11AF;C7EC;110C 1164 11AF;
+C7ED;C7ED;110C 1164 11B0;C7ED;110C 1164 11B0;
+C7EE;C7EE;110C 1164 11B1;C7EE;110C 1164 11B1;
+C7EF;C7EF;110C 1164 11B2;C7EF;110C 1164 11B2;
+C7F0;C7F0;110C 1164 11B3;C7F0;110C 1164 11B3;
+C7F1;C7F1;110C 1164 11B4;C7F1;110C 1164 11B4;
+C7F2;C7F2;110C 1164 11B5;C7F2;110C 1164 11B5;
+C7F3;C7F3;110C 1164 11B6;C7F3;110C 1164 11B6;
+C7F4;C7F4;110C 1164 11B7;C7F4;110C 1164 11B7;
+C7F5;C7F5;110C 1164 11B8;C7F5;110C 1164 11B8;
+C7F6;C7F6;110C 1164 11B9;C7F6;110C 1164 11B9;
+C7F7;C7F7;110C 1164 11BA;C7F7;110C 1164 11BA;
+C7F8;C7F8;110C 1164 11BB;C7F8;110C 1164 11BB;
+C7F9;C7F9;110C 1164 11BC;C7F9;110C 1164 11BC;
+C7FA;C7FA;110C 1164 11BD;C7FA;110C 1164 11BD;
+C7FB;C7FB;110C 1164 11BE;C7FB;110C 1164 11BE;
+C7FC;C7FC;110C 1164 11BF;C7FC;110C 1164 11BF;
+C7FD;C7FD;110C 1164 11C0;C7FD;110C 1164 11C0;
+C7FE;C7FE;110C 1164 11C1;C7FE;110C 1164 11C1;
+C7FF;C7FF;110C 1164 11C2;C7FF;110C 1164 11C2;
+C800;C800;110C 1165;C800;110C 1165;
+C801;C801;110C 1165 11A8;C801;110C 1165 11A8;
+C802;C802;110C 1165 11A9;C802;110C 1165 11A9;
+C803;C803;110C 1165 11AA;C803;110C 1165 11AA;
+C804;C804;110C 1165 11AB;C804;110C 1165 11AB;
+C805;C805;110C 1165 11AC;C805;110C 1165 11AC;
+C806;C806;110C 1165 11AD;C806;110C 1165 11AD;
+C807;C807;110C 1165 11AE;C807;110C 1165 11AE;
+C808;C808;110C 1165 11AF;C808;110C 1165 11AF;
+C809;C809;110C 1165 11B0;C809;110C 1165 11B0;
+C80A;C80A;110C 1165 11B1;C80A;110C 1165 11B1;
+C80B;C80B;110C 1165 11B2;C80B;110C 1165 11B2;
+C80C;C80C;110C 1165 11B3;C80C;110C 1165 11B3;
+C80D;C80D;110C 1165 11B4;C80D;110C 1165 11B4;
+C80E;C80E;110C 1165 11B5;C80E;110C 1165 11B5;
+C80F;C80F;110C 1165 11B6;C80F;110C 1165 11B6;
+C810;C810;110C 1165 11B7;C810;110C 1165 11B7;
+C811;C811;110C 1165 11B8;C811;110C 1165 11B8;
+C812;C812;110C 1165 11B9;C812;110C 1165 11B9;
+C813;C813;110C 1165 11BA;C813;110C 1165 11BA;
+C814;C814;110C 1165 11BB;C814;110C 1165 11BB;
+C815;C815;110C 1165 11BC;C815;110C 1165 11BC;
+C816;C816;110C 1165 11BD;C816;110C 1165 11BD;
+C817;C817;110C 1165 11BE;C817;110C 1165 11BE;
+C818;C818;110C 1165 11BF;C818;110C 1165 11BF;
+C819;C819;110C 1165 11C0;C819;110C 1165 11C0;
+C81A;C81A;110C 1165 11C1;C81A;110C 1165 11C1;
+C81B;C81B;110C 1165 11C2;C81B;110C 1165 11C2;
+C81C;C81C;110C 1166;C81C;110C 1166;
+C81D;C81D;110C 1166 11A8;C81D;110C 1166 11A8;
+C81E;C81E;110C 1166 11A9;C81E;110C 1166 11A9;
+C81F;C81F;110C 1166 11AA;C81F;110C 1166 11AA;
+C820;C820;110C 1166 11AB;C820;110C 1166 11AB;
+C821;C821;110C 1166 11AC;C821;110C 1166 11AC;
+C822;C822;110C 1166 11AD;C822;110C 1166 11AD;
+C823;C823;110C 1166 11AE;C823;110C 1166 11AE;
+C824;C824;110C 1166 11AF;C824;110C 1166 11AF;
+C825;C825;110C 1166 11B0;C825;110C 1166 11B0;
+C826;C826;110C 1166 11B1;C826;110C 1166 11B1;
+C827;C827;110C 1166 11B2;C827;110C 1166 11B2;
+C828;C828;110C 1166 11B3;C828;110C 1166 11B3;
+C829;C829;110C 1166 11B4;C829;110C 1166 11B4;
+C82A;C82A;110C 1166 11B5;C82A;110C 1166 11B5;
+C82B;C82B;110C 1166 11B6;C82B;110C 1166 11B6;
+C82C;C82C;110C 1166 11B7;C82C;110C 1166 11B7;
+C82D;C82D;110C 1166 11B8;C82D;110C 1166 11B8;
+C82E;C82E;110C 1166 11B9;C82E;110C 1166 11B9;
+C82F;C82F;110C 1166 11BA;C82F;110C 1166 11BA;
+C830;C830;110C 1166 11BB;C830;110C 1166 11BB;
+C831;C831;110C 1166 11BC;C831;110C 1166 11BC;
+C832;C832;110C 1166 11BD;C832;110C 1166 11BD;
+C833;C833;110C 1166 11BE;C833;110C 1166 11BE;
+C834;C834;110C 1166 11BF;C834;110C 1166 11BF;
+C835;C835;110C 1166 11C0;C835;110C 1166 11C0;
+C836;C836;110C 1166 11C1;C836;110C 1166 11C1;
+C837;C837;110C 1166 11C2;C837;110C 1166 11C2;
+C838;C838;110C 1167;C838;110C 1167;
+C839;C839;110C 1167 11A8;C839;110C 1167 11A8;
+C83A;C83A;110C 1167 11A9;C83A;110C 1167 11A9;
+C83B;C83B;110C 1167 11AA;C83B;110C 1167 11AA;
+C83C;C83C;110C 1167 11AB;C83C;110C 1167 11AB;
+C83D;C83D;110C 1167 11AC;C83D;110C 1167 11AC;
+C83E;C83E;110C 1167 11AD;C83E;110C 1167 11AD;
+C83F;C83F;110C 1167 11AE;C83F;110C 1167 11AE;
+C840;C840;110C 1167 11AF;C840;110C 1167 11AF;
+C841;C841;110C 1167 11B0;C841;110C 1167 11B0;
+C842;C842;110C 1167 11B1;C842;110C 1167 11B1;
+C843;C843;110C 1167 11B2;C843;110C 1167 11B2;
+C844;C844;110C 1167 11B3;C844;110C 1167 11B3;
+C845;C845;110C 1167 11B4;C845;110C 1167 11B4;
+C846;C846;110C 1167 11B5;C846;110C 1167 11B5;
+C847;C847;110C 1167 11B6;C847;110C 1167 11B6;
+C848;C848;110C 1167 11B7;C848;110C 1167 11B7;
+C849;C849;110C 1167 11B8;C849;110C 1167 11B8;
+C84A;C84A;110C 1167 11B9;C84A;110C 1167 11B9;
+C84B;C84B;110C 1167 11BA;C84B;110C 1167 11BA;
+C84C;C84C;110C 1167 11BB;C84C;110C 1167 11BB;
+C84D;C84D;110C 1167 11BC;C84D;110C 1167 11BC;
+C84E;C84E;110C 1167 11BD;C84E;110C 1167 11BD;
+C84F;C84F;110C 1167 11BE;C84F;110C 1167 11BE;
+C850;C850;110C 1167 11BF;C850;110C 1167 11BF;
+C851;C851;110C 1167 11C0;C851;110C 1167 11C0;
+C852;C852;110C 1167 11C1;C852;110C 1167 11C1;
+C853;C853;110C 1167 11C2;C853;110C 1167 11C2;
+C854;C854;110C 1168;C854;110C 1168;
+C855;C855;110C 1168 11A8;C855;110C 1168 11A8;
+C856;C856;110C 1168 11A9;C856;110C 1168 11A9;
+C857;C857;110C 1168 11AA;C857;110C 1168 11AA;
+C858;C858;110C 1168 11AB;C858;110C 1168 11AB;
+C859;C859;110C 1168 11AC;C859;110C 1168 11AC;
+C85A;C85A;110C 1168 11AD;C85A;110C 1168 11AD;
+C85B;C85B;110C 1168 11AE;C85B;110C 1168 11AE;
+C85C;C85C;110C 1168 11AF;C85C;110C 1168 11AF;
+C85D;C85D;110C 1168 11B0;C85D;110C 1168 11B0;
+C85E;C85E;110C 1168 11B1;C85E;110C 1168 11B1;
+C85F;C85F;110C 1168 11B2;C85F;110C 1168 11B2;
+C860;C860;110C 1168 11B3;C860;110C 1168 11B3;
+C861;C861;110C 1168 11B4;C861;110C 1168 11B4;
+C862;C862;110C 1168 11B5;C862;110C 1168 11B5;
+C863;C863;110C 1168 11B6;C863;110C 1168 11B6;
+C864;C864;110C 1168 11B7;C864;110C 1168 11B7;
+C865;C865;110C 1168 11B8;C865;110C 1168 11B8;
+C866;C866;110C 1168 11B9;C866;110C 1168 11B9;
+C867;C867;110C 1168 11BA;C867;110C 1168 11BA;
+C868;C868;110C 1168 11BB;C868;110C 1168 11BB;
+C869;C869;110C 1168 11BC;C869;110C 1168 11BC;
+C86A;C86A;110C 1168 11BD;C86A;110C 1168 11BD;
+C86B;C86B;110C 1168 11BE;C86B;110C 1168 11BE;
+C86C;C86C;110C 1168 11BF;C86C;110C 1168 11BF;
+C86D;C86D;110C 1168 11C0;C86D;110C 1168 11C0;
+C86E;C86E;110C 1168 11C1;C86E;110C 1168 11C1;
+C86F;C86F;110C 1168 11C2;C86F;110C 1168 11C2;
+C870;C870;110C 1169;C870;110C 1169;
+C871;C871;110C 1169 11A8;C871;110C 1169 11A8;
+C872;C872;110C 1169 11A9;C872;110C 1169 11A9;
+C873;C873;110C 1169 11AA;C873;110C 1169 11AA;
+C874;C874;110C 1169 11AB;C874;110C 1169 11AB;
+C875;C875;110C 1169 11AC;C875;110C 1169 11AC;
+C876;C876;110C 1169 11AD;C876;110C 1169 11AD;
+C877;C877;110C 1169 11AE;C877;110C 1169 11AE;
+C878;C878;110C 1169 11AF;C878;110C 1169 11AF;
+C879;C879;110C 1169 11B0;C879;110C 1169 11B0;
+C87A;C87A;110C 1169 11B1;C87A;110C 1169 11B1;
+C87B;C87B;110C 1169 11B2;C87B;110C 1169 11B2;
+C87C;C87C;110C 1169 11B3;C87C;110C 1169 11B3;
+C87D;C87D;110C 1169 11B4;C87D;110C 1169 11B4;
+C87E;C87E;110C 1169 11B5;C87E;110C 1169 11B5;
+C87F;C87F;110C 1169 11B6;C87F;110C 1169 11B6;
+C880;C880;110C 1169 11B7;C880;110C 1169 11B7;
+C881;C881;110C 1169 11B8;C881;110C 1169 11B8;
+C882;C882;110C 1169 11B9;C882;110C 1169 11B9;
+C883;C883;110C 1169 11BA;C883;110C 1169 11BA;
+C884;C884;110C 1169 11BB;C884;110C 1169 11BB;
+C885;C885;110C 1169 11BC;C885;110C 1169 11BC;
+C886;C886;110C 1169 11BD;C886;110C 1169 11BD;
+C887;C887;110C 1169 11BE;C887;110C 1169 11BE;
+C888;C888;110C 1169 11BF;C888;110C 1169 11BF;
+C889;C889;110C 1169 11C0;C889;110C 1169 11C0;
+C88A;C88A;110C 1169 11C1;C88A;110C 1169 11C1;
+C88B;C88B;110C 1169 11C2;C88B;110C 1169 11C2;
+C88C;C88C;110C 116A;C88C;110C 116A;
+C88D;C88D;110C 116A 11A8;C88D;110C 116A 11A8;
+C88E;C88E;110C 116A 11A9;C88E;110C 116A 11A9;
+C88F;C88F;110C 116A 11AA;C88F;110C 116A 11AA;
+C890;C890;110C 116A 11AB;C890;110C 116A 11AB;
+C891;C891;110C 116A 11AC;C891;110C 116A 11AC;
+C892;C892;110C 116A 11AD;C892;110C 116A 11AD;
+C893;C893;110C 116A 11AE;C893;110C 116A 11AE;
+C894;C894;110C 116A 11AF;C894;110C 116A 11AF;
+C895;C895;110C 116A 11B0;C895;110C 116A 11B0;
+C896;C896;110C 116A 11B1;C896;110C 116A 11B1;
+C897;C897;110C 116A 11B2;C897;110C 116A 11B2;
+C898;C898;110C 116A 11B3;C898;110C 116A 11B3;
+C899;C899;110C 116A 11B4;C899;110C 116A 11B4;
+C89A;C89A;110C 116A 11B5;C89A;110C 116A 11B5;
+C89B;C89B;110C 116A 11B6;C89B;110C 116A 11B6;
+C89C;C89C;110C 116A 11B7;C89C;110C 116A 11B7;
+C89D;C89D;110C 116A 11B8;C89D;110C 116A 11B8;
+C89E;C89E;110C 116A 11B9;C89E;110C 116A 11B9;
+C89F;C89F;110C 116A 11BA;C89F;110C 116A 11BA;
+C8A0;C8A0;110C 116A 11BB;C8A0;110C 116A 11BB;
+C8A1;C8A1;110C 116A 11BC;C8A1;110C 116A 11BC;
+C8A2;C8A2;110C 116A 11BD;C8A2;110C 116A 11BD;
+C8A3;C8A3;110C 116A 11BE;C8A3;110C 116A 11BE;
+C8A4;C8A4;110C 116A 11BF;C8A4;110C 116A 11BF;
+C8A5;C8A5;110C 116A 11C0;C8A5;110C 116A 11C0;
+C8A6;C8A6;110C 116A 11C1;C8A6;110C 116A 11C1;
+C8A7;C8A7;110C 116A 11C2;C8A7;110C 116A 11C2;
+C8A8;C8A8;110C 116B;C8A8;110C 116B;
+C8A9;C8A9;110C 116B 11A8;C8A9;110C 116B 11A8;
+C8AA;C8AA;110C 116B 11A9;C8AA;110C 116B 11A9;
+C8AB;C8AB;110C 116B 11AA;C8AB;110C 116B 11AA;
+C8AC;C8AC;110C 116B 11AB;C8AC;110C 116B 11AB;
+C8AD;C8AD;110C 116B 11AC;C8AD;110C 116B 11AC;
+C8AE;C8AE;110C 116B 11AD;C8AE;110C 116B 11AD;
+C8AF;C8AF;110C 116B 11AE;C8AF;110C 116B 11AE;
+C8B0;C8B0;110C 116B 11AF;C8B0;110C 116B 11AF;
+C8B1;C8B1;110C 116B 11B0;C8B1;110C 116B 11B0;
+C8B2;C8B2;110C 116B 11B1;C8B2;110C 116B 11B1;
+C8B3;C8B3;110C 116B 11B2;C8B3;110C 116B 11B2;
+C8B4;C8B4;110C 116B 11B3;C8B4;110C 116B 11B3;
+C8B5;C8B5;110C 116B 11B4;C8B5;110C 116B 11B4;
+C8B6;C8B6;110C 116B 11B5;C8B6;110C 116B 11B5;
+C8B7;C8B7;110C 116B 11B6;C8B7;110C 116B 11B6;
+C8B8;C8B8;110C 116B 11B7;C8B8;110C 116B 11B7;
+C8B9;C8B9;110C 116B 11B8;C8B9;110C 116B 11B8;
+C8BA;C8BA;110C 116B 11B9;C8BA;110C 116B 11B9;
+C8BB;C8BB;110C 116B 11BA;C8BB;110C 116B 11BA;
+C8BC;C8BC;110C 116B 11BB;C8BC;110C 116B 11BB;
+C8BD;C8BD;110C 116B 11BC;C8BD;110C 116B 11BC;
+C8BE;C8BE;110C 116B 11BD;C8BE;110C 116B 11BD;
+C8BF;C8BF;110C 116B 11BE;C8BF;110C 116B 11BE;
+C8C0;C8C0;110C 116B 11BF;C8C0;110C 116B 11BF;
+C8C1;C8C1;110C 116B 11C0;C8C1;110C 116B 11C0;
+C8C2;C8C2;110C 116B 11C1;C8C2;110C 116B 11C1;
+C8C3;C8C3;110C 116B 11C2;C8C3;110C 116B 11C2;
+C8C4;C8C4;110C 116C;C8C4;110C 116C;
+C8C5;C8C5;110C 116C 11A8;C8C5;110C 116C 11A8;
+C8C6;C8C6;110C 116C 11A9;C8C6;110C 116C 11A9;
+C8C7;C8C7;110C 116C 11AA;C8C7;110C 116C 11AA;
+C8C8;C8C8;110C 116C 11AB;C8C8;110C 116C 11AB;
+C8C9;C8C9;110C 116C 11AC;C8C9;110C 116C 11AC;
+C8CA;C8CA;110C 116C 11AD;C8CA;110C 116C 11AD;
+C8CB;C8CB;110C 116C 11AE;C8CB;110C 116C 11AE;
+C8CC;C8CC;110C 116C 11AF;C8CC;110C 116C 11AF;
+C8CD;C8CD;110C 116C 11B0;C8CD;110C 116C 11B0;
+C8CE;C8CE;110C 116C 11B1;C8CE;110C 116C 11B1;
+C8CF;C8CF;110C 116C 11B2;C8CF;110C 116C 11B2;
+C8D0;C8D0;110C 116C 11B3;C8D0;110C 116C 11B3;
+C8D1;C8D1;110C 116C 11B4;C8D1;110C 116C 11B4;
+C8D2;C8D2;110C 116C 11B5;C8D2;110C 116C 11B5;
+C8D3;C8D3;110C 116C 11B6;C8D3;110C 116C 11B6;
+C8D4;C8D4;110C 116C 11B7;C8D4;110C 116C 11B7;
+C8D5;C8D5;110C 116C 11B8;C8D5;110C 116C 11B8;
+C8D6;C8D6;110C 116C 11B9;C8D6;110C 116C 11B9;
+C8D7;C8D7;110C 116C 11BA;C8D7;110C 116C 11BA;
+C8D8;C8D8;110C 116C 11BB;C8D8;110C 116C 11BB;
+C8D9;C8D9;110C 116C 11BC;C8D9;110C 116C 11BC;
+C8DA;C8DA;110C 116C 11BD;C8DA;110C 116C 11BD;
+C8DB;C8DB;110C 116C 11BE;C8DB;110C 116C 11BE;
+C8DC;C8DC;110C 116C 11BF;C8DC;110C 116C 11BF;
+C8DD;C8DD;110C 116C 11C0;C8DD;110C 116C 11C0;
+C8DE;C8DE;110C 116C 11C1;C8DE;110C 116C 11C1;
+C8DF;C8DF;110C 116C 11C2;C8DF;110C 116C 11C2;
+C8E0;C8E0;110C 116D;C8E0;110C 116D;
+C8E1;C8E1;110C 116D 11A8;C8E1;110C 116D 11A8;
+C8E2;C8E2;110C 116D 11A9;C8E2;110C 116D 11A9;
+C8E3;C8E3;110C 116D 11AA;C8E3;110C 116D 11AA;
+C8E4;C8E4;110C 116D 11AB;C8E4;110C 116D 11AB;
+C8E5;C8E5;110C 116D 11AC;C8E5;110C 116D 11AC;
+C8E6;C8E6;110C 116D 11AD;C8E6;110C 116D 11AD;
+C8E7;C8E7;110C 116D 11AE;C8E7;110C 116D 11AE;
+C8E8;C8E8;110C 116D 11AF;C8E8;110C 116D 11AF;
+C8E9;C8E9;110C 116D 11B0;C8E9;110C 116D 11B0;
+C8EA;C8EA;110C 116D 11B1;C8EA;110C 116D 11B1;
+C8EB;C8EB;110C 116D 11B2;C8EB;110C 116D 11B2;
+C8EC;C8EC;110C 116D 11B3;C8EC;110C 116D 11B3;
+C8ED;C8ED;110C 116D 11B4;C8ED;110C 116D 11B4;
+C8EE;C8EE;110C 116D 11B5;C8EE;110C 116D 11B5;
+C8EF;C8EF;110C 116D 11B6;C8EF;110C 116D 11B6;
+C8F0;C8F0;110C 116D 11B7;C8F0;110C 116D 11B7;
+C8F1;C8F1;110C 116D 11B8;C8F1;110C 116D 11B8;
+C8F2;C8F2;110C 116D 11B9;C8F2;110C 116D 11B9;
+C8F3;C8F3;110C 116D 11BA;C8F3;110C 116D 11BA;
+C8F4;C8F4;110C 116D 11BB;C8F4;110C 116D 11BB;
+C8F5;C8F5;110C 116D 11BC;C8F5;110C 116D 11BC;
+C8F6;C8F6;110C 116D 11BD;C8F6;110C 116D 11BD;
+C8F7;C8F7;110C 116D 11BE;C8F7;110C 116D 11BE;
+C8F8;C8F8;110C 116D 11BF;C8F8;110C 116D 11BF;
+C8F9;C8F9;110C 116D 11C0;C8F9;110C 116D 11C0;
+C8FA;C8FA;110C 116D 11C1;C8FA;110C 116D 11C1;
+C8FB;C8FB;110C 116D 11C2;C8FB;110C 116D 11C2;
+C8FC;C8FC;110C 116E;C8FC;110C 116E;
+C8FD;C8FD;110C 116E 11A8;C8FD;110C 116E 11A8;
+C8FE;C8FE;110C 116E 11A9;C8FE;110C 116E 11A9;
+C8FF;C8FF;110C 116E 11AA;C8FF;110C 116E 11AA;
+C900;C900;110C 116E 11AB;C900;110C 116E 11AB;
+C901;C901;110C 116E 11AC;C901;110C 116E 11AC;
+C902;C902;110C 116E 11AD;C902;110C 116E 11AD;
+C903;C903;110C 116E 11AE;C903;110C 116E 11AE;
+C904;C904;110C 116E 11AF;C904;110C 116E 11AF;
+C905;C905;110C 116E 11B0;C905;110C 116E 11B0;
+C906;C906;110C 116E 11B1;C906;110C 116E 11B1;
+C907;C907;110C 116E 11B2;C907;110C 116E 11B2;
+C908;C908;110C 116E 11B3;C908;110C 116E 11B3;
+C909;C909;110C 116E 11B4;C909;110C 116E 11B4;
+C90A;C90A;110C 116E 11B5;C90A;110C 116E 11B5;
+C90B;C90B;110C 116E 11B6;C90B;110C 116E 11B6;
+C90C;C90C;110C 116E 11B7;C90C;110C 116E 11B7;
+C90D;C90D;110C 116E 11B8;C90D;110C 116E 11B8;
+C90E;C90E;110C 116E 11B9;C90E;110C 116E 11B9;
+C90F;C90F;110C 116E 11BA;C90F;110C 116E 11BA;
+C910;C910;110C 116E 11BB;C910;110C 116E 11BB;
+C911;C911;110C 116E 11BC;C911;110C 116E 11BC;
+C912;C912;110C 116E 11BD;C912;110C 116E 11BD;
+C913;C913;110C 116E 11BE;C913;110C 116E 11BE;
+C914;C914;110C 116E 11BF;C914;110C 116E 11BF;
+C915;C915;110C 116E 11C0;C915;110C 116E 11C0;
+C916;C916;110C 116E 11C1;C916;110C 116E 11C1;
+C917;C917;110C 116E 11C2;C917;110C 116E 11C2;
+C918;C918;110C 116F;C918;110C 116F;
+C919;C919;110C 116F 11A8;C919;110C 116F 11A8;
+C91A;C91A;110C 116F 11A9;C91A;110C 116F 11A9;
+C91B;C91B;110C 116F 11AA;C91B;110C 116F 11AA;
+C91C;C91C;110C 116F 11AB;C91C;110C 116F 11AB;
+C91D;C91D;110C 116F 11AC;C91D;110C 116F 11AC;
+C91E;C91E;110C 116F 11AD;C91E;110C 116F 11AD;
+C91F;C91F;110C 116F 11AE;C91F;110C 116F 11AE;
+C920;C920;110C 116F 11AF;C920;110C 116F 11AF;
+C921;C921;110C 116F 11B0;C921;110C 116F 11B0;
+C922;C922;110C 116F 11B1;C922;110C 116F 11B1;
+C923;C923;110C 116F 11B2;C923;110C 116F 11B2;
+C924;C924;110C 116F 11B3;C924;110C 116F 11B3;
+C925;C925;110C 116F 11B4;C925;110C 116F 11B4;
+C926;C926;110C 116F 11B5;C926;110C 116F 11B5;
+C927;C927;110C 116F 11B6;C927;110C 116F 11B6;
+C928;C928;110C 116F 11B7;C928;110C 116F 11B7;
+C929;C929;110C 116F 11B8;C929;110C 116F 11B8;
+C92A;C92A;110C 116F 11B9;C92A;110C 116F 11B9;
+C92B;C92B;110C 116F 11BA;C92B;110C 116F 11BA;
+C92C;C92C;110C 116F 11BB;C92C;110C 116F 11BB;
+C92D;C92D;110C 116F 11BC;C92D;110C 116F 11BC;
+C92E;C92E;110C 116F 11BD;C92E;110C 116F 11BD;
+C92F;C92F;110C 116F 11BE;C92F;110C 116F 11BE;
+C930;C930;110C 116F 11BF;C930;110C 116F 11BF;
+C931;C931;110C 116F 11C0;C931;110C 116F 11C0;
+C932;C932;110C 116F 11C1;C932;110C 116F 11C1;
+C933;C933;110C 116F 11C2;C933;110C 116F 11C2;
+C934;C934;110C 1170;C934;110C 1170;
+C935;C935;110C 1170 11A8;C935;110C 1170 11A8;
+C936;C936;110C 1170 11A9;C936;110C 1170 11A9;
+C937;C937;110C 1170 11AA;C937;110C 1170 11AA;
+C938;C938;110C 1170 11AB;C938;110C 1170 11AB;
+C939;C939;110C 1170 11AC;C939;110C 1170 11AC;
+C93A;C93A;110C 1170 11AD;C93A;110C 1170 11AD;
+C93B;C93B;110C 1170 11AE;C93B;110C 1170 11AE;
+C93C;C93C;110C 1170 11AF;C93C;110C 1170 11AF;
+C93D;C93D;110C 1170 11B0;C93D;110C 1170 11B0;
+C93E;C93E;110C 1170 11B1;C93E;110C 1170 11B1;
+C93F;C93F;110C 1170 11B2;C93F;110C 1170 11B2;
+C940;C940;110C 1170 11B3;C940;110C 1170 11B3;
+C941;C941;110C 1170 11B4;C941;110C 1170 11B4;
+C942;C942;110C 1170 11B5;C942;110C 1170 11B5;
+C943;C943;110C 1170 11B6;C943;110C 1170 11B6;
+C944;C944;110C 1170 11B7;C944;110C 1170 11B7;
+C945;C945;110C 1170 11B8;C945;110C 1170 11B8;
+C946;C946;110C 1170 11B9;C946;110C 1170 11B9;
+C947;C947;110C 1170 11BA;C947;110C 1170 11BA;
+C948;C948;110C 1170 11BB;C948;110C 1170 11BB;
+C949;C949;110C 1170 11BC;C949;110C 1170 11BC;
+C94A;C94A;110C 1170 11BD;C94A;110C 1170 11BD;
+C94B;C94B;110C 1170 11BE;C94B;110C 1170 11BE;
+C94C;C94C;110C 1170 11BF;C94C;110C 1170 11BF;
+C94D;C94D;110C 1170 11C0;C94D;110C 1170 11C0;
+C94E;C94E;110C 1170 11C1;C94E;110C 1170 11C1;
+C94F;C94F;110C 1170 11C2;C94F;110C 1170 11C2;
+C950;C950;110C 1171;C950;110C 1171;
+C951;C951;110C 1171 11A8;C951;110C 1171 11A8;
+C952;C952;110C 1171 11A9;C952;110C 1171 11A9;
+C953;C953;110C 1171 11AA;C953;110C 1171 11AA;
+C954;C954;110C 1171 11AB;C954;110C 1171 11AB;
+C955;C955;110C 1171 11AC;C955;110C 1171 11AC;
+C956;C956;110C 1171 11AD;C956;110C 1171 11AD;
+C957;C957;110C 1171 11AE;C957;110C 1171 11AE;
+C958;C958;110C 1171 11AF;C958;110C 1171 11AF;
+C959;C959;110C 1171 11B0;C959;110C 1171 11B0;
+C95A;C95A;110C 1171 11B1;C95A;110C 1171 11B1;
+C95B;C95B;110C 1171 11B2;C95B;110C 1171 11B2;
+C95C;C95C;110C 1171 11B3;C95C;110C 1171 11B3;
+C95D;C95D;110C 1171 11B4;C95D;110C 1171 11B4;
+C95E;C95E;110C 1171 11B5;C95E;110C 1171 11B5;
+C95F;C95F;110C 1171 11B6;C95F;110C 1171 11B6;
+C960;C960;110C 1171 11B7;C960;110C 1171 11B7;
+C961;C961;110C 1171 11B8;C961;110C 1171 11B8;
+C962;C962;110C 1171 11B9;C962;110C 1171 11B9;
+C963;C963;110C 1171 11BA;C963;110C 1171 11BA;
+C964;C964;110C 1171 11BB;C964;110C 1171 11BB;
+C965;C965;110C 1171 11BC;C965;110C 1171 11BC;
+C966;C966;110C 1171 11BD;C966;110C 1171 11BD;
+C967;C967;110C 1171 11BE;C967;110C 1171 11BE;
+C968;C968;110C 1171 11BF;C968;110C 1171 11BF;
+C969;C969;110C 1171 11C0;C969;110C 1171 11C0;
+C96A;C96A;110C 1171 11C1;C96A;110C 1171 11C1;
+C96B;C96B;110C 1171 11C2;C96B;110C 1171 11C2;
+C96C;C96C;110C 1172;C96C;110C 1172;
+C96D;C96D;110C 1172 11A8;C96D;110C 1172 11A8;
+C96E;C96E;110C 1172 11A9;C96E;110C 1172 11A9;
+C96F;C96F;110C 1172 11AA;C96F;110C 1172 11AA;
+C970;C970;110C 1172 11AB;C970;110C 1172 11AB;
+C971;C971;110C 1172 11AC;C971;110C 1172 11AC;
+C972;C972;110C 1172 11AD;C972;110C 1172 11AD;
+C973;C973;110C 1172 11AE;C973;110C 1172 11AE;
+C974;C974;110C 1172 11AF;C974;110C 1172 11AF;
+C975;C975;110C 1172 11B0;C975;110C 1172 11B0;
+C976;C976;110C 1172 11B1;C976;110C 1172 11B1;
+C977;C977;110C 1172 11B2;C977;110C 1172 11B2;
+C978;C978;110C 1172 11B3;C978;110C 1172 11B3;
+C979;C979;110C 1172 11B4;C979;110C 1172 11B4;
+C97A;C97A;110C 1172 11B5;C97A;110C 1172 11B5;
+C97B;C97B;110C 1172 11B6;C97B;110C 1172 11B6;
+C97C;C97C;110C 1172 11B7;C97C;110C 1172 11B7;
+C97D;C97D;110C 1172 11B8;C97D;110C 1172 11B8;
+C97E;C97E;110C 1172 11B9;C97E;110C 1172 11B9;
+C97F;C97F;110C 1172 11BA;C97F;110C 1172 11BA;
+C980;C980;110C 1172 11BB;C980;110C 1172 11BB;
+C981;C981;110C 1172 11BC;C981;110C 1172 11BC;
+C982;C982;110C 1172 11BD;C982;110C 1172 11BD;
+C983;C983;110C 1172 11BE;C983;110C 1172 11BE;
+C984;C984;110C 1172 11BF;C984;110C 1172 11BF;
+C985;C985;110C 1172 11C0;C985;110C 1172 11C0;
+C986;C986;110C 1172 11C1;C986;110C 1172 11C1;
+C987;C987;110C 1172 11C2;C987;110C 1172 11C2;
+C988;C988;110C 1173;C988;110C 1173;
+C989;C989;110C 1173 11A8;C989;110C 1173 11A8;
+C98A;C98A;110C 1173 11A9;C98A;110C 1173 11A9;
+C98B;C98B;110C 1173 11AA;C98B;110C 1173 11AA;
+C98C;C98C;110C 1173 11AB;C98C;110C 1173 11AB;
+C98D;C98D;110C 1173 11AC;C98D;110C 1173 11AC;
+C98E;C98E;110C 1173 11AD;C98E;110C 1173 11AD;
+C98F;C98F;110C 1173 11AE;C98F;110C 1173 11AE;
+C990;C990;110C 1173 11AF;C990;110C 1173 11AF;
+C991;C991;110C 1173 11B0;C991;110C 1173 11B0;
+C992;C992;110C 1173 11B1;C992;110C 1173 11B1;
+C993;C993;110C 1173 11B2;C993;110C 1173 11B2;
+C994;C994;110C 1173 11B3;C994;110C 1173 11B3;
+C995;C995;110C 1173 11B4;C995;110C 1173 11B4;
+C996;C996;110C 1173 11B5;C996;110C 1173 11B5;
+C997;C997;110C 1173 11B6;C997;110C 1173 11B6;
+C998;C998;110C 1173 11B7;C998;110C 1173 11B7;
+C999;C999;110C 1173 11B8;C999;110C 1173 11B8;
+C99A;C99A;110C 1173 11B9;C99A;110C 1173 11B9;
+C99B;C99B;110C 1173 11BA;C99B;110C 1173 11BA;
+C99C;C99C;110C 1173 11BB;C99C;110C 1173 11BB;
+C99D;C99D;110C 1173 11BC;C99D;110C 1173 11BC;
+C99E;C99E;110C 1173 11BD;C99E;110C 1173 11BD;
+C99F;C99F;110C 1173 11BE;C99F;110C 1173 11BE;
+C9A0;C9A0;110C 1173 11BF;C9A0;110C 1173 11BF;
+C9A1;C9A1;110C 1173 11C0;C9A1;110C 1173 11C0;
+C9A2;C9A2;110C 1173 11C1;C9A2;110C 1173 11C1;
+C9A3;C9A3;110C 1173 11C2;C9A3;110C 1173 11C2;
+C9A4;C9A4;110C 1174;C9A4;110C 1174;
+C9A5;C9A5;110C 1174 11A8;C9A5;110C 1174 11A8;
+C9A6;C9A6;110C 1174 11A9;C9A6;110C 1174 11A9;
+C9A7;C9A7;110C 1174 11AA;C9A7;110C 1174 11AA;
+C9A8;C9A8;110C 1174 11AB;C9A8;110C 1174 11AB;
+C9A9;C9A9;110C 1174 11AC;C9A9;110C 1174 11AC;
+C9AA;C9AA;110C 1174 11AD;C9AA;110C 1174 11AD;
+C9AB;C9AB;110C 1174 11AE;C9AB;110C 1174 11AE;
+C9AC;C9AC;110C 1174 11AF;C9AC;110C 1174 11AF;
+C9AD;C9AD;110C 1174 11B0;C9AD;110C 1174 11B0;
+C9AE;C9AE;110C 1174 11B1;C9AE;110C 1174 11B1;
+C9AF;C9AF;110C 1174 11B2;C9AF;110C 1174 11B2;
+C9B0;C9B0;110C 1174 11B3;C9B0;110C 1174 11B3;
+C9B1;C9B1;110C 1174 11B4;C9B1;110C 1174 11B4;
+C9B2;C9B2;110C 1174 11B5;C9B2;110C 1174 11B5;
+C9B3;C9B3;110C 1174 11B6;C9B3;110C 1174 11B6;
+C9B4;C9B4;110C 1174 11B7;C9B4;110C 1174 11B7;
+C9B5;C9B5;110C 1174 11B8;C9B5;110C 1174 11B8;
+C9B6;C9B6;110C 1174 11B9;C9B6;110C 1174 11B9;
+C9B7;C9B7;110C 1174 11BA;C9B7;110C 1174 11BA;
+C9B8;C9B8;110C 1174 11BB;C9B8;110C 1174 11BB;
+C9B9;C9B9;110C 1174 11BC;C9B9;110C 1174 11BC;
+C9BA;C9BA;110C 1174 11BD;C9BA;110C 1174 11BD;
+C9BB;C9BB;110C 1174 11BE;C9BB;110C 1174 11BE;
+C9BC;C9BC;110C 1174 11BF;C9BC;110C 1174 11BF;
+C9BD;C9BD;110C 1174 11C0;C9BD;110C 1174 11C0;
+C9BE;C9BE;110C 1174 11C1;C9BE;110C 1174 11C1;
+C9BF;C9BF;110C 1174 11C2;C9BF;110C 1174 11C2;
+C9C0;C9C0;110C 1175;C9C0;110C 1175;
+C9C1;C9C1;110C 1175 11A8;C9C1;110C 1175 11A8;
+C9C2;C9C2;110C 1175 11A9;C9C2;110C 1175 11A9;
+C9C3;C9C3;110C 1175 11AA;C9C3;110C 1175 11AA;
+C9C4;C9C4;110C 1175 11AB;C9C4;110C 1175 11AB;
+C9C5;C9C5;110C 1175 11AC;C9C5;110C 1175 11AC;
+C9C6;C9C6;110C 1175 11AD;C9C6;110C 1175 11AD;
+C9C7;C9C7;110C 1175 11AE;C9C7;110C 1175 11AE;
+C9C8;C9C8;110C 1175 11AF;C9C8;110C 1175 11AF;
+C9C9;C9C9;110C 1175 11B0;C9C9;110C 1175 11B0;
+C9CA;C9CA;110C 1175 11B1;C9CA;110C 1175 11B1;
+C9CB;C9CB;110C 1175 11B2;C9CB;110C 1175 11B2;
+C9CC;C9CC;110C 1175 11B3;C9CC;110C 1175 11B3;
+C9CD;C9CD;110C 1175 11B4;C9CD;110C 1175 11B4;
+C9CE;C9CE;110C 1175 11B5;C9CE;110C 1175 11B5;
+C9CF;C9CF;110C 1175 11B6;C9CF;110C 1175 11B6;
+C9D0;C9D0;110C 1175 11B7;C9D0;110C 1175 11B7;
+C9D1;C9D1;110C 1175 11B8;C9D1;110C 1175 11B8;
+C9D2;C9D2;110C 1175 11B9;C9D2;110C 1175 11B9;
+C9D3;C9D3;110C 1175 11BA;C9D3;110C 1175 11BA;
+C9D4;C9D4;110C 1175 11BB;C9D4;110C 1175 11BB;
+C9D5;C9D5;110C 1175 11BC;C9D5;110C 1175 11BC;
+C9D6;C9D6;110C 1175 11BD;C9D6;110C 1175 11BD;
+C9D7;C9D7;110C 1175 11BE;C9D7;110C 1175 11BE;
+C9D8;C9D8;110C 1175 11BF;C9D8;110C 1175 11BF;
+C9D9;C9D9;110C 1175 11C0;C9D9;110C 1175 11C0;
+C9DA;C9DA;110C 1175 11C1;C9DA;110C 1175 11C1;
+C9DB;C9DB;110C 1175 11C2;C9DB;110C 1175 11C2;
+C9DC;C9DC;110D 1161;C9DC;110D 1161;
+C9DD;C9DD;110D 1161 11A8;C9DD;110D 1161 11A8;
+C9DE;C9DE;110D 1161 11A9;C9DE;110D 1161 11A9;
+C9DF;C9DF;110D 1161 11AA;C9DF;110D 1161 11AA;
+C9E0;C9E0;110D 1161 11AB;C9E0;110D 1161 11AB;
+C9E1;C9E1;110D 1161 11AC;C9E1;110D 1161 11AC;
+C9E2;C9E2;110D 1161 11AD;C9E2;110D 1161 11AD;
+C9E3;C9E3;110D 1161 11AE;C9E3;110D 1161 11AE;
+C9E4;C9E4;110D 1161 11AF;C9E4;110D 1161 11AF;
+C9E5;C9E5;110D 1161 11B0;C9E5;110D 1161 11B0;
+C9E6;C9E6;110D 1161 11B1;C9E6;110D 1161 11B1;
+C9E7;C9E7;110D 1161 11B2;C9E7;110D 1161 11B2;
+C9E8;C9E8;110D 1161 11B3;C9E8;110D 1161 11B3;
+C9E9;C9E9;110D 1161 11B4;C9E9;110D 1161 11B4;
+C9EA;C9EA;110D 1161 11B5;C9EA;110D 1161 11B5;
+C9EB;C9EB;110D 1161 11B6;C9EB;110D 1161 11B6;
+C9EC;C9EC;110D 1161 11B7;C9EC;110D 1161 11B7;
+C9ED;C9ED;110D 1161 11B8;C9ED;110D 1161 11B8;
+C9EE;C9EE;110D 1161 11B9;C9EE;110D 1161 11B9;
+C9EF;C9EF;110D 1161 11BA;C9EF;110D 1161 11BA;
+C9F0;C9F0;110D 1161 11BB;C9F0;110D 1161 11BB;
+C9F1;C9F1;110D 1161 11BC;C9F1;110D 1161 11BC;
+C9F2;C9F2;110D 1161 11BD;C9F2;110D 1161 11BD;
+C9F3;C9F3;110D 1161 11BE;C9F3;110D 1161 11BE;
+C9F4;C9F4;110D 1161 11BF;C9F4;110D 1161 11BF;
+C9F5;C9F5;110D 1161 11C0;C9F5;110D 1161 11C0;
+C9F6;C9F6;110D 1161 11C1;C9F6;110D 1161 11C1;
+C9F7;C9F7;110D 1161 11C2;C9F7;110D 1161 11C2;
+C9F8;C9F8;110D 1162;C9F8;110D 1162;
+C9F9;C9F9;110D 1162 11A8;C9F9;110D 1162 11A8;
+C9FA;C9FA;110D 1162 11A9;C9FA;110D 1162 11A9;
+C9FB;C9FB;110D 1162 11AA;C9FB;110D 1162 11AA;
+C9FC;C9FC;110D 1162 11AB;C9FC;110D 1162 11AB;
+C9FD;C9FD;110D 1162 11AC;C9FD;110D 1162 11AC;
+C9FE;C9FE;110D 1162 11AD;C9FE;110D 1162 11AD;
+C9FF;C9FF;110D 1162 11AE;C9FF;110D 1162 11AE;
+CA00;CA00;110D 1162 11AF;CA00;110D 1162 11AF;
+CA01;CA01;110D 1162 11B0;CA01;110D 1162 11B0;
+CA02;CA02;110D 1162 11B1;CA02;110D 1162 11B1;
+CA03;CA03;110D 1162 11B2;CA03;110D 1162 11B2;
+CA04;CA04;110D 1162 11B3;CA04;110D 1162 11B3;
+CA05;CA05;110D 1162 11B4;CA05;110D 1162 11B4;
+CA06;CA06;110D 1162 11B5;CA06;110D 1162 11B5;
+CA07;CA07;110D 1162 11B6;CA07;110D 1162 11B6;
+CA08;CA08;110D 1162 11B7;CA08;110D 1162 11B7;
+CA09;CA09;110D 1162 11B8;CA09;110D 1162 11B8;
+CA0A;CA0A;110D 1162 11B9;CA0A;110D 1162 11B9;
+CA0B;CA0B;110D 1162 11BA;CA0B;110D 1162 11BA;
+CA0C;CA0C;110D 1162 11BB;CA0C;110D 1162 11BB;
+CA0D;CA0D;110D 1162 11BC;CA0D;110D 1162 11BC;
+CA0E;CA0E;110D 1162 11BD;CA0E;110D 1162 11BD;
+CA0F;CA0F;110D 1162 11BE;CA0F;110D 1162 11BE;
+CA10;CA10;110D 1162 11BF;CA10;110D 1162 11BF;
+CA11;CA11;110D 1162 11C0;CA11;110D 1162 11C0;
+CA12;CA12;110D 1162 11C1;CA12;110D 1162 11C1;
+CA13;CA13;110D 1162 11C2;CA13;110D 1162 11C2;
+CA14;CA14;110D 1163;CA14;110D 1163;
+CA15;CA15;110D 1163 11A8;CA15;110D 1163 11A8;
+CA16;CA16;110D 1163 11A9;CA16;110D 1163 11A9;
+CA17;CA17;110D 1163 11AA;CA17;110D 1163 11AA;
+CA18;CA18;110D 1163 11AB;CA18;110D 1163 11AB;
+CA19;CA19;110D 1163 11AC;CA19;110D 1163 11AC;
+CA1A;CA1A;110D 1163 11AD;CA1A;110D 1163 11AD;
+CA1B;CA1B;110D 1163 11AE;CA1B;110D 1163 11AE;
+CA1C;CA1C;110D 1163 11AF;CA1C;110D 1163 11AF;
+CA1D;CA1D;110D 1163 11B0;CA1D;110D 1163 11B0;
+CA1E;CA1E;110D 1163 11B1;CA1E;110D 1163 11B1;
+CA1F;CA1F;110D 1163 11B2;CA1F;110D 1163 11B2;
+CA20;CA20;110D 1163 11B3;CA20;110D 1163 11B3;
+CA21;CA21;110D 1163 11B4;CA21;110D 1163 11B4;
+CA22;CA22;110D 1163 11B5;CA22;110D 1163 11B5;
+CA23;CA23;110D 1163 11B6;CA23;110D 1163 11B6;
+CA24;CA24;110D 1163 11B7;CA24;110D 1163 11B7;
+CA25;CA25;110D 1163 11B8;CA25;110D 1163 11B8;
+CA26;CA26;110D 1163 11B9;CA26;110D 1163 11B9;
+CA27;CA27;110D 1163 11BA;CA27;110D 1163 11BA;
+CA28;CA28;110D 1163 11BB;CA28;110D 1163 11BB;
+CA29;CA29;110D 1163 11BC;CA29;110D 1163 11BC;
+CA2A;CA2A;110D 1163 11BD;CA2A;110D 1163 11BD;
+CA2B;CA2B;110D 1163 11BE;CA2B;110D 1163 11BE;
+CA2C;CA2C;110D 1163 11BF;CA2C;110D 1163 11BF;
+CA2D;CA2D;110D 1163 11C0;CA2D;110D 1163 11C0;
+CA2E;CA2E;110D 1163 11C1;CA2E;110D 1163 11C1;
+CA2F;CA2F;110D 1163 11C2;CA2F;110D 1163 11C2;
+CA30;CA30;110D 1164;CA30;110D 1164;
+CA31;CA31;110D 1164 11A8;CA31;110D 1164 11A8;
+CA32;CA32;110D 1164 11A9;CA32;110D 1164 11A9;
+CA33;CA33;110D 1164 11AA;CA33;110D 1164 11AA;
+CA34;CA34;110D 1164 11AB;CA34;110D 1164 11AB;
+CA35;CA35;110D 1164 11AC;CA35;110D 1164 11AC;
+CA36;CA36;110D 1164 11AD;CA36;110D 1164 11AD;
+CA37;CA37;110D 1164 11AE;CA37;110D 1164 11AE;
+CA38;CA38;110D 1164 11AF;CA38;110D 1164 11AF;
+CA39;CA39;110D 1164 11B0;CA39;110D 1164 11B0;
+CA3A;CA3A;110D 1164 11B1;CA3A;110D 1164 11B1;
+CA3B;CA3B;110D 1164 11B2;CA3B;110D 1164 11B2;
+CA3C;CA3C;110D 1164 11B3;CA3C;110D 1164 11B3;
+CA3D;CA3D;110D 1164 11B4;CA3D;110D 1164 11B4;
+CA3E;CA3E;110D 1164 11B5;CA3E;110D 1164 11B5;
+CA3F;CA3F;110D 1164 11B6;CA3F;110D 1164 11B6;
+CA40;CA40;110D 1164 11B7;CA40;110D 1164 11B7;
+CA41;CA41;110D 1164 11B8;CA41;110D 1164 11B8;
+CA42;CA42;110D 1164 11B9;CA42;110D 1164 11B9;
+CA43;CA43;110D 1164 11BA;CA43;110D 1164 11BA;
+CA44;CA44;110D 1164 11BB;CA44;110D 1164 11BB;
+CA45;CA45;110D 1164 11BC;CA45;110D 1164 11BC;
+CA46;CA46;110D 1164 11BD;CA46;110D 1164 11BD;
+CA47;CA47;110D 1164 11BE;CA47;110D 1164 11BE;
+CA48;CA48;110D 1164 11BF;CA48;110D 1164 11BF;
+CA49;CA49;110D 1164 11C0;CA49;110D 1164 11C0;
+CA4A;CA4A;110D 1164 11C1;CA4A;110D 1164 11C1;
+CA4B;CA4B;110D 1164 11C2;CA4B;110D 1164 11C2;
+CA4C;CA4C;110D 1165;CA4C;110D 1165;
+CA4D;CA4D;110D 1165 11A8;CA4D;110D 1165 11A8;
+CA4E;CA4E;110D 1165 11A9;CA4E;110D 1165 11A9;
+CA4F;CA4F;110D 1165 11AA;CA4F;110D 1165 11AA;
+CA50;CA50;110D 1165 11AB;CA50;110D 1165 11AB;
+CA51;CA51;110D 1165 11AC;CA51;110D 1165 11AC;
+CA52;CA52;110D 1165 11AD;CA52;110D 1165 11AD;
+CA53;CA53;110D 1165 11AE;CA53;110D 1165 11AE;
+CA54;CA54;110D 1165 11AF;CA54;110D 1165 11AF;
+CA55;CA55;110D 1165 11B0;CA55;110D 1165 11B0;
+CA56;CA56;110D 1165 11B1;CA56;110D 1165 11B1;
+CA57;CA57;110D 1165 11B2;CA57;110D 1165 11B2;
+CA58;CA58;110D 1165 11B3;CA58;110D 1165 11B3;
+CA59;CA59;110D 1165 11B4;CA59;110D 1165 11B4;
+CA5A;CA5A;110D 1165 11B5;CA5A;110D 1165 11B5;
+CA5B;CA5B;110D 1165 11B6;CA5B;110D 1165 11B6;
+CA5C;CA5C;110D 1165 11B7;CA5C;110D 1165 11B7;
+CA5D;CA5D;110D 1165 11B8;CA5D;110D 1165 11B8;
+CA5E;CA5E;110D 1165 11B9;CA5E;110D 1165 11B9;
+CA5F;CA5F;110D 1165 11BA;CA5F;110D 1165 11BA;
+CA60;CA60;110D 1165 11BB;CA60;110D 1165 11BB;
+CA61;CA61;110D 1165 11BC;CA61;110D 1165 11BC;
+CA62;CA62;110D 1165 11BD;CA62;110D 1165 11BD;
+CA63;CA63;110D 1165 11BE;CA63;110D 1165 11BE;
+CA64;CA64;110D 1165 11BF;CA64;110D 1165 11BF;
+CA65;CA65;110D 1165 11C0;CA65;110D 1165 11C0;
+CA66;CA66;110D 1165 11C1;CA66;110D 1165 11C1;
+CA67;CA67;110D 1165 11C2;CA67;110D 1165 11C2;
+CA68;CA68;110D 1166;CA68;110D 1166;
+CA69;CA69;110D 1166 11A8;CA69;110D 1166 11A8;
+CA6A;CA6A;110D 1166 11A9;CA6A;110D 1166 11A9;
+CA6B;CA6B;110D 1166 11AA;CA6B;110D 1166 11AA;
+CA6C;CA6C;110D 1166 11AB;CA6C;110D 1166 11AB;
+CA6D;CA6D;110D 1166 11AC;CA6D;110D 1166 11AC;
+CA6E;CA6E;110D 1166 11AD;CA6E;110D 1166 11AD;
+CA6F;CA6F;110D 1166 11AE;CA6F;110D 1166 11AE;
+CA70;CA70;110D 1166 11AF;CA70;110D 1166 11AF;
+CA71;CA71;110D 1166 11B0;CA71;110D 1166 11B0;
+CA72;CA72;110D 1166 11B1;CA72;110D 1166 11B1;
+CA73;CA73;110D 1166 11B2;CA73;110D 1166 11B2;
+CA74;CA74;110D 1166 11B3;CA74;110D 1166 11B3;
+CA75;CA75;110D 1166 11B4;CA75;110D 1166 11B4;
+CA76;CA76;110D 1166 11B5;CA76;110D 1166 11B5;
+CA77;CA77;110D 1166 11B6;CA77;110D 1166 11B6;
+CA78;CA78;110D 1166 11B7;CA78;110D 1166 11B7;
+CA79;CA79;110D 1166 11B8;CA79;110D 1166 11B8;
+CA7A;CA7A;110D 1166 11B9;CA7A;110D 1166 11B9;
+CA7B;CA7B;110D 1166 11BA;CA7B;110D 1166 11BA;
+CA7C;CA7C;110D 1166 11BB;CA7C;110D 1166 11BB;
+CA7D;CA7D;110D 1166 11BC;CA7D;110D 1166 11BC;
+CA7E;CA7E;110D 1166 11BD;CA7E;110D 1166 11BD;
+CA7F;CA7F;110D 1166 11BE;CA7F;110D 1166 11BE;
+CA80;CA80;110D 1166 11BF;CA80;110D 1166 11BF;
+CA81;CA81;110D 1166 11C0;CA81;110D 1166 11C0;
+CA82;CA82;110D 1166 11C1;CA82;110D 1166 11C1;
+CA83;CA83;110D 1166 11C2;CA83;110D 1166 11C2;
+CA84;CA84;110D 1167;CA84;110D 1167;
+CA85;CA85;110D 1167 11A8;CA85;110D 1167 11A8;
+CA86;CA86;110D 1167 11A9;CA86;110D 1167 11A9;
+CA87;CA87;110D 1167 11AA;CA87;110D 1167 11AA;
+CA88;CA88;110D 1167 11AB;CA88;110D 1167 11AB;
+CA89;CA89;110D 1167 11AC;CA89;110D 1167 11AC;
+CA8A;CA8A;110D 1167 11AD;CA8A;110D 1167 11AD;
+CA8B;CA8B;110D 1167 11AE;CA8B;110D 1167 11AE;
+CA8C;CA8C;110D 1167 11AF;CA8C;110D 1167 11AF;
+CA8D;CA8D;110D 1167 11B0;CA8D;110D 1167 11B0;
+CA8E;CA8E;110D 1167 11B1;CA8E;110D 1167 11B1;
+CA8F;CA8F;110D 1167 11B2;CA8F;110D 1167 11B2;
+CA90;CA90;110D 1167 11B3;CA90;110D 1167 11B3;
+CA91;CA91;110D 1167 11B4;CA91;110D 1167 11B4;
+CA92;CA92;110D 1167 11B5;CA92;110D 1167 11B5;
+CA93;CA93;110D 1167 11B6;CA93;110D 1167 11B6;
+CA94;CA94;110D 1167 11B7;CA94;110D 1167 11B7;
+CA95;CA95;110D 1167 11B8;CA95;110D 1167 11B8;
+CA96;CA96;110D 1167 11B9;CA96;110D 1167 11B9;
+CA97;CA97;110D 1167 11BA;CA97;110D 1167 11BA;
+CA98;CA98;110D 1167 11BB;CA98;110D 1167 11BB;
+CA99;CA99;110D 1167 11BC;CA99;110D 1167 11BC;
+CA9A;CA9A;110D 1167 11BD;CA9A;110D 1167 11BD;
+CA9B;CA9B;110D 1167 11BE;CA9B;110D 1167 11BE;
+CA9C;CA9C;110D 1167 11BF;CA9C;110D 1167 11BF;
+CA9D;CA9D;110D 1167 11C0;CA9D;110D 1167 11C0;
+CA9E;CA9E;110D 1167 11C1;CA9E;110D 1167 11C1;
+CA9F;CA9F;110D 1167 11C2;CA9F;110D 1167 11C2;
+CAA0;CAA0;110D 1168;CAA0;110D 1168;
+CAA1;CAA1;110D 1168 11A8;CAA1;110D 1168 11A8;
+CAA2;CAA2;110D 1168 11A9;CAA2;110D 1168 11A9;
+CAA3;CAA3;110D 1168 11AA;CAA3;110D 1168 11AA;
+CAA4;CAA4;110D 1168 11AB;CAA4;110D 1168 11AB;
+CAA5;CAA5;110D 1168 11AC;CAA5;110D 1168 11AC;
+CAA6;CAA6;110D 1168 11AD;CAA6;110D 1168 11AD;
+CAA7;CAA7;110D 1168 11AE;CAA7;110D 1168 11AE;
+CAA8;CAA8;110D 1168 11AF;CAA8;110D 1168 11AF;
+CAA9;CAA9;110D 1168 11B0;CAA9;110D 1168 11B0;
+CAAA;CAAA;110D 1168 11B1;CAAA;110D 1168 11B1;
+CAAB;CAAB;110D 1168 11B2;CAAB;110D 1168 11B2;
+CAAC;CAAC;110D 1168 11B3;CAAC;110D 1168 11B3;
+CAAD;CAAD;110D 1168 11B4;CAAD;110D 1168 11B4;
+CAAE;CAAE;110D 1168 11B5;CAAE;110D 1168 11B5;
+CAAF;CAAF;110D 1168 11B6;CAAF;110D 1168 11B6;
+CAB0;CAB0;110D 1168 11B7;CAB0;110D 1168 11B7;
+CAB1;CAB1;110D 1168 11B8;CAB1;110D 1168 11B8;
+CAB2;CAB2;110D 1168 11B9;CAB2;110D 1168 11B9;
+CAB3;CAB3;110D 1168 11BA;CAB3;110D 1168 11BA;
+CAB4;CAB4;110D 1168 11BB;CAB4;110D 1168 11BB;
+CAB5;CAB5;110D 1168 11BC;CAB5;110D 1168 11BC;
+CAB6;CAB6;110D 1168 11BD;CAB6;110D 1168 11BD;
+CAB7;CAB7;110D 1168 11BE;CAB7;110D 1168 11BE;
+CAB8;CAB8;110D 1168 11BF;CAB8;110D 1168 11BF;
+CAB9;CAB9;110D 1168 11C0;CAB9;110D 1168 11C0;
+CABA;CABA;110D 1168 11C1;CABA;110D 1168 11C1;
+CABB;CABB;110D 1168 11C2;CABB;110D 1168 11C2;
+CABC;CABC;110D 1169;CABC;110D 1169;
+CABD;CABD;110D 1169 11A8;CABD;110D 1169 11A8;
+CABE;CABE;110D 1169 11A9;CABE;110D 1169 11A9;
+CABF;CABF;110D 1169 11AA;CABF;110D 1169 11AA;
+CAC0;CAC0;110D 1169 11AB;CAC0;110D 1169 11AB;
+CAC1;CAC1;110D 1169 11AC;CAC1;110D 1169 11AC;
+CAC2;CAC2;110D 1169 11AD;CAC2;110D 1169 11AD;
+CAC3;CAC3;110D 1169 11AE;CAC3;110D 1169 11AE;
+CAC4;CAC4;110D 1169 11AF;CAC4;110D 1169 11AF;
+CAC5;CAC5;110D 1169 11B0;CAC5;110D 1169 11B0;
+CAC6;CAC6;110D 1169 11B1;CAC6;110D 1169 11B1;
+CAC7;CAC7;110D 1169 11B2;CAC7;110D 1169 11B2;
+CAC8;CAC8;110D 1169 11B3;CAC8;110D 1169 11B3;
+CAC9;CAC9;110D 1169 11B4;CAC9;110D 1169 11B4;
+CACA;CACA;110D 1169 11B5;CACA;110D 1169 11B5;
+CACB;CACB;110D 1169 11B6;CACB;110D 1169 11B6;
+CACC;CACC;110D 1169 11B7;CACC;110D 1169 11B7;
+CACD;CACD;110D 1169 11B8;CACD;110D 1169 11B8;
+CACE;CACE;110D 1169 11B9;CACE;110D 1169 11B9;
+CACF;CACF;110D 1169 11BA;CACF;110D 1169 11BA;
+CAD0;CAD0;110D 1169 11BB;CAD0;110D 1169 11BB;
+CAD1;CAD1;110D 1169 11BC;CAD1;110D 1169 11BC;
+CAD2;CAD2;110D 1169 11BD;CAD2;110D 1169 11BD;
+CAD3;CAD3;110D 1169 11BE;CAD3;110D 1169 11BE;
+CAD4;CAD4;110D 1169 11BF;CAD4;110D 1169 11BF;
+CAD5;CAD5;110D 1169 11C0;CAD5;110D 1169 11C0;
+CAD6;CAD6;110D 1169 11C1;CAD6;110D 1169 11C1;
+CAD7;CAD7;110D 1169 11C2;CAD7;110D 1169 11C2;
+CAD8;CAD8;110D 116A;CAD8;110D 116A;
+CAD9;CAD9;110D 116A 11A8;CAD9;110D 116A 11A8;
+CADA;CADA;110D 116A 11A9;CADA;110D 116A 11A9;
+CADB;CADB;110D 116A 11AA;CADB;110D 116A 11AA;
+CADC;CADC;110D 116A 11AB;CADC;110D 116A 11AB;
+CADD;CADD;110D 116A 11AC;CADD;110D 116A 11AC;
+CADE;CADE;110D 116A 11AD;CADE;110D 116A 11AD;
+CADF;CADF;110D 116A 11AE;CADF;110D 116A 11AE;
+CAE0;CAE0;110D 116A 11AF;CAE0;110D 116A 11AF;
+CAE1;CAE1;110D 116A 11B0;CAE1;110D 116A 11B0;
+CAE2;CAE2;110D 116A 11B1;CAE2;110D 116A 11B1;
+CAE3;CAE3;110D 116A 11B2;CAE3;110D 116A 11B2;
+CAE4;CAE4;110D 116A 11B3;CAE4;110D 116A 11B3;
+CAE5;CAE5;110D 116A 11B4;CAE5;110D 116A 11B4;
+CAE6;CAE6;110D 116A 11B5;CAE6;110D 116A 11B5;
+CAE7;CAE7;110D 116A 11B6;CAE7;110D 116A 11B6;
+CAE8;CAE8;110D 116A 11B7;CAE8;110D 116A 11B7;
+CAE9;CAE9;110D 116A 11B8;CAE9;110D 116A 11B8;
+CAEA;CAEA;110D 116A 11B9;CAEA;110D 116A 11B9;
+CAEB;CAEB;110D 116A 11BA;CAEB;110D 116A 11BA;
+CAEC;CAEC;110D 116A 11BB;CAEC;110D 116A 11BB;
+CAED;CAED;110D 116A 11BC;CAED;110D 116A 11BC;
+CAEE;CAEE;110D 116A 11BD;CAEE;110D 116A 11BD;
+CAEF;CAEF;110D 116A 11BE;CAEF;110D 116A 11BE;
+CAF0;CAF0;110D 116A 11BF;CAF0;110D 116A 11BF;
+CAF1;CAF1;110D 116A 11C0;CAF1;110D 116A 11C0;
+CAF2;CAF2;110D 116A 11C1;CAF2;110D 116A 11C1;
+CAF3;CAF3;110D 116A 11C2;CAF3;110D 116A 11C2;
+CAF4;CAF4;110D 116B;CAF4;110D 116B;
+CAF5;CAF5;110D 116B 11A8;CAF5;110D 116B 11A8;
+CAF6;CAF6;110D 116B 11A9;CAF6;110D 116B 11A9;
+CAF7;CAF7;110D 116B 11AA;CAF7;110D 116B 11AA;
+CAF8;CAF8;110D 116B 11AB;CAF8;110D 116B 11AB;
+CAF9;CAF9;110D 116B 11AC;CAF9;110D 116B 11AC;
+CAFA;CAFA;110D 116B 11AD;CAFA;110D 116B 11AD;
+CAFB;CAFB;110D 116B 11AE;CAFB;110D 116B 11AE;
+CAFC;CAFC;110D 116B 11AF;CAFC;110D 116B 11AF;
+CAFD;CAFD;110D 116B 11B0;CAFD;110D 116B 11B0;
+CAFE;CAFE;110D 116B 11B1;CAFE;110D 116B 11B1;
+CAFF;CAFF;110D 116B 11B2;CAFF;110D 116B 11B2;
+CB00;CB00;110D 116B 11B3;CB00;110D 116B 11B3;
+CB01;CB01;110D 116B 11B4;CB01;110D 116B 11B4;
+CB02;CB02;110D 116B 11B5;CB02;110D 116B 11B5;
+CB03;CB03;110D 116B 11B6;CB03;110D 116B 11B6;
+CB04;CB04;110D 116B 11B7;CB04;110D 116B 11B7;
+CB05;CB05;110D 116B 11B8;CB05;110D 116B 11B8;
+CB06;CB06;110D 116B 11B9;CB06;110D 116B 11B9;
+CB07;CB07;110D 116B 11BA;CB07;110D 116B 11BA;
+CB08;CB08;110D 116B 11BB;CB08;110D 116B 11BB;
+CB09;CB09;110D 116B 11BC;CB09;110D 116B 11BC;
+CB0A;CB0A;110D 116B 11BD;CB0A;110D 116B 11BD;
+CB0B;CB0B;110D 116B 11BE;CB0B;110D 116B 11BE;
+CB0C;CB0C;110D 116B 11BF;CB0C;110D 116B 11BF;
+CB0D;CB0D;110D 116B 11C0;CB0D;110D 116B 11C0;
+CB0E;CB0E;110D 116B 11C1;CB0E;110D 116B 11C1;
+CB0F;CB0F;110D 116B 11C2;CB0F;110D 116B 11C2;
+CB10;CB10;110D 116C;CB10;110D 116C;
+CB11;CB11;110D 116C 11A8;CB11;110D 116C 11A8;
+CB12;CB12;110D 116C 11A9;CB12;110D 116C 11A9;
+CB13;CB13;110D 116C 11AA;CB13;110D 116C 11AA;
+CB14;CB14;110D 116C 11AB;CB14;110D 116C 11AB;
+CB15;CB15;110D 116C 11AC;CB15;110D 116C 11AC;
+CB16;CB16;110D 116C 11AD;CB16;110D 116C 11AD;
+CB17;CB17;110D 116C 11AE;CB17;110D 116C 11AE;
+CB18;CB18;110D 116C 11AF;CB18;110D 116C 11AF;
+CB19;CB19;110D 116C 11B0;CB19;110D 116C 11B0;
+CB1A;CB1A;110D 116C 11B1;CB1A;110D 116C 11B1;
+CB1B;CB1B;110D 116C 11B2;CB1B;110D 116C 11B2;
+CB1C;CB1C;110D 116C 11B3;CB1C;110D 116C 11B3;
+CB1D;CB1D;110D 116C 11B4;CB1D;110D 116C 11B4;
+CB1E;CB1E;110D 116C 11B5;CB1E;110D 116C 11B5;
+CB1F;CB1F;110D 116C 11B6;CB1F;110D 116C 11B6;
+CB20;CB20;110D 116C 11B7;CB20;110D 116C 11B7;
+CB21;CB21;110D 116C 11B8;CB21;110D 116C 11B8;
+CB22;CB22;110D 116C 11B9;CB22;110D 116C 11B9;
+CB23;CB23;110D 116C 11BA;CB23;110D 116C 11BA;
+CB24;CB24;110D 116C 11BB;CB24;110D 116C 11BB;
+CB25;CB25;110D 116C 11BC;CB25;110D 116C 11BC;
+CB26;CB26;110D 116C 11BD;CB26;110D 116C 11BD;
+CB27;CB27;110D 116C 11BE;CB27;110D 116C 11BE;
+CB28;CB28;110D 116C 11BF;CB28;110D 116C 11BF;
+CB29;CB29;110D 116C 11C0;CB29;110D 116C 11C0;
+CB2A;CB2A;110D 116C 11C1;CB2A;110D 116C 11C1;
+CB2B;CB2B;110D 116C 11C2;CB2B;110D 116C 11C2;
+CB2C;CB2C;110D 116D;CB2C;110D 116D;
+CB2D;CB2D;110D 116D 11A8;CB2D;110D 116D 11A8;
+CB2E;CB2E;110D 116D 11A9;CB2E;110D 116D 11A9;
+CB2F;CB2F;110D 116D 11AA;CB2F;110D 116D 11AA;
+CB30;CB30;110D 116D 11AB;CB30;110D 116D 11AB;
+CB31;CB31;110D 116D 11AC;CB31;110D 116D 11AC;
+CB32;CB32;110D 116D 11AD;CB32;110D 116D 11AD;
+CB33;CB33;110D 116D 11AE;CB33;110D 116D 11AE;
+CB34;CB34;110D 116D 11AF;CB34;110D 116D 11AF;
+CB35;CB35;110D 116D 11B0;CB35;110D 116D 11B0;
+CB36;CB36;110D 116D 11B1;CB36;110D 116D 11B1;
+CB37;CB37;110D 116D 11B2;CB37;110D 116D 11B2;
+CB38;CB38;110D 116D 11B3;CB38;110D 116D 11B3;
+CB39;CB39;110D 116D 11B4;CB39;110D 116D 11B4;
+CB3A;CB3A;110D 116D 11B5;CB3A;110D 116D 11B5;
+CB3B;CB3B;110D 116D 11B6;CB3B;110D 116D 11B6;
+CB3C;CB3C;110D 116D 11B7;CB3C;110D 116D 11B7;
+CB3D;CB3D;110D 116D 11B8;CB3D;110D 116D 11B8;
+CB3E;CB3E;110D 116D 11B9;CB3E;110D 116D 11B9;
+CB3F;CB3F;110D 116D 11BA;CB3F;110D 116D 11BA;
+CB40;CB40;110D 116D 11BB;CB40;110D 116D 11BB;
+CB41;CB41;110D 116D 11BC;CB41;110D 116D 11BC;
+CB42;CB42;110D 116D 11BD;CB42;110D 116D 11BD;
+CB43;CB43;110D 116D 11BE;CB43;110D 116D 11BE;
+CB44;CB44;110D 116D 11BF;CB44;110D 116D 11BF;
+CB45;CB45;110D 116D 11C0;CB45;110D 116D 11C0;
+CB46;CB46;110D 116D 11C1;CB46;110D 116D 11C1;
+CB47;CB47;110D 116D 11C2;CB47;110D 116D 11C2;
+CB48;CB48;110D 116E;CB48;110D 116E;
+CB49;CB49;110D 116E 11A8;CB49;110D 116E 11A8;
+CB4A;CB4A;110D 116E 11A9;CB4A;110D 116E 11A9;
+CB4B;CB4B;110D 116E 11AA;CB4B;110D 116E 11AA;
+CB4C;CB4C;110D 116E 11AB;CB4C;110D 116E 11AB;
+CB4D;CB4D;110D 116E 11AC;CB4D;110D 116E 11AC;
+CB4E;CB4E;110D 116E 11AD;CB4E;110D 116E 11AD;
+CB4F;CB4F;110D 116E 11AE;CB4F;110D 116E 11AE;
+CB50;CB50;110D 116E 11AF;CB50;110D 116E 11AF;
+CB51;CB51;110D 116E 11B0;CB51;110D 116E 11B0;
+CB52;CB52;110D 116E 11B1;CB52;110D 116E 11B1;
+CB53;CB53;110D 116E 11B2;CB53;110D 116E 11B2;
+CB54;CB54;110D 116E 11B3;CB54;110D 116E 11B3;
+CB55;CB55;110D 116E 11B4;CB55;110D 116E 11B4;
+CB56;CB56;110D 116E 11B5;CB56;110D 116E 11B5;
+CB57;CB57;110D 116E 11B6;CB57;110D 116E 11B6;
+CB58;CB58;110D 116E 11B7;CB58;110D 116E 11B7;
+CB59;CB59;110D 116E 11B8;CB59;110D 116E 11B8;
+CB5A;CB5A;110D 116E 11B9;CB5A;110D 116E 11B9;
+CB5B;CB5B;110D 116E 11BA;CB5B;110D 116E 11BA;
+CB5C;CB5C;110D 116E 11BB;CB5C;110D 116E 11BB;
+CB5D;CB5D;110D 116E 11BC;CB5D;110D 116E 11BC;
+CB5E;CB5E;110D 116E 11BD;CB5E;110D 116E 11BD;
+CB5F;CB5F;110D 116E 11BE;CB5F;110D 116E 11BE;
+CB60;CB60;110D 116E 11BF;CB60;110D 116E 11BF;
+CB61;CB61;110D 116E 11C0;CB61;110D 116E 11C0;
+CB62;CB62;110D 116E 11C1;CB62;110D 116E 11C1;
+CB63;CB63;110D 116E 11C2;CB63;110D 116E 11C2;
+CB64;CB64;110D 116F;CB64;110D 116F;
+CB65;CB65;110D 116F 11A8;CB65;110D 116F 11A8;
+CB66;CB66;110D 116F 11A9;CB66;110D 116F 11A9;
+CB67;CB67;110D 116F 11AA;CB67;110D 116F 11AA;
+CB68;CB68;110D 116F 11AB;CB68;110D 116F 11AB;
+CB69;CB69;110D 116F 11AC;CB69;110D 116F 11AC;
+CB6A;CB6A;110D 116F 11AD;CB6A;110D 116F 11AD;
+CB6B;CB6B;110D 116F 11AE;CB6B;110D 116F 11AE;
+CB6C;CB6C;110D 116F 11AF;CB6C;110D 116F 11AF;
+CB6D;CB6D;110D 116F 11B0;CB6D;110D 116F 11B0;
+CB6E;CB6E;110D 116F 11B1;CB6E;110D 116F 11B1;
+CB6F;CB6F;110D 116F 11B2;CB6F;110D 116F 11B2;
+CB70;CB70;110D 116F 11B3;CB70;110D 116F 11B3;
+CB71;CB71;110D 116F 11B4;CB71;110D 116F 11B4;
+CB72;CB72;110D 116F 11B5;CB72;110D 116F 11B5;
+CB73;CB73;110D 116F 11B6;CB73;110D 116F 11B6;
+CB74;CB74;110D 116F 11B7;CB74;110D 116F 11B7;
+CB75;CB75;110D 116F 11B8;CB75;110D 116F 11B8;
+CB76;CB76;110D 116F 11B9;CB76;110D 116F 11B9;
+CB77;CB77;110D 116F 11BA;CB77;110D 116F 11BA;
+CB78;CB78;110D 116F 11BB;CB78;110D 116F 11BB;
+CB79;CB79;110D 116F 11BC;CB79;110D 116F 11BC;
+CB7A;CB7A;110D 116F 11BD;CB7A;110D 116F 11BD;
+CB7B;CB7B;110D 116F 11BE;CB7B;110D 116F 11BE;
+CB7C;CB7C;110D 116F 11BF;CB7C;110D 116F 11BF;
+CB7D;CB7D;110D 116F 11C0;CB7D;110D 116F 11C0;
+CB7E;CB7E;110D 116F 11C1;CB7E;110D 116F 11C1;
+CB7F;CB7F;110D 116F 11C2;CB7F;110D 116F 11C2;
+CB80;CB80;110D 1170;CB80;110D 1170;
+CB81;CB81;110D 1170 11A8;CB81;110D 1170 11A8;
+CB82;CB82;110D 1170 11A9;CB82;110D 1170 11A9;
+CB83;CB83;110D 1170 11AA;CB83;110D 1170 11AA;
+CB84;CB84;110D 1170 11AB;CB84;110D 1170 11AB;
+CB85;CB85;110D 1170 11AC;CB85;110D 1170 11AC;
+CB86;CB86;110D 1170 11AD;CB86;110D 1170 11AD;
+CB87;CB87;110D 1170 11AE;CB87;110D 1170 11AE;
+CB88;CB88;110D 1170 11AF;CB88;110D 1170 11AF;
+CB89;CB89;110D 1170 11B0;CB89;110D 1170 11B0;
+CB8A;CB8A;110D 1170 11B1;CB8A;110D 1170 11B1;
+CB8B;CB8B;110D 1170 11B2;CB8B;110D 1170 11B2;
+CB8C;CB8C;110D 1170 11B3;CB8C;110D 1170 11B3;
+CB8D;CB8D;110D 1170 11B4;CB8D;110D 1170 11B4;
+CB8E;CB8E;110D 1170 11B5;CB8E;110D 1170 11B5;
+CB8F;CB8F;110D 1170 11B6;CB8F;110D 1170 11B6;
+CB90;CB90;110D 1170 11B7;CB90;110D 1170 11B7;
+CB91;CB91;110D 1170 11B8;CB91;110D 1170 11B8;
+CB92;CB92;110D 1170 11B9;CB92;110D 1170 11B9;
+CB93;CB93;110D 1170 11BA;CB93;110D 1170 11BA;
+CB94;CB94;110D 1170 11BB;CB94;110D 1170 11BB;
+CB95;CB95;110D 1170 11BC;CB95;110D 1170 11BC;
+CB96;CB96;110D 1170 11BD;CB96;110D 1170 11BD;
+CB97;CB97;110D 1170 11BE;CB97;110D 1170 11BE;
+CB98;CB98;110D 1170 11BF;CB98;110D 1170 11BF;
+CB99;CB99;110D 1170 11C0;CB99;110D 1170 11C0;
+CB9A;CB9A;110D 1170 11C1;CB9A;110D 1170 11C1;
+CB9B;CB9B;110D 1170 11C2;CB9B;110D 1170 11C2;
+CB9C;CB9C;110D 1171;CB9C;110D 1171;
+CB9D;CB9D;110D 1171 11A8;CB9D;110D 1171 11A8;
+CB9E;CB9E;110D 1171 11A9;CB9E;110D 1171 11A9;
+CB9F;CB9F;110D 1171 11AA;CB9F;110D 1171 11AA;
+CBA0;CBA0;110D 1171 11AB;CBA0;110D 1171 11AB;
+CBA1;CBA1;110D 1171 11AC;CBA1;110D 1171 11AC;
+CBA2;CBA2;110D 1171 11AD;CBA2;110D 1171 11AD;
+CBA3;CBA3;110D 1171 11AE;CBA3;110D 1171 11AE;
+CBA4;CBA4;110D 1171 11AF;CBA4;110D 1171 11AF;
+CBA5;CBA5;110D 1171 11B0;CBA5;110D 1171 11B0;
+CBA6;CBA6;110D 1171 11B1;CBA6;110D 1171 11B1;
+CBA7;CBA7;110D 1171 11B2;CBA7;110D 1171 11B2;
+CBA8;CBA8;110D 1171 11B3;CBA8;110D 1171 11B3;
+CBA9;CBA9;110D 1171 11B4;CBA9;110D 1171 11B4;
+CBAA;CBAA;110D 1171 11B5;CBAA;110D 1171 11B5;
+CBAB;CBAB;110D 1171 11B6;CBAB;110D 1171 11B6;
+CBAC;CBAC;110D 1171 11B7;CBAC;110D 1171 11B7;
+CBAD;CBAD;110D 1171 11B8;CBAD;110D 1171 11B8;
+CBAE;CBAE;110D 1171 11B9;CBAE;110D 1171 11B9;
+CBAF;CBAF;110D 1171 11BA;CBAF;110D 1171 11BA;
+CBB0;CBB0;110D 1171 11BB;CBB0;110D 1171 11BB;
+CBB1;CBB1;110D 1171 11BC;CBB1;110D 1171 11BC;
+CBB2;CBB2;110D 1171 11BD;CBB2;110D 1171 11BD;
+CBB3;CBB3;110D 1171 11BE;CBB3;110D 1171 11BE;
+CBB4;CBB4;110D 1171 11BF;CBB4;110D 1171 11BF;
+CBB5;CBB5;110D 1171 11C0;CBB5;110D 1171 11C0;
+CBB6;CBB6;110D 1171 11C1;CBB6;110D 1171 11C1;
+CBB7;CBB7;110D 1171 11C2;CBB7;110D 1171 11C2;
+CBB8;CBB8;110D 1172;CBB8;110D 1172;
+CBB9;CBB9;110D 1172 11A8;CBB9;110D 1172 11A8;
+CBBA;CBBA;110D 1172 11A9;CBBA;110D 1172 11A9;
+CBBB;CBBB;110D 1172 11AA;CBBB;110D 1172 11AA;
+CBBC;CBBC;110D 1172 11AB;CBBC;110D 1172 11AB;
+CBBD;CBBD;110D 1172 11AC;CBBD;110D 1172 11AC;
+CBBE;CBBE;110D 1172 11AD;CBBE;110D 1172 11AD;
+CBBF;CBBF;110D 1172 11AE;CBBF;110D 1172 11AE;
+CBC0;CBC0;110D 1172 11AF;CBC0;110D 1172 11AF;
+CBC1;CBC1;110D 1172 11B0;CBC1;110D 1172 11B0;
+CBC2;CBC2;110D 1172 11B1;CBC2;110D 1172 11B1;
+CBC3;CBC3;110D 1172 11B2;CBC3;110D 1172 11B2;
+CBC4;CBC4;110D 1172 11B3;CBC4;110D 1172 11B3;
+CBC5;CBC5;110D 1172 11B4;CBC5;110D 1172 11B4;
+CBC6;CBC6;110D 1172 11B5;CBC6;110D 1172 11B5;
+CBC7;CBC7;110D 1172 11B6;CBC7;110D 1172 11B6;
+CBC8;CBC8;110D 1172 11B7;CBC8;110D 1172 11B7;
+CBC9;CBC9;110D 1172 11B8;CBC9;110D 1172 11B8;
+CBCA;CBCA;110D 1172 11B9;CBCA;110D 1172 11B9;
+CBCB;CBCB;110D 1172 11BA;CBCB;110D 1172 11BA;
+CBCC;CBCC;110D 1172 11BB;CBCC;110D 1172 11BB;
+CBCD;CBCD;110D 1172 11BC;CBCD;110D 1172 11BC;
+CBCE;CBCE;110D 1172 11BD;CBCE;110D 1172 11BD;
+CBCF;CBCF;110D 1172 11BE;CBCF;110D 1172 11BE;
+CBD0;CBD0;110D 1172 11BF;CBD0;110D 1172 11BF;
+CBD1;CBD1;110D 1172 11C0;CBD1;110D 1172 11C0;
+CBD2;CBD2;110D 1172 11C1;CBD2;110D 1172 11C1;
+CBD3;CBD3;110D 1172 11C2;CBD3;110D 1172 11C2;
+CBD4;CBD4;110D 1173;CBD4;110D 1173;
+CBD5;CBD5;110D 1173 11A8;CBD5;110D 1173 11A8;
+CBD6;CBD6;110D 1173 11A9;CBD6;110D 1173 11A9;
+CBD7;CBD7;110D 1173 11AA;CBD7;110D 1173 11AA;
+CBD8;CBD8;110D 1173 11AB;CBD8;110D 1173 11AB;
+CBD9;CBD9;110D 1173 11AC;CBD9;110D 1173 11AC;
+CBDA;CBDA;110D 1173 11AD;CBDA;110D 1173 11AD;
+CBDB;CBDB;110D 1173 11AE;CBDB;110D 1173 11AE;
+CBDC;CBDC;110D 1173 11AF;CBDC;110D 1173 11AF;
+CBDD;CBDD;110D 1173 11B0;CBDD;110D 1173 11B0;
+CBDE;CBDE;110D 1173 11B1;CBDE;110D 1173 11B1;
+CBDF;CBDF;110D 1173 11B2;CBDF;110D 1173 11B2;
+CBE0;CBE0;110D 1173 11B3;CBE0;110D 1173 11B3;
+CBE1;CBE1;110D 1173 11B4;CBE1;110D 1173 11B4;
+CBE2;CBE2;110D 1173 11B5;CBE2;110D 1173 11B5;
+CBE3;CBE3;110D 1173 11B6;CBE3;110D 1173 11B6;
+CBE4;CBE4;110D 1173 11B7;CBE4;110D 1173 11B7;
+CBE5;CBE5;110D 1173 11B8;CBE5;110D 1173 11B8;
+CBE6;CBE6;110D 1173 11B9;CBE6;110D 1173 11B9;
+CBE7;CBE7;110D 1173 11BA;CBE7;110D 1173 11BA;
+CBE8;CBE8;110D 1173 11BB;CBE8;110D 1173 11BB;
+CBE9;CBE9;110D 1173 11BC;CBE9;110D 1173 11BC;
+CBEA;CBEA;110D 1173 11BD;CBEA;110D 1173 11BD;
+CBEB;CBEB;110D 1173 11BE;CBEB;110D 1173 11BE;
+CBEC;CBEC;110D 1173 11BF;CBEC;110D 1173 11BF;
+CBED;CBED;110D 1173 11C0;CBED;110D 1173 11C0;
+CBEE;CBEE;110D 1173 11C1;CBEE;110D 1173 11C1;
+CBEF;CBEF;110D 1173 11C2;CBEF;110D 1173 11C2;
+CBF0;CBF0;110D 1174;CBF0;110D 1174;
+CBF1;CBF1;110D 1174 11A8;CBF1;110D 1174 11A8;
+CBF2;CBF2;110D 1174 11A9;CBF2;110D 1174 11A9;
+CBF3;CBF3;110D 1174 11AA;CBF3;110D 1174 11AA;
+CBF4;CBF4;110D 1174 11AB;CBF4;110D 1174 11AB;
+CBF5;CBF5;110D 1174 11AC;CBF5;110D 1174 11AC;
+CBF6;CBF6;110D 1174 11AD;CBF6;110D 1174 11AD;
+CBF7;CBF7;110D 1174 11AE;CBF7;110D 1174 11AE;
+CBF8;CBF8;110D 1174 11AF;CBF8;110D 1174 11AF;
+CBF9;CBF9;110D 1174 11B0;CBF9;110D 1174 11B0;
+CBFA;CBFA;110D 1174 11B1;CBFA;110D 1174 11B1;
+CBFB;CBFB;110D 1174 11B2;CBFB;110D 1174 11B2;
+CBFC;CBFC;110D 1174 11B3;CBFC;110D 1174 11B3;
+CBFD;CBFD;110D 1174 11B4;CBFD;110D 1174 11B4;
+CBFE;CBFE;110D 1174 11B5;CBFE;110D 1174 11B5;
+CBFF;CBFF;110D 1174 11B6;CBFF;110D 1174 11B6;
+CC00;CC00;110D 1174 11B7;CC00;110D 1174 11B7;
+CC01;CC01;110D 1174 11B8;CC01;110D 1174 11B8;
+CC02;CC02;110D 1174 11B9;CC02;110D 1174 11B9;
+CC03;CC03;110D 1174 11BA;CC03;110D 1174 11BA;
+CC04;CC04;110D 1174 11BB;CC04;110D 1174 11BB;
+CC05;CC05;110D 1174 11BC;CC05;110D 1174 11BC;
+CC06;CC06;110D 1174 11BD;CC06;110D 1174 11BD;
+CC07;CC07;110D 1174 11BE;CC07;110D 1174 11BE;
+CC08;CC08;110D 1174 11BF;CC08;110D 1174 11BF;
+CC09;CC09;110D 1174 11C0;CC09;110D 1174 11C0;
+CC0A;CC0A;110D 1174 11C1;CC0A;110D 1174 11C1;
+CC0B;CC0B;110D 1174 11C2;CC0B;110D 1174 11C2;
+CC0C;CC0C;110D 1175;CC0C;110D 1175;
+CC0D;CC0D;110D 1175 11A8;CC0D;110D 1175 11A8;
+CC0E;CC0E;110D 1175 11A9;CC0E;110D 1175 11A9;
+CC0F;CC0F;110D 1175 11AA;CC0F;110D 1175 11AA;
+CC10;CC10;110D 1175 11AB;CC10;110D 1175 11AB;
+CC11;CC11;110D 1175 11AC;CC11;110D 1175 11AC;
+CC12;CC12;110D 1175 11AD;CC12;110D 1175 11AD;
+CC13;CC13;110D 1175 11AE;CC13;110D 1175 11AE;
+CC14;CC14;110D 1175 11AF;CC14;110D 1175 11AF;
+CC15;CC15;110D 1175 11B0;CC15;110D 1175 11B0;
+CC16;CC16;110D 1175 11B1;CC16;110D 1175 11B1;
+CC17;CC17;110D 1175 11B2;CC17;110D 1175 11B2;
+CC18;CC18;110D 1175 11B3;CC18;110D 1175 11B3;
+CC19;CC19;110D 1175 11B4;CC19;110D 1175 11B4;
+CC1A;CC1A;110D 1175 11B5;CC1A;110D 1175 11B5;
+CC1B;CC1B;110D 1175 11B6;CC1B;110D 1175 11B6;
+CC1C;CC1C;110D 1175 11B7;CC1C;110D 1175 11B7;
+CC1D;CC1D;110D 1175 11B8;CC1D;110D 1175 11B8;
+CC1E;CC1E;110D 1175 11B9;CC1E;110D 1175 11B9;
+CC1F;CC1F;110D 1175 11BA;CC1F;110D 1175 11BA;
+CC20;CC20;110D 1175 11BB;CC20;110D 1175 11BB;
+CC21;CC21;110D 1175 11BC;CC21;110D 1175 11BC;
+CC22;CC22;110D 1175 11BD;CC22;110D 1175 11BD;
+CC23;CC23;110D 1175 11BE;CC23;110D 1175 11BE;
+CC24;CC24;110D 1175 11BF;CC24;110D 1175 11BF;
+CC25;CC25;110D 1175 11C0;CC25;110D 1175 11C0;
+CC26;CC26;110D 1175 11C1;CC26;110D 1175 11C1;
+CC27;CC27;110D 1175 11C2;CC27;110D 1175 11C2;
+CC28;CC28;110E 1161;CC28;110E 1161;
+CC29;CC29;110E 1161 11A8;CC29;110E 1161 11A8;
+CC2A;CC2A;110E 1161 11A9;CC2A;110E 1161 11A9;
+CC2B;CC2B;110E 1161 11AA;CC2B;110E 1161 11AA;
+CC2C;CC2C;110E 1161 11AB;CC2C;110E 1161 11AB;
+CC2D;CC2D;110E 1161 11AC;CC2D;110E 1161 11AC;
+CC2E;CC2E;110E 1161 11AD;CC2E;110E 1161 11AD;
+CC2F;CC2F;110E 1161 11AE;CC2F;110E 1161 11AE;
+CC30;CC30;110E 1161 11AF;CC30;110E 1161 11AF;
+CC31;CC31;110E 1161 11B0;CC31;110E 1161 11B0;
+CC32;CC32;110E 1161 11B1;CC32;110E 1161 11B1;
+CC33;CC33;110E 1161 11B2;CC33;110E 1161 11B2;
+CC34;CC34;110E 1161 11B3;CC34;110E 1161 11B3;
+CC35;CC35;110E 1161 11B4;CC35;110E 1161 11B4;
+CC36;CC36;110E 1161 11B5;CC36;110E 1161 11B5;
+CC37;CC37;110E 1161 11B6;CC37;110E 1161 11B6;
+CC38;CC38;110E 1161 11B7;CC38;110E 1161 11B7;
+CC39;CC39;110E 1161 11B8;CC39;110E 1161 11B8;
+CC3A;CC3A;110E 1161 11B9;CC3A;110E 1161 11B9;
+CC3B;CC3B;110E 1161 11BA;CC3B;110E 1161 11BA;
+CC3C;CC3C;110E 1161 11BB;CC3C;110E 1161 11BB;
+CC3D;CC3D;110E 1161 11BC;CC3D;110E 1161 11BC;
+CC3E;CC3E;110E 1161 11BD;CC3E;110E 1161 11BD;
+CC3F;CC3F;110E 1161 11BE;CC3F;110E 1161 11BE;
+CC40;CC40;110E 1161 11BF;CC40;110E 1161 11BF;
+CC41;CC41;110E 1161 11C0;CC41;110E 1161 11C0;
+CC42;CC42;110E 1161 11C1;CC42;110E 1161 11C1;
+CC43;CC43;110E 1161 11C2;CC43;110E 1161 11C2;
+CC44;CC44;110E 1162;CC44;110E 1162;
+CC45;CC45;110E 1162 11A8;CC45;110E 1162 11A8;
+CC46;CC46;110E 1162 11A9;CC46;110E 1162 11A9;
+CC47;CC47;110E 1162 11AA;CC47;110E 1162 11AA;
+CC48;CC48;110E 1162 11AB;CC48;110E 1162 11AB;
+CC49;CC49;110E 1162 11AC;CC49;110E 1162 11AC;
+CC4A;CC4A;110E 1162 11AD;CC4A;110E 1162 11AD;
+CC4B;CC4B;110E 1162 11AE;CC4B;110E 1162 11AE;
+CC4C;CC4C;110E 1162 11AF;CC4C;110E 1162 11AF;
+CC4D;CC4D;110E 1162 11B0;CC4D;110E 1162 11B0;
+CC4E;CC4E;110E 1162 11B1;CC4E;110E 1162 11B1;
+CC4F;CC4F;110E 1162 11B2;CC4F;110E 1162 11B2;
+CC50;CC50;110E 1162 11B3;CC50;110E 1162 11B3;
+CC51;CC51;110E 1162 11B4;CC51;110E 1162 11B4;
+CC52;CC52;110E 1162 11B5;CC52;110E 1162 11B5;
+CC53;CC53;110E 1162 11B6;CC53;110E 1162 11B6;
+CC54;CC54;110E 1162 11B7;CC54;110E 1162 11B7;
+CC55;CC55;110E 1162 11B8;CC55;110E 1162 11B8;
+CC56;CC56;110E 1162 11B9;CC56;110E 1162 11B9;
+CC57;CC57;110E 1162 11BA;CC57;110E 1162 11BA;
+CC58;CC58;110E 1162 11BB;CC58;110E 1162 11BB;
+CC59;CC59;110E 1162 11BC;CC59;110E 1162 11BC;
+CC5A;CC5A;110E 1162 11BD;CC5A;110E 1162 11BD;
+CC5B;CC5B;110E 1162 11BE;CC5B;110E 1162 11BE;
+CC5C;CC5C;110E 1162 11BF;CC5C;110E 1162 11BF;
+CC5D;CC5D;110E 1162 11C0;CC5D;110E 1162 11C0;
+CC5E;CC5E;110E 1162 11C1;CC5E;110E 1162 11C1;
+CC5F;CC5F;110E 1162 11C2;CC5F;110E 1162 11C2;
+CC60;CC60;110E 1163;CC60;110E 1163;
+CC61;CC61;110E 1163 11A8;CC61;110E 1163 11A8;
+CC62;CC62;110E 1163 11A9;CC62;110E 1163 11A9;
+CC63;CC63;110E 1163 11AA;CC63;110E 1163 11AA;
+CC64;CC64;110E 1163 11AB;CC64;110E 1163 11AB;
+CC65;CC65;110E 1163 11AC;CC65;110E 1163 11AC;
+CC66;CC66;110E 1163 11AD;CC66;110E 1163 11AD;
+CC67;CC67;110E 1163 11AE;CC67;110E 1163 11AE;
+CC68;CC68;110E 1163 11AF;CC68;110E 1163 11AF;
+CC69;CC69;110E 1163 11B0;CC69;110E 1163 11B0;
+CC6A;CC6A;110E 1163 11B1;CC6A;110E 1163 11B1;
+CC6B;CC6B;110E 1163 11B2;CC6B;110E 1163 11B2;
+CC6C;CC6C;110E 1163 11B3;CC6C;110E 1163 11B3;
+CC6D;CC6D;110E 1163 11B4;CC6D;110E 1163 11B4;
+CC6E;CC6E;110E 1163 11B5;CC6E;110E 1163 11B5;
+CC6F;CC6F;110E 1163 11B6;CC6F;110E 1163 11B6;
+CC70;CC70;110E 1163 11B7;CC70;110E 1163 11B7;
+CC71;CC71;110E 1163 11B8;CC71;110E 1163 11B8;
+CC72;CC72;110E 1163 11B9;CC72;110E 1163 11B9;
+CC73;CC73;110E 1163 11BA;CC73;110E 1163 11BA;
+CC74;CC74;110E 1163 11BB;CC74;110E 1163 11BB;
+CC75;CC75;110E 1163 11BC;CC75;110E 1163 11BC;
+CC76;CC76;110E 1163 11BD;CC76;110E 1163 11BD;
+CC77;CC77;110E 1163 11BE;CC77;110E 1163 11BE;
+CC78;CC78;110E 1163 11BF;CC78;110E 1163 11BF;
+CC79;CC79;110E 1163 11C0;CC79;110E 1163 11C0;
+CC7A;CC7A;110E 1163 11C1;CC7A;110E 1163 11C1;
+CC7B;CC7B;110E 1163 11C2;CC7B;110E 1163 11C2;
+CC7C;CC7C;110E 1164;CC7C;110E 1164;
+CC7D;CC7D;110E 1164 11A8;CC7D;110E 1164 11A8;
+CC7E;CC7E;110E 1164 11A9;CC7E;110E 1164 11A9;
+CC7F;CC7F;110E 1164 11AA;CC7F;110E 1164 11AA;
+CC80;CC80;110E 1164 11AB;CC80;110E 1164 11AB;
+CC81;CC81;110E 1164 11AC;CC81;110E 1164 11AC;
+CC82;CC82;110E 1164 11AD;CC82;110E 1164 11AD;
+CC83;CC83;110E 1164 11AE;CC83;110E 1164 11AE;
+CC84;CC84;110E 1164 11AF;CC84;110E 1164 11AF;
+CC85;CC85;110E 1164 11B0;CC85;110E 1164 11B0;
+CC86;CC86;110E 1164 11B1;CC86;110E 1164 11B1;
+CC87;CC87;110E 1164 11B2;CC87;110E 1164 11B2;
+CC88;CC88;110E 1164 11B3;CC88;110E 1164 11B3;
+CC89;CC89;110E 1164 11B4;CC89;110E 1164 11B4;
+CC8A;CC8A;110E 1164 11B5;CC8A;110E 1164 11B5;
+CC8B;CC8B;110E 1164 11B6;CC8B;110E 1164 11B6;
+CC8C;CC8C;110E 1164 11B7;CC8C;110E 1164 11B7;
+CC8D;CC8D;110E 1164 11B8;CC8D;110E 1164 11B8;
+CC8E;CC8E;110E 1164 11B9;CC8E;110E 1164 11B9;
+CC8F;CC8F;110E 1164 11BA;CC8F;110E 1164 11BA;
+CC90;CC90;110E 1164 11BB;CC90;110E 1164 11BB;
+CC91;CC91;110E 1164 11BC;CC91;110E 1164 11BC;
+CC92;CC92;110E 1164 11BD;CC92;110E 1164 11BD;
+CC93;CC93;110E 1164 11BE;CC93;110E 1164 11BE;
+CC94;CC94;110E 1164 11BF;CC94;110E 1164 11BF;
+CC95;CC95;110E 1164 11C0;CC95;110E 1164 11C0;
+CC96;CC96;110E 1164 11C1;CC96;110E 1164 11C1;
+CC97;CC97;110E 1164 11C2;CC97;110E 1164 11C2;
+CC98;CC98;110E 1165;CC98;110E 1165;
+CC99;CC99;110E 1165 11A8;CC99;110E 1165 11A8;
+CC9A;CC9A;110E 1165 11A9;CC9A;110E 1165 11A9;
+CC9B;CC9B;110E 1165 11AA;CC9B;110E 1165 11AA;
+CC9C;CC9C;110E 1165 11AB;CC9C;110E 1165 11AB;
+CC9D;CC9D;110E 1165 11AC;CC9D;110E 1165 11AC;
+CC9E;CC9E;110E 1165 11AD;CC9E;110E 1165 11AD;
+CC9F;CC9F;110E 1165 11AE;CC9F;110E 1165 11AE;
+CCA0;CCA0;110E 1165 11AF;CCA0;110E 1165 11AF;
+CCA1;CCA1;110E 1165 11B0;CCA1;110E 1165 11B0;
+CCA2;CCA2;110E 1165 11B1;CCA2;110E 1165 11B1;
+CCA3;CCA3;110E 1165 11B2;CCA3;110E 1165 11B2;
+CCA4;CCA4;110E 1165 11B3;CCA4;110E 1165 11B3;
+CCA5;CCA5;110E 1165 11B4;CCA5;110E 1165 11B4;
+CCA6;CCA6;110E 1165 11B5;CCA6;110E 1165 11B5;
+CCA7;CCA7;110E 1165 11B6;CCA7;110E 1165 11B6;
+CCA8;CCA8;110E 1165 11B7;CCA8;110E 1165 11B7;
+CCA9;CCA9;110E 1165 11B8;CCA9;110E 1165 11B8;
+CCAA;CCAA;110E 1165 11B9;CCAA;110E 1165 11B9;
+CCAB;CCAB;110E 1165 11BA;CCAB;110E 1165 11BA;
+CCAC;CCAC;110E 1165 11BB;CCAC;110E 1165 11BB;
+CCAD;CCAD;110E 1165 11BC;CCAD;110E 1165 11BC;
+CCAE;CCAE;110E 1165 11BD;CCAE;110E 1165 11BD;
+CCAF;CCAF;110E 1165 11BE;CCAF;110E 1165 11BE;
+CCB0;CCB0;110E 1165 11BF;CCB0;110E 1165 11BF;
+CCB1;CCB1;110E 1165 11C0;CCB1;110E 1165 11C0;
+CCB2;CCB2;110E 1165 11C1;CCB2;110E 1165 11C1;
+CCB3;CCB3;110E 1165 11C2;CCB3;110E 1165 11C2;
+CCB4;CCB4;110E 1166;CCB4;110E 1166;
+CCB5;CCB5;110E 1166 11A8;CCB5;110E 1166 11A8;
+CCB6;CCB6;110E 1166 11A9;CCB6;110E 1166 11A9;
+CCB7;CCB7;110E 1166 11AA;CCB7;110E 1166 11AA;
+CCB8;CCB8;110E 1166 11AB;CCB8;110E 1166 11AB;
+CCB9;CCB9;110E 1166 11AC;CCB9;110E 1166 11AC;
+CCBA;CCBA;110E 1166 11AD;CCBA;110E 1166 11AD;
+CCBB;CCBB;110E 1166 11AE;CCBB;110E 1166 11AE;
+CCBC;CCBC;110E 1166 11AF;CCBC;110E 1166 11AF;
+CCBD;CCBD;110E 1166 11B0;CCBD;110E 1166 11B0;
+CCBE;CCBE;110E 1166 11B1;CCBE;110E 1166 11B1;
+CCBF;CCBF;110E 1166 11B2;CCBF;110E 1166 11B2;
+CCC0;CCC0;110E 1166 11B3;CCC0;110E 1166 11B3;
+CCC1;CCC1;110E 1166 11B4;CCC1;110E 1166 11B4;
+CCC2;CCC2;110E 1166 11B5;CCC2;110E 1166 11B5;
+CCC3;CCC3;110E 1166 11B6;CCC3;110E 1166 11B6;
+CCC4;CCC4;110E 1166 11B7;CCC4;110E 1166 11B7;
+CCC5;CCC5;110E 1166 11B8;CCC5;110E 1166 11B8;
+CCC6;CCC6;110E 1166 11B9;CCC6;110E 1166 11B9;
+CCC7;CCC7;110E 1166 11BA;CCC7;110E 1166 11BA;
+CCC8;CCC8;110E 1166 11BB;CCC8;110E 1166 11BB;
+CCC9;CCC9;110E 1166 11BC;CCC9;110E 1166 11BC;
+CCCA;CCCA;110E 1166 11BD;CCCA;110E 1166 11BD;
+CCCB;CCCB;110E 1166 11BE;CCCB;110E 1166 11BE;
+CCCC;CCCC;110E 1166 11BF;CCCC;110E 1166 11BF;
+CCCD;CCCD;110E 1166 11C0;CCCD;110E 1166 11C0;
+CCCE;CCCE;110E 1166 11C1;CCCE;110E 1166 11C1;
+CCCF;CCCF;110E 1166 11C2;CCCF;110E 1166 11C2;
+CCD0;CCD0;110E 1167;CCD0;110E 1167;
+CCD1;CCD1;110E 1167 11A8;CCD1;110E 1167 11A8;
+CCD2;CCD2;110E 1167 11A9;CCD2;110E 1167 11A9;
+CCD3;CCD3;110E 1167 11AA;CCD3;110E 1167 11AA;
+CCD4;CCD4;110E 1167 11AB;CCD4;110E 1167 11AB;
+CCD5;CCD5;110E 1167 11AC;CCD5;110E 1167 11AC;
+CCD6;CCD6;110E 1167 11AD;CCD6;110E 1167 11AD;
+CCD7;CCD7;110E 1167 11AE;CCD7;110E 1167 11AE;
+CCD8;CCD8;110E 1167 11AF;CCD8;110E 1167 11AF;
+CCD9;CCD9;110E 1167 11B0;CCD9;110E 1167 11B0;
+CCDA;CCDA;110E 1167 11B1;CCDA;110E 1167 11B1;
+CCDB;CCDB;110E 1167 11B2;CCDB;110E 1167 11B2;
+CCDC;CCDC;110E 1167 11B3;CCDC;110E 1167 11B3;
+CCDD;CCDD;110E 1167 11B4;CCDD;110E 1167 11B4;
+CCDE;CCDE;110E 1167 11B5;CCDE;110E 1167 11B5;
+CCDF;CCDF;110E 1167 11B6;CCDF;110E 1167 11B6;
+CCE0;CCE0;110E 1167 11B7;CCE0;110E 1167 11B7;
+CCE1;CCE1;110E 1167 11B8;CCE1;110E 1167 11B8;
+CCE2;CCE2;110E 1167 11B9;CCE2;110E 1167 11B9;
+CCE3;CCE3;110E 1167 11BA;CCE3;110E 1167 11BA;
+CCE4;CCE4;110E 1167 11BB;CCE4;110E 1167 11BB;
+CCE5;CCE5;110E 1167 11BC;CCE5;110E 1167 11BC;
+CCE6;CCE6;110E 1167 11BD;CCE6;110E 1167 11BD;
+CCE7;CCE7;110E 1167 11BE;CCE7;110E 1167 11BE;
+CCE8;CCE8;110E 1167 11BF;CCE8;110E 1167 11BF;
+CCE9;CCE9;110E 1167 11C0;CCE9;110E 1167 11C0;
+CCEA;CCEA;110E 1167 11C1;CCEA;110E 1167 11C1;
+CCEB;CCEB;110E 1167 11C2;CCEB;110E 1167 11C2;
+CCEC;CCEC;110E 1168;CCEC;110E 1168;
+CCED;CCED;110E 1168 11A8;CCED;110E 1168 11A8;
+CCEE;CCEE;110E 1168 11A9;CCEE;110E 1168 11A9;
+CCEF;CCEF;110E 1168 11AA;CCEF;110E 1168 11AA;
+CCF0;CCF0;110E 1168 11AB;CCF0;110E 1168 11AB;
+CCF1;CCF1;110E 1168 11AC;CCF1;110E 1168 11AC;
+CCF2;CCF2;110E 1168 11AD;CCF2;110E 1168 11AD;
+CCF3;CCF3;110E 1168 11AE;CCF3;110E 1168 11AE;
+CCF4;CCF4;110E 1168 11AF;CCF4;110E 1168 11AF;
+CCF5;CCF5;110E 1168 11B0;CCF5;110E 1168 11B0;
+CCF6;CCF6;110E 1168 11B1;CCF6;110E 1168 11B1;
+CCF7;CCF7;110E 1168 11B2;CCF7;110E 1168 11B2;
+CCF8;CCF8;110E 1168 11B3;CCF8;110E 1168 11B3;
+CCF9;CCF9;110E 1168 11B4;CCF9;110E 1168 11B4;
+CCFA;CCFA;110E 1168 11B5;CCFA;110E 1168 11B5;
+CCFB;CCFB;110E 1168 11B6;CCFB;110E 1168 11B6;
+CCFC;CCFC;110E 1168 11B7;CCFC;110E 1168 11B7;
+CCFD;CCFD;110E 1168 11B8;CCFD;110E 1168 11B8;
+CCFE;CCFE;110E 1168 11B9;CCFE;110E 1168 11B9;
+CCFF;CCFF;110E 1168 11BA;CCFF;110E 1168 11BA;
+CD00;CD00;110E 1168 11BB;CD00;110E 1168 11BB;
+CD01;CD01;110E 1168 11BC;CD01;110E 1168 11BC;
+CD02;CD02;110E 1168 11BD;CD02;110E 1168 11BD;
+CD03;CD03;110E 1168 11BE;CD03;110E 1168 11BE;
+CD04;CD04;110E 1168 11BF;CD04;110E 1168 11BF;
+CD05;CD05;110E 1168 11C0;CD05;110E 1168 11C0;
+CD06;CD06;110E 1168 11C1;CD06;110E 1168 11C1;
+CD07;CD07;110E 1168 11C2;CD07;110E 1168 11C2;
+CD08;CD08;110E 1169;CD08;110E 1169;
+CD09;CD09;110E 1169 11A8;CD09;110E 1169 11A8;
+CD0A;CD0A;110E 1169 11A9;CD0A;110E 1169 11A9;
+CD0B;CD0B;110E 1169 11AA;CD0B;110E 1169 11AA;
+CD0C;CD0C;110E 1169 11AB;CD0C;110E 1169 11AB;
+CD0D;CD0D;110E 1169 11AC;CD0D;110E 1169 11AC;
+CD0E;CD0E;110E 1169 11AD;CD0E;110E 1169 11AD;
+CD0F;CD0F;110E 1169 11AE;CD0F;110E 1169 11AE;
+CD10;CD10;110E 1169 11AF;CD10;110E 1169 11AF;
+CD11;CD11;110E 1169 11B0;CD11;110E 1169 11B0;
+CD12;CD12;110E 1169 11B1;CD12;110E 1169 11B1;
+CD13;CD13;110E 1169 11B2;CD13;110E 1169 11B2;
+CD14;CD14;110E 1169 11B3;CD14;110E 1169 11B3;
+CD15;CD15;110E 1169 11B4;CD15;110E 1169 11B4;
+CD16;CD16;110E 1169 11B5;CD16;110E 1169 11B5;
+CD17;CD17;110E 1169 11B6;CD17;110E 1169 11B6;
+CD18;CD18;110E 1169 11B7;CD18;110E 1169 11B7;
+CD19;CD19;110E 1169 11B8;CD19;110E 1169 11B8;
+CD1A;CD1A;110E 1169 11B9;CD1A;110E 1169 11B9;
+CD1B;CD1B;110E 1169 11BA;CD1B;110E 1169 11BA;
+CD1C;CD1C;110E 1169 11BB;CD1C;110E 1169 11BB;
+CD1D;CD1D;110E 1169 11BC;CD1D;110E 1169 11BC;
+CD1E;CD1E;110E 1169 11BD;CD1E;110E 1169 11BD;
+CD1F;CD1F;110E 1169 11BE;CD1F;110E 1169 11BE;
+CD20;CD20;110E 1169 11BF;CD20;110E 1169 11BF;
+CD21;CD21;110E 1169 11C0;CD21;110E 1169 11C0;
+CD22;CD22;110E 1169 11C1;CD22;110E 1169 11C1;
+CD23;CD23;110E 1169 11C2;CD23;110E 1169 11C2;
+CD24;CD24;110E 116A;CD24;110E 116A;
+CD25;CD25;110E 116A 11A8;CD25;110E 116A 11A8;
+CD26;CD26;110E 116A 11A9;CD26;110E 116A 11A9;
+CD27;CD27;110E 116A 11AA;CD27;110E 116A 11AA;
+CD28;CD28;110E 116A 11AB;CD28;110E 116A 11AB;
+CD29;CD29;110E 116A 11AC;CD29;110E 116A 11AC;
+CD2A;CD2A;110E 116A 11AD;CD2A;110E 116A 11AD;
+CD2B;CD2B;110E 116A 11AE;CD2B;110E 116A 11AE;
+CD2C;CD2C;110E 116A 11AF;CD2C;110E 116A 11AF;
+CD2D;CD2D;110E 116A 11B0;CD2D;110E 116A 11B0;
+CD2E;CD2E;110E 116A 11B1;CD2E;110E 116A 11B1;
+CD2F;CD2F;110E 116A 11B2;CD2F;110E 116A 11B2;
+CD30;CD30;110E 116A 11B3;CD30;110E 116A 11B3;
+CD31;CD31;110E 116A 11B4;CD31;110E 116A 11B4;
+CD32;CD32;110E 116A 11B5;CD32;110E 116A 11B5;
+CD33;CD33;110E 116A 11B6;CD33;110E 116A 11B6;
+CD34;CD34;110E 116A 11B7;CD34;110E 116A 11B7;
+CD35;CD35;110E 116A 11B8;CD35;110E 116A 11B8;
+CD36;CD36;110E 116A 11B9;CD36;110E 116A 11B9;
+CD37;CD37;110E 116A 11BA;CD37;110E 116A 11BA;
+CD38;CD38;110E 116A 11BB;CD38;110E 116A 11BB;
+CD39;CD39;110E 116A 11BC;CD39;110E 116A 11BC;
+CD3A;CD3A;110E 116A 11BD;CD3A;110E 116A 11BD;
+CD3B;CD3B;110E 116A 11BE;CD3B;110E 116A 11BE;
+CD3C;CD3C;110E 116A 11BF;CD3C;110E 116A 11BF;
+CD3D;CD3D;110E 116A 11C0;CD3D;110E 116A 11C0;
+CD3E;CD3E;110E 116A 11C1;CD3E;110E 116A 11C1;
+CD3F;CD3F;110E 116A 11C2;CD3F;110E 116A 11C2;
+CD40;CD40;110E 116B;CD40;110E 116B;
+CD41;CD41;110E 116B 11A8;CD41;110E 116B 11A8;
+CD42;CD42;110E 116B 11A9;CD42;110E 116B 11A9;
+CD43;CD43;110E 116B 11AA;CD43;110E 116B 11AA;
+CD44;CD44;110E 116B 11AB;CD44;110E 116B 11AB;
+CD45;CD45;110E 116B 11AC;CD45;110E 116B 11AC;
+CD46;CD46;110E 116B 11AD;CD46;110E 116B 11AD;
+CD47;CD47;110E 116B 11AE;CD47;110E 116B 11AE;
+CD48;CD48;110E 116B 11AF;CD48;110E 116B 11AF;
+CD49;CD49;110E 116B 11B0;CD49;110E 116B 11B0;
+CD4A;CD4A;110E 116B 11B1;CD4A;110E 116B 11B1;
+CD4B;CD4B;110E 116B 11B2;CD4B;110E 116B 11B2;
+CD4C;CD4C;110E 116B 11B3;CD4C;110E 116B 11B3;
+CD4D;CD4D;110E 116B 11B4;CD4D;110E 116B 11B4;
+CD4E;CD4E;110E 116B 11B5;CD4E;110E 116B 11B5;
+CD4F;CD4F;110E 116B 11B6;CD4F;110E 116B 11B6;
+CD50;CD50;110E 116B 11B7;CD50;110E 116B 11B7;
+CD51;CD51;110E 116B 11B8;CD51;110E 116B 11B8;
+CD52;CD52;110E 116B 11B9;CD52;110E 116B 11B9;
+CD53;CD53;110E 116B 11BA;CD53;110E 116B 11BA;
+CD54;CD54;110E 116B 11BB;CD54;110E 116B 11BB;
+CD55;CD55;110E 116B 11BC;CD55;110E 116B 11BC;
+CD56;CD56;110E 116B 11BD;CD56;110E 116B 11BD;
+CD57;CD57;110E 116B 11BE;CD57;110E 116B 11BE;
+CD58;CD58;110E 116B 11BF;CD58;110E 116B 11BF;
+CD59;CD59;110E 116B 11C0;CD59;110E 116B 11C0;
+CD5A;CD5A;110E 116B 11C1;CD5A;110E 116B 11C1;
+CD5B;CD5B;110E 116B 11C2;CD5B;110E 116B 11C2;
+CD5C;CD5C;110E 116C;CD5C;110E 116C;
+CD5D;CD5D;110E 116C 11A8;CD5D;110E 116C 11A8;
+CD5E;CD5E;110E 116C 11A9;CD5E;110E 116C 11A9;
+CD5F;CD5F;110E 116C 11AA;CD5F;110E 116C 11AA;
+CD60;CD60;110E 116C 11AB;CD60;110E 116C 11AB;
+CD61;CD61;110E 116C 11AC;CD61;110E 116C 11AC;
+CD62;CD62;110E 116C 11AD;CD62;110E 116C 11AD;
+CD63;CD63;110E 116C 11AE;CD63;110E 116C 11AE;
+CD64;CD64;110E 116C 11AF;CD64;110E 116C 11AF;
+CD65;CD65;110E 116C 11B0;CD65;110E 116C 11B0;
+CD66;CD66;110E 116C 11B1;CD66;110E 116C 11B1;
+CD67;CD67;110E 116C 11B2;CD67;110E 116C 11B2;
+CD68;CD68;110E 116C 11B3;CD68;110E 116C 11B3;
+CD69;CD69;110E 116C 11B4;CD69;110E 116C 11B4;
+CD6A;CD6A;110E 116C 11B5;CD6A;110E 116C 11B5;
+CD6B;CD6B;110E 116C 11B6;CD6B;110E 116C 11B6;
+CD6C;CD6C;110E 116C 11B7;CD6C;110E 116C 11B7;
+CD6D;CD6D;110E 116C 11B8;CD6D;110E 116C 11B8;
+CD6E;CD6E;110E 116C 11B9;CD6E;110E 116C 11B9;
+CD6F;CD6F;110E 116C 11BA;CD6F;110E 116C 11BA;
+CD70;CD70;110E 116C 11BB;CD70;110E 116C 11BB;
+CD71;CD71;110E 116C 11BC;CD71;110E 116C 11BC;
+CD72;CD72;110E 116C 11BD;CD72;110E 116C 11BD;
+CD73;CD73;110E 116C 11BE;CD73;110E 116C 11BE;
+CD74;CD74;110E 116C 11BF;CD74;110E 116C 11BF;
+CD75;CD75;110E 116C 11C0;CD75;110E 116C 11C0;
+CD76;CD76;110E 116C 11C1;CD76;110E 116C 11C1;
+CD77;CD77;110E 116C 11C2;CD77;110E 116C 11C2;
+CD78;CD78;110E 116D;CD78;110E 116D;
+CD79;CD79;110E 116D 11A8;CD79;110E 116D 11A8;
+CD7A;CD7A;110E 116D 11A9;CD7A;110E 116D 11A9;
+CD7B;CD7B;110E 116D 11AA;CD7B;110E 116D 11AA;
+CD7C;CD7C;110E 116D 11AB;CD7C;110E 116D 11AB;
+CD7D;CD7D;110E 116D 11AC;CD7D;110E 116D 11AC;
+CD7E;CD7E;110E 116D 11AD;CD7E;110E 116D 11AD;
+CD7F;CD7F;110E 116D 11AE;CD7F;110E 116D 11AE;
+CD80;CD80;110E 116D 11AF;CD80;110E 116D 11AF;
+CD81;CD81;110E 116D 11B0;CD81;110E 116D 11B0;
+CD82;CD82;110E 116D 11B1;CD82;110E 116D 11B1;
+CD83;CD83;110E 116D 11B2;CD83;110E 116D 11B2;
+CD84;CD84;110E 116D 11B3;CD84;110E 116D 11B3;
+CD85;CD85;110E 116D 11B4;CD85;110E 116D 11B4;
+CD86;CD86;110E 116D 11B5;CD86;110E 116D 11B5;
+CD87;CD87;110E 116D 11B6;CD87;110E 116D 11B6;
+CD88;CD88;110E 116D 11B7;CD88;110E 116D 11B7;
+CD89;CD89;110E 116D 11B8;CD89;110E 116D 11B8;
+CD8A;CD8A;110E 116D 11B9;CD8A;110E 116D 11B9;
+CD8B;CD8B;110E 116D 11BA;CD8B;110E 116D 11BA;
+CD8C;CD8C;110E 116D 11BB;CD8C;110E 116D 11BB;
+CD8D;CD8D;110E 116D 11BC;CD8D;110E 116D 11BC;
+CD8E;CD8E;110E 116D 11BD;CD8E;110E 116D 11BD;
+CD8F;CD8F;110E 116D 11BE;CD8F;110E 116D 11BE;
+CD90;CD90;110E 116D 11BF;CD90;110E 116D 11BF;
+CD91;CD91;110E 116D 11C0;CD91;110E 116D 11C0;
+CD92;CD92;110E 116D 11C1;CD92;110E 116D 11C1;
+CD93;CD93;110E 116D 11C2;CD93;110E 116D 11C2;
+CD94;CD94;110E 116E;CD94;110E 116E;
+CD95;CD95;110E 116E 11A8;CD95;110E 116E 11A8;
+CD96;CD96;110E 116E 11A9;CD96;110E 116E 11A9;
+CD97;CD97;110E 116E 11AA;CD97;110E 116E 11AA;
+CD98;CD98;110E 116E 11AB;CD98;110E 116E 11AB;
+CD99;CD99;110E 116E 11AC;CD99;110E 116E 11AC;
+CD9A;CD9A;110E 116E 11AD;CD9A;110E 116E 11AD;
+CD9B;CD9B;110E 116E 11AE;CD9B;110E 116E 11AE;
+CD9C;CD9C;110E 116E 11AF;CD9C;110E 116E 11AF;
+CD9D;CD9D;110E 116E 11B0;CD9D;110E 116E 11B0;
+CD9E;CD9E;110E 116E 11B1;CD9E;110E 116E 11B1;
+CD9F;CD9F;110E 116E 11B2;CD9F;110E 116E 11B2;
+CDA0;CDA0;110E 116E 11B3;CDA0;110E 116E 11B3;
+CDA1;CDA1;110E 116E 11B4;CDA1;110E 116E 11B4;
+CDA2;CDA2;110E 116E 11B5;CDA2;110E 116E 11B5;
+CDA3;CDA3;110E 116E 11B6;CDA3;110E 116E 11B6;
+CDA4;CDA4;110E 116E 11B7;CDA4;110E 116E 11B7;
+CDA5;CDA5;110E 116E 11B8;CDA5;110E 116E 11B8;
+CDA6;CDA6;110E 116E 11B9;CDA6;110E 116E 11B9;
+CDA7;CDA7;110E 116E 11BA;CDA7;110E 116E 11BA;
+CDA8;CDA8;110E 116E 11BB;CDA8;110E 116E 11BB;
+CDA9;CDA9;110E 116E 11BC;CDA9;110E 116E 11BC;
+CDAA;CDAA;110E 116E 11BD;CDAA;110E 116E 11BD;
+CDAB;CDAB;110E 116E 11BE;CDAB;110E 116E 11BE;
+CDAC;CDAC;110E 116E 11BF;CDAC;110E 116E 11BF;
+CDAD;CDAD;110E 116E 11C0;CDAD;110E 116E 11C0;
+CDAE;CDAE;110E 116E 11C1;CDAE;110E 116E 11C1;
+CDAF;CDAF;110E 116E 11C2;CDAF;110E 116E 11C2;
+CDB0;CDB0;110E 116F;CDB0;110E 116F;
+CDB1;CDB1;110E 116F 11A8;CDB1;110E 116F 11A8;
+CDB2;CDB2;110E 116F 11A9;CDB2;110E 116F 11A9;
+CDB3;CDB3;110E 116F 11AA;CDB3;110E 116F 11AA;
+CDB4;CDB4;110E 116F 11AB;CDB4;110E 116F 11AB;
+CDB5;CDB5;110E 116F 11AC;CDB5;110E 116F 11AC;
+CDB6;CDB6;110E 116F 11AD;CDB6;110E 116F 11AD;
+CDB7;CDB7;110E 116F 11AE;CDB7;110E 116F 11AE;
+CDB8;CDB8;110E 116F 11AF;CDB8;110E 116F 11AF;
+CDB9;CDB9;110E 116F 11B0;CDB9;110E 116F 11B0;
+CDBA;CDBA;110E 116F 11B1;CDBA;110E 116F 11B1;
+CDBB;CDBB;110E 116F 11B2;CDBB;110E 116F 11B2;
+CDBC;CDBC;110E 116F 11B3;CDBC;110E 116F 11B3;
+CDBD;CDBD;110E 116F 11B4;CDBD;110E 116F 11B4;
+CDBE;CDBE;110E 116F 11B5;CDBE;110E 116F 11B5;
+CDBF;CDBF;110E 116F 11B6;CDBF;110E 116F 11B6;
+CDC0;CDC0;110E 116F 11B7;CDC0;110E 116F 11B7;
+CDC1;CDC1;110E 116F 11B8;CDC1;110E 116F 11B8;
+CDC2;CDC2;110E 116F 11B9;CDC2;110E 116F 11B9;
+CDC3;CDC3;110E 116F 11BA;CDC3;110E 116F 11BA;
+CDC4;CDC4;110E 116F 11BB;CDC4;110E 116F 11BB;
+CDC5;CDC5;110E 116F 11BC;CDC5;110E 116F 11BC;
+CDC6;CDC6;110E 116F 11BD;CDC6;110E 116F 11BD;
+CDC7;CDC7;110E 116F 11BE;CDC7;110E 116F 11BE;
+CDC8;CDC8;110E 116F 11BF;CDC8;110E 116F 11BF;
+CDC9;CDC9;110E 116F 11C0;CDC9;110E 116F 11C0;
+CDCA;CDCA;110E 116F 11C1;CDCA;110E 116F 11C1;
+CDCB;CDCB;110E 116F 11C2;CDCB;110E 116F 11C2;
+CDCC;CDCC;110E 1170;CDCC;110E 1170;
+CDCD;CDCD;110E 1170 11A8;CDCD;110E 1170 11A8;
+CDCE;CDCE;110E 1170 11A9;CDCE;110E 1170 11A9;
+CDCF;CDCF;110E 1170 11AA;CDCF;110E 1170 11AA;
+CDD0;CDD0;110E 1170 11AB;CDD0;110E 1170 11AB;
+CDD1;CDD1;110E 1170 11AC;CDD1;110E 1170 11AC;
+CDD2;CDD2;110E 1170 11AD;CDD2;110E 1170 11AD;
+CDD3;CDD3;110E 1170 11AE;CDD3;110E 1170 11AE;
+CDD4;CDD4;110E 1170 11AF;CDD4;110E 1170 11AF;
+CDD5;CDD5;110E 1170 11B0;CDD5;110E 1170 11B0;
+CDD6;CDD6;110E 1170 11B1;CDD6;110E 1170 11B1;
+CDD7;CDD7;110E 1170 11B2;CDD7;110E 1170 11B2;
+CDD8;CDD8;110E 1170 11B3;CDD8;110E 1170 11B3;
+CDD9;CDD9;110E 1170 11B4;CDD9;110E 1170 11B4;
+CDDA;CDDA;110E 1170 11B5;CDDA;110E 1170 11B5;
+CDDB;CDDB;110E 1170 11B6;CDDB;110E 1170 11B6;
+CDDC;CDDC;110E 1170 11B7;CDDC;110E 1170 11B7;
+CDDD;CDDD;110E 1170 11B8;CDDD;110E 1170 11B8;
+CDDE;CDDE;110E 1170 11B9;CDDE;110E 1170 11B9;
+CDDF;CDDF;110E 1170 11BA;CDDF;110E 1170 11BA;
+CDE0;CDE0;110E 1170 11BB;CDE0;110E 1170 11BB;
+CDE1;CDE1;110E 1170 11BC;CDE1;110E 1170 11BC;
+CDE2;CDE2;110E 1170 11BD;CDE2;110E 1170 11BD;
+CDE3;CDE3;110E 1170 11BE;CDE3;110E 1170 11BE;
+CDE4;CDE4;110E 1170 11BF;CDE4;110E 1170 11BF;
+CDE5;CDE5;110E 1170 11C0;CDE5;110E 1170 11C0;
+CDE6;CDE6;110E 1170 11C1;CDE6;110E 1170 11C1;
+CDE7;CDE7;110E 1170 11C2;CDE7;110E 1170 11C2;
+CDE8;CDE8;110E 1171;CDE8;110E 1171;
+CDE9;CDE9;110E 1171 11A8;CDE9;110E 1171 11A8;
+CDEA;CDEA;110E 1171 11A9;CDEA;110E 1171 11A9;
+CDEB;CDEB;110E 1171 11AA;CDEB;110E 1171 11AA;
+CDEC;CDEC;110E 1171 11AB;CDEC;110E 1171 11AB;
+CDED;CDED;110E 1171 11AC;CDED;110E 1171 11AC;
+CDEE;CDEE;110E 1171 11AD;CDEE;110E 1171 11AD;
+CDEF;CDEF;110E 1171 11AE;CDEF;110E 1171 11AE;
+CDF0;CDF0;110E 1171 11AF;CDF0;110E 1171 11AF;
+CDF1;CDF1;110E 1171 11B0;CDF1;110E 1171 11B0;
+CDF2;CDF2;110E 1171 11B1;CDF2;110E 1171 11B1;
+CDF3;CDF3;110E 1171 11B2;CDF3;110E 1171 11B2;
+CDF4;CDF4;110E 1171 11B3;CDF4;110E 1171 11B3;
+CDF5;CDF5;110E 1171 11B4;CDF5;110E 1171 11B4;
+CDF6;CDF6;110E 1171 11B5;CDF6;110E 1171 11B5;
+CDF7;CDF7;110E 1171 11B6;CDF7;110E 1171 11B6;
+CDF8;CDF8;110E 1171 11B7;CDF8;110E 1171 11B7;
+CDF9;CDF9;110E 1171 11B8;CDF9;110E 1171 11B8;
+CDFA;CDFA;110E 1171 11B9;CDFA;110E 1171 11B9;
+CDFB;CDFB;110E 1171 11BA;CDFB;110E 1171 11BA;
+CDFC;CDFC;110E 1171 11BB;CDFC;110E 1171 11BB;
+CDFD;CDFD;110E 1171 11BC;CDFD;110E 1171 11BC;
+CDFE;CDFE;110E 1171 11BD;CDFE;110E 1171 11BD;
+CDFF;CDFF;110E 1171 11BE;CDFF;110E 1171 11BE;
+CE00;CE00;110E 1171 11BF;CE00;110E 1171 11BF;
+CE01;CE01;110E 1171 11C0;CE01;110E 1171 11C0;
+CE02;CE02;110E 1171 11C1;CE02;110E 1171 11C1;
+CE03;CE03;110E 1171 11C2;CE03;110E 1171 11C2;
+CE04;CE04;110E 1172;CE04;110E 1172;
+CE05;CE05;110E 1172 11A8;CE05;110E 1172 11A8;
+CE06;CE06;110E 1172 11A9;CE06;110E 1172 11A9;
+CE07;CE07;110E 1172 11AA;CE07;110E 1172 11AA;
+CE08;CE08;110E 1172 11AB;CE08;110E 1172 11AB;
+CE09;CE09;110E 1172 11AC;CE09;110E 1172 11AC;
+CE0A;CE0A;110E 1172 11AD;CE0A;110E 1172 11AD;
+CE0B;CE0B;110E 1172 11AE;CE0B;110E 1172 11AE;
+CE0C;CE0C;110E 1172 11AF;CE0C;110E 1172 11AF;
+CE0D;CE0D;110E 1172 11B0;CE0D;110E 1172 11B0;
+CE0E;CE0E;110E 1172 11B1;CE0E;110E 1172 11B1;
+CE0F;CE0F;110E 1172 11B2;CE0F;110E 1172 11B2;
+CE10;CE10;110E 1172 11B3;CE10;110E 1172 11B3;
+CE11;CE11;110E 1172 11B4;CE11;110E 1172 11B4;
+CE12;CE12;110E 1172 11B5;CE12;110E 1172 11B5;
+CE13;CE13;110E 1172 11B6;CE13;110E 1172 11B6;
+CE14;CE14;110E 1172 11B7;CE14;110E 1172 11B7;
+CE15;CE15;110E 1172 11B8;CE15;110E 1172 11B8;
+CE16;CE16;110E 1172 11B9;CE16;110E 1172 11B9;
+CE17;CE17;110E 1172 11BA;CE17;110E 1172 11BA;
+CE18;CE18;110E 1172 11BB;CE18;110E 1172 11BB;
+CE19;CE19;110E 1172 11BC;CE19;110E 1172 11BC;
+CE1A;CE1A;110E 1172 11BD;CE1A;110E 1172 11BD;
+CE1B;CE1B;110E 1172 11BE;CE1B;110E 1172 11BE;
+CE1C;CE1C;110E 1172 11BF;CE1C;110E 1172 11BF;
+CE1D;CE1D;110E 1172 11C0;CE1D;110E 1172 11C0;
+CE1E;CE1E;110E 1172 11C1;CE1E;110E 1172 11C1;
+CE1F;CE1F;110E 1172 11C2;CE1F;110E 1172 11C2;
+CE20;CE20;110E 1173;CE20;110E 1173;
+CE21;CE21;110E 1173 11A8;CE21;110E 1173 11A8;
+CE22;CE22;110E 1173 11A9;CE22;110E 1173 11A9;
+CE23;CE23;110E 1173 11AA;CE23;110E 1173 11AA;
+CE24;CE24;110E 1173 11AB;CE24;110E 1173 11AB;
+CE25;CE25;110E 1173 11AC;CE25;110E 1173 11AC;
+CE26;CE26;110E 1173 11AD;CE26;110E 1173 11AD;
+CE27;CE27;110E 1173 11AE;CE27;110E 1173 11AE;
+CE28;CE28;110E 1173 11AF;CE28;110E 1173 11AF;
+CE29;CE29;110E 1173 11B0;CE29;110E 1173 11B0;
+CE2A;CE2A;110E 1173 11B1;CE2A;110E 1173 11B1;
+CE2B;CE2B;110E 1173 11B2;CE2B;110E 1173 11B2;
+CE2C;CE2C;110E 1173 11B3;CE2C;110E 1173 11B3;
+CE2D;CE2D;110E 1173 11B4;CE2D;110E 1173 11B4;
+CE2E;CE2E;110E 1173 11B5;CE2E;110E 1173 11B5;
+CE2F;CE2F;110E 1173 11B6;CE2F;110E 1173 11B6;
+CE30;CE30;110E 1173 11B7;CE30;110E 1173 11B7;
+CE31;CE31;110E 1173 11B8;CE31;110E 1173 11B8;
+CE32;CE32;110E 1173 11B9;CE32;110E 1173 11B9;
+CE33;CE33;110E 1173 11BA;CE33;110E 1173 11BA;
+CE34;CE34;110E 1173 11BB;CE34;110E 1173 11BB;
+CE35;CE35;110E 1173 11BC;CE35;110E 1173 11BC;
+CE36;CE36;110E 1173 11BD;CE36;110E 1173 11BD;
+CE37;CE37;110E 1173 11BE;CE37;110E 1173 11BE;
+CE38;CE38;110E 1173 11BF;CE38;110E 1173 11BF;
+CE39;CE39;110E 1173 11C0;CE39;110E 1173 11C0;
+CE3A;CE3A;110E 1173 11C1;CE3A;110E 1173 11C1;
+CE3B;CE3B;110E 1173 11C2;CE3B;110E 1173 11C2;
+CE3C;CE3C;110E 1174;CE3C;110E 1174;
+CE3D;CE3D;110E 1174 11A8;CE3D;110E 1174 11A8;
+CE3E;CE3E;110E 1174 11A9;CE3E;110E 1174 11A9;
+CE3F;CE3F;110E 1174 11AA;CE3F;110E 1174 11AA;
+CE40;CE40;110E 1174 11AB;CE40;110E 1174 11AB;
+CE41;CE41;110E 1174 11AC;CE41;110E 1174 11AC;
+CE42;CE42;110E 1174 11AD;CE42;110E 1174 11AD;
+CE43;CE43;110E 1174 11AE;CE43;110E 1174 11AE;
+CE44;CE44;110E 1174 11AF;CE44;110E 1174 11AF;
+CE45;CE45;110E 1174 11B0;CE45;110E 1174 11B0;
+CE46;CE46;110E 1174 11B1;CE46;110E 1174 11B1;
+CE47;CE47;110E 1174 11B2;CE47;110E 1174 11B2;
+CE48;CE48;110E 1174 11B3;CE48;110E 1174 11B3;
+CE49;CE49;110E 1174 11B4;CE49;110E 1174 11B4;
+CE4A;CE4A;110E 1174 11B5;CE4A;110E 1174 11B5;
+CE4B;CE4B;110E 1174 11B6;CE4B;110E 1174 11B6;
+CE4C;CE4C;110E 1174 11B7;CE4C;110E 1174 11B7;
+CE4D;CE4D;110E 1174 11B8;CE4D;110E 1174 11B8;
+CE4E;CE4E;110E 1174 11B9;CE4E;110E 1174 11B9;
+CE4F;CE4F;110E 1174 11BA;CE4F;110E 1174 11BA;
+CE50;CE50;110E 1174 11BB;CE50;110E 1174 11BB;
+CE51;CE51;110E 1174 11BC;CE51;110E 1174 11BC;
+CE52;CE52;110E 1174 11BD;CE52;110E 1174 11BD;
+CE53;CE53;110E 1174 11BE;CE53;110E 1174 11BE;
+CE54;CE54;110E 1174 11BF;CE54;110E 1174 11BF;
+CE55;CE55;110E 1174 11C0;CE55;110E 1174 11C0;
+CE56;CE56;110E 1174 11C1;CE56;110E 1174 11C1;
+CE57;CE57;110E 1174 11C2;CE57;110E 1174 11C2;
+CE58;CE58;110E 1175;CE58;110E 1175;
+CE59;CE59;110E 1175 11A8;CE59;110E 1175 11A8;
+CE5A;CE5A;110E 1175 11A9;CE5A;110E 1175 11A9;
+CE5B;CE5B;110E 1175 11AA;CE5B;110E 1175 11AA;
+CE5C;CE5C;110E 1175 11AB;CE5C;110E 1175 11AB;
+CE5D;CE5D;110E 1175 11AC;CE5D;110E 1175 11AC;
+CE5E;CE5E;110E 1175 11AD;CE5E;110E 1175 11AD;
+CE5F;CE5F;110E 1175 11AE;CE5F;110E 1175 11AE;
+CE60;CE60;110E 1175 11AF;CE60;110E 1175 11AF;
+CE61;CE61;110E 1175 11B0;CE61;110E 1175 11B0;
+CE62;CE62;110E 1175 11B1;CE62;110E 1175 11B1;
+CE63;CE63;110E 1175 11B2;CE63;110E 1175 11B2;
+CE64;CE64;110E 1175 11B3;CE64;110E 1175 11B3;
+CE65;CE65;110E 1175 11B4;CE65;110E 1175 11B4;
+CE66;CE66;110E 1175 11B5;CE66;110E 1175 11B5;
+CE67;CE67;110E 1175 11B6;CE67;110E 1175 11B6;
+CE68;CE68;110E 1175 11B7;CE68;110E 1175 11B7;
+CE69;CE69;110E 1175 11B8;CE69;110E 1175 11B8;
+CE6A;CE6A;110E 1175 11B9;CE6A;110E 1175 11B9;
+CE6B;CE6B;110E 1175 11BA;CE6B;110E 1175 11BA;
+CE6C;CE6C;110E 1175 11BB;CE6C;110E 1175 11BB;
+CE6D;CE6D;110E 1175 11BC;CE6D;110E 1175 11BC;
+CE6E;CE6E;110E 1175 11BD;CE6E;110E 1175 11BD;
+CE6F;CE6F;110E 1175 11BE;CE6F;110E 1175 11BE;
+CE70;CE70;110E 1175 11BF;CE70;110E 1175 11BF;
+CE71;CE71;110E 1175 11C0;CE71;110E 1175 11C0;
+CE72;CE72;110E 1175 11C1;CE72;110E 1175 11C1;
+CE73;CE73;110E 1175 11C2;CE73;110E 1175 11C2;
+CE74;CE74;110F 1161;CE74;110F 1161;
+CE75;CE75;110F 1161 11A8;CE75;110F 1161 11A8;
+CE76;CE76;110F 1161 11A9;CE76;110F 1161 11A9;
+CE77;CE77;110F 1161 11AA;CE77;110F 1161 11AA;
+CE78;CE78;110F 1161 11AB;CE78;110F 1161 11AB;
+CE79;CE79;110F 1161 11AC;CE79;110F 1161 11AC;
+CE7A;CE7A;110F 1161 11AD;CE7A;110F 1161 11AD;
+CE7B;CE7B;110F 1161 11AE;CE7B;110F 1161 11AE;
+CE7C;CE7C;110F 1161 11AF;CE7C;110F 1161 11AF;
+CE7D;CE7D;110F 1161 11B0;CE7D;110F 1161 11B0;
+CE7E;CE7E;110F 1161 11B1;CE7E;110F 1161 11B1;
+CE7F;CE7F;110F 1161 11B2;CE7F;110F 1161 11B2;
+CE80;CE80;110F 1161 11B3;CE80;110F 1161 11B3;
+CE81;CE81;110F 1161 11B4;CE81;110F 1161 11B4;
+CE82;CE82;110F 1161 11B5;CE82;110F 1161 11B5;
+CE83;CE83;110F 1161 11B6;CE83;110F 1161 11B6;
+CE84;CE84;110F 1161 11B7;CE84;110F 1161 11B7;
+CE85;CE85;110F 1161 11B8;CE85;110F 1161 11B8;
+CE86;CE86;110F 1161 11B9;CE86;110F 1161 11B9;
+CE87;CE87;110F 1161 11BA;CE87;110F 1161 11BA;
+CE88;CE88;110F 1161 11BB;CE88;110F 1161 11BB;
+CE89;CE89;110F 1161 11BC;CE89;110F 1161 11BC;
+CE8A;CE8A;110F 1161 11BD;CE8A;110F 1161 11BD;
+CE8B;CE8B;110F 1161 11BE;CE8B;110F 1161 11BE;
+CE8C;CE8C;110F 1161 11BF;CE8C;110F 1161 11BF;
+CE8D;CE8D;110F 1161 11C0;CE8D;110F 1161 11C0;
+CE8E;CE8E;110F 1161 11C1;CE8E;110F 1161 11C1;
+CE8F;CE8F;110F 1161 11C2;CE8F;110F 1161 11C2;
+CE90;CE90;110F 1162;CE90;110F 1162;
+CE91;CE91;110F 1162 11A8;CE91;110F 1162 11A8;
+CE92;CE92;110F 1162 11A9;CE92;110F 1162 11A9;
+CE93;CE93;110F 1162 11AA;CE93;110F 1162 11AA;
+CE94;CE94;110F 1162 11AB;CE94;110F 1162 11AB;
+CE95;CE95;110F 1162 11AC;CE95;110F 1162 11AC;
+CE96;CE96;110F 1162 11AD;CE96;110F 1162 11AD;
+CE97;CE97;110F 1162 11AE;CE97;110F 1162 11AE;
+CE98;CE98;110F 1162 11AF;CE98;110F 1162 11AF;
+CE99;CE99;110F 1162 11B0;CE99;110F 1162 11B0;
+CE9A;CE9A;110F 1162 11B1;CE9A;110F 1162 11B1;
+CE9B;CE9B;110F 1162 11B2;CE9B;110F 1162 11B2;
+CE9C;CE9C;110F 1162 11B3;CE9C;110F 1162 11B3;
+CE9D;CE9D;110F 1162 11B4;CE9D;110F 1162 11B4;
+CE9E;CE9E;110F 1162 11B5;CE9E;110F 1162 11B5;
+CE9F;CE9F;110F 1162 11B6;CE9F;110F 1162 11B6;
+CEA0;CEA0;110F 1162 11B7;CEA0;110F 1162 11B7;
+CEA1;CEA1;110F 1162 11B8;CEA1;110F 1162 11B8;
+CEA2;CEA2;110F 1162 11B9;CEA2;110F 1162 11B9;
+CEA3;CEA3;110F 1162 11BA;CEA3;110F 1162 11BA;
+CEA4;CEA4;110F 1162 11BB;CEA4;110F 1162 11BB;
+CEA5;CEA5;110F 1162 11BC;CEA5;110F 1162 11BC;
+CEA6;CEA6;110F 1162 11BD;CEA6;110F 1162 11BD;
+CEA7;CEA7;110F 1162 11BE;CEA7;110F 1162 11BE;
+CEA8;CEA8;110F 1162 11BF;CEA8;110F 1162 11BF;
+CEA9;CEA9;110F 1162 11C0;CEA9;110F 1162 11C0;
+CEAA;CEAA;110F 1162 11C1;CEAA;110F 1162 11C1;
+CEAB;CEAB;110F 1162 11C2;CEAB;110F 1162 11C2;
+CEAC;CEAC;110F 1163;CEAC;110F 1163;
+CEAD;CEAD;110F 1163 11A8;CEAD;110F 1163 11A8;
+CEAE;CEAE;110F 1163 11A9;CEAE;110F 1163 11A9;
+CEAF;CEAF;110F 1163 11AA;CEAF;110F 1163 11AA;
+CEB0;CEB0;110F 1163 11AB;CEB0;110F 1163 11AB;
+CEB1;CEB1;110F 1163 11AC;CEB1;110F 1163 11AC;
+CEB2;CEB2;110F 1163 11AD;CEB2;110F 1163 11AD;
+CEB3;CEB3;110F 1163 11AE;CEB3;110F 1163 11AE;
+CEB4;CEB4;110F 1163 11AF;CEB4;110F 1163 11AF;
+CEB5;CEB5;110F 1163 11B0;CEB5;110F 1163 11B0;
+CEB6;CEB6;110F 1163 11B1;CEB6;110F 1163 11B1;
+CEB7;CEB7;110F 1163 11B2;CEB7;110F 1163 11B2;
+CEB8;CEB8;110F 1163 11B3;CEB8;110F 1163 11B3;
+CEB9;CEB9;110F 1163 11B4;CEB9;110F 1163 11B4;
+CEBA;CEBA;110F 1163 11B5;CEBA;110F 1163 11B5;
+CEBB;CEBB;110F 1163 11B6;CEBB;110F 1163 11B6;
+CEBC;CEBC;110F 1163 11B7;CEBC;110F 1163 11B7;
+CEBD;CEBD;110F 1163 11B8;CEBD;110F 1163 11B8;
+CEBE;CEBE;110F 1163 11B9;CEBE;110F 1163 11B9;
+CEBF;CEBF;110F 1163 11BA;CEBF;110F 1163 11BA;
+CEC0;CEC0;110F 1163 11BB;CEC0;110F 1163 11BB;
+CEC1;CEC1;110F 1163 11BC;CEC1;110F 1163 11BC;
+CEC2;CEC2;110F 1163 11BD;CEC2;110F 1163 11BD;
+CEC3;CEC3;110F 1163 11BE;CEC3;110F 1163 11BE;
+CEC4;CEC4;110F 1163 11BF;CEC4;110F 1163 11BF;
+CEC5;CEC5;110F 1163 11C0;CEC5;110F 1163 11C0;
+CEC6;CEC6;110F 1163 11C1;CEC6;110F 1163 11C1;
+CEC7;CEC7;110F 1163 11C2;CEC7;110F 1163 11C2;
+CEC8;CEC8;110F 1164;CEC8;110F 1164;
+CEC9;CEC9;110F 1164 11A8;CEC9;110F 1164 11A8;
+CECA;CECA;110F 1164 11A9;CECA;110F 1164 11A9;
+CECB;CECB;110F 1164 11AA;CECB;110F 1164 11AA;
+CECC;CECC;110F 1164 11AB;CECC;110F 1164 11AB;
+CECD;CECD;110F 1164 11AC;CECD;110F 1164 11AC;
+CECE;CECE;110F 1164 11AD;CECE;110F 1164 11AD;
+CECF;CECF;110F 1164 11AE;CECF;110F 1164 11AE;
+CED0;CED0;110F 1164 11AF;CED0;110F 1164 11AF;
+CED1;CED1;110F 1164 11B0;CED1;110F 1164 11B0;
+CED2;CED2;110F 1164 11B1;CED2;110F 1164 11B1;
+CED3;CED3;110F 1164 11B2;CED3;110F 1164 11B2;
+CED4;CED4;110F 1164 11B3;CED4;110F 1164 11B3;
+CED5;CED5;110F 1164 11B4;CED5;110F 1164 11B4;
+CED6;CED6;110F 1164 11B5;CED6;110F 1164 11B5;
+CED7;CED7;110F 1164 11B6;CED7;110F 1164 11B6;
+CED8;CED8;110F 1164 11B7;CED8;110F 1164 11B7;
+CED9;CED9;110F 1164 11B8;CED9;110F 1164 11B8;
+CEDA;CEDA;110F 1164 11B9;CEDA;110F 1164 11B9;
+CEDB;CEDB;110F 1164 11BA;CEDB;110F 1164 11BA;
+CEDC;CEDC;110F 1164 11BB;CEDC;110F 1164 11BB;
+CEDD;CEDD;110F 1164 11BC;CEDD;110F 1164 11BC;
+CEDE;CEDE;110F 1164 11BD;CEDE;110F 1164 11BD;
+CEDF;CEDF;110F 1164 11BE;CEDF;110F 1164 11BE;
+CEE0;CEE0;110F 1164 11BF;CEE0;110F 1164 11BF;
+CEE1;CEE1;110F 1164 11C0;CEE1;110F 1164 11C0;
+CEE2;CEE2;110F 1164 11C1;CEE2;110F 1164 11C1;
+CEE3;CEE3;110F 1164 11C2;CEE3;110F 1164 11C2;
+CEE4;CEE4;110F 1165;CEE4;110F 1165;
+CEE5;CEE5;110F 1165 11A8;CEE5;110F 1165 11A8;
+CEE6;CEE6;110F 1165 11A9;CEE6;110F 1165 11A9;
+CEE7;CEE7;110F 1165 11AA;CEE7;110F 1165 11AA;
+CEE8;CEE8;110F 1165 11AB;CEE8;110F 1165 11AB;
+CEE9;CEE9;110F 1165 11AC;CEE9;110F 1165 11AC;
+CEEA;CEEA;110F 1165 11AD;CEEA;110F 1165 11AD;
+CEEB;CEEB;110F 1165 11AE;CEEB;110F 1165 11AE;
+CEEC;CEEC;110F 1165 11AF;CEEC;110F 1165 11AF;
+CEED;CEED;110F 1165 11B0;CEED;110F 1165 11B0;
+CEEE;CEEE;110F 1165 11B1;CEEE;110F 1165 11B1;
+CEEF;CEEF;110F 1165 11B2;CEEF;110F 1165 11B2;
+CEF0;CEF0;110F 1165 11B3;CEF0;110F 1165 11B3;
+CEF1;CEF1;110F 1165 11B4;CEF1;110F 1165 11B4;
+CEF2;CEF2;110F 1165 11B5;CEF2;110F 1165 11B5;
+CEF3;CEF3;110F 1165 11B6;CEF3;110F 1165 11B6;
+CEF4;CEF4;110F 1165 11B7;CEF4;110F 1165 11B7;
+CEF5;CEF5;110F 1165 11B8;CEF5;110F 1165 11B8;
+CEF6;CEF6;110F 1165 11B9;CEF6;110F 1165 11B9;
+CEF7;CEF7;110F 1165 11BA;CEF7;110F 1165 11BA;
+CEF8;CEF8;110F 1165 11BB;CEF8;110F 1165 11BB;
+CEF9;CEF9;110F 1165 11BC;CEF9;110F 1165 11BC;
+CEFA;CEFA;110F 1165 11BD;CEFA;110F 1165 11BD;
+CEFB;CEFB;110F 1165 11BE;CEFB;110F 1165 11BE;
+CEFC;CEFC;110F 1165 11BF;CEFC;110F 1165 11BF;
+CEFD;CEFD;110F 1165 11C0;CEFD;110F 1165 11C0;
+CEFE;CEFE;110F 1165 11C1;CEFE;110F 1165 11C1;
+CEFF;CEFF;110F 1165 11C2;CEFF;110F 1165 11C2;
+CF00;CF00;110F 1166;CF00;110F 1166;
+CF01;CF01;110F 1166 11A8;CF01;110F 1166 11A8;
+CF02;CF02;110F 1166 11A9;CF02;110F 1166 11A9;
+CF03;CF03;110F 1166 11AA;CF03;110F 1166 11AA;
+CF04;CF04;110F 1166 11AB;CF04;110F 1166 11AB;
+CF05;CF05;110F 1166 11AC;CF05;110F 1166 11AC;
+CF06;CF06;110F 1166 11AD;CF06;110F 1166 11AD;
+CF07;CF07;110F 1166 11AE;CF07;110F 1166 11AE;
+CF08;CF08;110F 1166 11AF;CF08;110F 1166 11AF;
+CF09;CF09;110F 1166 11B0;CF09;110F 1166 11B0;
+CF0A;CF0A;110F 1166 11B1;CF0A;110F 1166 11B1;
+CF0B;CF0B;110F 1166 11B2;CF0B;110F 1166 11B2;
+CF0C;CF0C;110F 1166 11B3;CF0C;110F 1166 11B3;
+CF0D;CF0D;110F 1166 11B4;CF0D;110F 1166 11B4;
+CF0E;CF0E;110F 1166 11B5;CF0E;110F 1166 11B5;
+CF0F;CF0F;110F 1166 11B6;CF0F;110F 1166 11B6;
+CF10;CF10;110F 1166 11B7;CF10;110F 1166 11B7;
+CF11;CF11;110F 1166 11B8;CF11;110F 1166 11B8;
+CF12;CF12;110F 1166 11B9;CF12;110F 1166 11B9;
+CF13;CF13;110F 1166 11BA;CF13;110F 1166 11BA;
+CF14;CF14;110F 1166 11BB;CF14;110F 1166 11BB;
+CF15;CF15;110F 1166 11BC;CF15;110F 1166 11BC;
+CF16;CF16;110F 1166 11BD;CF16;110F 1166 11BD;
+CF17;CF17;110F 1166 11BE;CF17;110F 1166 11BE;
+CF18;CF18;110F 1166 11BF;CF18;110F 1166 11BF;
+CF19;CF19;110F 1166 11C0;CF19;110F 1166 11C0;
+CF1A;CF1A;110F 1166 11C1;CF1A;110F 1166 11C1;
+CF1B;CF1B;110F 1166 11C2;CF1B;110F 1166 11C2;
+CF1C;CF1C;110F 1167;CF1C;110F 1167;
+CF1D;CF1D;110F 1167 11A8;CF1D;110F 1167 11A8;
+CF1E;CF1E;110F 1167 11A9;CF1E;110F 1167 11A9;
+CF1F;CF1F;110F 1167 11AA;CF1F;110F 1167 11AA;
+CF20;CF20;110F 1167 11AB;CF20;110F 1167 11AB;
+CF21;CF21;110F 1167 11AC;CF21;110F 1167 11AC;
+CF22;CF22;110F 1167 11AD;CF22;110F 1167 11AD;
+CF23;CF23;110F 1167 11AE;CF23;110F 1167 11AE;
+CF24;CF24;110F 1167 11AF;CF24;110F 1167 11AF;
+CF25;CF25;110F 1167 11B0;CF25;110F 1167 11B0;
+CF26;CF26;110F 1167 11B1;CF26;110F 1167 11B1;
+CF27;CF27;110F 1167 11B2;CF27;110F 1167 11B2;
+CF28;CF28;110F 1167 11B3;CF28;110F 1167 11B3;
+CF29;CF29;110F 1167 11B4;CF29;110F 1167 11B4;
+CF2A;CF2A;110F 1167 11B5;CF2A;110F 1167 11B5;
+CF2B;CF2B;110F 1167 11B6;CF2B;110F 1167 11B6;
+CF2C;CF2C;110F 1167 11B7;CF2C;110F 1167 11B7;
+CF2D;CF2D;110F 1167 11B8;CF2D;110F 1167 11B8;
+CF2E;CF2E;110F 1167 11B9;CF2E;110F 1167 11B9;
+CF2F;CF2F;110F 1167 11BA;CF2F;110F 1167 11BA;
+CF30;CF30;110F 1167 11BB;CF30;110F 1167 11BB;
+CF31;CF31;110F 1167 11BC;CF31;110F 1167 11BC;
+CF32;CF32;110F 1167 11BD;CF32;110F 1167 11BD;
+CF33;CF33;110F 1167 11BE;CF33;110F 1167 11BE;
+CF34;CF34;110F 1167 11BF;CF34;110F 1167 11BF;
+CF35;CF35;110F 1167 11C0;CF35;110F 1167 11C0;
+CF36;CF36;110F 1167 11C1;CF36;110F 1167 11C1;
+CF37;CF37;110F 1167 11C2;CF37;110F 1167 11C2;
+CF38;CF38;110F 1168;CF38;110F 1168;
+CF39;CF39;110F 1168 11A8;CF39;110F 1168 11A8;
+CF3A;CF3A;110F 1168 11A9;CF3A;110F 1168 11A9;
+CF3B;CF3B;110F 1168 11AA;CF3B;110F 1168 11AA;
+CF3C;CF3C;110F 1168 11AB;CF3C;110F 1168 11AB;
+CF3D;CF3D;110F 1168 11AC;CF3D;110F 1168 11AC;
+CF3E;CF3E;110F 1168 11AD;CF3E;110F 1168 11AD;
+CF3F;CF3F;110F 1168 11AE;CF3F;110F 1168 11AE;
+CF40;CF40;110F 1168 11AF;CF40;110F 1168 11AF;
+CF41;CF41;110F 1168 11B0;CF41;110F 1168 11B0;
+CF42;CF42;110F 1168 11B1;CF42;110F 1168 11B1;
+CF43;CF43;110F 1168 11B2;CF43;110F 1168 11B2;
+CF44;CF44;110F 1168 11B3;CF44;110F 1168 11B3;
+CF45;CF45;110F 1168 11B4;CF45;110F 1168 11B4;
+CF46;CF46;110F 1168 11B5;CF46;110F 1168 11B5;
+CF47;CF47;110F 1168 11B6;CF47;110F 1168 11B6;
+CF48;CF48;110F 1168 11B7;CF48;110F 1168 11B7;
+CF49;CF49;110F 1168 11B8;CF49;110F 1168 11B8;
+CF4A;CF4A;110F 1168 11B9;CF4A;110F 1168 11B9;
+CF4B;CF4B;110F 1168 11BA;CF4B;110F 1168 11BA;
+CF4C;CF4C;110F 1168 11BB;CF4C;110F 1168 11BB;
+CF4D;CF4D;110F 1168 11BC;CF4D;110F 1168 11BC;
+CF4E;CF4E;110F 1168 11BD;CF4E;110F 1168 11BD;
+CF4F;CF4F;110F 1168 11BE;CF4F;110F 1168 11BE;
+CF50;CF50;110F 1168 11BF;CF50;110F 1168 11BF;
+CF51;CF51;110F 1168 11C0;CF51;110F 1168 11C0;
+CF52;CF52;110F 1168 11C1;CF52;110F 1168 11C1;
+CF53;CF53;110F 1168 11C2;CF53;110F 1168 11C2;
+CF54;CF54;110F 1169;CF54;110F 1169;
+CF55;CF55;110F 1169 11A8;CF55;110F 1169 11A8;
+CF56;CF56;110F 1169 11A9;CF56;110F 1169 11A9;
+CF57;CF57;110F 1169 11AA;CF57;110F 1169 11AA;
+CF58;CF58;110F 1169 11AB;CF58;110F 1169 11AB;
+CF59;CF59;110F 1169 11AC;CF59;110F 1169 11AC;
+CF5A;CF5A;110F 1169 11AD;CF5A;110F 1169 11AD;
+CF5B;CF5B;110F 1169 11AE;CF5B;110F 1169 11AE;
+CF5C;CF5C;110F 1169 11AF;CF5C;110F 1169 11AF;
+CF5D;CF5D;110F 1169 11B0;CF5D;110F 1169 11B0;
+CF5E;CF5E;110F 1169 11B1;CF5E;110F 1169 11B1;
+CF5F;CF5F;110F 1169 11B2;CF5F;110F 1169 11B2;
+CF60;CF60;110F 1169 11B3;CF60;110F 1169 11B3;
+CF61;CF61;110F 1169 11B4;CF61;110F 1169 11B4;
+CF62;CF62;110F 1169 11B5;CF62;110F 1169 11B5;
+CF63;CF63;110F 1169 11B6;CF63;110F 1169 11B6;
+CF64;CF64;110F 1169 11B7;CF64;110F 1169 11B7;
+CF65;CF65;110F 1169 11B8;CF65;110F 1169 11B8;
+CF66;CF66;110F 1169 11B9;CF66;110F 1169 11B9;
+CF67;CF67;110F 1169 11BA;CF67;110F 1169 11BA;
+CF68;CF68;110F 1169 11BB;CF68;110F 1169 11BB;
+CF69;CF69;110F 1169 11BC;CF69;110F 1169 11BC;
+CF6A;CF6A;110F 1169 11BD;CF6A;110F 1169 11BD;
+CF6B;CF6B;110F 1169 11BE;CF6B;110F 1169 11BE;
+CF6C;CF6C;110F 1169 11BF;CF6C;110F 1169 11BF;
+CF6D;CF6D;110F 1169 11C0;CF6D;110F 1169 11C0;
+CF6E;CF6E;110F 1169 11C1;CF6E;110F 1169 11C1;
+CF6F;CF6F;110F 1169 11C2;CF6F;110F 1169 11C2;
+CF70;CF70;110F 116A;CF70;110F 116A;
+CF71;CF71;110F 116A 11A8;CF71;110F 116A 11A8;
+CF72;CF72;110F 116A 11A9;CF72;110F 116A 11A9;
+CF73;CF73;110F 116A 11AA;CF73;110F 116A 11AA;
+CF74;CF74;110F 116A 11AB;CF74;110F 116A 11AB;
+CF75;CF75;110F 116A 11AC;CF75;110F 116A 11AC;
+CF76;CF76;110F 116A 11AD;CF76;110F 116A 11AD;
+CF77;CF77;110F 116A 11AE;CF77;110F 116A 11AE;
+CF78;CF78;110F 116A 11AF;CF78;110F 116A 11AF;
+CF79;CF79;110F 116A 11B0;CF79;110F 116A 11B0;
+CF7A;CF7A;110F 116A 11B1;CF7A;110F 116A 11B1;
+CF7B;CF7B;110F 116A 11B2;CF7B;110F 116A 11B2;
+CF7C;CF7C;110F 116A 11B3;CF7C;110F 116A 11B3;
+CF7D;CF7D;110F 116A 11B4;CF7D;110F 116A 11B4;
+CF7E;CF7E;110F 116A 11B5;CF7E;110F 116A 11B5;
+CF7F;CF7F;110F 116A 11B6;CF7F;110F 116A 11B6;
+CF80;CF80;110F 116A 11B7;CF80;110F 116A 11B7;
+CF81;CF81;110F 116A 11B8;CF81;110F 116A 11B8;
+CF82;CF82;110F 116A 11B9;CF82;110F 116A 11B9;
+CF83;CF83;110F 116A 11BA;CF83;110F 116A 11BA;
+CF84;CF84;110F 116A 11BB;CF84;110F 116A 11BB;
+CF85;CF85;110F 116A 11BC;CF85;110F 116A 11BC;
+CF86;CF86;110F 116A 11BD;CF86;110F 116A 11BD;
+CF87;CF87;110F 116A 11BE;CF87;110F 116A 11BE;
+CF88;CF88;110F 116A 11BF;CF88;110F 116A 11BF;
+CF89;CF89;110F 116A 11C0;CF89;110F 116A 11C0;
+CF8A;CF8A;110F 116A 11C1;CF8A;110F 116A 11C1;
+CF8B;CF8B;110F 116A 11C2;CF8B;110F 116A 11C2;
+CF8C;CF8C;110F 116B;CF8C;110F 116B;
+CF8D;CF8D;110F 116B 11A8;CF8D;110F 116B 11A8;
+CF8E;CF8E;110F 116B 11A9;CF8E;110F 116B 11A9;
+CF8F;CF8F;110F 116B 11AA;CF8F;110F 116B 11AA;
+CF90;CF90;110F 116B 11AB;CF90;110F 116B 11AB;
+CF91;CF91;110F 116B 11AC;CF91;110F 116B 11AC;
+CF92;CF92;110F 116B 11AD;CF92;110F 116B 11AD;
+CF93;CF93;110F 116B 11AE;CF93;110F 116B 11AE;
+CF94;CF94;110F 116B 11AF;CF94;110F 116B 11AF;
+CF95;CF95;110F 116B 11B0;CF95;110F 116B 11B0;
+CF96;CF96;110F 116B 11B1;CF96;110F 116B 11B1;
+CF97;CF97;110F 116B 11B2;CF97;110F 116B 11B2;
+CF98;CF98;110F 116B 11B3;CF98;110F 116B 11B3;
+CF99;CF99;110F 116B 11B4;CF99;110F 116B 11B4;
+CF9A;CF9A;110F 116B 11B5;CF9A;110F 116B 11B5;
+CF9B;CF9B;110F 116B 11B6;CF9B;110F 116B 11B6;
+CF9C;CF9C;110F 116B 11B7;CF9C;110F 116B 11B7;
+CF9D;CF9D;110F 116B 11B8;CF9D;110F 116B 11B8;
+CF9E;CF9E;110F 116B 11B9;CF9E;110F 116B 11B9;
+CF9F;CF9F;110F 116B 11BA;CF9F;110F 116B 11BA;
+CFA0;CFA0;110F 116B 11BB;CFA0;110F 116B 11BB;
+CFA1;CFA1;110F 116B 11BC;CFA1;110F 116B 11BC;
+CFA2;CFA2;110F 116B 11BD;CFA2;110F 116B 11BD;
+CFA3;CFA3;110F 116B 11BE;CFA3;110F 116B 11BE;
+CFA4;CFA4;110F 116B 11BF;CFA4;110F 116B 11BF;
+CFA5;CFA5;110F 116B 11C0;CFA5;110F 116B 11C0;
+CFA6;CFA6;110F 116B 11C1;CFA6;110F 116B 11C1;
+CFA7;CFA7;110F 116B 11C2;CFA7;110F 116B 11C2;
+CFA8;CFA8;110F 116C;CFA8;110F 116C;
+CFA9;CFA9;110F 116C 11A8;CFA9;110F 116C 11A8;
+CFAA;CFAA;110F 116C 11A9;CFAA;110F 116C 11A9;
+CFAB;CFAB;110F 116C 11AA;CFAB;110F 116C 11AA;
+CFAC;CFAC;110F 116C 11AB;CFAC;110F 116C 11AB;
+CFAD;CFAD;110F 116C 11AC;CFAD;110F 116C 11AC;
+CFAE;CFAE;110F 116C 11AD;CFAE;110F 116C 11AD;
+CFAF;CFAF;110F 116C 11AE;CFAF;110F 116C 11AE;
+CFB0;CFB0;110F 116C 11AF;CFB0;110F 116C 11AF;
+CFB1;CFB1;110F 116C 11B0;CFB1;110F 116C 11B0;
+CFB2;CFB2;110F 116C 11B1;CFB2;110F 116C 11B1;
+CFB3;CFB3;110F 116C 11B2;CFB3;110F 116C 11B2;
+CFB4;CFB4;110F 116C 11B3;CFB4;110F 116C 11B3;
+CFB5;CFB5;110F 116C 11B4;CFB5;110F 116C 11B4;
+CFB6;CFB6;110F 116C 11B5;CFB6;110F 116C 11B5;
+CFB7;CFB7;110F 116C 11B6;CFB7;110F 116C 11B6;
+CFB8;CFB8;110F 116C 11B7;CFB8;110F 116C 11B7;
+CFB9;CFB9;110F 116C 11B8;CFB9;110F 116C 11B8;
+CFBA;CFBA;110F 116C 11B9;CFBA;110F 116C 11B9;
+CFBB;CFBB;110F 116C 11BA;CFBB;110F 116C 11BA;
+CFBC;CFBC;110F 116C 11BB;CFBC;110F 116C 11BB;
+CFBD;CFBD;110F 116C 11BC;CFBD;110F 116C 11BC;
+CFBE;CFBE;110F 116C 11BD;CFBE;110F 116C 11BD;
+CFBF;CFBF;110F 116C 11BE;CFBF;110F 116C 11BE;
+CFC0;CFC0;110F 116C 11BF;CFC0;110F 116C 11BF;
+CFC1;CFC1;110F 116C 11C0;CFC1;110F 116C 11C0;
+CFC2;CFC2;110F 116C 11C1;CFC2;110F 116C 11C1;
+CFC3;CFC3;110F 116C 11C2;CFC3;110F 116C 11C2;
+CFC4;CFC4;110F 116D;CFC4;110F 116D;
+CFC5;CFC5;110F 116D 11A8;CFC5;110F 116D 11A8;
+CFC6;CFC6;110F 116D 11A9;CFC6;110F 116D 11A9;
+CFC7;CFC7;110F 116D 11AA;CFC7;110F 116D 11AA;
+CFC8;CFC8;110F 116D 11AB;CFC8;110F 116D 11AB;
+CFC9;CFC9;110F 116D 11AC;CFC9;110F 116D 11AC;
+CFCA;CFCA;110F 116D 11AD;CFCA;110F 116D 11AD;
+CFCB;CFCB;110F 116D 11AE;CFCB;110F 116D 11AE;
+CFCC;CFCC;110F 116D 11AF;CFCC;110F 116D 11AF;
+CFCD;CFCD;110F 116D 11B0;CFCD;110F 116D 11B0;
+CFCE;CFCE;110F 116D 11B1;CFCE;110F 116D 11B1;
+CFCF;CFCF;110F 116D 11B2;CFCF;110F 116D 11B2;
+CFD0;CFD0;110F 116D 11B3;CFD0;110F 116D 11B3;
+CFD1;CFD1;110F 116D 11B4;CFD1;110F 116D 11B4;
+CFD2;CFD2;110F 116D 11B5;CFD2;110F 116D 11B5;
+CFD3;CFD3;110F 116D 11B6;CFD3;110F 116D 11B6;
+CFD4;CFD4;110F 116D 11B7;CFD4;110F 116D 11B7;
+CFD5;CFD5;110F 116D 11B8;CFD5;110F 116D 11B8;
+CFD6;CFD6;110F 116D 11B9;CFD6;110F 116D 11B9;
+CFD7;CFD7;110F 116D 11BA;CFD7;110F 116D 11BA;
+CFD8;CFD8;110F 116D 11BB;CFD8;110F 116D 11BB;
+CFD9;CFD9;110F 116D 11BC;CFD9;110F 116D 11BC;
+CFDA;CFDA;110F 116D 11BD;CFDA;110F 116D 11BD;
+CFDB;CFDB;110F 116D 11BE;CFDB;110F 116D 11BE;
+CFDC;CFDC;110F 116D 11BF;CFDC;110F 116D 11BF;
+CFDD;CFDD;110F 116D 11C0;CFDD;110F 116D 11C0;
+CFDE;CFDE;110F 116D 11C1;CFDE;110F 116D 11C1;
+CFDF;CFDF;110F 116D 11C2;CFDF;110F 116D 11C2;
+CFE0;CFE0;110F 116E;CFE0;110F 116E;
+CFE1;CFE1;110F 116E 11A8;CFE1;110F 116E 11A8;
+CFE2;CFE2;110F 116E 11A9;CFE2;110F 116E 11A9;
+CFE3;CFE3;110F 116E 11AA;CFE3;110F 116E 11AA;
+CFE4;CFE4;110F 116E 11AB;CFE4;110F 116E 11AB;
+CFE5;CFE5;110F 116E 11AC;CFE5;110F 116E 11AC;
+CFE6;CFE6;110F 116E 11AD;CFE6;110F 116E 11AD;
+CFE7;CFE7;110F 116E 11AE;CFE7;110F 116E 11AE;
+CFE8;CFE8;110F 116E 11AF;CFE8;110F 116E 11AF;
+CFE9;CFE9;110F 116E 11B0;CFE9;110F 116E 11B0;
+CFEA;CFEA;110F 116E 11B1;CFEA;110F 116E 11B1;
+CFEB;CFEB;110F 116E 11B2;CFEB;110F 116E 11B2;
+CFEC;CFEC;110F 116E 11B3;CFEC;110F 116E 11B3;
+CFED;CFED;110F 116E 11B4;CFED;110F 116E 11B4;
+CFEE;CFEE;110F 116E 11B5;CFEE;110F 116E 11B5;
+CFEF;CFEF;110F 116E 11B6;CFEF;110F 116E 11B6;
+CFF0;CFF0;110F 116E 11B7;CFF0;110F 116E 11B7;
+CFF1;CFF1;110F 116E 11B8;CFF1;110F 116E 11B8;
+CFF2;CFF2;110F 116E 11B9;CFF2;110F 116E 11B9;
+CFF3;CFF3;110F 116E 11BA;CFF3;110F 116E 11BA;
+CFF4;CFF4;110F 116E 11BB;CFF4;110F 116E 11BB;
+CFF5;CFF5;110F 116E 11BC;CFF5;110F 116E 11BC;
+CFF6;CFF6;110F 116E 11BD;CFF6;110F 116E 11BD;
+CFF7;CFF7;110F 116E 11BE;CFF7;110F 116E 11BE;
+CFF8;CFF8;110F 116E 11BF;CFF8;110F 116E 11BF;
+CFF9;CFF9;110F 116E 11C0;CFF9;110F 116E 11C0;
+CFFA;CFFA;110F 116E 11C1;CFFA;110F 116E 11C1;
+CFFB;CFFB;110F 116E 11C2;CFFB;110F 116E 11C2;
+CFFC;CFFC;110F 116F;CFFC;110F 116F;
+CFFD;CFFD;110F 116F 11A8;CFFD;110F 116F 11A8;
+CFFE;CFFE;110F 116F 11A9;CFFE;110F 116F 11A9;
+CFFF;CFFF;110F 116F 11AA;CFFF;110F 116F 11AA;
+D000;D000;110F 116F 11AB;D000;110F 116F 11AB;
+D001;D001;110F 116F 11AC;D001;110F 116F 11AC;
+D002;D002;110F 116F 11AD;D002;110F 116F 11AD;
+D003;D003;110F 116F 11AE;D003;110F 116F 11AE;
+D004;D004;110F 116F 11AF;D004;110F 116F 11AF;
+D005;D005;110F 116F 11B0;D005;110F 116F 11B0;
+D006;D006;110F 116F 11B1;D006;110F 116F 11B1;
+D007;D007;110F 116F 11B2;D007;110F 116F 11B2;
+D008;D008;110F 116F 11B3;D008;110F 116F 11B3;
+D009;D009;110F 116F 11B4;D009;110F 116F 11B4;
+D00A;D00A;110F 116F 11B5;D00A;110F 116F 11B5;
+D00B;D00B;110F 116F 11B6;D00B;110F 116F 11B6;
+D00C;D00C;110F 116F 11B7;D00C;110F 116F 11B7;
+D00D;D00D;110F 116F 11B8;D00D;110F 116F 11B8;
+D00E;D00E;110F 116F 11B9;D00E;110F 116F 11B9;
+D00F;D00F;110F 116F 11BA;D00F;110F 116F 11BA;
+D010;D010;110F 116F 11BB;D010;110F 116F 11BB;
+D011;D011;110F 116F 11BC;D011;110F 116F 11BC;
+D012;D012;110F 116F 11BD;D012;110F 116F 11BD;
+D013;D013;110F 116F 11BE;D013;110F 116F 11BE;
+D014;D014;110F 116F 11BF;D014;110F 116F 11BF;
+D015;D015;110F 116F 11C0;D015;110F 116F 11C0;
+D016;D016;110F 116F 11C1;D016;110F 116F 11C1;
+D017;D017;110F 116F 11C2;D017;110F 116F 11C2;
+D018;D018;110F 1170;D018;110F 1170;
+D019;D019;110F 1170 11A8;D019;110F 1170 11A8;
+D01A;D01A;110F 1170 11A9;D01A;110F 1170 11A9;
+D01B;D01B;110F 1170 11AA;D01B;110F 1170 11AA;
+D01C;D01C;110F 1170 11AB;D01C;110F 1170 11AB;
+D01D;D01D;110F 1170 11AC;D01D;110F 1170 11AC;
+D01E;D01E;110F 1170 11AD;D01E;110F 1170 11AD;
+D01F;D01F;110F 1170 11AE;D01F;110F 1170 11AE;
+D020;D020;110F 1170 11AF;D020;110F 1170 11AF;
+D021;D021;110F 1170 11B0;D021;110F 1170 11B0;
+D022;D022;110F 1170 11B1;D022;110F 1170 11B1;
+D023;D023;110F 1170 11B2;D023;110F 1170 11B2;
+D024;D024;110F 1170 11B3;D024;110F 1170 11B3;
+D025;D025;110F 1170 11B4;D025;110F 1170 11B4;
+D026;D026;110F 1170 11B5;D026;110F 1170 11B5;
+D027;D027;110F 1170 11B6;D027;110F 1170 11B6;
+D028;D028;110F 1170 11B7;D028;110F 1170 11B7;
+D029;D029;110F 1170 11B8;D029;110F 1170 11B8;
+D02A;D02A;110F 1170 11B9;D02A;110F 1170 11B9;
+D02B;D02B;110F 1170 11BA;D02B;110F 1170 11BA;
+D02C;D02C;110F 1170 11BB;D02C;110F 1170 11BB;
+D02D;D02D;110F 1170 11BC;D02D;110F 1170 11BC;
+D02E;D02E;110F 1170 11BD;D02E;110F 1170 11BD;
+D02F;D02F;110F 1170 11BE;D02F;110F 1170 11BE;
+D030;D030;110F 1170 11BF;D030;110F 1170 11BF;
+D031;D031;110F 1170 11C0;D031;110F 1170 11C0;
+D032;D032;110F 1170 11C1;D032;110F 1170 11C1;
+D033;D033;110F 1170 11C2;D033;110F 1170 11C2;
+D034;D034;110F 1171;D034;110F 1171;
+D035;D035;110F 1171 11A8;D035;110F 1171 11A8;
+D036;D036;110F 1171 11A9;D036;110F 1171 11A9;
+D037;D037;110F 1171 11AA;D037;110F 1171 11AA;
+D038;D038;110F 1171 11AB;D038;110F 1171 11AB;
+D039;D039;110F 1171 11AC;D039;110F 1171 11AC;
+D03A;D03A;110F 1171 11AD;D03A;110F 1171 11AD;
+D03B;D03B;110F 1171 11AE;D03B;110F 1171 11AE;
+D03C;D03C;110F 1171 11AF;D03C;110F 1171 11AF;
+D03D;D03D;110F 1171 11B0;D03D;110F 1171 11B0;
+D03E;D03E;110F 1171 11B1;D03E;110F 1171 11B1;
+D03F;D03F;110F 1171 11B2;D03F;110F 1171 11B2;
+D040;D040;110F 1171 11B3;D040;110F 1171 11B3;
+D041;D041;110F 1171 11B4;D041;110F 1171 11B4;
+D042;D042;110F 1171 11B5;D042;110F 1171 11B5;
+D043;D043;110F 1171 11B6;D043;110F 1171 11B6;
+D044;D044;110F 1171 11B7;D044;110F 1171 11B7;
+D045;D045;110F 1171 11B8;D045;110F 1171 11B8;
+D046;D046;110F 1171 11B9;D046;110F 1171 11B9;
+D047;D047;110F 1171 11BA;D047;110F 1171 11BA;
+D048;D048;110F 1171 11BB;D048;110F 1171 11BB;
+D049;D049;110F 1171 11BC;D049;110F 1171 11BC;
+D04A;D04A;110F 1171 11BD;D04A;110F 1171 11BD;
+D04B;D04B;110F 1171 11BE;D04B;110F 1171 11BE;
+D04C;D04C;110F 1171 11BF;D04C;110F 1171 11BF;
+D04D;D04D;110F 1171 11C0;D04D;110F 1171 11C0;
+D04E;D04E;110F 1171 11C1;D04E;110F 1171 11C1;
+D04F;D04F;110F 1171 11C2;D04F;110F 1171 11C2;
+D050;D050;110F 1172;D050;110F 1172;
+D051;D051;110F 1172 11A8;D051;110F 1172 11A8;
+D052;D052;110F 1172 11A9;D052;110F 1172 11A9;
+D053;D053;110F 1172 11AA;D053;110F 1172 11AA;
+D054;D054;110F 1172 11AB;D054;110F 1172 11AB;
+D055;D055;110F 1172 11AC;D055;110F 1172 11AC;
+D056;D056;110F 1172 11AD;D056;110F 1172 11AD;
+D057;D057;110F 1172 11AE;D057;110F 1172 11AE;
+D058;D058;110F 1172 11AF;D058;110F 1172 11AF;
+D059;D059;110F 1172 11B0;D059;110F 1172 11B0;
+D05A;D05A;110F 1172 11B1;D05A;110F 1172 11B1;
+D05B;D05B;110F 1172 11B2;D05B;110F 1172 11B2;
+D05C;D05C;110F 1172 11B3;D05C;110F 1172 11B3;
+D05D;D05D;110F 1172 11B4;D05D;110F 1172 11B4;
+D05E;D05E;110F 1172 11B5;D05E;110F 1172 11B5;
+D05F;D05F;110F 1172 11B6;D05F;110F 1172 11B6;
+D060;D060;110F 1172 11B7;D060;110F 1172 11B7;
+D061;D061;110F 1172 11B8;D061;110F 1172 11B8;
+D062;D062;110F 1172 11B9;D062;110F 1172 11B9;
+D063;D063;110F 1172 11BA;D063;110F 1172 11BA;
+D064;D064;110F 1172 11BB;D064;110F 1172 11BB;
+D065;D065;110F 1172 11BC;D065;110F 1172 11BC;
+D066;D066;110F 1172 11BD;D066;110F 1172 11BD;
+D067;D067;110F 1172 11BE;D067;110F 1172 11BE;
+D068;D068;110F 1172 11BF;D068;110F 1172 11BF;
+D069;D069;110F 1172 11C0;D069;110F 1172 11C0;
+D06A;D06A;110F 1172 11C1;D06A;110F 1172 11C1;
+D06B;D06B;110F 1172 11C2;D06B;110F 1172 11C2;
+D06C;D06C;110F 1173;D06C;110F 1173;
+D06D;D06D;110F 1173 11A8;D06D;110F 1173 11A8;
+D06E;D06E;110F 1173 11A9;D06E;110F 1173 11A9;
+D06F;D06F;110F 1173 11AA;D06F;110F 1173 11AA;
+D070;D070;110F 1173 11AB;D070;110F 1173 11AB;
+D071;D071;110F 1173 11AC;D071;110F 1173 11AC;
+D072;D072;110F 1173 11AD;D072;110F 1173 11AD;
+D073;D073;110F 1173 11AE;D073;110F 1173 11AE;
+D074;D074;110F 1173 11AF;D074;110F 1173 11AF;
+D075;D075;110F 1173 11B0;D075;110F 1173 11B0;
+D076;D076;110F 1173 11B1;D076;110F 1173 11B1;
+D077;D077;110F 1173 11B2;D077;110F 1173 11B2;
+D078;D078;110F 1173 11B3;D078;110F 1173 11B3;
+D079;D079;110F 1173 11B4;D079;110F 1173 11B4;
+D07A;D07A;110F 1173 11B5;D07A;110F 1173 11B5;
+D07B;D07B;110F 1173 11B6;D07B;110F 1173 11B6;
+D07C;D07C;110F 1173 11B7;D07C;110F 1173 11B7;
+D07D;D07D;110F 1173 11B8;D07D;110F 1173 11B8;
+D07E;D07E;110F 1173 11B9;D07E;110F 1173 11B9;
+D07F;D07F;110F 1173 11BA;D07F;110F 1173 11BA;
+D080;D080;110F 1173 11BB;D080;110F 1173 11BB;
+D081;D081;110F 1173 11BC;D081;110F 1173 11BC;
+D082;D082;110F 1173 11BD;D082;110F 1173 11BD;
+D083;D083;110F 1173 11BE;D083;110F 1173 11BE;
+D084;D084;110F 1173 11BF;D084;110F 1173 11BF;
+D085;D085;110F 1173 11C0;D085;110F 1173 11C0;
+D086;D086;110F 1173 11C1;D086;110F 1173 11C1;
+D087;D087;110F 1173 11C2;D087;110F 1173 11C2;
+D088;D088;110F 1174;D088;110F 1174;
+D089;D089;110F 1174 11A8;D089;110F 1174 11A8;
+D08A;D08A;110F 1174 11A9;D08A;110F 1174 11A9;
+D08B;D08B;110F 1174 11AA;D08B;110F 1174 11AA;
+D08C;D08C;110F 1174 11AB;D08C;110F 1174 11AB;
+D08D;D08D;110F 1174 11AC;D08D;110F 1174 11AC;
+D08E;D08E;110F 1174 11AD;D08E;110F 1174 11AD;
+D08F;D08F;110F 1174 11AE;D08F;110F 1174 11AE;
+D090;D090;110F 1174 11AF;D090;110F 1174 11AF;
+D091;D091;110F 1174 11B0;D091;110F 1174 11B0;
+D092;D092;110F 1174 11B1;D092;110F 1174 11B1;
+D093;D093;110F 1174 11B2;D093;110F 1174 11B2;
+D094;D094;110F 1174 11B3;D094;110F 1174 11B3;
+D095;D095;110F 1174 11B4;D095;110F 1174 11B4;
+D096;D096;110F 1174 11B5;D096;110F 1174 11B5;
+D097;D097;110F 1174 11B6;D097;110F 1174 11B6;
+D098;D098;110F 1174 11B7;D098;110F 1174 11B7;
+D099;D099;110F 1174 11B8;D099;110F 1174 11B8;
+D09A;D09A;110F 1174 11B9;D09A;110F 1174 11B9;
+D09B;D09B;110F 1174 11BA;D09B;110F 1174 11BA;
+D09C;D09C;110F 1174 11BB;D09C;110F 1174 11BB;
+D09D;D09D;110F 1174 11BC;D09D;110F 1174 11BC;
+D09E;D09E;110F 1174 11BD;D09E;110F 1174 11BD;
+D09F;D09F;110F 1174 11BE;D09F;110F 1174 11BE;
+D0A0;D0A0;110F 1174 11BF;D0A0;110F 1174 11BF;
+D0A1;D0A1;110F 1174 11C0;D0A1;110F 1174 11C0;
+D0A2;D0A2;110F 1174 11C1;D0A2;110F 1174 11C1;
+D0A3;D0A3;110F 1174 11C2;D0A3;110F 1174 11C2;
+D0A4;D0A4;110F 1175;D0A4;110F 1175;
+D0A5;D0A5;110F 1175 11A8;D0A5;110F 1175 11A8;
+D0A6;D0A6;110F 1175 11A9;D0A6;110F 1175 11A9;
+D0A7;D0A7;110F 1175 11AA;D0A7;110F 1175 11AA;
+D0A8;D0A8;110F 1175 11AB;D0A8;110F 1175 11AB;
+D0A9;D0A9;110F 1175 11AC;D0A9;110F 1175 11AC;
+D0AA;D0AA;110F 1175 11AD;D0AA;110F 1175 11AD;
+D0AB;D0AB;110F 1175 11AE;D0AB;110F 1175 11AE;
+D0AC;D0AC;110F 1175 11AF;D0AC;110F 1175 11AF;
+D0AD;D0AD;110F 1175 11B0;D0AD;110F 1175 11B0;
+D0AE;D0AE;110F 1175 11B1;D0AE;110F 1175 11B1;
+D0AF;D0AF;110F 1175 11B2;D0AF;110F 1175 11B2;
+D0B0;D0B0;110F 1175 11B3;D0B0;110F 1175 11B3;
+D0B1;D0B1;110F 1175 11B4;D0B1;110F 1175 11B4;
+D0B2;D0B2;110F 1175 11B5;D0B2;110F 1175 11B5;
+D0B3;D0B3;110F 1175 11B6;D0B3;110F 1175 11B6;
+D0B4;D0B4;110F 1175 11B7;D0B4;110F 1175 11B7;
+D0B5;D0B5;110F 1175 11B8;D0B5;110F 1175 11B8;
+D0B6;D0B6;110F 1175 11B9;D0B6;110F 1175 11B9;
+D0B7;D0B7;110F 1175 11BA;D0B7;110F 1175 11BA;
+D0B8;D0B8;110F 1175 11BB;D0B8;110F 1175 11BB;
+D0B9;D0B9;110F 1175 11BC;D0B9;110F 1175 11BC;
+D0BA;D0BA;110F 1175 11BD;D0BA;110F 1175 11BD;
+D0BB;D0BB;110F 1175 11BE;D0BB;110F 1175 11BE;
+D0BC;D0BC;110F 1175 11BF;D0BC;110F 1175 11BF;
+D0BD;D0BD;110F 1175 11C0;D0BD;110F 1175 11C0;
+D0BE;D0BE;110F 1175 11C1;D0BE;110F 1175 11C1;
+D0BF;D0BF;110F 1175 11C2;D0BF;110F 1175 11C2;
+D0C0;D0C0;1110 1161;D0C0;1110 1161;
+D0C1;D0C1;1110 1161 11A8;D0C1;1110 1161 11A8;
+D0C2;D0C2;1110 1161 11A9;D0C2;1110 1161 11A9;
+D0C3;D0C3;1110 1161 11AA;D0C3;1110 1161 11AA;
+D0C4;D0C4;1110 1161 11AB;D0C4;1110 1161 11AB;
+D0C5;D0C5;1110 1161 11AC;D0C5;1110 1161 11AC;
+D0C6;D0C6;1110 1161 11AD;D0C6;1110 1161 11AD;
+D0C7;D0C7;1110 1161 11AE;D0C7;1110 1161 11AE;
+D0C8;D0C8;1110 1161 11AF;D0C8;1110 1161 11AF;
+D0C9;D0C9;1110 1161 11B0;D0C9;1110 1161 11B0;
+D0CA;D0CA;1110 1161 11B1;D0CA;1110 1161 11B1;
+D0CB;D0CB;1110 1161 11B2;D0CB;1110 1161 11B2;
+D0CC;D0CC;1110 1161 11B3;D0CC;1110 1161 11B3;
+D0CD;D0CD;1110 1161 11B4;D0CD;1110 1161 11B4;
+D0CE;D0CE;1110 1161 11B5;D0CE;1110 1161 11B5;
+D0CF;D0CF;1110 1161 11B6;D0CF;1110 1161 11B6;
+D0D0;D0D0;1110 1161 11B7;D0D0;1110 1161 11B7;
+D0D1;D0D1;1110 1161 11B8;D0D1;1110 1161 11B8;
+D0D2;D0D2;1110 1161 11B9;D0D2;1110 1161 11B9;
+D0D3;D0D3;1110 1161 11BA;D0D3;1110 1161 11BA;
+D0D4;D0D4;1110 1161 11BB;D0D4;1110 1161 11BB;
+D0D5;D0D5;1110 1161 11BC;D0D5;1110 1161 11BC;
+D0D6;D0D6;1110 1161 11BD;D0D6;1110 1161 11BD;
+D0D7;D0D7;1110 1161 11BE;D0D7;1110 1161 11BE;
+D0D8;D0D8;1110 1161 11BF;D0D8;1110 1161 11BF;
+D0D9;D0D9;1110 1161 11C0;D0D9;1110 1161 11C0;
+D0DA;D0DA;1110 1161 11C1;D0DA;1110 1161 11C1;
+D0DB;D0DB;1110 1161 11C2;D0DB;1110 1161 11C2;
+D0DC;D0DC;1110 1162;D0DC;1110 1162;
+D0DD;D0DD;1110 1162 11A8;D0DD;1110 1162 11A8;
+D0DE;D0DE;1110 1162 11A9;D0DE;1110 1162 11A9;
+D0DF;D0DF;1110 1162 11AA;D0DF;1110 1162 11AA;
+D0E0;D0E0;1110 1162 11AB;D0E0;1110 1162 11AB;
+D0E1;D0E1;1110 1162 11AC;D0E1;1110 1162 11AC;
+D0E2;D0E2;1110 1162 11AD;D0E2;1110 1162 11AD;
+D0E3;D0E3;1110 1162 11AE;D0E3;1110 1162 11AE;
+D0E4;D0E4;1110 1162 11AF;D0E4;1110 1162 11AF;
+D0E5;D0E5;1110 1162 11B0;D0E5;1110 1162 11B0;
+D0E6;D0E6;1110 1162 11B1;D0E6;1110 1162 11B1;
+D0E7;D0E7;1110 1162 11B2;D0E7;1110 1162 11B2;
+D0E8;D0E8;1110 1162 11B3;D0E8;1110 1162 11B3;
+D0E9;D0E9;1110 1162 11B4;D0E9;1110 1162 11B4;
+D0EA;D0EA;1110 1162 11B5;D0EA;1110 1162 11B5;
+D0EB;D0EB;1110 1162 11B6;D0EB;1110 1162 11B6;
+D0EC;D0EC;1110 1162 11B7;D0EC;1110 1162 11B7;
+D0ED;D0ED;1110 1162 11B8;D0ED;1110 1162 11B8;
+D0EE;D0EE;1110 1162 11B9;D0EE;1110 1162 11B9;
+D0EF;D0EF;1110 1162 11BA;D0EF;1110 1162 11BA;
+D0F0;D0F0;1110 1162 11BB;D0F0;1110 1162 11BB;
+D0F1;D0F1;1110 1162 11BC;D0F1;1110 1162 11BC;
+D0F2;D0F2;1110 1162 11BD;D0F2;1110 1162 11BD;
+D0F3;D0F3;1110 1162 11BE;D0F3;1110 1162 11BE;
+D0F4;D0F4;1110 1162 11BF;D0F4;1110 1162 11BF;
+D0F5;D0F5;1110 1162 11C0;D0F5;1110 1162 11C0;
+D0F6;D0F6;1110 1162 11C1;D0F6;1110 1162 11C1;
+D0F7;D0F7;1110 1162 11C2;D0F7;1110 1162 11C2;
+D0F8;D0F8;1110 1163;D0F8;1110 1163;
+D0F9;D0F9;1110 1163 11A8;D0F9;1110 1163 11A8;
+D0FA;D0FA;1110 1163 11A9;D0FA;1110 1163 11A9;
+D0FB;D0FB;1110 1163 11AA;D0FB;1110 1163 11AA;
+D0FC;D0FC;1110 1163 11AB;D0FC;1110 1163 11AB;
+D0FD;D0FD;1110 1163 11AC;D0FD;1110 1163 11AC;
+D0FE;D0FE;1110 1163 11AD;D0FE;1110 1163 11AD;
+D0FF;D0FF;1110 1163 11AE;D0FF;1110 1163 11AE;
+D100;D100;1110 1163 11AF;D100;1110 1163 11AF;
+D101;D101;1110 1163 11B0;D101;1110 1163 11B0;
+D102;D102;1110 1163 11B1;D102;1110 1163 11B1;
+D103;D103;1110 1163 11B2;D103;1110 1163 11B2;
+D104;D104;1110 1163 11B3;D104;1110 1163 11B3;
+D105;D105;1110 1163 11B4;D105;1110 1163 11B4;
+D106;D106;1110 1163 11B5;D106;1110 1163 11B5;
+D107;D107;1110 1163 11B6;D107;1110 1163 11B6;
+D108;D108;1110 1163 11B7;D108;1110 1163 11B7;
+D109;D109;1110 1163 11B8;D109;1110 1163 11B8;
+D10A;D10A;1110 1163 11B9;D10A;1110 1163 11B9;
+D10B;D10B;1110 1163 11BA;D10B;1110 1163 11BA;
+D10C;D10C;1110 1163 11BB;D10C;1110 1163 11BB;
+D10D;D10D;1110 1163 11BC;D10D;1110 1163 11BC;
+D10E;D10E;1110 1163 11BD;D10E;1110 1163 11BD;
+D10F;D10F;1110 1163 11BE;D10F;1110 1163 11BE;
+D110;D110;1110 1163 11BF;D110;1110 1163 11BF;
+D111;D111;1110 1163 11C0;D111;1110 1163 11C0;
+D112;D112;1110 1163 11C1;D112;1110 1163 11C1;
+D113;D113;1110 1163 11C2;D113;1110 1163 11C2;
+D114;D114;1110 1164;D114;1110 1164;
+D115;D115;1110 1164 11A8;D115;1110 1164 11A8;
+D116;D116;1110 1164 11A9;D116;1110 1164 11A9;
+D117;D117;1110 1164 11AA;D117;1110 1164 11AA;
+D118;D118;1110 1164 11AB;D118;1110 1164 11AB;
+D119;D119;1110 1164 11AC;D119;1110 1164 11AC;
+D11A;D11A;1110 1164 11AD;D11A;1110 1164 11AD;
+D11B;D11B;1110 1164 11AE;D11B;1110 1164 11AE;
+D11C;D11C;1110 1164 11AF;D11C;1110 1164 11AF;
+D11D;D11D;1110 1164 11B0;D11D;1110 1164 11B0;
+D11E;D11E;1110 1164 11B1;D11E;1110 1164 11B1;
+D11F;D11F;1110 1164 11B2;D11F;1110 1164 11B2;
+D120;D120;1110 1164 11B3;D120;1110 1164 11B3;
+D121;D121;1110 1164 11B4;D121;1110 1164 11B4;
+D122;D122;1110 1164 11B5;D122;1110 1164 11B5;
+D123;D123;1110 1164 11B6;D123;1110 1164 11B6;
+D124;D124;1110 1164 11B7;D124;1110 1164 11B7;
+D125;D125;1110 1164 11B8;D125;1110 1164 11B8;
+D126;D126;1110 1164 11B9;D126;1110 1164 11B9;
+D127;D127;1110 1164 11BA;D127;1110 1164 11BA;
+D128;D128;1110 1164 11BB;D128;1110 1164 11BB;
+D129;D129;1110 1164 11BC;D129;1110 1164 11BC;
+D12A;D12A;1110 1164 11BD;D12A;1110 1164 11BD;
+D12B;D12B;1110 1164 11BE;D12B;1110 1164 11BE;
+D12C;D12C;1110 1164 11BF;D12C;1110 1164 11BF;
+D12D;D12D;1110 1164 11C0;D12D;1110 1164 11C0;
+D12E;D12E;1110 1164 11C1;D12E;1110 1164 11C1;
+D12F;D12F;1110 1164 11C2;D12F;1110 1164 11C2;
+D130;D130;1110 1165;D130;1110 1165;
+D131;D131;1110 1165 11A8;D131;1110 1165 11A8;
+D132;D132;1110 1165 11A9;D132;1110 1165 11A9;
+D133;D133;1110 1165 11AA;D133;1110 1165 11AA;
+D134;D134;1110 1165 11AB;D134;1110 1165 11AB;
+D135;D135;1110 1165 11AC;D135;1110 1165 11AC;
+D136;D136;1110 1165 11AD;D136;1110 1165 11AD;
+D137;D137;1110 1165 11AE;D137;1110 1165 11AE;
+D138;D138;1110 1165 11AF;D138;1110 1165 11AF;
+D139;D139;1110 1165 11B0;D139;1110 1165 11B0;
+D13A;D13A;1110 1165 11B1;D13A;1110 1165 11B1;
+D13B;D13B;1110 1165 11B2;D13B;1110 1165 11B2;
+D13C;D13C;1110 1165 11B3;D13C;1110 1165 11B3;
+D13D;D13D;1110 1165 11B4;D13D;1110 1165 11B4;
+D13E;D13E;1110 1165 11B5;D13E;1110 1165 11B5;
+D13F;D13F;1110 1165 11B6;D13F;1110 1165 11B6;
+D140;D140;1110 1165 11B7;D140;1110 1165 11B7;
+D141;D141;1110 1165 11B8;D141;1110 1165 11B8;
+D142;D142;1110 1165 11B9;D142;1110 1165 11B9;
+D143;D143;1110 1165 11BA;D143;1110 1165 11BA;
+D144;D144;1110 1165 11BB;D144;1110 1165 11BB;
+D145;D145;1110 1165 11BC;D145;1110 1165 11BC;
+D146;D146;1110 1165 11BD;D146;1110 1165 11BD;
+D147;D147;1110 1165 11BE;D147;1110 1165 11BE;
+D148;D148;1110 1165 11BF;D148;1110 1165 11BF;
+D149;D149;1110 1165 11C0;D149;1110 1165 11C0;
+D14A;D14A;1110 1165 11C1;D14A;1110 1165 11C1;
+D14B;D14B;1110 1165 11C2;D14B;1110 1165 11C2;
+D14C;D14C;1110 1166;D14C;1110 1166;
+D14D;D14D;1110 1166 11A8;D14D;1110 1166 11A8;
+D14E;D14E;1110 1166 11A9;D14E;1110 1166 11A9;
+D14F;D14F;1110 1166 11AA;D14F;1110 1166 11AA;
+D150;D150;1110 1166 11AB;D150;1110 1166 11AB;
+D151;D151;1110 1166 11AC;D151;1110 1166 11AC;
+D152;D152;1110 1166 11AD;D152;1110 1166 11AD;
+D153;D153;1110 1166 11AE;D153;1110 1166 11AE;
+D154;D154;1110 1166 11AF;D154;1110 1166 11AF;
+D155;D155;1110 1166 11B0;D155;1110 1166 11B0;
+D156;D156;1110 1166 11B1;D156;1110 1166 11B1;
+D157;D157;1110 1166 11B2;D157;1110 1166 11B2;
+D158;D158;1110 1166 11B3;D158;1110 1166 11B3;
+D159;D159;1110 1166 11B4;D159;1110 1166 11B4;
+D15A;D15A;1110 1166 11B5;D15A;1110 1166 11B5;
+D15B;D15B;1110 1166 11B6;D15B;1110 1166 11B6;
+D15C;D15C;1110 1166 11B7;D15C;1110 1166 11B7;
+D15D;D15D;1110 1166 11B8;D15D;1110 1166 11B8;
+D15E;D15E;1110 1166 11B9;D15E;1110 1166 11B9;
+D15F;D15F;1110 1166 11BA;D15F;1110 1166 11BA;
+D160;D160;1110 1166 11BB;D160;1110 1166 11BB;
+D161;D161;1110 1166 11BC;D161;1110 1166 11BC;
+D162;D162;1110 1166 11BD;D162;1110 1166 11BD;
+D163;D163;1110 1166 11BE;D163;1110 1166 11BE;
+D164;D164;1110 1166 11BF;D164;1110 1166 11BF;
+D165;D165;1110 1166 11C0;D165;1110 1166 11C0;
+D166;D166;1110 1166 11C1;D166;1110 1166 11C1;
+D167;D167;1110 1166 11C2;D167;1110 1166 11C2;
+D168;D168;1110 1167;D168;1110 1167;
+D169;D169;1110 1167 11A8;D169;1110 1167 11A8;
+D16A;D16A;1110 1167 11A9;D16A;1110 1167 11A9;
+D16B;D16B;1110 1167 11AA;D16B;1110 1167 11AA;
+D16C;D16C;1110 1167 11AB;D16C;1110 1167 11AB;
+D16D;D16D;1110 1167 11AC;D16D;1110 1167 11AC;
+D16E;D16E;1110 1167 11AD;D16E;1110 1167 11AD;
+D16F;D16F;1110 1167 11AE;D16F;1110 1167 11AE;
+D170;D170;1110 1167 11AF;D170;1110 1167 11AF;
+D171;D171;1110 1167 11B0;D171;1110 1167 11B0;
+D172;D172;1110 1167 11B1;D172;1110 1167 11B1;
+D173;D173;1110 1167 11B2;D173;1110 1167 11B2;
+D174;D174;1110 1167 11B3;D174;1110 1167 11B3;
+D175;D175;1110 1167 11B4;D175;1110 1167 11B4;
+D176;D176;1110 1167 11B5;D176;1110 1167 11B5;
+D177;D177;1110 1167 11B6;D177;1110 1167 11B6;
+D178;D178;1110 1167 11B7;D178;1110 1167 11B7;
+D179;D179;1110 1167 11B8;D179;1110 1167 11B8;
+D17A;D17A;1110 1167 11B9;D17A;1110 1167 11B9;
+D17B;D17B;1110 1167 11BA;D17B;1110 1167 11BA;
+D17C;D17C;1110 1167 11BB;D17C;1110 1167 11BB;
+D17D;D17D;1110 1167 11BC;D17D;1110 1167 11BC;
+D17E;D17E;1110 1167 11BD;D17E;1110 1167 11BD;
+D17F;D17F;1110 1167 11BE;D17F;1110 1167 11BE;
+D180;D180;1110 1167 11BF;D180;1110 1167 11BF;
+D181;D181;1110 1167 11C0;D181;1110 1167 11C0;
+D182;D182;1110 1167 11C1;D182;1110 1167 11C1;
+D183;D183;1110 1167 11C2;D183;1110 1167 11C2;
+D184;D184;1110 1168;D184;1110 1168;
+D185;D185;1110 1168 11A8;D185;1110 1168 11A8;
+D186;D186;1110 1168 11A9;D186;1110 1168 11A9;
+D187;D187;1110 1168 11AA;D187;1110 1168 11AA;
+D188;D188;1110 1168 11AB;D188;1110 1168 11AB;
+D189;D189;1110 1168 11AC;D189;1110 1168 11AC;
+D18A;D18A;1110 1168 11AD;D18A;1110 1168 11AD;
+D18B;D18B;1110 1168 11AE;D18B;1110 1168 11AE;
+D18C;D18C;1110 1168 11AF;D18C;1110 1168 11AF;
+D18D;D18D;1110 1168 11B0;D18D;1110 1168 11B0;
+D18E;D18E;1110 1168 11B1;D18E;1110 1168 11B1;
+D18F;D18F;1110 1168 11B2;D18F;1110 1168 11B2;
+D190;D190;1110 1168 11B3;D190;1110 1168 11B3;
+D191;D191;1110 1168 11B4;D191;1110 1168 11B4;
+D192;D192;1110 1168 11B5;D192;1110 1168 11B5;
+D193;D193;1110 1168 11B6;D193;1110 1168 11B6;
+D194;D194;1110 1168 11B7;D194;1110 1168 11B7;
+D195;D195;1110 1168 11B8;D195;1110 1168 11B8;
+D196;D196;1110 1168 11B9;D196;1110 1168 11B9;
+D197;D197;1110 1168 11BA;D197;1110 1168 11BA;
+D198;D198;1110 1168 11BB;D198;1110 1168 11BB;
+D199;D199;1110 1168 11BC;D199;1110 1168 11BC;
+D19A;D19A;1110 1168 11BD;D19A;1110 1168 11BD;
+D19B;D19B;1110 1168 11BE;D19B;1110 1168 11BE;
+D19C;D19C;1110 1168 11BF;D19C;1110 1168 11BF;
+D19D;D19D;1110 1168 11C0;D19D;1110 1168 11C0;
+D19E;D19E;1110 1168 11C1;D19E;1110 1168 11C1;
+D19F;D19F;1110 1168 11C2;D19F;1110 1168 11C2;
+D1A0;D1A0;1110 1169;D1A0;1110 1169;
+D1A1;D1A1;1110 1169 11A8;D1A1;1110 1169 11A8;
+D1A2;D1A2;1110 1169 11A9;D1A2;1110 1169 11A9;
+D1A3;D1A3;1110 1169 11AA;D1A3;1110 1169 11AA;
+D1A4;D1A4;1110 1169 11AB;D1A4;1110 1169 11AB;
+D1A5;D1A5;1110 1169 11AC;D1A5;1110 1169 11AC;
+D1A6;D1A6;1110 1169 11AD;D1A6;1110 1169 11AD;
+D1A7;D1A7;1110 1169 11AE;D1A7;1110 1169 11AE;
+D1A8;D1A8;1110 1169 11AF;D1A8;1110 1169 11AF;
+D1A9;D1A9;1110 1169 11B0;D1A9;1110 1169 11B0;
+D1AA;D1AA;1110 1169 11B1;D1AA;1110 1169 11B1;
+D1AB;D1AB;1110 1169 11B2;D1AB;1110 1169 11B2;
+D1AC;D1AC;1110 1169 11B3;D1AC;1110 1169 11B3;
+D1AD;D1AD;1110 1169 11B4;D1AD;1110 1169 11B4;
+D1AE;D1AE;1110 1169 11B5;D1AE;1110 1169 11B5;
+D1AF;D1AF;1110 1169 11B6;D1AF;1110 1169 11B6;
+D1B0;D1B0;1110 1169 11B7;D1B0;1110 1169 11B7;
+D1B1;D1B1;1110 1169 11B8;D1B1;1110 1169 11B8;
+D1B2;D1B2;1110 1169 11B9;D1B2;1110 1169 11B9;
+D1B3;D1B3;1110 1169 11BA;D1B3;1110 1169 11BA;
+D1B4;D1B4;1110 1169 11BB;D1B4;1110 1169 11BB;
+D1B5;D1B5;1110 1169 11BC;D1B5;1110 1169 11BC;
+D1B6;D1B6;1110 1169 11BD;D1B6;1110 1169 11BD;
+D1B7;D1B7;1110 1169 11BE;D1B7;1110 1169 11BE;
+D1B8;D1B8;1110 1169 11BF;D1B8;1110 1169 11BF;
+D1B9;D1B9;1110 1169 11C0;D1B9;1110 1169 11C0;
+D1BA;D1BA;1110 1169 11C1;D1BA;1110 1169 11C1;
+D1BB;D1BB;1110 1169 11C2;D1BB;1110 1169 11C2;
+D1BC;D1BC;1110 116A;D1BC;1110 116A;
+D1BD;D1BD;1110 116A 11A8;D1BD;1110 116A 11A8;
+D1BE;D1BE;1110 116A 11A9;D1BE;1110 116A 11A9;
+D1BF;D1BF;1110 116A 11AA;D1BF;1110 116A 11AA;
+D1C0;D1C0;1110 116A 11AB;D1C0;1110 116A 11AB;
+D1C1;D1C1;1110 116A 11AC;D1C1;1110 116A 11AC;
+D1C2;D1C2;1110 116A 11AD;D1C2;1110 116A 11AD;
+D1C3;D1C3;1110 116A 11AE;D1C3;1110 116A 11AE;
+D1C4;D1C4;1110 116A 11AF;D1C4;1110 116A 11AF;
+D1C5;D1C5;1110 116A 11B0;D1C5;1110 116A 11B0;
+D1C6;D1C6;1110 116A 11B1;D1C6;1110 116A 11B1;
+D1C7;D1C7;1110 116A 11B2;D1C7;1110 116A 11B2;
+D1C8;D1C8;1110 116A 11B3;D1C8;1110 116A 11B3;
+D1C9;D1C9;1110 116A 11B4;D1C9;1110 116A 11B4;
+D1CA;D1CA;1110 116A 11B5;D1CA;1110 116A 11B5;
+D1CB;D1CB;1110 116A 11B6;D1CB;1110 116A 11B6;
+D1CC;D1CC;1110 116A 11B7;D1CC;1110 116A 11B7;
+D1CD;D1CD;1110 116A 11B8;D1CD;1110 116A 11B8;
+D1CE;D1CE;1110 116A 11B9;D1CE;1110 116A 11B9;
+D1CF;D1CF;1110 116A 11BA;D1CF;1110 116A 11BA;
+D1D0;D1D0;1110 116A 11BB;D1D0;1110 116A 11BB;
+D1D1;D1D1;1110 116A 11BC;D1D1;1110 116A 11BC;
+D1D2;D1D2;1110 116A 11BD;D1D2;1110 116A 11BD;
+D1D3;D1D3;1110 116A 11BE;D1D3;1110 116A 11BE;
+D1D4;D1D4;1110 116A 11BF;D1D4;1110 116A 11BF;
+D1D5;D1D5;1110 116A 11C0;D1D5;1110 116A 11C0;
+D1D6;D1D6;1110 116A 11C1;D1D6;1110 116A 11C1;
+D1D7;D1D7;1110 116A 11C2;D1D7;1110 116A 11C2;
+D1D8;D1D8;1110 116B;D1D8;1110 116B;
+D1D9;D1D9;1110 116B 11A8;D1D9;1110 116B 11A8;
+D1DA;D1DA;1110 116B 11A9;D1DA;1110 116B 11A9;
+D1DB;D1DB;1110 116B 11AA;D1DB;1110 116B 11AA;
+D1DC;D1DC;1110 116B 11AB;D1DC;1110 116B 11AB;
+D1DD;D1DD;1110 116B 11AC;D1DD;1110 116B 11AC;
+D1DE;D1DE;1110 116B 11AD;D1DE;1110 116B 11AD;
+D1DF;D1DF;1110 116B 11AE;D1DF;1110 116B 11AE;
+D1E0;D1E0;1110 116B 11AF;D1E0;1110 116B 11AF;
+D1E1;D1E1;1110 116B 11B0;D1E1;1110 116B 11B0;
+D1E2;D1E2;1110 116B 11B1;D1E2;1110 116B 11B1;
+D1E3;D1E3;1110 116B 11B2;D1E3;1110 116B 11B2;
+D1E4;D1E4;1110 116B 11B3;D1E4;1110 116B 11B3;
+D1E5;D1E5;1110 116B 11B4;D1E5;1110 116B 11B4;
+D1E6;D1E6;1110 116B 11B5;D1E6;1110 116B 11B5;
+D1E7;D1E7;1110 116B 11B6;D1E7;1110 116B 11B6;
+D1E8;D1E8;1110 116B 11B7;D1E8;1110 116B 11B7;
+D1E9;D1E9;1110 116B 11B8;D1E9;1110 116B 11B8;
+D1EA;D1EA;1110 116B 11B9;D1EA;1110 116B 11B9;
+D1EB;D1EB;1110 116B 11BA;D1EB;1110 116B 11BA;
+D1EC;D1EC;1110 116B 11BB;D1EC;1110 116B 11BB;
+D1ED;D1ED;1110 116B 11BC;D1ED;1110 116B 11BC;
+D1EE;D1EE;1110 116B 11BD;D1EE;1110 116B 11BD;
+D1EF;D1EF;1110 116B 11BE;D1EF;1110 116B 11BE;
+D1F0;D1F0;1110 116B 11BF;D1F0;1110 116B 11BF;
+D1F1;D1F1;1110 116B 11C0;D1F1;1110 116B 11C0;
+D1F2;D1F2;1110 116B 11C1;D1F2;1110 116B 11C1;
+D1F3;D1F3;1110 116B 11C2;D1F3;1110 116B 11C2;
+D1F4;D1F4;1110 116C;D1F4;1110 116C;
+D1F5;D1F5;1110 116C 11A8;D1F5;1110 116C 11A8;
+D1F6;D1F6;1110 116C 11A9;D1F6;1110 116C 11A9;
+D1F7;D1F7;1110 116C 11AA;D1F7;1110 116C 11AA;
+D1F8;D1F8;1110 116C 11AB;D1F8;1110 116C 11AB;
+D1F9;D1F9;1110 116C 11AC;D1F9;1110 116C 11AC;
+D1FA;D1FA;1110 116C 11AD;D1FA;1110 116C 11AD;
+D1FB;D1FB;1110 116C 11AE;D1FB;1110 116C 11AE;
+D1FC;D1FC;1110 116C 11AF;D1FC;1110 116C 11AF;
+D1FD;D1FD;1110 116C 11B0;D1FD;1110 116C 11B0;
+D1FE;D1FE;1110 116C 11B1;D1FE;1110 116C 11B1;
+D1FF;D1FF;1110 116C 11B2;D1FF;1110 116C 11B2;
+D200;D200;1110 116C 11B3;D200;1110 116C 11B3;
+D201;D201;1110 116C 11B4;D201;1110 116C 11B4;
+D202;D202;1110 116C 11B5;D202;1110 116C 11B5;
+D203;D203;1110 116C 11B6;D203;1110 116C 11B6;
+D204;D204;1110 116C 11B7;D204;1110 116C 11B7;
+D205;D205;1110 116C 11B8;D205;1110 116C 11B8;
+D206;D206;1110 116C 11B9;D206;1110 116C 11B9;
+D207;D207;1110 116C 11BA;D207;1110 116C 11BA;
+D208;D208;1110 116C 11BB;D208;1110 116C 11BB;
+D209;D209;1110 116C 11BC;D209;1110 116C 11BC;
+D20A;D20A;1110 116C 11BD;D20A;1110 116C 11BD;
+D20B;D20B;1110 116C 11BE;D20B;1110 116C 11BE;
+D20C;D20C;1110 116C 11BF;D20C;1110 116C 11BF;
+D20D;D20D;1110 116C 11C0;D20D;1110 116C 11C0;
+D20E;D20E;1110 116C 11C1;D20E;1110 116C 11C1;
+D20F;D20F;1110 116C 11C2;D20F;1110 116C 11C2;
+D210;D210;1110 116D;D210;1110 116D;
+D211;D211;1110 116D 11A8;D211;1110 116D 11A8;
+D212;D212;1110 116D 11A9;D212;1110 116D 11A9;
+D213;D213;1110 116D 11AA;D213;1110 116D 11AA;
+D214;D214;1110 116D 11AB;D214;1110 116D 11AB;
+D215;D215;1110 116D 11AC;D215;1110 116D 11AC;
+D216;D216;1110 116D 11AD;D216;1110 116D 11AD;
+D217;D217;1110 116D 11AE;D217;1110 116D 11AE;
+D218;D218;1110 116D 11AF;D218;1110 116D 11AF;
+D219;D219;1110 116D 11B0;D219;1110 116D 11B0;
+D21A;D21A;1110 116D 11B1;D21A;1110 116D 11B1;
+D21B;D21B;1110 116D 11B2;D21B;1110 116D 11B2;
+D21C;D21C;1110 116D 11B3;D21C;1110 116D 11B3;
+D21D;D21D;1110 116D 11B4;D21D;1110 116D 11B4;
+D21E;D21E;1110 116D 11B5;D21E;1110 116D 11B5;
+D21F;D21F;1110 116D 11B6;D21F;1110 116D 11B6;
+D220;D220;1110 116D 11B7;D220;1110 116D 11B7;
+D221;D221;1110 116D 11B8;D221;1110 116D 11B8;
+D222;D222;1110 116D 11B9;D222;1110 116D 11B9;
+D223;D223;1110 116D 11BA;D223;1110 116D 11BA;
+D224;D224;1110 116D 11BB;D224;1110 116D 11BB;
+D225;D225;1110 116D 11BC;D225;1110 116D 11BC;
+D226;D226;1110 116D 11BD;D226;1110 116D 11BD;
+D227;D227;1110 116D 11BE;D227;1110 116D 11BE;
+D228;D228;1110 116D 11BF;D228;1110 116D 11BF;
+D229;D229;1110 116D 11C0;D229;1110 116D 11C0;
+D22A;D22A;1110 116D 11C1;D22A;1110 116D 11C1;
+D22B;D22B;1110 116D 11C2;D22B;1110 116D 11C2;
+D22C;D22C;1110 116E;D22C;1110 116E;
+D22D;D22D;1110 116E 11A8;D22D;1110 116E 11A8;
+D22E;D22E;1110 116E 11A9;D22E;1110 116E 11A9;
+D22F;D22F;1110 116E 11AA;D22F;1110 116E 11AA;
+D230;D230;1110 116E 11AB;D230;1110 116E 11AB;
+D231;D231;1110 116E 11AC;D231;1110 116E 11AC;
+D232;D232;1110 116E 11AD;D232;1110 116E 11AD;
+D233;D233;1110 116E 11AE;D233;1110 116E 11AE;
+D234;D234;1110 116E 11AF;D234;1110 116E 11AF;
+D235;D235;1110 116E 11B0;D235;1110 116E 11B0;
+D236;D236;1110 116E 11B1;D236;1110 116E 11B1;
+D237;D237;1110 116E 11B2;D237;1110 116E 11B2;
+D238;D238;1110 116E 11B3;D238;1110 116E 11B3;
+D239;D239;1110 116E 11B4;D239;1110 116E 11B4;
+D23A;D23A;1110 116E 11B5;D23A;1110 116E 11B5;
+D23B;D23B;1110 116E 11B6;D23B;1110 116E 11B6;
+D23C;D23C;1110 116E 11B7;D23C;1110 116E 11B7;
+D23D;D23D;1110 116E 11B8;D23D;1110 116E 11B8;
+D23E;D23E;1110 116E 11B9;D23E;1110 116E 11B9;
+D23F;D23F;1110 116E 11BA;D23F;1110 116E 11BA;
+D240;D240;1110 116E 11BB;D240;1110 116E 11BB;
+D241;D241;1110 116E 11BC;D241;1110 116E 11BC;
+D242;D242;1110 116E 11BD;D242;1110 116E 11BD;
+D243;D243;1110 116E 11BE;D243;1110 116E 11BE;
+D244;D244;1110 116E 11BF;D244;1110 116E 11BF;
+D245;D245;1110 116E 11C0;D245;1110 116E 11C0;
+D246;D246;1110 116E 11C1;D246;1110 116E 11C1;
+D247;D247;1110 116E 11C2;D247;1110 116E 11C2;
+D248;D248;1110 116F;D248;1110 116F;
+D249;D249;1110 116F 11A8;D249;1110 116F 11A8;
+D24A;D24A;1110 116F 11A9;D24A;1110 116F 11A9;
+D24B;D24B;1110 116F 11AA;D24B;1110 116F 11AA;
+D24C;D24C;1110 116F 11AB;D24C;1110 116F 11AB;
+D24D;D24D;1110 116F 11AC;D24D;1110 116F 11AC;
+D24E;D24E;1110 116F 11AD;D24E;1110 116F 11AD;
+D24F;D24F;1110 116F 11AE;D24F;1110 116F 11AE;
+D250;D250;1110 116F 11AF;D250;1110 116F 11AF;
+D251;D251;1110 116F 11B0;D251;1110 116F 11B0;
+D252;D252;1110 116F 11B1;D252;1110 116F 11B1;
+D253;D253;1110 116F 11B2;D253;1110 116F 11B2;
+D254;D254;1110 116F 11B3;D254;1110 116F 11B3;
+D255;D255;1110 116F 11B4;D255;1110 116F 11B4;
+D256;D256;1110 116F 11B5;D256;1110 116F 11B5;
+D257;D257;1110 116F 11B6;D257;1110 116F 11B6;
+D258;D258;1110 116F 11B7;D258;1110 116F 11B7;
+D259;D259;1110 116F 11B8;D259;1110 116F 11B8;
+D25A;D25A;1110 116F 11B9;D25A;1110 116F 11B9;
+D25B;D25B;1110 116F 11BA;D25B;1110 116F 11BA;
+D25C;D25C;1110 116F 11BB;D25C;1110 116F 11BB;
+D25D;D25D;1110 116F 11BC;D25D;1110 116F 11BC;
+D25E;D25E;1110 116F 11BD;D25E;1110 116F 11BD;
+D25F;D25F;1110 116F 11BE;D25F;1110 116F 11BE;
+D260;D260;1110 116F 11BF;D260;1110 116F 11BF;
+D261;D261;1110 116F 11C0;D261;1110 116F 11C0;
+D262;D262;1110 116F 11C1;D262;1110 116F 11C1;
+D263;D263;1110 116F 11C2;D263;1110 116F 11C2;
+D264;D264;1110 1170;D264;1110 1170;
+D265;D265;1110 1170 11A8;D265;1110 1170 11A8;
+D266;D266;1110 1170 11A9;D266;1110 1170 11A9;
+D267;D267;1110 1170 11AA;D267;1110 1170 11AA;
+D268;D268;1110 1170 11AB;D268;1110 1170 11AB;
+D269;D269;1110 1170 11AC;D269;1110 1170 11AC;
+D26A;D26A;1110 1170 11AD;D26A;1110 1170 11AD;
+D26B;D26B;1110 1170 11AE;D26B;1110 1170 11AE;
+D26C;D26C;1110 1170 11AF;D26C;1110 1170 11AF;
+D26D;D26D;1110 1170 11B0;D26D;1110 1170 11B0;
+D26E;D26E;1110 1170 11B1;D26E;1110 1170 11B1;
+D26F;D26F;1110 1170 11B2;D26F;1110 1170 11B2;
+D270;D270;1110 1170 11B3;D270;1110 1170 11B3;
+D271;D271;1110 1170 11B4;D271;1110 1170 11B4;
+D272;D272;1110 1170 11B5;D272;1110 1170 11B5;
+D273;D273;1110 1170 11B6;D273;1110 1170 11B6;
+D274;D274;1110 1170 11B7;D274;1110 1170 11B7;
+D275;D275;1110 1170 11B8;D275;1110 1170 11B8;
+D276;D276;1110 1170 11B9;D276;1110 1170 11B9;
+D277;D277;1110 1170 11BA;D277;1110 1170 11BA;
+D278;D278;1110 1170 11BB;D278;1110 1170 11BB;
+D279;D279;1110 1170 11BC;D279;1110 1170 11BC;
+D27A;D27A;1110 1170 11BD;D27A;1110 1170 11BD;
+D27B;D27B;1110 1170 11BE;D27B;1110 1170 11BE;
+D27C;D27C;1110 1170 11BF;D27C;1110 1170 11BF;
+D27D;D27D;1110 1170 11C0;D27D;1110 1170 11C0;
+D27E;D27E;1110 1170 11C1;D27E;1110 1170 11C1;
+D27F;D27F;1110 1170 11C2;D27F;1110 1170 11C2;
+D280;D280;1110 1171;D280;1110 1171;
+D281;D281;1110 1171 11A8;D281;1110 1171 11A8;
+D282;D282;1110 1171 11A9;D282;1110 1171 11A9;
+D283;D283;1110 1171 11AA;D283;1110 1171 11AA;
+D284;D284;1110 1171 11AB;D284;1110 1171 11AB;
+D285;D285;1110 1171 11AC;D285;1110 1171 11AC;
+D286;D286;1110 1171 11AD;D286;1110 1171 11AD;
+D287;D287;1110 1171 11AE;D287;1110 1171 11AE;
+D288;D288;1110 1171 11AF;D288;1110 1171 11AF;
+D289;D289;1110 1171 11B0;D289;1110 1171 11B0;
+D28A;D28A;1110 1171 11B1;D28A;1110 1171 11B1;
+D28B;D28B;1110 1171 11B2;D28B;1110 1171 11B2;
+D28C;D28C;1110 1171 11B3;D28C;1110 1171 11B3;
+D28D;D28D;1110 1171 11B4;D28D;1110 1171 11B4;
+D28E;D28E;1110 1171 11B5;D28E;1110 1171 11B5;
+D28F;D28F;1110 1171 11B6;D28F;1110 1171 11B6;
+D290;D290;1110 1171 11B7;D290;1110 1171 11B7;
+D291;D291;1110 1171 11B8;D291;1110 1171 11B8;
+D292;D292;1110 1171 11B9;D292;1110 1171 11B9;
+D293;D293;1110 1171 11BA;D293;1110 1171 11BA;
+D294;D294;1110 1171 11BB;D294;1110 1171 11BB;
+D295;D295;1110 1171 11BC;D295;1110 1171 11BC;
+D296;D296;1110 1171 11BD;D296;1110 1171 11BD;
+D297;D297;1110 1171 11BE;D297;1110 1171 11BE;
+D298;D298;1110 1171 11BF;D298;1110 1171 11BF;
+D299;D299;1110 1171 11C0;D299;1110 1171 11C0;
+D29A;D29A;1110 1171 11C1;D29A;1110 1171 11C1;
+D29B;D29B;1110 1171 11C2;D29B;1110 1171 11C2;
+D29C;D29C;1110 1172;D29C;1110 1172;
+D29D;D29D;1110 1172 11A8;D29D;1110 1172 11A8;
+D29E;D29E;1110 1172 11A9;D29E;1110 1172 11A9;
+D29F;D29F;1110 1172 11AA;D29F;1110 1172 11AA;
+D2A0;D2A0;1110 1172 11AB;D2A0;1110 1172 11AB;
+D2A1;D2A1;1110 1172 11AC;D2A1;1110 1172 11AC;
+D2A2;D2A2;1110 1172 11AD;D2A2;1110 1172 11AD;
+D2A3;D2A3;1110 1172 11AE;D2A3;1110 1172 11AE;
+D2A4;D2A4;1110 1172 11AF;D2A4;1110 1172 11AF;
+D2A5;D2A5;1110 1172 11B0;D2A5;1110 1172 11B0;
+D2A6;D2A6;1110 1172 11B1;D2A6;1110 1172 11B1;
+D2A7;D2A7;1110 1172 11B2;D2A7;1110 1172 11B2;
+D2A8;D2A8;1110 1172 11B3;D2A8;1110 1172 11B3;
+D2A9;D2A9;1110 1172 11B4;D2A9;1110 1172 11B4;
+D2AA;D2AA;1110 1172 11B5;D2AA;1110 1172 11B5;
+D2AB;D2AB;1110 1172 11B6;D2AB;1110 1172 11B6;
+D2AC;D2AC;1110 1172 11B7;D2AC;1110 1172 11B7;
+D2AD;D2AD;1110 1172 11B8;D2AD;1110 1172 11B8;
+D2AE;D2AE;1110 1172 11B9;D2AE;1110 1172 11B9;
+D2AF;D2AF;1110 1172 11BA;D2AF;1110 1172 11BA;
+D2B0;D2B0;1110 1172 11BB;D2B0;1110 1172 11BB;
+D2B1;D2B1;1110 1172 11BC;D2B1;1110 1172 11BC;
+D2B2;D2B2;1110 1172 11BD;D2B2;1110 1172 11BD;
+D2B3;D2B3;1110 1172 11BE;D2B3;1110 1172 11BE;
+D2B4;D2B4;1110 1172 11BF;D2B4;1110 1172 11BF;
+D2B5;D2B5;1110 1172 11C0;D2B5;1110 1172 11C0;
+D2B6;D2B6;1110 1172 11C1;D2B6;1110 1172 11C1;
+D2B7;D2B7;1110 1172 11C2;D2B7;1110 1172 11C2;
+D2B8;D2B8;1110 1173;D2B8;1110 1173;
+D2B9;D2B9;1110 1173 11A8;D2B9;1110 1173 11A8;
+D2BA;D2BA;1110 1173 11A9;D2BA;1110 1173 11A9;
+D2BB;D2BB;1110 1173 11AA;D2BB;1110 1173 11AA;
+D2BC;D2BC;1110 1173 11AB;D2BC;1110 1173 11AB;
+D2BD;D2BD;1110 1173 11AC;D2BD;1110 1173 11AC;
+D2BE;D2BE;1110 1173 11AD;D2BE;1110 1173 11AD;
+D2BF;D2BF;1110 1173 11AE;D2BF;1110 1173 11AE;
+D2C0;D2C0;1110 1173 11AF;D2C0;1110 1173 11AF;
+D2C1;D2C1;1110 1173 11B0;D2C1;1110 1173 11B0;
+D2C2;D2C2;1110 1173 11B1;D2C2;1110 1173 11B1;
+D2C3;D2C3;1110 1173 11B2;D2C3;1110 1173 11B2;
+D2C4;D2C4;1110 1173 11B3;D2C4;1110 1173 11B3;
+D2C5;D2C5;1110 1173 11B4;D2C5;1110 1173 11B4;
+D2C6;D2C6;1110 1173 11B5;D2C6;1110 1173 11B5;
+D2C7;D2C7;1110 1173 11B6;D2C7;1110 1173 11B6;
+D2C8;D2C8;1110 1173 11B7;D2C8;1110 1173 11B7;
+D2C9;D2C9;1110 1173 11B8;D2C9;1110 1173 11B8;
+D2CA;D2CA;1110 1173 11B9;D2CA;1110 1173 11B9;
+D2CB;D2CB;1110 1173 11BA;D2CB;1110 1173 11BA;
+D2CC;D2CC;1110 1173 11BB;D2CC;1110 1173 11BB;
+D2CD;D2CD;1110 1173 11BC;D2CD;1110 1173 11BC;
+D2CE;D2CE;1110 1173 11BD;D2CE;1110 1173 11BD;
+D2CF;D2CF;1110 1173 11BE;D2CF;1110 1173 11BE;
+D2D0;D2D0;1110 1173 11BF;D2D0;1110 1173 11BF;
+D2D1;D2D1;1110 1173 11C0;D2D1;1110 1173 11C0;
+D2D2;D2D2;1110 1173 11C1;D2D2;1110 1173 11C1;
+D2D3;D2D3;1110 1173 11C2;D2D3;1110 1173 11C2;
+D2D4;D2D4;1110 1174;D2D4;1110 1174;
+D2D5;D2D5;1110 1174 11A8;D2D5;1110 1174 11A8;
+D2D6;D2D6;1110 1174 11A9;D2D6;1110 1174 11A9;
+D2D7;D2D7;1110 1174 11AA;D2D7;1110 1174 11AA;
+D2D8;D2D8;1110 1174 11AB;D2D8;1110 1174 11AB;
+D2D9;D2D9;1110 1174 11AC;D2D9;1110 1174 11AC;
+D2DA;D2DA;1110 1174 11AD;D2DA;1110 1174 11AD;
+D2DB;D2DB;1110 1174 11AE;D2DB;1110 1174 11AE;
+D2DC;D2DC;1110 1174 11AF;D2DC;1110 1174 11AF;
+D2DD;D2DD;1110 1174 11B0;D2DD;1110 1174 11B0;
+D2DE;D2DE;1110 1174 11B1;D2DE;1110 1174 11B1;
+D2DF;D2DF;1110 1174 11B2;D2DF;1110 1174 11B2;
+D2E0;D2E0;1110 1174 11B3;D2E0;1110 1174 11B3;
+D2E1;D2E1;1110 1174 11B4;D2E1;1110 1174 11B4;
+D2E2;D2E2;1110 1174 11B5;D2E2;1110 1174 11B5;
+D2E3;D2E3;1110 1174 11B6;D2E3;1110 1174 11B6;
+D2E4;D2E4;1110 1174 11B7;D2E4;1110 1174 11B7;
+D2E5;D2E5;1110 1174 11B8;D2E5;1110 1174 11B8;
+D2E6;D2E6;1110 1174 11B9;D2E6;1110 1174 11B9;
+D2E7;D2E7;1110 1174 11BA;D2E7;1110 1174 11BA;
+D2E8;D2E8;1110 1174 11BB;D2E8;1110 1174 11BB;
+D2E9;D2E9;1110 1174 11BC;D2E9;1110 1174 11BC;
+D2EA;D2EA;1110 1174 11BD;D2EA;1110 1174 11BD;
+D2EB;D2EB;1110 1174 11BE;D2EB;1110 1174 11BE;
+D2EC;D2EC;1110 1174 11BF;D2EC;1110 1174 11BF;
+D2ED;D2ED;1110 1174 11C0;D2ED;1110 1174 11C0;
+D2EE;D2EE;1110 1174 11C1;D2EE;1110 1174 11C1;
+D2EF;D2EF;1110 1174 11C2;D2EF;1110 1174 11C2;
+D2F0;D2F0;1110 1175;D2F0;1110 1175;
+D2F1;D2F1;1110 1175 11A8;D2F1;1110 1175 11A8;
+D2F2;D2F2;1110 1175 11A9;D2F2;1110 1175 11A9;
+D2F3;D2F3;1110 1175 11AA;D2F3;1110 1175 11AA;
+D2F4;D2F4;1110 1175 11AB;D2F4;1110 1175 11AB;
+D2F5;D2F5;1110 1175 11AC;D2F5;1110 1175 11AC;
+D2F6;D2F6;1110 1175 11AD;D2F6;1110 1175 11AD;
+D2F7;D2F7;1110 1175 11AE;D2F7;1110 1175 11AE;
+D2F8;D2F8;1110 1175 11AF;D2F8;1110 1175 11AF;
+D2F9;D2F9;1110 1175 11B0;D2F9;1110 1175 11B0;
+D2FA;D2FA;1110 1175 11B1;D2FA;1110 1175 11B1;
+D2FB;D2FB;1110 1175 11B2;D2FB;1110 1175 11B2;
+D2FC;D2FC;1110 1175 11B3;D2FC;1110 1175 11B3;
+D2FD;D2FD;1110 1175 11B4;D2FD;1110 1175 11B4;
+D2FE;D2FE;1110 1175 11B5;D2FE;1110 1175 11B5;
+D2FF;D2FF;1110 1175 11B6;D2FF;1110 1175 11B6;
+D300;D300;1110 1175 11B7;D300;1110 1175 11B7;
+D301;D301;1110 1175 11B8;D301;1110 1175 11B8;
+D302;D302;1110 1175 11B9;D302;1110 1175 11B9;
+D303;D303;1110 1175 11BA;D303;1110 1175 11BA;
+D304;D304;1110 1175 11BB;D304;1110 1175 11BB;
+D305;D305;1110 1175 11BC;D305;1110 1175 11BC;
+D306;D306;1110 1175 11BD;D306;1110 1175 11BD;
+D307;D307;1110 1175 11BE;D307;1110 1175 11BE;
+D308;D308;1110 1175 11BF;D308;1110 1175 11BF;
+D309;D309;1110 1175 11C0;D309;1110 1175 11C0;
+D30A;D30A;1110 1175 11C1;D30A;1110 1175 11C1;
+D30B;D30B;1110 1175 11C2;D30B;1110 1175 11C2;
+D30C;D30C;1111 1161;D30C;1111 1161;
+D30D;D30D;1111 1161 11A8;D30D;1111 1161 11A8;
+D30E;D30E;1111 1161 11A9;D30E;1111 1161 11A9;
+D30F;D30F;1111 1161 11AA;D30F;1111 1161 11AA;
+D310;D310;1111 1161 11AB;D310;1111 1161 11AB;
+D311;D311;1111 1161 11AC;D311;1111 1161 11AC;
+D312;D312;1111 1161 11AD;D312;1111 1161 11AD;
+D313;D313;1111 1161 11AE;D313;1111 1161 11AE;
+D314;D314;1111 1161 11AF;D314;1111 1161 11AF;
+D315;D315;1111 1161 11B0;D315;1111 1161 11B0;
+D316;D316;1111 1161 11B1;D316;1111 1161 11B1;
+D317;D317;1111 1161 11B2;D317;1111 1161 11B2;
+D318;D318;1111 1161 11B3;D318;1111 1161 11B3;
+D319;D319;1111 1161 11B4;D319;1111 1161 11B4;
+D31A;D31A;1111 1161 11B5;D31A;1111 1161 11B5;
+D31B;D31B;1111 1161 11B6;D31B;1111 1161 11B6;
+D31C;D31C;1111 1161 11B7;D31C;1111 1161 11B7;
+D31D;D31D;1111 1161 11B8;D31D;1111 1161 11B8;
+D31E;D31E;1111 1161 11B9;D31E;1111 1161 11B9;
+D31F;D31F;1111 1161 11BA;D31F;1111 1161 11BA;
+D320;D320;1111 1161 11BB;D320;1111 1161 11BB;
+D321;D321;1111 1161 11BC;D321;1111 1161 11BC;
+D322;D322;1111 1161 11BD;D322;1111 1161 11BD;
+D323;D323;1111 1161 11BE;D323;1111 1161 11BE;
+D324;D324;1111 1161 11BF;D324;1111 1161 11BF;
+D325;D325;1111 1161 11C0;D325;1111 1161 11C0;
+D326;D326;1111 1161 11C1;D326;1111 1161 11C1;
+D327;D327;1111 1161 11C2;D327;1111 1161 11C2;
+D328;D328;1111 1162;D328;1111 1162;
+D329;D329;1111 1162 11A8;D329;1111 1162 11A8;
+D32A;D32A;1111 1162 11A9;D32A;1111 1162 11A9;
+D32B;D32B;1111 1162 11AA;D32B;1111 1162 11AA;
+D32C;D32C;1111 1162 11AB;D32C;1111 1162 11AB;
+D32D;D32D;1111 1162 11AC;D32D;1111 1162 11AC;
+D32E;D32E;1111 1162 11AD;D32E;1111 1162 11AD;
+D32F;D32F;1111 1162 11AE;D32F;1111 1162 11AE;
+D330;D330;1111 1162 11AF;D330;1111 1162 11AF;
+D331;D331;1111 1162 11B0;D331;1111 1162 11B0;
+D332;D332;1111 1162 11B1;D332;1111 1162 11B1;
+D333;D333;1111 1162 11B2;D333;1111 1162 11B2;
+D334;D334;1111 1162 11B3;D334;1111 1162 11B3;
+D335;D335;1111 1162 11B4;D335;1111 1162 11B4;
+D336;D336;1111 1162 11B5;D336;1111 1162 11B5;
+D337;D337;1111 1162 11B6;D337;1111 1162 11B6;
+D338;D338;1111 1162 11B7;D338;1111 1162 11B7;
+D339;D339;1111 1162 11B8;D339;1111 1162 11B8;
+D33A;D33A;1111 1162 11B9;D33A;1111 1162 11B9;
+D33B;D33B;1111 1162 11BA;D33B;1111 1162 11BA;
+D33C;D33C;1111 1162 11BB;D33C;1111 1162 11BB;
+D33D;D33D;1111 1162 11BC;D33D;1111 1162 11BC;
+D33E;D33E;1111 1162 11BD;D33E;1111 1162 11BD;
+D33F;D33F;1111 1162 11BE;D33F;1111 1162 11BE;
+D340;D340;1111 1162 11BF;D340;1111 1162 11BF;
+D341;D341;1111 1162 11C0;D341;1111 1162 11C0;
+D342;D342;1111 1162 11C1;D342;1111 1162 11C1;
+D343;D343;1111 1162 11C2;D343;1111 1162 11C2;
+D344;D344;1111 1163;D344;1111 1163;
+D345;D345;1111 1163 11A8;D345;1111 1163 11A8;
+D346;D346;1111 1163 11A9;D346;1111 1163 11A9;
+D347;D347;1111 1163 11AA;D347;1111 1163 11AA;
+D348;D348;1111 1163 11AB;D348;1111 1163 11AB;
+D349;D349;1111 1163 11AC;D349;1111 1163 11AC;
+D34A;D34A;1111 1163 11AD;D34A;1111 1163 11AD;
+D34B;D34B;1111 1163 11AE;D34B;1111 1163 11AE;
+D34C;D34C;1111 1163 11AF;D34C;1111 1163 11AF;
+D34D;D34D;1111 1163 11B0;D34D;1111 1163 11B0;
+D34E;D34E;1111 1163 11B1;D34E;1111 1163 11B1;
+D34F;D34F;1111 1163 11B2;D34F;1111 1163 11B2;
+D350;D350;1111 1163 11B3;D350;1111 1163 11B3;
+D351;D351;1111 1163 11B4;D351;1111 1163 11B4;
+D352;D352;1111 1163 11B5;D352;1111 1163 11B5;
+D353;D353;1111 1163 11B6;D353;1111 1163 11B6;
+D354;D354;1111 1163 11B7;D354;1111 1163 11B7;
+D355;D355;1111 1163 11B8;D355;1111 1163 11B8;
+D356;D356;1111 1163 11B9;D356;1111 1163 11B9;
+D357;D357;1111 1163 11BA;D357;1111 1163 11BA;
+D358;D358;1111 1163 11BB;D358;1111 1163 11BB;
+D359;D359;1111 1163 11BC;D359;1111 1163 11BC;
+D35A;D35A;1111 1163 11BD;D35A;1111 1163 11BD;
+D35B;D35B;1111 1163 11BE;D35B;1111 1163 11BE;
+D35C;D35C;1111 1163 11BF;D35C;1111 1163 11BF;
+D35D;D35D;1111 1163 11C0;D35D;1111 1163 11C0;
+D35E;D35E;1111 1163 11C1;D35E;1111 1163 11C1;
+D35F;D35F;1111 1163 11C2;D35F;1111 1163 11C2;
+D360;D360;1111 1164;D360;1111 1164;
+D361;D361;1111 1164 11A8;D361;1111 1164 11A8;
+D362;D362;1111 1164 11A9;D362;1111 1164 11A9;
+D363;D363;1111 1164 11AA;D363;1111 1164 11AA;
+D364;D364;1111 1164 11AB;D364;1111 1164 11AB;
+D365;D365;1111 1164 11AC;D365;1111 1164 11AC;
+D366;D366;1111 1164 11AD;D366;1111 1164 11AD;
+D367;D367;1111 1164 11AE;D367;1111 1164 11AE;
+D368;D368;1111 1164 11AF;D368;1111 1164 11AF;
+D369;D369;1111 1164 11B0;D369;1111 1164 11B0;
+D36A;D36A;1111 1164 11B1;D36A;1111 1164 11B1;
+D36B;D36B;1111 1164 11B2;D36B;1111 1164 11B2;
+D36C;D36C;1111 1164 11B3;D36C;1111 1164 11B3;
+D36D;D36D;1111 1164 11B4;D36D;1111 1164 11B4;
+D36E;D36E;1111 1164 11B5;D36E;1111 1164 11B5;
+D36F;D36F;1111 1164 11B6;D36F;1111 1164 11B6;
+D370;D370;1111 1164 11B7;D370;1111 1164 11B7;
+D371;D371;1111 1164 11B8;D371;1111 1164 11B8;
+D372;D372;1111 1164 11B9;D372;1111 1164 11B9;
+D373;D373;1111 1164 11BA;D373;1111 1164 11BA;
+D374;D374;1111 1164 11BB;D374;1111 1164 11BB;
+D375;D375;1111 1164 11BC;D375;1111 1164 11BC;
+D376;D376;1111 1164 11BD;D376;1111 1164 11BD;
+D377;D377;1111 1164 11BE;D377;1111 1164 11BE;
+D378;D378;1111 1164 11BF;D378;1111 1164 11BF;
+D379;D379;1111 1164 11C0;D379;1111 1164 11C0;
+D37A;D37A;1111 1164 11C1;D37A;1111 1164 11C1;
+D37B;D37B;1111 1164 11C2;D37B;1111 1164 11C2;
+D37C;D37C;1111 1165;D37C;1111 1165;
+D37D;D37D;1111 1165 11A8;D37D;1111 1165 11A8;
+D37E;D37E;1111 1165 11A9;D37E;1111 1165 11A9;
+D37F;D37F;1111 1165 11AA;D37F;1111 1165 11AA;
+D380;D380;1111 1165 11AB;D380;1111 1165 11AB;
+D381;D381;1111 1165 11AC;D381;1111 1165 11AC;
+D382;D382;1111 1165 11AD;D382;1111 1165 11AD;
+D383;D383;1111 1165 11AE;D383;1111 1165 11AE;
+D384;D384;1111 1165 11AF;D384;1111 1165 11AF;
+D385;D385;1111 1165 11B0;D385;1111 1165 11B0;
+D386;D386;1111 1165 11B1;D386;1111 1165 11B1;
+D387;D387;1111 1165 11B2;D387;1111 1165 11B2;
+D388;D388;1111 1165 11B3;D388;1111 1165 11B3;
+D389;D389;1111 1165 11B4;D389;1111 1165 11B4;
+D38A;D38A;1111 1165 11B5;D38A;1111 1165 11B5;
+D38B;D38B;1111 1165 11B6;D38B;1111 1165 11B6;
+D38C;D38C;1111 1165 11B7;D38C;1111 1165 11B7;
+D38D;D38D;1111 1165 11B8;D38D;1111 1165 11B8;
+D38E;D38E;1111 1165 11B9;D38E;1111 1165 11B9;
+D38F;D38F;1111 1165 11BA;D38F;1111 1165 11BA;
+D390;D390;1111 1165 11BB;D390;1111 1165 11BB;
+D391;D391;1111 1165 11BC;D391;1111 1165 11BC;
+D392;D392;1111 1165 11BD;D392;1111 1165 11BD;
+D393;D393;1111 1165 11BE;D393;1111 1165 11BE;
+D394;D394;1111 1165 11BF;D394;1111 1165 11BF;
+D395;D395;1111 1165 11C0;D395;1111 1165 11C0;
+D396;D396;1111 1165 11C1;D396;1111 1165 11C1;
+D397;D397;1111 1165 11C2;D397;1111 1165 11C2;
+D398;D398;1111 1166;D398;1111 1166;
+D399;D399;1111 1166 11A8;D399;1111 1166 11A8;
+D39A;D39A;1111 1166 11A9;D39A;1111 1166 11A9;
+D39B;D39B;1111 1166 11AA;D39B;1111 1166 11AA;
+D39C;D39C;1111 1166 11AB;D39C;1111 1166 11AB;
+D39D;D39D;1111 1166 11AC;D39D;1111 1166 11AC;
+D39E;D39E;1111 1166 11AD;D39E;1111 1166 11AD;
+D39F;D39F;1111 1166 11AE;D39F;1111 1166 11AE;
+D3A0;D3A0;1111 1166 11AF;D3A0;1111 1166 11AF;
+D3A1;D3A1;1111 1166 11B0;D3A1;1111 1166 11B0;
+D3A2;D3A2;1111 1166 11B1;D3A2;1111 1166 11B1;
+D3A3;D3A3;1111 1166 11B2;D3A3;1111 1166 11B2;
+D3A4;D3A4;1111 1166 11B3;D3A4;1111 1166 11B3;
+D3A5;D3A5;1111 1166 11B4;D3A5;1111 1166 11B4;
+D3A6;D3A6;1111 1166 11B5;D3A6;1111 1166 11B5;
+D3A7;D3A7;1111 1166 11B6;D3A7;1111 1166 11B6;
+D3A8;D3A8;1111 1166 11B7;D3A8;1111 1166 11B7;
+D3A9;D3A9;1111 1166 11B8;D3A9;1111 1166 11B8;
+D3AA;D3AA;1111 1166 11B9;D3AA;1111 1166 11B9;
+D3AB;D3AB;1111 1166 11BA;D3AB;1111 1166 11BA;
+D3AC;D3AC;1111 1166 11BB;D3AC;1111 1166 11BB;
+D3AD;D3AD;1111 1166 11BC;D3AD;1111 1166 11BC;
+D3AE;D3AE;1111 1166 11BD;D3AE;1111 1166 11BD;
+D3AF;D3AF;1111 1166 11BE;D3AF;1111 1166 11BE;
+D3B0;D3B0;1111 1166 11BF;D3B0;1111 1166 11BF;
+D3B1;D3B1;1111 1166 11C0;D3B1;1111 1166 11C0;
+D3B2;D3B2;1111 1166 11C1;D3B2;1111 1166 11C1;
+D3B3;D3B3;1111 1166 11C2;D3B3;1111 1166 11C2;
+D3B4;D3B4;1111 1167;D3B4;1111 1167;
+D3B5;D3B5;1111 1167 11A8;D3B5;1111 1167 11A8;
+D3B6;D3B6;1111 1167 11A9;D3B6;1111 1167 11A9;
+D3B7;D3B7;1111 1167 11AA;D3B7;1111 1167 11AA;
+D3B8;D3B8;1111 1167 11AB;D3B8;1111 1167 11AB;
+D3B9;D3B9;1111 1167 11AC;D3B9;1111 1167 11AC;
+D3BA;D3BA;1111 1167 11AD;D3BA;1111 1167 11AD;
+D3BB;D3BB;1111 1167 11AE;D3BB;1111 1167 11AE;
+D3BC;D3BC;1111 1167 11AF;D3BC;1111 1167 11AF;
+D3BD;D3BD;1111 1167 11B0;D3BD;1111 1167 11B0;
+D3BE;D3BE;1111 1167 11B1;D3BE;1111 1167 11B1;
+D3BF;D3BF;1111 1167 11B2;D3BF;1111 1167 11B2;
+D3C0;D3C0;1111 1167 11B3;D3C0;1111 1167 11B3;
+D3C1;D3C1;1111 1167 11B4;D3C1;1111 1167 11B4;
+D3C2;D3C2;1111 1167 11B5;D3C2;1111 1167 11B5;
+D3C3;D3C3;1111 1167 11B6;D3C3;1111 1167 11B6;
+D3C4;D3C4;1111 1167 11B7;D3C4;1111 1167 11B7;
+D3C5;D3C5;1111 1167 11B8;D3C5;1111 1167 11B8;
+D3C6;D3C6;1111 1167 11B9;D3C6;1111 1167 11B9;
+D3C7;D3C7;1111 1167 11BA;D3C7;1111 1167 11BA;
+D3C8;D3C8;1111 1167 11BB;D3C8;1111 1167 11BB;
+D3C9;D3C9;1111 1167 11BC;D3C9;1111 1167 11BC;
+D3CA;D3CA;1111 1167 11BD;D3CA;1111 1167 11BD;
+D3CB;D3CB;1111 1167 11BE;D3CB;1111 1167 11BE;
+D3CC;D3CC;1111 1167 11BF;D3CC;1111 1167 11BF;
+D3CD;D3CD;1111 1167 11C0;D3CD;1111 1167 11C0;
+D3CE;D3CE;1111 1167 11C1;D3CE;1111 1167 11C1;
+D3CF;D3CF;1111 1167 11C2;D3CF;1111 1167 11C2;
+D3D0;D3D0;1111 1168;D3D0;1111 1168;
+D3D1;D3D1;1111 1168 11A8;D3D1;1111 1168 11A8;
+D3D2;D3D2;1111 1168 11A9;D3D2;1111 1168 11A9;
+D3D3;D3D3;1111 1168 11AA;D3D3;1111 1168 11AA;
+D3D4;D3D4;1111 1168 11AB;D3D4;1111 1168 11AB;
+D3D5;D3D5;1111 1168 11AC;D3D5;1111 1168 11AC;
+D3D6;D3D6;1111 1168 11AD;D3D6;1111 1168 11AD;
+D3D7;D3D7;1111 1168 11AE;D3D7;1111 1168 11AE;
+D3D8;D3D8;1111 1168 11AF;D3D8;1111 1168 11AF;
+D3D9;D3D9;1111 1168 11B0;D3D9;1111 1168 11B0;
+D3DA;D3DA;1111 1168 11B1;D3DA;1111 1168 11B1;
+D3DB;D3DB;1111 1168 11B2;D3DB;1111 1168 11B2;
+D3DC;D3DC;1111 1168 11B3;D3DC;1111 1168 11B3;
+D3DD;D3DD;1111 1168 11B4;D3DD;1111 1168 11B4;
+D3DE;D3DE;1111 1168 11B5;D3DE;1111 1168 11B5;
+D3DF;D3DF;1111 1168 11B6;D3DF;1111 1168 11B6;
+D3E0;D3E0;1111 1168 11B7;D3E0;1111 1168 11B7;
+D3E1;D3E1;1111 1168 11B8;D3E1;1111 1168 11B8;
+D3E2;D3E2;1111 1168 11B9;D3E2;1111 1168 11B9;
+D3E3;D3E3;1111 1168 11BA;D3E3;1111 1168 11BA;
+D3E4;D3E4;1111 1168 11BB;D3E4;1111 1168 11BB;
+D3E5;D3E5;1111 1168 11BC;D3E5;1111 1168 11BC;
+D3E6;D3E6;1111 1168 11BD;D3E6;1111 1168 11BD;
+D3E7;D3E7;1111 1168 11BE;D3E7;1111 1168 11BE;
+D3E8;D3E8;1111 1168 11BF;D3E8;1111 1168 11BF;
+D3E9;D3E9;1111 1168 11C0;D3E9;1111 1168 11C0;
+D3EA;D3EA;1111 1168 11C1;D3EA;1111 1168 11C1;
+D3EB;D3EB;1111 1168 11C2;D3EB;1111 1168 11C2;
+D3EC;D3EC;1111 1169;D3EC;1111 1169;
+D3ED;D3ED;1111 1169 11A8;D3ED;1111 1169 11A8;
+D3EE;D3EE;1111 1169 11A9;D3EE;1111 1169 11A9;
+D3EF;D3EF;1111 1169 11AA;D3EF;1111 1169 11AA;
+D3F0;D3F0;1111 1169 11AB;D3F0;1111 1169 11AB;
+D3F1;D3F1;1111 1169 11AC;D3F1;1111 1169 11AC;
+D3F2;D3F2;1111 1169 11AD;D3F2;1111 1169 11AD;
+D3F3;D3F3;1111 1169 11AE;D3F3;1111 1169 11AE;
+D3F4;D3F4;1111 1169 11AF;D3F4;1111 1169 11AF;
+D3F5;D3F5;1111 1169 11B0;D3F5;1111 1169 11B0;
+D3F6;D3F6;1111 1169 11B1;D3F6;1111 1169 11B1;
+D3F7;D3F7;1111 1169 11B2;D3F7;1111 1169 11B2;
+D3F8;D3F8;1111 1169 11B3;D3F8;1111 1169 11B3;
+D3F9;D3F9;1111 1169 11B4;D3F9;1111 1169 11B4;
+D3FA;D3FA;1111 1169 11B5;D3FA;1111 1169 11B5;
+D3FB;D3FB;1111 1169 11B6;D3FB;1111 1169 11B6;
+D3FC;D3FC;1111 1169 11B7;D3FC;1111 1169 11B7;
+D3FD;D3FD;1111 1169 11B8;D3FD;1111 1169 11B8;
+D3FE;D3FE;1111 1169 11B9;D3FE;1111 1169 11B9;
+D3FF;D3FF;1111 1169 11BA;D3FF;1111 1169 11BA;
+D400;D400;1111 1169 11BB;D400;1111 1169 11BB;
+D401;D401;1111 1169 11BC;D401;1111 1169 11BC;
+D402;D402;1111 1169 11BD;D402;1111 1169 11BD;
+D403;D403;1111 1169 11BE;D403;1111 1169 11BE;
+D404;D404;1111 1169 11BF;D404;1111 1169 11BF;
+D405;D405;1111 1169 11C0;D405;1111 1169 11C0;
+D406;D406;1111 1169 11C1;D406;1111 1169 11C1;
+D407;D407;1111 1169 11C2;D407;1111 1169 11C2;
+D408;D408;1111 116A;D408;1111 116A;
+D409;D409;1111 116A 11A8;D409;1111 116A 11A8;
+D40A;D40A;1111 116A 11A9;D40A;1111 116A 11A9;
+D40B;D40B;1111 116A 11AA;D40B;1111 116A 11AA;
+D40C;D40C;1111 116A 11AB;D40C;1111 116A 11AB;
+D40D;D40D;1111 116A 11AC;D40D;1111 116A 11AC;
+D40E;D40E;1111 116A 11AD;D40E;1111 116A 11AD;
+D40F;D40F;1111 116A 11AE;D40F;1111 116A 11AE;
+D410;D410;1111 116A 11AF;D410;1111 116A 11AF;
+D411;D411;1111 116A 11B0;D411;1111 116A 11B0;
+D412;D412;1111 116A 11B1;D412;1111 116A 11B1;
+D413;D413;1111 116A 11B2;D413;1111 116A 11B2;
+D414;D414;1111 116A 11B3;D414;1111 116A 11B3;
+D415;D415;1111 116A 11B4;D415;1111 116A 11B4;
+D416;D416;1111 116A 11B5;D416;1111 116A 11B5;
+D417;D417;1111 116A 11B6;D417;1111 116A 11B6;
+D418;D418;1111 116A 11B7;D418;1111 116A 11B7;
+D419;D419;1111 116A 11B8;D419;1111 116A 11B8;
+D41A;D41A;1111 116A 11B9;D41A;1111 116A 11B9;
+D41B;D41B;1111 116A 11BA;D41B;1111 116A 11BA;
+D41C;D41C;1111 116A 11BB;D41C;1111 116A 11BB;
+D41D;D41D;1111 116A 11BC;D41D;1111 116A 11BC;
+D41E;D41E;1111 116A 11BD;D41E;1111 116A 11BD;
+D41F;D41F;1111 116A 11BE;D41F;1111 116A 11BE;
+D420;D420;1111 116A 11BF;D420;1111 116A 11BF;
+D421;D421;1111 116A 11C0;D421;1111 116A 11C0;
+D422;D422;1111 116A 11C1;D422;1111 116A 11C1;
+D423;D423;1111 116A 11C2;D423;1111 116A 11C2;
+D424;D424;1111 116B;D424;1111 116B;
+D425;D425;1111 116B 11A8;D425;1111 116B 11A8;
+D426;D426;1111 116B 11A9;D426;1111 116B 11A9;
+D427;D427;1111 116B 11AA;D427;1111 116B 11AA;
+D428;D428;1111 116B 11AB;D428;1111 116B 11AB;
+D429;D429;1111 116B 11AC;D429;1111 116B 11AC;
+D42A;D42A;1111 116B 11AD;D42A;1111 116B 11AD;
+D42B;D42B;1111 116B 11AE;D42B;1111 116B 11AE;
+D42C;D42C;1111 116B 11AF;D42C;1111 116B 11AF;
+D42D;D42D;1111 116B 11B0;D42D;1111 116B 11B0;
+D42E;D42E;1111 116B 11B1;D42E;1111 116B 11B1;
+D42F;D42F;1111 116B 11B2;D42F;1111 116B 11B2;
+D430;D430;1111 116B 11B3;D430;1111 116B 11B3;
+D431;D431;1111 116B 11B4;D431;1111 116B 11B4;
+D432;D432;1111 116B 11B5;D432;1111 116B 11B5;
+D433;D433;1111 116B 11B6;D433;1111 116B 11B6;
+D434;D434;1111 116B 11B7;D434;1111 116B 11B7;
+D435;D435;1111 116B 11B8;D435;1111 116B 11B8;
+D436;D436;1111 116B 11B9;D436;1111 116B 11B9;
+D437;D437;1111 116B 11BA;D437;1111 116B 11BA;
+D438;D438;1111 116B 11BB;D438;1111 116B 11BB;
+D439;D439;1111 116B 11BC;D439;1111 116B 11BC;
+D43A;D43A;1111 116B 11BD;D43A;1111 116B 11BD;
+D43B;D43B;1111 116B 11BE;D43B;1111 116B 11BE;
+D43C;D43C;1111 116B 11BF;D43C;1111 116B 11BF;
+D43D;D43D;1111 116B 11C0;D43D;1111 116B 11C0;
+D43E;D43E;1111 116B 11C1;D43E;1111 116B 11C1;
+D43F;D43F;1111 116B 11C2;D43F;1111 116B 11C2;
+D440;D440;1111 116C;D440;1111 116C;
+D441;D441;1111 116C 11A8;D441;1111 116C 11A8;
+D442;D442;1111 116C 11A9;D442;1111 116C 11A9;
+D443;D443;1111 116C 11AA;D443;1111 116C 11AA;
+D444;D444;1111 116C 11AB;D444;1111 116C 11AB;
+D445;D445;1111 116C 11AC;D445;1111 116C 11AC;
+D446;D446;1111 116C 11AD;D446;1111 116C 11AD;
+D447;D447;1111 116C 11AE;D447;1111 116C 11AE;
+D448;D448;1111 116C 11AF;D448;1111 116C 11AF;
+D449;D449;1111 116C 11B0;D449;1111 116C 11B0;
+D44A;D44A;1111 116C 11B1;D44A;1111 116C 11B1;
+D44B;D44B;1111 116C 11B2;D44B;1111 116C 11B2;
+D44C;D44C;1111 116C 11B3;D44C;1111 116C 11B3;
+D44D;D44D;1111 116C 11B4;D44D;1111 116C 11B4;
+D44E;D44E;1111 116C 11B5;D44E;1111 116C 11B5;
+D44F;D44F;1111 116C 11B6;D44F;1111 116C 11B6;
+D450;D450;1111 116C 11B7;D450;1111 116C 11B7;
+D451;D451;1111 116C 11B8;D451;1111 116C 11B8;
+D452;D452;1111 116C 11B9;D452;1111 116C 11B9;
+D453;D453;1111 116C 11BA;D453;1111 116C 11BA;
+D454;D454;1111 116C 11BB;D454;1111 116C 11BB;
+D455;D455;1111 116C 11BC;D455;1111 116C 11BC;
+D456;D456;1111 116C 11BD;D456;1111 116C 11BD;
+D457;D457;1111 116C 11BE;D457;1111 116C 11BE;
+D458;D458;1111 116C 11BF;D458;1111 116C 11BF;
+D459;D459;1111 116C 11C0;D459;1111 116C 11C0;
+D45A;D45A;1111 116C 11C1;D45A;1111 116C 11C1;
+D45B;D45B;1111 116C 11C2;D45B;1111 116C 11C2;
+D45C;D45C;1111 116D;D45C;1111 116D;
+D45D;D45D;1111 116D 11A8;D45D;1111 116D 11A8;
+D45E;D45E;1111 116D 11A9;D45E;1111 116D 11A9;
+D45F;D45F;1111 116D 11AA;D45F;1111 116D 11AA;
+D460;D460;1111 116D 11AB;D460;1111 116D 11AB;
+D461;D461;1111 116D 11AC;D461;1111 116D 11AC;
+D462;D462;1111 116D 11AD;D462;1111 116D 11AD;
+D463;D463;1111 116D 11AE;D463;1111 116D 11AE;
+D464;D464;1111 116D 11AF;D464;1111 116D 11AF;
+D465;D465;1111 116D 11B0;D465;1111 116D 11B0;
+D466;D466;1111 116D 11B1;D466;1111 116D 11B1;
+D467;D467;1111 116D 11B2;D467;1111 116D 11B2;
+D468;D468;1111 116D 11B3;D468;1111 116D 11B3;
+D469;D469;1111 116D 11B4;D469;1111 116D 11B4;
+D46A;D46A;1111 116D 11B5;D46A;1111 116D 11B5;
+D46B;D46B;1111 116D 11B6;D46B;1111 116D 11B6;
+D46C;D46C;1111 116D 11B7;D46C;1111 116D 11B7;
+D46D;D46D;1111 116D 11B8;D46D;1111 116D 11B8;
+D46E;D46E;1111 116D 11B9;D46E;1111 116D 11B9;
+D46F;D46F;1111 116D 11BA;D46F;1111 116D 11BA;
+D470;D470;1111 116D 11BB;D470;1111 116D 11BB;
+D471;D471;1111 116D 11BC;D471;1111 116D 11BC;
+D472;D472;1111 116D 11BD;D472;1111 116D 11BD;
+D473;D473;1111 116D 11BE;D473;1111 116D 11BE;
+D474;D474;1111 116D 11BF;D474;1111 116D 11BF;
+D475;D475;1111 116D 11C0;D475;1111 116D 11C0;
+D476;D476;1111 116D 11C1;D476;1111 116D 11C1;
+D477;D477;1111 116D 11C2;D477;1111 116D 11C2;
+D478;D478;1111 116E;D478;1111 116E;
+D479;D479;1111 116E 11A8;D479;1111 116E 11A8;
+D47A;D47A;1111 116E 11A9;D47A;1111 116E 11A9;
+D47B;D47B;1111 116E 11AA;D47B;1111 116E 11AA;
+D47C;D47C;1111 116E 11AB;D47C;1111 116E 11AB;
+D47D;D47D;1111 116E 11AC;D47D;1111 116E 11AC;
+D47E;D47E;1111 116E 11AD;D47E;1111 116E 11AD;
+D47F;D47F;1111 116E 11AE;D47F;1111 116E 11AE;
+D480;D480;1111 116E 11AF;D480;1111 116E 11AF;
+D481;D481;1111 116E 11B0;D481;1111 116E 11B0;
+D482;D482;1111 116E 11B1;D482;1111 116E 11B1;
+D483;D483;1111 116E 11B2;D483;1111 116E 11B2;
+D484;D484;1111 116E 11B3;D484;1111 116E 11B3;
+D485;D485;1111 116E 11B4;D485;1111 116E 11B4;
+D486;D486;1111 116E 11B5;D486;1111 116E 11B5;
+D487;D487;1111 116E 11B6;D487;1111 116E 11B6;
+D488;D488;1111 116E 11B7;D488;1111 116E 11B7;
+D489;D489;1111 116E 11B8;D489;1111 116E 11B8;
+D48A;D48A;1111 116E 11B9;D48A;1111 116E 11B9;
+D48B;D48B;1111 116E 11BA;D48B;1111 116E 11BA;
+D48C;D48C;1111 116E 11BB;D48C;1111 116E 11BB;
+D48D;D48D;1111 116E 11BC;D48D;1111 116E 11BC;
+D48E;D48E;1111 116E 11BD;D48E;1111 116E 11BD;
+D48F;D48F;1111 116E 11BE;D48F;1111 116E 11BE;
+D490;D490;1111 116E 11BF;D490;1111 116E 11BF;
+D491;D491;1111 116E 11C0;D491;1111 116E 11C0;
+D492;D492;1111 116E 11C1;D492;1111 116E 11C1;
+D493;D493;1111 116E 11C2;D493;1111 116E 11C2;
+D494;D494;1111 116F;D494;1111 116F;
+D495;D495;1111 116F 11A8;D495;1111 116F 11A8;
+D496;D496;1111 116F 11A9;D496;1111 116F 11A9;
+D497;D497;1111 116F 11AA;D497;1111 116F 11AA;
+D498;D498;1111 116F 11AB;D498;1111 116F 11AB;
+D499;D499;1111 116F 11AC;D499;1111 116F 11AC;
+D49A;D49A;1111 116F 11AD;D49A;1111 116F 11AD;
+D49B;D49B;1111 116F 11AE;D49B;1111 116F 11AE;
+D49C;D49C;1111 116F 11AF;D49C;1111 116F 11AF;
+D49D;D49D;1111 116F 11B0;D49D;1111 116F 11B0;
+D49E;D49E;1111 116F 11B1;D49E;1111 116F 11B1;
+D49F;D49F;1111 116F 11B2;D49F;1111 116F 11B2;
+D4A0;D4A0;1111 116F 11B3;D4A0;1111 116F 11B3;
+D4A1;D4A1;1111 116F 11B4;D4A1;1111 116F 11B4;
+D4A2;D4A2;1111 116F 11B5;D4A2;1111 116F 11B5;
+D4A3;D4A3;1111 116F 11B6;D4A3;1111 116F 11B6;
+D4A4;D4A4;1111 116F 11B7;D4A4;1111 116F 11B7;
+D4A5;D4A5;1111 116F 11B8;D4A5;1111 116F 11B8;
+D4A6;D4A6;1111 116F 11B9;D4A6;1111 116F 11B9;
+D4A7;D4A7;1111 116F 11BA;D4A7;1111 116F 11BA;
+D4A8;D4A8;1111 116F 11BB;D4A8;1111 116F 11BB;
+D4A9;D4A9;1111 116F 11BC;D4A9;1111 116F 11BC;
+D4AA;D4AA;1111 116F 11BD;D4AA;1111 116F 11BD;
+D4AB;D4AB;1111 116F 11BE;D4AB;1111 116F 11BE;
+D4AC;D4AC;1111 116F 11BF;D4AC;1111 116F 11BF;
+D4AD;D4AD;1111 116F 11C0;D4AD;1111 116F 11C0;
+D4AE;D4AE;1111 116F 11C1;D4AE;1111 116F 11C1;
+D4AF;D4AF;1111 116F 11C2;D4AF;1111 116F 11C2;
+D4B0;D4B0;1111 1170;D4B0;1111 1170;
+D4B1;D4B1;1111 1170 11A8;D4B1;1111 1170 11A8;
+D4B2;D4B2;1111 1170 11A9;D4B2;1111 1170 11A9;
+D4B3;D4B3;1111 1170 11AA;D4B3;1111 1170 11AA;
+D4B4;D4B4;1111 1170 11AB;D4B4;1111 1170 11AB;
+D4B5;D4B5;1111 1170 11AC;D4B5;1111 1170 11AC;
+D4B6;D4B6;1111 1170 11AD;D4B6;1111 1170 11AD;
+D4B7;D4B7;1111 1170 11AE;D4B7;1111 1170 11AE;
+D4B8;D4B8;1111 1170 11AF;D4B8;1111 1170 11AF;
+D4B9;D4B9;1111 1170 11B0;D4B9;1111 1170 11B0;
+D4BA;D4BA;1111 1170 11B1;D4BA;1111 1170 11B1;
+D4BB;D4BB;1111 1170 11B2;D4BB;1111 1170 11B2;
+D4BC;D4BC;1111 1170 11B3;D4BC;1111 1170 11B3;
+D4BD;D4BD;1111 1170 11B4;D4BD;1111 1170 11B4;
+D4BE;D4BE;1111 1170 11B5;D4BE;1111 1170 11B5;
+D4BF;D4BF;1111 1170 11B6;D4BF;1111 1170 11B6;
+D4C0;D4C0;1111 1170 11B7;D4C0;1111 1170 11B7;
+D4C1;D4C1;1111 1170 11B8;D4C1;1111 1170 11B8;
+D4C2;D4C2;1111 1170 11B9;D4C2;1111 1170 11B9;
+D4C3;D4C3;1111 1170 11BA;D4C3;1111 1170 11BA;
+D4C4;D4C4;1111 1170 11BB;D4C4;1111 1170 11BB;
+D4C5;D4C5;1111 1170 11BC;D4C5;1111 1170 11BC;
+D4C6;D4C6;1111 1170 11BD;D4C6;1111 1170 11BD;
+D4C7;D4C7;1111 1170 11BE;D4C7;1111 1170 11BE;
+D4C8;D4C8;1111 1170 11BF;D4C8;1111 1170 11BF;
+D4C9;D4C9;1111 1170 11C0;D4C9;1111 1170 11C0;
+D4CA;D4CA;1111 1170 11C1;D4CA;1111 1170 11C1;
+D4CB;D4CB;1111 1170 11C2;D4CB;1111 1170 11C2;
+D4CC;D4CC;1111 1171;D4CC;1111 1171;
+D4CD;D4CD;1111 1171 11A8;D4CD;1111 1171 11A8;
+D4CE;D4CE;1111 1171 11A9;D4CE;1111 1171 11A9;
+D4CF;D4CF;1111 1171 11AA;D4CF;1111 1171 11AA;
+D4D0;D4D0;1111 1171 11AB;D4D0;1111 1171 11AB;
+D4D1;D4D1;1111 1171 11AC;D4D1;1111 1171 11AC;
+D4D2;D4D2;1111 1171 11AD;D4D2;1111 1171 11AD;
+D4D3;D4D3;1111 1171 11AE;D4D3;1111 1171 11AE;
+D4D4;D4D4;1111 1171 11AF;D4D4;1111 1171 11AF;
+D4D5;D4D5;1111 1171 11B0;D4D5;1111 1171 11B0;
+D4D6;D4D6;1111 1171 11B1;D4D6;1111 1171 11B1;
+D4D7;D4D7;1111 1171 11B2;D4D7;1111 1171 11B2;
+D4D8;D4D8;1111 1171 11B3;D4D8;1111 1171 11B3;
+D4D9;D4D9;1111 1171 11B4;D4D9;1111 1171 11B4;
+D4DA;D4DA;1111 1171 11B5;D4DA;1111 1171 11B5;
+D4DB;D4DB;1111 1171 11B6;D4DB;1111 1171 11B6;
+D4DC;D4DC;1111 1171 11B7;D4DC;1111 1171 11B7;
+D4DD;D4DD;1111 1171 11B8;D4DD;1111 1171 11B8;
+D4DE;D4DE;1111 1171 11B9;D4DE;1111 1171 11B9;
+D4DF;D4DF;1111 1171 11BA;D4DF;1111 1171 11BA;
+D4E0;D4E0;1111 1171 11BB;D4E0;1111 1171 11BB;
+D4E1;D4E1;1111 1171 11BC;D4E1;1111 1171 11BC;
+D4E2;D4E2;1111 1171 11BD;D4E2;1111 1171 11BD;
+D4E3;D4E3;1111 1171 11BE;D4E3;1111 1171 11BE;
+D4E4;D4E4;1111 1171 11BF;D4E4;1111 1171 11BF;
+D4E5;D4E5;1111 1171 11C0;D4E5;1111 1171 11C0;
+D4E6;D4E6;1111 1171 11C1;D4E6;1111 1171 11C1;
+D4E7;D4E7;1111 1171 11C2;D4E7;1111 1171 11C2;
+D4E8;D4E8;1111 1172;D4E8;1111 1172;
+D4E9;D4E9;1111 1172 11A8;D4E9;1111 1172 11A8;
+D4EA;D4EA;1111 1172 11A9;D4EA;1111 1172 11A9;
+D4EB;D4EB;1111 1172 11AA;D4EB;1111 1172 11AA;
+D4EC;D4EC;1111 1172 11AB;D4EC;1111 1172 11AB;
+D4ED;D4ED;1111 1172 11AC;D4ED;1111 1172 11AC;
+D4EE;D4EE;1111 1172 11AD;D4EE;1111 1172 11AD;
+D4EF;D4EF;1111 1172 11AE;D4EF;1111 1172 11AE;
+D4F0;D4F0;1111 1172 11AF;D4F0;1111 1172 11AF;
+D4F1;D4F1;1111 1172 11B0;D4F1;1111 1172 11B0;
+D4F2;D4F2;1111 1172 11B1;D4F2;1111 1172 11B1;
+D4F3;D4F3;1111 1172 11B2;D4F3;1111 1172 11B2;
+D4F4;D4F4;1111 1172 11B3;D4F4;1111 1172 11B3;
+D4F5;D4F5;1111 1172 11B4;D4F5;1111 1172 11B4;
+D4F6;D4F6;1111 1172 11B5;D4F6;1111 1172 11B5;
+D4F7;D4F7;1111 1172 11B6;D4F7;1111 1172 11B6;
+D4F8;D4F8;1111 1172 11B7;D4F8;1111 1172 11B7;
+D4F9;D4F9;1111 1172 11B8;D4F9;1111 1172 11B8;
+D4FA;D4FA;1111 1172 11B9;D4FA;1111 1172 11B9;
+D4FB;D4FB;1111 1172 11BA;D4FB;1111 1172 11BA;
+D4FC;D4FC;1111 1172 11BB;D4FC;1111 1172 11BB;
+D4FD;D4FD;1111 1172 11BC;D4FD;1111 1172 11BC;
+D4FE;D4FE;1111 1172 11BD;D4FE;1111 1172 11BD;
+D4FF;D4FF;1111 1172 11BE;D4FF;1111 1172 11BE;
+D500;D500;1111 1172 11BF;D500;1111 1172 11BF;
+D501;D501;1111 1172 11C0;D501;1111 1172 11C0;
+D502;D502;1111 1172 11C1;D502;1111 1172 11C1;
+D503;D503;1111 1172 11C2;D503;1111 1172 11C2;
+D504;D504;1111 1173;D504;1111 1173;
+D505;D505;1111 1173 11A8;D505;1111 1173 11A8;
+D506;D506;1111 1173 11A9;D506;1111 1173 11A9;
+D507;D507;1111 1173 11AA;D507;1111 1173 11AA;
+D508;D508;1111 1173 11AB;D508;1111 1173 11AB;
+D509;D509;1111 1173 11AC;D509;1111 1173 11AC;
+D50A;D50A;1111 1173 11AD;D50A;1111 1173 11AD;
+D50B;D50B;1111 1173 11AE;D50B;1111 1173 11AE;
+D50C;D50C;1111 1173 11AF;D50C;1111 1173 11AF;
+D50D;D50D;1111 1173 11B0;D50D;1111 1173 11B0;
+D50E;D50E;1111 1173 11B1;D50E;1111 1173 11B1;
+D50F;D50F;1111 1173 11B2;D50F;1111 1173 11B2;
+D510;D510;1111 1173 11B3;D510;1111 1173 11B3;
+D511;D511;1111 1173 11B4;D511;1111 1173 11B4;
+D512;D512;1111 1173 11B5;D512;1111 1173 11B5;
+D513;D513;1111 1173 11B6;D513;1111 1173 11B6;
+D514;D514;1111 1173 11B7;D514;1111 1173 11B7;
+D515;D515;1111 1173 11B8;D515;1111 1173 11B8;
+D516;D516;1111 1173 11B9;D516;1111 1173 11B9;
+D517;D517;1111 1173 11BA;D517;1111 1173 11BA;
+D518;D518;1111 1173 11BB;D518;1111 1173 11BB;
+D519;D519;1111 1173 11BC;D519;1111 1173 11BC;
+D51A;D51A;1111 1173 11BD;D51A;1111 1173 11BD;
+D51B;D51B;1111 1173 11BE;D51B;1111 1173 11BE;
+D51C;D51C;1111 1173 11BF;D51C;1111 1173 11BF;
+D51D;D51D;1111 1173 11C0;D51D;1111 1173 11C0;
+D51E;D51E;1111 1173 11C1;D51E;1111 1173 11C1;
+D51F;D51F;1111 1173 11C2;D51F;1111 1173 11C2;
+D520;D520;1111 1174;D520;1111 1174;
+D521;D521;1111 1174 11A8;D521;1111 1174 11A8;
+D522;D522;1111 1174 11A9;D522;1111 1174 11A9;
+D523;D523;1111 1174 11AA;D523;1111 1174 11AA;
+D524;D524;1111 1174 11AB;D524;1111 1174 11AB;
+D525;D525;1111 1174 11AC;D525;1111 1174 11AC;
+D526;D526;1111 1174 11AD;D526;1111 1174 11AD;
+D527;D527;1111 1174 11AE;D527;1111 1174 11AE;
+D528;D528;1111 1174 11AF;D528;1111 1174 11AF;
+D529;D529;1111 1174 11B0;D529;1111 1174 11B0;
+D52A;D52A;1111 1174 11B1;D52A;1111 1174 11B1;
+D52B;D52B;1111 1174 11B2;D52B;1111 1174 11B2;
+D52C;D52C;1111 1174 11B3;D52C;1111 1174 11B3;
+D52D;D52D;1111 1174 11B4;D52D;1111 1174 11B4;
+D52E;D52E;1111 1174 11B5;D52E;1111 1174 11B5;
+D52F;D52F;1111 1174 11B6;D52F;1111 1174 11B6;
+D530;D530;1111 1174 11B7;D530;1111 1174 11B7;
+D531;D531;1111 1174 11B8;D531;1111 1174 11B8;
+D532;D532;1111 1174 11B9;D532;1111 1174 11B9;
+D533;D533;1111 1174 11BA;D533;1111 1174 11BA;
+D534;D534;1111 1174 11BB;D534;1111 1174 11BB;
+D535;D535;1111 1174 11BC;D535;1111 1174 11BC;
+D536;D536;1111 1174 11BD;D536;1111 1174 11BD;
+D537;D537;1111 1174 11BE;D537;1111 1174 11BE;
+D538;D538;1111 1174 11BF;D538;1111 1174 11BF;
+D539;D539;1111 1174 11C0;D539;1111 1174 11C0;
+D53A;D53A;1111 1174 11C1;D53A;1111 1174 11C1;
+D53B;D53B;1111 1174 11C2;D53B;1111 1174 11C2;
+D53C;D53C;1111 1175;D53C;1111 1175;
+D53D;D53D;1111 1175 11A8;D53D;1111 1175 11A8;
+D53E;D53E;1111 1175 11A9;D53E;1111 1175 11A9;
+D53F;D53F;1111 1175 11AA;D53F;1111 1175 11AA;
+D540;D540;1111 1175 11AB;D540;1111 1175 11AB;
+D541;D541;1111 1175 11AC;D541;1111 1175 11AC;
+D542;D542;1111 1175 11AD;D542;1111 1175 11AD;
+D543;D543;1111 1175 11AE;D543;1111 1175 11AE;
+D544;D544;1111 1175 11AF;D544;1111 1175 11AF;
+D545;D545;1111 1175 11B0;D545;1111 1175 11B0;
+D546;D546;1111 1175 11B1;D546;1111 1175 11B1;
+D547;D547;1111 1175 11B2;D547;1111 1175 11B2;
+D548;D548;1111 1175 11B3;D548;1111 1175 11B3;
+D549;D549;1111 1175 11B4;D549;1111 1175 11B4;
+D54A;D54A;1111 1175 11B5;D54A;1111 1175 11B5;
+D54B;D54B;1111 1175 11B6;D54B;1111 1175 11B6;
+D54C;D54C;1111 1175 11B7;D54C;1111 1175 11B7;
+D54D;D54D;1111 1175 11B8;D54D;1111 1175 11B8;
+D54E;D54E;1111 1175 11B9;D54E;1111 1175 11B9;
+D54F;D54F;1111 1175 11BA;D54F;1111 1175 11BA;
+D550;D550;1111 1175 11BB;D550;1111 1175 11BB;
+D551;D551;1111 1175 11BC;D551;1111 1175 11BC;
+D552;D552;1111 1175 11BD;D552;1111 1175 11BD;
+D553;D553;1111 1175 11BE;D553;1111 1175 11BE;
+D554;D554;1111 1175 11BF;D554;1111 1175 11BF;
+D555;D555;1111 1175 11C0;D555;1111 1175 11C0;
+D556;D556;1111 1175 11C1;D556;1111 1175 11C1;
+D557;D557;1111 1175 11C2;D557;1111 1175 11C2;
+D558;D558;1112 1161;D558;1112 1161;
+D559;D559;1112 1161 11A8;D559;1112 1161 11A8;
+D55A;D55A;1112 1161 11A9;D55A;1112 1161 11A9;
+D55B;D55B;1112 1161 11AA;D55B;1112 1161 11AA;
+D55C;D55C;1112 1161 11AB;D55C;1112 1161 11AB;
+D55D;D55D;1112 1161 11AC;D55D;1112 1161 11AC;
+D55E;D55E;1112 1161 11AD;D55E;1112 1161 11AD;
+D55F;D55F;1112 1161 11AE;D55F;1112 1161 11AE;
+D560;D560;1112 1161 11AF;D560;1112 1161 11AF;
+D561;D561;1112 1161 11B0;D561;1112 1161 11B0;
+D562;D562;1112 1161 11B1;D562;1112 1161 11B1;
+D563;D563;1112 1161 11B2;D563;1112 1161 11B2;
+D564;D564;1112 1161 11B3;D564;1112 1161 11B3;
+D565;D565;1112 1161 11B4;D565;1112 1161 11B4;
+D566;D566;1112 1161 11B5;D566;1112 1161 11B5;
+D567;D567;1112 1161 11B6;D567;1112 1161 11B6;
+D568;D568;1112 1161 11B7;D568;1112 1161 11B7;
+D569;D569;1112 1161 11B8;D569;1112 1161 11B8;
+D56A;D56A;1112 1161 11B9;D56A;1112 1161 11B9;
+D56B;D56B;1112 1161 11BA;D56B;1112 1161 11BA;
+D56C;D56C;1112 1161 11BB;D56C;1112 1161 11BB;
+D56D;D56D;1112 1161 11BC;D56D;1112 1161 11BC;
+D56E;D56E;1112 1161 11BD;D56E;1112 1161 11BD;
+D56F;D56F;1112 1161 11BE;D56F;1112 1161 11BE;
+D570;D570;1112 1161 11BF;D570;1112 1161 11BF;
+D571;D571;1112 1161 11C0;D571;1112 1161 11C0;
+D572;D572;1112 1161 11C1;D572;1112 1161 11C1;
+D573;D573;1112 1161 11C2;D573;1112 1161 11C2;
+D574;D574;1112 1162;D574;1112 1162;
+D575;D575;1112 1162 11A8;D575;1112 1162 11A8;
+D576;D576;1112 1162 11A9;D576;1112 1162 11A9;
+D577;D577;1112 1162 11AA;D577;1112 1162 11AA;
+D578;D578;1112 1162 11AB;D578;1112 1162 11AB;
+D579;D579;1112 1162 11AC;D579;1112 1162 11AC;
+D57A;D57A;1112 1162 11AD;D57A;1112 1162 11AD;
+D57B;D57B;1112 1162 11AE;D57B;1112 1162 11AE;
+D57C;D57C;1112 1162 11AF;D57C;1112 1162 11AF;
+D57D;D57D;1112 1162 11B0;D57D;1112 1162 11B0;
+D57E;D57E;1112 1162 11B1;D57E;1112 1162 11B1;
+D57F;D57F;1112 1162 11B2;D57F;1112 1162 11B2;
+D580;D580;1112 1162 11B3;D580;1112 1162 11B3;
+D581;D581;1112 1162 11B4;D581;1112 1162 11B4;
+D582;D582;1112 1162 11B5;D582;1112 1162 11B5;
+D583;D583;1112 1162 11B6;D583;1112 1162 11B6;
+D584;D584;1112 1162 11B7;D584;1112 1162 11B7;
+D585;D585;1112 1162 11B8;D585;1112 1162 11B8;
+D586;D586;1112 1162 11B9;D586;1112 1162 11B9;
+D587;D587;1112 1162 11BA;D587;1112 1162 11BA;
+D588;D588;1112 1162 11BB;D588;1112 1162 11BB;
+D589;D589;1112 1162 11BC;D589;1112 1162 11BC;
+D58A;D58A;1112 1162 11BD;D58A;1112 1162 11BD;
+D58B;D58B;1112 1162 11BE;D58B;1112 1162 11BE;
+D58C;D58C;1112 1162 11BF;D58C;1112 1162 11BF;
+D58D;D58D;1112 1162 11C0;D58D;1112 1162 11C0;
+D58E;D58E;1112 1162 11C1;D58E;1112 1162 11C1;
+D58F;D58F;1112 1162 11C2;D58F;1112 1162 11C2;
+D590;D590;1112 1163;D590;1112 1163;
+D591;D591;1112 1163 11A8;D591;1112 1163 11A8;
+D592;D592;1112 1163 11A9;D592;1112 1163 11A9;
+D593;D593;1112 1163 11AA;D593;1112 1163 11AA;
+D594;D594;1112 1163 11AB;D594;1112 1163 11AB;
+D595;D595;1112 1163 11AC;D595;1112 1163 11AC;
+D596;D596;1112 1163 11AD;D596;1112 1163 11AD;
+D597;D597;1112 1163 11AE;D597;1112 1163 11AE;
+D598;D598;1112 1163 11AF;D598;1112 1163 11AF;
+D599;D599;1112 1163 11B0;D599;1112 1163 11B0;
+D59A;D59A;1112 1163 11B1;D59A;1112 1163 11B1;
+D59B;D59B;1112 1163 11B2;D59B;1112 1163 11B2;
+D59C;D59C;1112 1163 11B3;D59C;1112 1163 11B3;
+D59D;D59D;1112 1163 11B4;D59D;1112 1163 11B4;
+D59E;D59E;1112 1163 11B5;D59E;1112 1163 11B5;
+D59F;D59F;1112 1163 11B6;D59F;1112 1163 11B6;
+D5A0;D5A0;1112 1163 11B7;D5A0;1112 1163 11B7;
+D5A1;D5A1;1112 1163 11B8;D5A1;1112 1163 11B8;
+D5A2;D5A2;1112 1163 11B9;D5A2;1112 1163 11B9;
+D5A3;D5A3;1112 1163 11BA;D5A3;1112 1163 11BA;
+D5A4;D5A4;1112 1163 11BB;D5A4;1112 1163 11BB;
+D5A5;D5A5;1112 1163 11BC;D5A5;1112 1163 11BC;
+D5A6;D5A6;1112 1163 11BD;D5A6;1112 1163 11BD;
+D5A7;D5A7;1112 1163 11BE;D5A7;1112 1163 11BE;
+D5A8;D5A8;1112 1163 11BF;D5A8;1112 1163 11BF;
+D5A9;D5A9;1112 1163 11C0;D5A9;1112 1163 11C0;
+D5AA;D5AA;1112 1163 11C1;D5AA;1112 1163 11C1;
+D5AB;D5AB;1112 1163 11C2;D5AB;1112 1163 11C2;
+D5AC;D5AC;1112 1164;D5AC;1112 1164;
+D5AD;D5AD;1112 1164 11A8;D5AD;1112 1164 11A8;
+D5AE;D5AE;1112 1164 11A9;D5AE;1112 1164 11A9;
+D5AF;D5AF;1112 1164 11AA;D5AF;1112 1164 11AA;
+D5B0;D5B0;1112 1164 11AB;D5B0;1112 1164 11AB;
+D5B1;D5B1;1112 1164 11AC;D5B1;1112 1164 11AC;
+D5B2;D5B2;1112 1164 11AD;D5B2;1112 1164 11AD;
+D5B3;D5B3;1112 1164 11AE;D5B3;1112 1164 11AE;
+D5B4;D5B4;1112 1164 11AF;D5B4;1112 1164 11AF;
+D5B5;D5B5;1112 1164 11B0;D5B5;1112 1164 11B0;
+D5B6;D5B6;1112 1164 11B1;D5B6;1112 1164 11B1;
+D5B7;D5B7;1112 1164 11B2;D5B7;1112 1164 11B2;
+D5B8;D5B8;1112 1164 11B3;D5B8;1112 1164 11B3;
+D5B9;D5B9;1112 1164 11B4;D5B9;1112 1164 11B4;
+D5BA;D5BA;1112 1164 11B5;D5BA;1112 1164 11B5;
+D5BB;D5BB;1112 1164 11B6;D5BB;1112 1164 11B6;
+D5BC;D5BC;1112 1164 11B7;D5BC;1112 1164 11B7;
+D5BD;D5BD;1112 1164 11B8;D5BD;1112 1164 11B8;
+D5BE;D5BE;1112 1164 11B9;D5BE;1112 1164 11B9;
+D5BF;D5BF;1112 1164 11BA;D5BF;1112 1164 11BA;
+D5C0;D5C0;1112 1164 11BB;D5C0;1112 1164 11BB;
+D5C1;D5C1;1112 1164 11BC;D5C1;1112 1164 11BC;
+D5C2;D5C2;1112 1164 11BD;D5C2;1112 1164 11BD;
+D5C3;D5C3;1112 1164 11BE;D5C3;1112 1164 11BE;
+D5C4;D5C4;1112 1164 11BF;D5C4;1112 1164 11BF;
+D5C5;D5C5;1112 1164 11C0;D5C5;1112 1164 11C0;
+D5C6;D5C6;1112 1164 11C1;D5C6;1112 1164 11C1;
+D5C7;D5C7;1112 1164 11C2;D5C7;1112 1164 11C2;
+D5C8;D5C8;1112 1165;D5C8;1112 1165;
+D5C9;D5C9;1112 1165 11A8;D5C9;1112 1165 11A8;
+D5CA;D5CA;1112 1165 11A9;D5CA;1112 1165 11A9;
+D5CB;D5CB;1112 1165 11AA;D5CB;1112 1165 11AA;
+D5CC;D5CC;1112 1165 11AB;D5CC;1112 1165 11AB;
+D5CD;D5CD;1112 1165 11AC;D5CD;1112 1165 11AC;
+D5CE;D5CE;1112 1165 11AD;D5CE;1112 1165 11AD;
+D5CF;D5CF;1112 1165 11AE;D5CF;1112 1165 11AE;
+D5D0;D5D0;1112 1165 11AF;D5D0;1112 1165 11AF;
+D5D1;D5D1;1112 1165 11B0;D5D1;1112 1165 11B0;
+D5D2;D5D2;1112 1165 11B1;D5D2;1112 1165 11B1;
+D5D3;D5D3;1112 1165 11B2;D5D3;1112 1165 11B2;
+D5D4;D5D4;1112 1165 11B3;D5D4;1112 1165 11B3;
+D5D5;D5D5;1112 1165 11B4;D5D5;1112 1165 11B4;
+D5D6;D5D6;1112 1165 11B5;D5D6;1112 1165 11B5;
+D5D7;D5D7;1112 1165 11B6;D5D7;1112 1165 11B6;
+D5D8;D5D8;1112 1165 11B7;D5D8;1112 1165 11B7;
+D5D9;D5D9;1112 1165 11B8;D5D9;1112 1165 11B8;
+D5DA;D5DA;1112 1165 11B9;D5DA;1112 1165 11B9;
+D5DB;D5DB;1112 1165 11BA;D5DB;1112 1165 11BA;
+D5DC;D5DC;1112 1165 11BB;D5DC;1112 1165 11BB;
+D5DD;D5DD;1112 1165 11BC;D5DD;1112 1165 11BC;
+D5DE;D5DE;1112 1165 11BD;D5DE;1112 1165 11BD;
+D5DF;D5DF;1112 1165 11BE;D5DF;1112 1165 11BE;
+D5E0;D5E0;1112 1165 11BF;D5E0;1112 1165 11BF;
+D5E1;D5E1;1112 1165 11C0;D5E1;1112 1165 11C0;
+D5E2;D5E2;1112 1165 11C1;D5E2;1112 1165 11C1;
+D5E3;D5E3;1112 1165 11C2;D5E3;1112 1165 11C2;
+D5E4;D5E4;1112 1166;D5E4;1112 1166;
+D5E5;D5E5;1112 1166 11A8;D5E5;1112 1166 11A8;
+D5E6;D5E6;1112 1166 11A9;D5E6;1112 1166 11A9;
+D5E7;D5E7;1112 1166 11AA;D5E7;1112 1166 11AA;
+D5E8;D5E8;1112 1166 11AB;D5E8;1112 1166 11AB;
+D5E9;D5E9;1112 1166 11AC;D5E9;1112 1166 11AC;
+D5EA;D5EA;1112 1166 11AD;D5EA;1112 1166 11AD;
+D5EB;D5EB;1112 1166 11AE;D5EB;1112 1166 11AE;
+D5EC;D5EC;1112 1166 11AF;D5EC;1112 1166 11AF;
+D5ED;D5ED;1112 1166 11B0;D5ED;1112 1166 11B0;
+D5EE;D5EE;1112 1166 11B1;D5EE;1112 1166 11B1;
+D5EF;D5EF;1112 1166 11B2;D5EF;1112 1166 11B2;
+D5F0;D5F0;1112 1166 11B3;D5F0;1112 1166 11B3;
+D5F1;D5F1;1112 1166 11B4;D5F1;1112 1166 11B4;
+D5F2;D5F2;1112 1166 11B5;D5F2;1112 1166 11B5;
+D5F3;D5F3;1112 1166 11B6;D5F3;1112 1166 11B6;
+D5F4;D5F4;1112 1166 11B7;D5F4;1112 1166 11B7;
+D5F5;D5F5;1112 1166 11B8;D5F5;1112 1166 11B8;
+D5F6;D5F6;1112 1166 11B9;D5F6;1112 1166 11B9;
+D5F7;D5F7;1112 1166 11BA;D5F7;1112 1166 11BA;
+D5F8;D5F8;1112 1166 11BB;D5F8;1112 1166 11BB;
+D5F9;D5F9;1112 1166 11BC;D5F9;1112 1166 11BC;
+D5FA;D5FA;1112 1166 11BD;D5FA;1112 1166 11BD;
+D5FB;D5FB;1112 1166 11BE;D5FB;1112 1166 11BE;
+D5FC;D5FC;1112 1166 11BF;D5FC;1112 1166 11BF;
+D5FD;D5FD;1112 1166 11C0;D5FD;1112 1166 11C0;
+D5FE;D5FE;1112 1166 11C1;D5FE;1112 1166 11C1;
+D5FF;D5FF;1112 1166 11C2;D5FF;1112 1166 11C2;
+D600;D600;1112 1167;D600;1112 1167;
+D601;D601;1112 1167 11A8;D601;1112 1167 11A8;
+D602;D602;1112 1167 11A9;D602;1112 1167 11A9;
+D603;D603;1112 1167 11AA;D603;1112 1167 11AA;
+D604;D604;1112 1167 11AB;D604;1112 1167 11AB;
+D605;D605;1112 1167 11AC;D605;1112 1167 11AC;
+D606;D606;1112 1167 11AD;D606;1112 1167 11AD;
+D607;D607;1112 1167 11AE;D607;1112 1167 11AE;
+D608;D608;1112 1167 11AF;D608;1112 1167 11AF;
+D609;D609;1112 1167 11B0;D609;1112 1167 11B0;
+D60A;D60A;1112 1167 11B1;D60A;1112 1167 11B1;
+D60B;D60B;1112 1167 11B2;D60B;1112 1167 11B2;
+D60C;D60C;1112 1167 11B3;D60C;1112 1167 11B3;
+D60D;D60D;1112 1167 11B4;D60D;1112 1167 11B4;
+D60E;D60E;1112 1167 11B5;D60E;1112 1167 11B5;
+D60F;D60F;1112 1167 11B6;D60F;1112 1167 11B6;
+D610;D610;1112 1167 11B7;D610;1112 1167 11B7;
+D611;D611;1112 1167 11B8;D611;1112 1167 11B8;
+D612;D612;1112 1167 11B9;D612;1112 1167 11B9;
+D613;D613;1112 1167 11BA;D613;1112 1167 11BA;
+D614;D614;1112 1167 11BB;D614;1112 1167 11BB;
+D615;D615;1112 1167 11BC;D615;1112 1167 11BC;
+D616;D616;1112 1167 11BD;D616;1112 1167 11BD;
+D617;D617;1112 1167 11BE;D617;1112 1167 11BE;
+D618;D618;1112 1167 11BF;D618;1112 1167 11BF;
+D619;D619;1112 1167 11C0;D619;1112 1167 11C0;
+D61A;D61A;1112 1167 11C1;D61A;1112 1167 11C1;
+D61B;D61B;1112 1167 11C2;D61B;1112 1167 11C2;
+D61C;D61C;1112 1168;D61C;1112 1168;
+D61D;D61D;1112 1168 11A8;D61D;1112 1168 11A8;
+D61E;D61E;1112 1168 11A9;D61E;1112 1168 11A9;
+D61F;D61F;1112 1168 11AA;D61F;1112 1168 11AA;
+D620;D620;1112 1168 11AB;D620;1112 1168 11AB;
+D621;D621;1112 1168 11AC;D621;1112 1168 11AC;
+D622;D622;1112 1168 11AD;D622;1112 1168 11AD;
+D623;D623;1112 1168 11AE;D623;1112 1168 11AE;
+D624;D624;1112 1168 11AF;D624;1112 1168 11AF;
+D625;D625;1112 1168 11B0;D625;1112 1168 11B0;
+D626;D626;1112 1168 11B1;D626;1112 1168 11B1;
+D627;D627;1112 1168 11B2;D627;1112 1168 11B2;
+D628;D628;1112 1168 11B3;D628;1112 1168 11B3;
+D629;D629;1112 1168 11B4;D629;1112 1168 11B4;
+D62A;D62A;1112 1168 11B5;D62A;1112 1168 11B5;
+D62B;D62B;1112 1168 11B6;D62B;1112 1168 11B6;
+D62C;D62C;1112 1168 11B7;D62C;1112 1168 11B7;
+D62D;D62D;1112 1168 11B8;D62D;1112 1168 11B8;
+D62E;D62E;1112 1168 11B9;D62E;1112 1168 11B9;
+D62F;D62F;1112 1168 11BA;D62F;1112 1168 11BA;
+D630;D630;1112 1168 11BB;D630;1112 1168 11BB;
+D631;D631;1112 1168 11BC;D631;1112 1168 11BC;
+D632;D632;1112 1168 11BD;D632;1112 1168 11BD;
+D633;D633;1112 1168 11BE;D633;1112 1168 11BE;
+D634;D634;1112 1168 11BF;D634;1112 1168 11BF;
+D635;D635;1112 1168 11C0;D635;1112 1168 11C0;
+D636;D636;1112 1168 11C1;D636;1112 1168 11C1;
+D637;D637;1112 1168 11C2;D637;1112 1168 11C2;
+D638;D638;1112 1169;D638;1112 1169;
+D639;D639;1112 1169 11A8;D639;1112 1169 11A8;
+D63A;D63A;1112 1169 11A9;D63A;1112 1169 11A9;
+D63B;D63B;1112 1169 11AA;D63B;1112 1169 11AA;
+D63C;D63C;1112 1169 11AB;D63C;1112 1169 11AB;
+D63D;D63D;1112 1169 11AC;D63D;1112 1169 11AC;
+D63E;D63E;1112 1169 11AD;D63E;1112 1169 11AD;
+D63F;D63F;1112 1169 11AE;D63F;1112 1169 11AE;
+D640;D640;1112 1169 11AF;D640;1112 1169 11AF;
+D641;D641;1112 1169 11B0;D641;1112 1169 11B0;
+D642;D642;1112 1169 11B1;D642;1112 1169 11B1;
+D643;D643;1112 1169 11B2;D643;1112 1169 11B2;
+D644;D644;1112 1169 11B3;D644;1112 1169 11B3;
+D645;D645;1112 1169 11B4;D645;1112 1169 11B4;
+D646;D646;1112 1169 11B5;D646;1112 1169 11B5;
+D647;D647;1112 1169 11B6;D647;1112 1169 11B6;
+D648;D648;1112 1169 11B7;D648;1112 1169 11B7;
+D649;D649;1112 1169 11B8;D649;1112 1169 11B8;
+D64A;D64A;1112 1169 11B9;D64A;1112 1169 11B9;
+D64B;D64B;1112 1169 11BA;D64B;1112 1169 11BA;
+D64C;D64C;1112 1169 11BB;D64C;1112 1169 11BB;
+D64D;D64D;1112 1169 11BC;D64D;1112 1169 11BC;
+D64E;D64E;1112 1169 11BD;D64E;1112 1169 11BD;
+D64F;D64F;1112 1169 11BE;D64F;1112 1169 11BE;
+D650;D650;1112 1169 11BF;D650;1112 1169 11BF;
+D651;D651;1112 1169 11C0;D651;1112 1169 11C0;
+D652;D652;1112 1169 11C1;D652;1112 1169 11C1;
+D653;D653;1112 1169 11C2;D653;1112 1169 11C2;
+D654;D654;1112 116A;D654;1112 116A;
+D655;D655;1112 116A 11A8;D655;1112 116A 11A8;
+D656;D656;1112 116A 11A9;D656;1112 116A 11A9;
+D657;D657;1112 116A 11AA;D657;1112 116A 11AA;
+D658;D658;1112 116A 11AB;D658;1112 116A 11AB;
+D659;D659;1112 116A 11AC;D659;1112 116A 11AC;
+D65A;D65A;1112 116A 11AD;D65A;1112 116A 11AD;
+D65B;D65B;1112 116A 11AE;D65B;1112 116A 11AE;
+D65C;D65C;1112 116A 11AF;D65C;1112 116A 11AF;
+D65D;D65D;1112 116A 11B0;D65D;1112 116A 11B0;
+D65E;D65E;1112 116A 11B1;D65E;1112 116A 11B1;
+D65F;D65F;1112 116A 11B2;D65F;1112 116A 11B2;
+D660;D660;1112 116A 11B3;D660;1112 116A 11B3;
+D661;D661;1112 116A 11B4;D661;1112 116A 11B4;
+D662;D662;1112 116A 11B5;D662;1112 116A 11B5;
+D663;D663;1112 116A 11B6;D663;1112 116A 11B6;
+D664;D664;1112 116A 11B7;D664;1112 116A 11B7;
+D665;D665;1112 116A 11B8;D665;1112 116A 11B8;
+D666;D666;1112 116A 11B9;D666;1112 116A 11B9;
+D667;D667;1112 116A 11BA;D667;1112 116A 11BA;
+D668;D668;1112 116A 11BB;D668;1112 116A 11BB;
+D669;D669;1112 116A 11BC;D669;1112 116A 11BC;
+D66A;D66A;1112 116A 11BD;D66A;1112 116A 11BD;
+D66B;D66B;1112 116A 11BE;D66B;1112 116A 11BE;
+D66C;D66C;1112 116A 11BF;D66C;1112 116A 11BF;
+D66D;D66D;1112 116A 11C0;D66D;1112 116A 11C0;
+D66E;D66E;1112 116A 11C1;D66E;1112 116A 11C1;
+D66F;D66F;1112 116A 11C2;D66F;1112 116A 11C2;
+D670;D670;1112 116B;D670;1112 116B;
+D671;D671;1112 116B 11A8;D671;1112 116B 11A8;
+D672;D672;1112 116B 11A9;D672;1112 116B 11A9;
+D673;D673;1112 116B 11AA;D673;1112 116B 11AA;
+D674;D674;1112 116B 11AB;D674;1112 116B 11AB;
+D675;D675;1112 116B 11AC;D675;1112 116B 11AC;
+D676;D676;1112 116B 11AD;D676;1112 116B 11AD;
+D677;D677;1112 116B 11AE;D677;1112 116B 11AE;
+D678;D678;1112 116B 11AF;D678;1112 116B 11AF;
+D679;D679;1112 116B 11B0;D679;1112 116B 11B0;
+D67A;D67A;1112 116B 11B1;D67A;1112 116B 11B1;
+D67B;D67B;1112 116B 11B2;D67B;1112 116B 11B2;
+D67C;D67C;1112 116B 11B3;D67C;1112 116B 11B3;
+D67D;D67D;1112 116B 11B4;D67D;1112 116B 11B4;
+D67E;D67E;1112 116B 11B5;D67E;1112 116B 11B5;
+D67F;D67F;1112 116B 11B6;D67F;1112 116B 11B6;
+D680;D680;1112 116B 11B7;D680;1112 116B 11B7;
+D681;D681;1112 116B 11B8;D681;1112 116B 11B8;
+D682;D682;1112 116B 11B9;D682;1112 116B 11B9;
+D683;D683;1112 116B 11BA;D683;1112 116B 11BA;
+D684;D684;1112 116B 11BB;D684;1112 116B 11BB;
+D685;D685;1112 116B 11BC;D685;1112 116B 11BC;
+D686;D686;1112 116B 11BD;D686;1112 116B 11BD;
+D687;D687;1112 116B 11BE;D687;1112 116B 11BE;
+D688;D688;1112 116B 11BF;D688;1112 116B 11BF;
+D689;D689;1112 116B 11C0;D689;1112 116B 11C0;
+D68A;D68A;1112 116B 11C1;D68A;1112 116B 11C1;
+D68B;D68B;1112 116B 11C2;D68B;1112 116B 11C2;
+D68C;D68C;1112 116C;D68C;1112 116C;
+D68D;D68D;1112 116C 11A8;D68D;1112 116C 11A8;
+D68E;D68E;1112 116C 11A9;D68E;1112 116C 11A9;
+D68F;D68F;1112 116C 11AA;D68F;1112 116C 11AA;
+D690;D690;1112 116C 11AB;D690;1112 116C 11AB;
+D691;D691;1112 116C 11AC;D691;1112 116C 11AC;
+D692;D692;1112 116C 11AD;D692;1112 116C 11AD;
+D693;D693;1112 116C 11AE;D693;1112 116C 11AE;
+D694;D694;1112 116C 11AF;D694;1112 116C 11AF;
+D695;D695;1112 116C 11B0;D695;1112 116C 11B0;
+D696;D696;1112 116C 11B1;D696;1112 116C 11B1;
+D697;D697;1112 116C 11B2;D697;1112 116C 11B2;
+D698;D698;1112 116C 11B3;D698;1112 116C 11B3;
+D699;D699;1112 116C 11B4;D699;1112 116C 11B4;
+D69A;D69A;1112 116C 11B5;D69A;1112 116C 11B5;
+D69B;D69B;1112 116C 11B6;D69B;1112 116C 11B6;
+D69C;D69C;1112 116C 11B7;D69C;1112 116C 11B7;
+D69D;D69D;1112 116C 11B8;D69D;1112 116C 11B8;
+D69E;D69E;1112 116C 11B9;D69E;1112 116C 11B9;
+D69F;D69F;1112 116C 11BA;D69F;1112 116C 11BA;
+D6A0;D6A0;1112 116C 11BB;D6A0;1112 116C 11BB;
+D6A1;D6A1;1112 116C 11BC;D6A1;1112 116C 11BC;
+D6A2;D6A2;1112 116C 11BD;D6A2;1112 116C 11BD;
+D6A3;D6A3;1112 116C 11BE;D6A3;1112 116C 11BE;
+D6A4;D6A4;1112 116C 11BF;D6A4;1112 116C 11BF;
+D6A5;D6A5;1112 116C 11C0;D6A5;1112 116C 11C0;
+D6A6;D6A6;1112 116C 11C1;D6A6;1112 116C 11C1;
+D6A7;D6A7;1112 116C 11C2;D6A7;1112 116C 11C2;
+D6A8;D6A8;1112 116D;D6A8;1112 116D;
+D6A9;D6A9;1112 116D 11A8;D6A9;1112 116D 11A8;
+D6AA;D6AA;1112 116D 11A9;D6AA;1112 116D 11A9;
+D6AB;D6AB;1112 116D 11AA;D6AB;1112 116D 11AA;
+D6AC;D6AC;1112 116D 11AB;D6AC;1112 116D 11AB;
+D6AD;D6AD;1112 116D 11AC;D6AD;1112 116D 11AC;
+D6AE;D6AE;1112 116D 11AD;D6AE;1112 116D 11AD;
+D6AF;D6AF;1112 116D 11AE;D6AF;1112 116D 11AE;
+D6B0;D6B0;1112 116D 11AF;D6B0;1112 116D 11AF;
+D6B1;D6B1;1112 116D 11B0;D6B1;1112 116D 11B0;
+D6B2;D6B2;1112 116D 11B1;D6B2;1112 116D 11B1;
+D6B3;D6B3;1112 116D 11B2;D6B3;1112 116D 11B2;
+D6B4;D6B4;1112 116D 11B3;D6B4;1112 116D 11B3;
+D6B5;D6B5;1112 116D 11B4;D6B5;1112 116D 11B4;
+D6B6;D6B6;1112 116D 11B5;D6B6;1112 116D 11B5;
+D6B7;D6B7;1112 116D 11B6;D6B7;1112 116D 11B6;
+D6B8;D6B8;1112 116D 11B7;D6B8;1112 116D 11B7;
+D6B9;D6B9;1112 116D 11B8;D6B9;1112 116D 11B8;
+D6BA;D6BA;1112 116D 11B9;D6BA;1112 116D 11B9;
+D6BB;D6BB;1112 116D 11BA;D6BB;1112 116D 11BA;
+D6BC;D6BC;1112 116D 11BB;D6BC;1112 116D 11BB;
+D6BD;D6BD;1112 116D 11BC;D6BD;1112 116D 11BC;
+D6BE;D6BE;1112 116D 11BD;D6BE;1112 116D 11BD;
+D6BF;D6BF;1112 116D 11BE;D6BF;1112 116D 11BE;
+D6C0;D6C0;1112 116D 11BF;D6C0;1112 116D 11BF;
+D6C1;D6C1;1112 116D 11C0;D6C1;1112 116D 11C0;
+D6C2;D6C2;1112 116D 11C1;D6C2;1112 116D 11C1;
+D6C3;D6C3;1112 116D 11C2;D6C3;1112 116D 11C2;
+D6C4;D6C4;1112 116E;D6C4;1112 116E;
+D6C5;D6C5;1112 116E 11A8;D6C5;1112 116E 11A8;
+D6C6;D6C6;1112 116E 11A9;D6C6;1112 116E 11A9;
+D6C7;D6C7;1112 116E 11AA;D6C7;1112 116E 11AA;
+D6C8;D6C8;1112 116E 11AB;D6C8;1112 116E 11AB;
+D6C9;D6C9;1112 116E 11AC;D6C9;1112 116E 11AC;
+D6CA;D6CA;1112 116E 11AD;D6CA;1112 116E 11AD;
+D6CB;D6CB;1112 116E 11AE;D6CB;1112 116E 11AE;
+D6CC;D6CC;1112 116E 11AF;D6CC;1112 116E 11AF;
+D6CD;D6CD;1112 116E 11B0;D6CD;1112 116E 11B0;
+D6CE;D6CE;1112 116E 11B1;D6CE;1112 116E 11B1;
+D6CF;D6CF;1112 116E 11B2;D6CF;1112 116E 11B2;
+D6D0;D6D0;1112 116E 11B3;D6D0;1112 116E 11B3;
+D6D1;D6D1;1112 116E 11B4;D6D1;1112 116E 11B4;
+D6D2;D6D2;1112 116E 11B5;D6D2;1112 116E 11B5;
+D6D3;D6D3;1112 116E 11B6;D6D3;1112 116E 11B6;
+D6D4;D6D4;1112 116E 11B7;D6D4;1112 116E 11B7;
+D6D5;D6D5;1112 116E 11B8;D6D5;1112 116E 11B8;
+D6D6;D6D6;1112 116E 11B9;D6D6;1112 116E 11B9;
+D6D7;D6D7;1112 116E 11BA;D6D7;1112 116E 11BA;
+D6D8;D6D8;1112 116E 11BB;D6D8;1112 116E 11BB;
+D6D9;D6D9;1112 116E 11BC;D6D9;1112 116E 11BC;
+D6DA;D6DA;1112 116E 11BD;D6DA;1112 116E 11BD;
+D6DB;D6DB;1112 116E 11BE;D6DB;1112 116E 11BE;
+D6DC;D6DC;1112 116E 11BF;D6DC;1112 116E 11BF;
+D6DD;D6DD;1112 116E 11C0;D6DD;1112 116E 11C0;
+D6DE;D6DE;1112 116E 11C1;D6DE;1112 116E 11C1;
+D6DF;D6DF;1112 116E 11C2;D6DF;1112 116E 11C2;
+D6E0;D6E0;1112 116F;D6E0;1112 116F;
+D6E1;D6E1;1112 116F 11A8;D6E1;1112 116F 11A8;
+D6E2;D6E2;1112 116F 11A9;D6E2;1112 116F 11A9;
+D6E3;D6E3;1112 116F 11AA;D6E3;1112 116F 11AA;
+D6E4;D6E4;1112 116F 11AB;D6E4;1112 116F 11AB;
+D6E5;D6E5;1112 116F 11AC;D6E5;1112 116F 11AC;
+D6E6;D6E6;1112 116F 11AD;D6E6;1112 116F 11AD;
+D6E7;D6E7;1112 116F 11AE;D6E7;1112 116F 11AE;
+D6E8;D6E8;1112 116F 11AF;D6E8;1112 116F 11AF;
+D6E9;D6E9;1112 116F 11B0;D6E9;1112 116F 11B0;
+D6EA;D6EA;1112 116F 11B1;D6EA;1112 116F 11B1;
+D6EB;D6EB;1112 116F 11B2;D6EB;1112 116F 11B2;
+D6EC;D6EC;1112 116F 11B3;D6EC;1112 116F 11B3;
+D6ED;D6ED;1112 116F 11B4;D6ED;1112 116F 11B4;
+D6EE;D6EE;1112 116F 11B5;D6EE;1112 116F 11B5;
+D6EF;D6EF;1112 116F 11B6;D6EF;1112 116F 11B6;
+D6F0;D6F0;1112 116F 11B7;D6F0;1112 116F 11B7;
+D6F1;D6F1;1112 116F 11B8;D6F1;1112 116F 11B8;
+D6F2;D6F2;1112 116F 11B9;D6F2;1112 116F 11B9;
+D6F3;D6F3;1112 116F 11BA;D6F3;1112 116F 11BA;
+D6F4;D6F4;1112 116F 11BB;D6F4;1112 116F 11BB;
+D6F5;D6F5;1112 116F 11BC;D6F5;1112 116F 11BC;
+D6F6;D6F6;1112 116F 11BD;D6F6;1112 116F 11BD;
+D6F7;D6F7;1112 116F 11BE;D6F7;1112 116F 11BE;
+D6F8;D6F8;1112 116F 11BF;D6F8;1112 116F 11BF;
+D6F9;D6F9;1112 116F 11C0;D6F9;1112 116F 11C0;
+D6FA;D6FA;1112 116F 11C1;D6FA;1112 116F 11C1;
+D6FB;D6FB;1112 116F 11C2;D6FB;1112 116F 11C2;
+D6FC;D6FC;1112 1170;D6FC;1112 1170;
+D6FD;D6FD;1112 1170 11A8;D6FD;1112 1170 11A8;
+D6FE;D6FE;1112 1170 11A9;D6FE;1112 1170 11A9;
+D6FF;D6FF;1112 1170 11AA;D6FF;1112 1170 11AA;
+D700;D700;1112 1170 11AB;D700;1112 1170 11AB;
+D701;D701;1112 1170 11AC;D701;1112 1170 11AC;
+D702;D702;1112 1170 11AD;D702;1112 1170 11AD;
+D703;D703;1112 1170 11AE;D703;1112 1170 11AE;
+D704;D704;1112 1170 11AF;D704;1112 1170 11AF;
+D705;D705;1112 1170 11B0;D705;1112 1170 11B0;
+D706;D706;1112 1170 11B1;D706;1112 1170 11B1;
+D707;D707;1112 1170 11B2;D707;1112 1170 11B2;
+D708;D708;1112 1170 11B3;D708;1112 1170 11B3;
+D709;D709;1112 1170 11B4;D709;1112 1170 11B4;
+D70A;D70A;1112 1170 11B5;D70A;1112 1170 11B5;
+D70B;D70B;1112 1170 11B6;D70B;1112 1170 11B6;
+D70C;D70C;1112 1170 11B7;D70C;1112 1170 11B7;
+D70D;D70D;1112 1170 11B8;D70D;1112 1170 11B8;
+D70E;D70E;1112 1170 11B9;D70E;1112 1170 11B9;
+D70F;D70F;1112 1170 11BA;D70F;1112 1170 11BA;
+D710;D710;1112 1170 11BB;D710;1112 1170 11BB;
+D711;D711;1112 1170 11BC;D711;1112 1170 11BC;
+D712;D712;1112 1170 11BD;D712;1112 1170 11BD;
+D713;D713;1112 1170 11BE;D713;1112 1170 11BE;
+D714;D714;1112 1170 11BF;D714;1112 1170 11BF;
+D715;D715;1112 1170 11C0;D715;1112 1170 11C0;
+D716;D716;1112 1170 11C1;D716;1112 1170 11C1;
+D717;D717;1112 1170 11C2;D717;1112 1170 11C2;
+D718;D718;1112 1171;D718;1112 1171;
+D719;D719;1112 1171 11A8;D719;1112 1171 11A8;
+D71A;D71A;1112 1171 11A9;D71A;1112 1171 11A9;
+D71B;D71B;1112 1171 11AA;D71B;1112 1171 11AA;
+D71C;D71C;1112 1171 11AB;D71C;1112 1171 11AB;
+D71D;D71D;1112 1171 11AC;D71D;1112 1171 11AC;
+D71E;D71E;1112 1171 11AD;D71E;1112 1171 11AD;
+D71F;D71F;1112 1171 11AE;D71F;1112 1171 11AE;
+D720;D720;1112 1171 11AF;D720;1112 1171 11AF;
+D721;D721;1112 1171 11B0;D721;1112 1171 11B0;
+D722;D722;1112 1171 11B1;D722;1112 1171 11B1;
+D723;D723;1112 1171 11B2;D723;1112 1171 11B2;
+D724;D724;1112 1171 11B3;D724;1112 1171 11B3;
+D725;D725;1112 1171 11B4;D725;1112 1171 11B4;
+D726;D726;1112 1171 11B5;D726;1112 1171 11B5;
+D727;D727;1112 1171 11B6;D727;1112 1171 11B6;
+D728;D728;1112 1171 11B7;D728;1112 1171 11B7;
+D729;D729;1112 1171 11B8;D729;1112 1171 11B8;
+D72A;D72A;1112 1171 11B9;D72A;1112 1171 11B9;
+D72B;D72B;1112 1171 11BA;D72B;1112 1171 11BA;
+D72C;D72C;1112 1171 11BB;D72C;1112 1171 11BB;
+D72D;D72D;1112 1171 11BC;D72D;1112 1171 11BC;
+D72E;D72E;1112 1171 11BD;D72E;1112 1171 11BD;
+D72F;D72F;1112 1171 11BE;D72F;1112 1171 11BE;
+D730;D730;1112 1171 11BF;D730;1112 1171 11BF;
+D731;D731;1112 1171 11C0;D731;1112 1171 11C0;
+D732;D732;1112 1171 11C1;D732;1112 1171 11C1;
+D733;D733;1112 1171 11C2;D733;1112 1171 11C2;
+D734;D734;1112 1172;D734;1112 1172;
+D735;D735;1112 1172 11A8;D735;1112 1172 11A8;
+D736;D736;1112 1172 11A9;D736;1112 1172 11A9;
+D737;D737;1112 1172 11AA;D737;1112 1172 11AA;
+D738;D738;1112 1172 11AB;D738;1112 1172 11AB;
+D739;D739;1112 1172 11AC;D739;1112 1172 11AC;
+D73A;D73A;1112 1172 11AD;D73A;1112 1172 11AD;
+D73B;D73B;1112 1172 11AE;D73B;1112 1172 11AE;
+D73C;D73C;1112 1172 11AF;D73C;1112 1172 11AF;
+D73D;D73D;1112 1172 11B0;D73D;1112 1172 11B0;
+D73E;D73E;1112 1172 11B1;D73E;1112 1172 11B1;
+D73F;D73F;1112 1172 11B2;D73F;1112 1172 11B2;
+D740;D740;1112 1172 11B3;D740;1112 1172 11B3;
+D741;D741;1112 1172 11B4;D741;1112 1172 11B4;
+D742;D742;1112 1172 11B5;D742;1112 1172 11B5;
+D743;D743;1112 1172 11B6;D743;1112 1172 11B6;
+D744;D744;1112 1172 11B7;D744;1112 1172 11B7;
+D745;D745;1112 1172 11B8;D745;1112 1172 11B8;
+D746;D746;1112 1172 11B9;D746;1112 1172 11B9;
+D747;D747;1112 1172 11BA;D747;1112 1172 11BA;
+D748;D748;1112 1172 11BB;D748;1112 1172 11BB;
+D749;D749;1112 1172 11BC;D749;1112 1172 11BC;
+D74A;D74A;1112 1172 11BD;D74A;1112 1172 11BD;
+D74B;D74B;1112 1172 11BE;D74B;1112 1172 11BE;
+D74C;D74C;1112 1172 11BF;D74C;1112 1172 11BF;
+D74D;D74D;1112 1172 11C0;D74D;1112 1172 11C0;
+D74E;D74E;1112 1172 11C1;D74E;1112 1172 11C1;
+D74F;D74F;1112 1172 11C2;D74F;1112 1172 11C2;
+D750;D750;1112 1173;D750;1112 1173;
+D751;D751;1112 1173 11A8;D751;1112 1173 11A8;
+D752;D752;1112 1173 11A9;D752;1112 1173 11A9;
+D753;D753;1112 1173 11AA;D753;1112 1173 11AA;
+D754;D754;1112 1173 11AB;D754;1112 1173 11AB;
+D755;D755;1112 1173 11AC;D755;1112 1173 11AC;
+D756;D756;1112 1173 11AD;D756;1112 1173 11AD;
+D757;D757;1112 1173 11AE;D757;1112 1173 11AE;
+D758;D758;1112 1173 11AF;D758;1112 1173 11AF;
+D759;D759;1112 1173 11B0;D759;1112 1173 11B0;
+D75A;D75A;1112 1173 11B1;D75A;1112 1173 11B1;
+D75B;D75B;1112 1173 11B2;D75B;1112 1173 11B2;
+D75C;D75C;1112 1173 11B3;D75C;1112 1173 11B3;
+D75D;D75D;1112 1173 11B4;D75D;1112 1173 11B4;
+D75E;D75E;1112 1173 11B5;D75E;1112 1173 11B5;
+D75F;D75F;1112 1173 11B6;D75F;1112 1173 11B6;
+D760;D760;1112 1173 11B7;D760;1112 1173 11B7;
+D761;D761;1112 1173 11B8;D761;1112 1173 11B8;
+D762;D762;1112 1173 11B9;D762;1112 1173 11B9;
+D763;D763;1112 1173 11BA;D763;1112 1173 11BA;
+D764;D764;1112 1173 11BB;D764;1112 1173 11BB;
+D765;D765;1112 1173 11BC;D765;1112 1173 11BC;
+D766;D766;1112 1173 11BD;D766;1112 1173 11BD;
+D767;D767;1112 1173 11BE;D767;1112 1173 11BE;
+D768;D768;1112 1173 11BF;D768;1112 1173 11BF;
+D769;D769;1112 1173 11C0;D769;1112 1173 11C0;
+D76A;D76A;1112 1173 11C1;D76A;1112 1173 11C1;
+D76B;D76B;1112 1173 11C2;D76B;1112 1173 11C2;
+D76C;D76C;1112 1174;D76C;1112 1174;
+D76D;D76D;1112 1174 11A8;D76D;1112 1174 11A8;
+D76E;D76E;1112 1174 11A9;D76E;1112 1174 11A9;
+D76F;D76F;1112 1174 11AA;D76F;1112 1174 11AA;
+D770;D770;1112 1174 11AB;D770;1112 1174 11AB;
+D771;D771;1112 1174 11AC;D771;1112 1174 11AC;
+D772;D772;1112 1174 11AD;D772;1112 1174 11AD;
+D773;D773;1112 1174 11AE;D773;1112 1174 11AE;
+D774;D774;1112 1174 11AF;D774;1112 1174 11AF;
+D775;D775;1112 1174 11B0;D775;1112 1174 11B0;
+D776;D776;1112 1174 11B1;D776;1112 1174 11B1;
+D777;D777;1112 1174 11B2;D777;1112 1174 11B2;
+D778;D778;1112 1174 11B3;D778;1112 1174 11B3;
+D779;D779;1112 1174 11B4;D779;1112 1174 11B4;
+D77A;D77A;1112 1174 11B5;D77A;1112 1174 11B5;
+D77B;D77B;1112 1174 11B6;D77B;1112 1174 11B6;
+D77C;D77C;1112 1174 11B7;D77C;1112 1174 11B7;
+D77D;D77D;1112 1174 11B8;D77D;1112 1174 11B8;
+D77E;D77E;1112 1174 11B9;D77E;1112 1174 11B9;
+D77F;D77F;1112 1174 11BA;D77F;1112 1174 11BA;
+D780;D780;1112 1174 11BB;D780;1112 1174 11BB;
+D781;D781;1112 1174 11BC;D781;1112 1174 11BC;
+D782;D782;1112 1174 11BD;D782;1112 1174 11BD;
+D783;D783;1112 1174 11BE;D783;1112 1174 11BE;
+D784;D784;1112 1174 11BF;D784;1112 1174 11BF;
+D785;D785;1112 1174 11C0;D785;1112 1174 11C0;
+D786;D786;1112 1174 11C1;D786;1112 1174 11C1;
+D787;D787;1112 1174 11C2;D787;1112 1174 11C2;
+D788;D788;1112 1175;D788;1112 1175;
+D789;D789;1112 1175 11A8;D789;1112 1175 11A8;
+D78A;D78A;1112 1175 11A9;D78A;1112 1175 11A9;
+D78B;D78B;1112 1175 11AA;D78B;1112 1175 11AA;
+D78C;D78C;1112 1175 11AB;D78C;1112 1175 11AB;
+D78D;D78D;1112 1175 11AC;D78D;1112 1175 11AC;
+D78E;D78E;1112 1175 11AD;D78E;1112 1175 11AD;
+D78F;D78F;1112 1175 11AE;D78F;1112 1175 11AE;
+D790;D790;1112 1175 11AF;D790;1112 1175 11AF;
+D791;D791;1112 1175 11B0;D791;1112 1175 11B0;
+D792;D792;1112 1175 11B1;D792;1112 1175 11B1;
+D793;D793;1112 1175 11B2;D793;1112 1175 11B2;
+D794;D794;1112 1175 11B3;D794;1112 1175 11B3;
+D795;D795;1112 1175 11B4;D795;1112 1175 11B4;
+D796;D796;1112 1175 11B5;D796;1112 1175 11B5;
+D797;D797;1112 1175 11B6;D797;1112 1175 11B6;
+D798;D798;1112 1175 11B7;D798;1112 1175 11B7;
+D799;D799;1112 1175 11B8;D799;1112 1175 11B8;
+D79A;D79A;1112 1175 11B9;D79A;1112 1175 11B9;
+D79B;D79B;1112 1175 11BA;D79B;1112 1175 11BA;
+D79C;D79C;1112 1175 11BB;D79C;1112 1175 11BB;
+D79D;D79D;1112 1175 11BC;D79D;1112 1175 11BC;
+D79E;D79E;1112 1175 11BD;D79E;1112 1175 11BD;
+D79F;D79F;1112 1175 11BE;D79F;1112 1175 11BE;
+D7A0;D7A0;1112 1175 11BF;D7A0;1112 1175 11BF;
+D7A1;D7A1;1112 1175 11C0;D7A1;1112 1175 11C0;
+D7A2;D7A2;1112 1175 11C1;D7A2;1112 1175 11C1;
+D7A3;D7A3;1112 1175 11C2;D7A3;1112 1175 11C2;
+F900;8C48;8C48;8C48;8C48;
+F901;66F4;66F4;66F4;66F4;
+F902;8ECA;8ECA;8ECA;8ECA;
+F903;8CC8;8CC8;8CC8;8CC8;
+F904;6ED1;6ED1;6ED1;6ED1;
+F905;4E32;4E32;4E32;4E32;
+F906;53E5;53E5;53E5;53E5;
+F907;9F9C;9F9C;9F9C;9F9C;
+F908;9F9C;9F9C;9F9C;9F9C;
+F909;5951;5951;5951;5951;
+F90A;91D1;91D1;91D1;91D1;
+F90B;5587;5587;5587;5587;
+F90C;5948;5948;5948;5948;
+F90D;61F6;61F6;61F6;61F6;
+F90E;7669;7669;7669;7669;
+F90F;7F85;7F85;7F85;7F85;
+F910;863F;863F;863F;863F;
+F911;87BA;87BA;87BA;87BA;
+F912;88F8;88F8;88F8;88F8;
+F913;908F;908F;908F;908F;
+F914;6A02;6A02;6A02;6A02;
+F915;6D1B;6D1B;6D1B;6D1B;
+F916;70D9;70D9;70D9;70D9;
+F917;73DE;73DE;73DE;73DE;
+F918;843D;843D;843D;843D;
+F919;916A;916A;916A;916A;
+F91A;99F1;99F1;99F1;99F1;
+F91B;4E82;4E82;4E82;4E82;
+F91C;5375;5375;5375;5375;
+F91D;6B04;6B04;6B04;6B04;
+F91E;721B;721B;721B;721B;
+F91F;862D;862D;862D;862D;
+F920;9E1E;9E1E;9E1E;9E1E;
+F921;5D50;5D50;5D50;5D50;
+F922;6FEB;6FEB;6FEB;6FEB;
+F923;85CD;85CD;85CD;85CD;
+F924;8964;8964;8964;8964;
+F925;62C9;62C9;62C9;62C9;
+F926;81D8;81D8;81D8;81D8;
+F927;881F;881F;881F;881F;
+F928;5ECA;5ECA;5ECA;5ECA;
+F929;6717;6717;6717;6717;
+F92A;6D6A;6D6A;6D6A;6D6A;
+F92B;72FC;72FC;72FC;72FC;
+F92C;90CE;90CE;90CE;90CE;
+F92D;4F86;4F86;4F86;4F86;
+F92E;51B7;51B7;51B7;51B7;
+F92F;52DE;52DE;52DE;52DE;
+F930;64C4;64C4;64C4;64C4;
+F931;6AD3;6AD3;6AD3;6AD3;
+F932;7210;7210;7210;7210;
+F933;76E7;76E7;76E7;76E7;
+F934;8001;8001;8001;8001;
+F935;8606;8606;8606;8606;
+F936;865C;865C;865C;865C;
+F937;8DEF;8DEF;8DEF;8DEF;
+F938;9732;9732;9732;9732;
+F939;9B6F;9B6F;9B6F;9B6F;
+F93A;9DFA;9DFA;9DFA;9DFA;
+F93B;788C;788C;788C;788C;
+F93C;797F;797F;797F;797F;
+F93D;7DA0;7DA0;7DA0;7DA0;
+F93E;83C9;83C9;83C9;83C9;
+F93F;9304;9304;9304;9304;
+F940;9E7F;9E7F;9E7F;9E7F;
+F941;8AD6;8AD6;8AD6;8AD6;
+F942;58DF;58DF;58DF;58DF;
+F943;5F04;5F04;5F04;5F04;
+F944;7C60;7C60;7C60;7C60;
+F945;807E;807E;807E;807E;
+F946;7262;7262;7262;7262;
+F947;78CA;78CA;78CA;78CA;
+F948;8CC2;8CC2;8CC2;8CC2;
+F949;96F7;96F7;96F7;96F7;
+F94A;58D8;58D8;58D8;58D8;
+F94B;5C62;5C62;5C62;5C62;
+F94C;6A13;6A13;6A13;6A13;
+F94D;6DDA;6DDA;6DDA;6DDA;
+F94E;6F0F;6F0F;6F0F;6F0F;
+F94F;7D2F;7D2F;7D2F;7D2F;
+F950;7E37;7E37;7E37;7E37;
+F951;964B;964B;964B;964B;
+F952;52D2;52D2;52D2;52D2;
+F953;808B;808B;808B;808B;
+F954;51DC;51DC;51DC;51DC;
+F955;51CC;51CC;51CC;51CC;
+F956;7A1C;7A1C;7A1C;7A1C;
+F957;7DBE;7DBE;7DBE;7DBE;
+F958;83F1;83F1;83F1;83F1;
+F959;9675;9675;9675;9675;
+F95A;8B80;8B80;8B80;8B80;
+F95B;62CF;62CF;62CF;62CF;
+F95C;6A02;6A02;6A02;6A02;
+F95D;8AFE;8AFE;8AFE;8AFE;
+F95E;4E39;4E39;4E39;4E39;
+F95F;5BE7;5BE7;5BE7;5BE7;
+F960;6012;6012;6012;6012;
+F961;7387;7387;7387;7387;
+F962;7570;7570;7570;7570;
+F963;5317;5317;5317;5317;
+F964;78FB;78FB;78FB;78FB;
+F965;4FBF;4FBF;4FBF;4FBF;
+F966;5FA9;5FA9;5FA9;5FA9;
+F967;4E0D;4E0D;4E0D;4E0D;
+F968;6CCC;6CCC;6CCC;6CCC;
+F969;6578;6578;6578;6578;
+F96A;7D22;7D22;7D22;7D22;
+F96B;53C3;53C3;53C3;53C3;
+F96C;585E;585E;585E;585E;
+F96D;7701;7701;7701;7701;
+F96E;8449;8449;8449;8449;
+F96F;8AAA;8AAA;8AAA;8AAA;
+F970;6BBA;6BBA;6BBA;6BBA;
+F971;8FB0;8FB0;8FB0;8FB0;
+F972;6C88;6C88;6C88;6C88;
+F973;62FE;62FE;62FE;62FE;
+F974;82E5;82E5;82E5;82E5;
+F975;63A0;63A0;63A0;63A0;
+F976;7565;7565;7565;7565;
+F977;4EAE;4EAE;4EAE;4EAE;
+F978;5169;5169;5169;5169;
+F979;51C9;51C9;51C9;51C9;
+F97A;6881;6881;6881;6881;
+F97B;7CE7;7CE7;7CE7;7CE7;
+F97C;826F;826F;826F;826F;
+F97D;8AD2;8AD2;8AD2;8AD2;
+F97E;91CF;91CF;91CF;91CF;
+F97F;52F5;52F5;52F5;52F5;
+F980;5442;5442;5442;5442;
+F981;5973;5973;5973;5973;
+F982;5EEC;5EEC;5EEC;5EEC;
+F983;65C5;65C5;65C5;65C5;
+F984;6FFE;6FFE;6FFE;6FFE;
+F985;792A;792A;792A;792A;
+F986;95AD;95AD;95AD;95AD;
+F987;9A6A;9A6A;9A6A;9A6A;
+F988;9E97;9E97;9E97;9E97;
+F989;9ECE;9ECE;9ECE;9ECE;
+F98A;529B;529B;529B;529B;
+F98B;66C6;66C6;66C6;66C6;
+F98C;6B77;6B77;6B77;6B77;
+F98D;8F62;8F62;8F62;8F62;
+F98E;5E74;5E74;5E74;5E74;
+F98F;6190;6190;6190;6190;
+F990;6200;6200;6200;6200;
+F991;649A;649A;649A;649A;
+F992;6F23;6F23;6F23;6F23;
+F993;7149;7149;7149;7149;
+F994;7489;7489;7489;7489;
+F995;79CA;79CA;79CA;79CA;
+F996;7DF4;7DF4;7DF4;7DF4;
+F997;806F;806F;806F;806F;
+F998;8F26;8F26;8F26;8F26;
+F999;84EE;84EE;84EE;84EE;
+F99A;9023;9023;9023;9023;
+F99B;934A;934A;934A;934A;
+F99C;5217;5217;5217;5217;
+F99D;52A3;52A3;52A3;52A3;
+F99E;54BD;54BD;54BD;54BD;
+F99F;70C8;70C8;70C8;70C8;
+F9A0;88C2;88C2;88C2;88C2;
+F9A1;8AAA;8AAA;8AAA;8AAA;
+F9A2;5EC9;5EC9;5EC9;5EC9;
+F9A3;5FF5;5FF5;5FF5;5FF5;
+F9A4;637B;637B;637B;637B;
+F9A5;6BAE;6BAE;6BAE;6BAE;
+F9A6;7C3E;7C3E;7C3E;7C3E;
+F9A7;7375;7375;7375;7375;
+F9A8;4EE4;4EE4;4EE4;4EE4;
+F9A9;56F9;56F9;56F9;56F9;
+F9AA;5BE7;5BE7;5BE7;5BE7;
+F9AB;5DBA;5DBA;5DBA;5DBA;
+F9AC;601C;601C;601C;601C;
+F9AD;73B2;73B2;73B2;73B2;
+F9AE;7469;7469;7469;7469;
+F9AF;7F9A;7F9A;7F9A;7F9A;
+F9B0;8046;8046;8046;8046;
+F9B1;9234;9234;9234;9234;
+F9B2;96F6;96F6;96F6;96F6;
+F9B3;9748;9748;9748;9748;
+F9B4;9818;9818;9818;9818;
+F9B5;4F8B;4F8B;4F8B;4F8B;
+F9B6;79AE;79AE;79AE;79AE;
+F9B7;91B4;91B4;91B4;91B4;
+F9B8;96B8;96B8;96B8;96B8;
+F9B9;60E1;60E1;60E1;60E1;
+F9BA;4E86;4E86;4E86;4E86;
+F9BB;50DA;50DA;50DA;50DA;
+F9BC;5BEE;5BEE;5BEE;5BEE;
+F9BD;5C3F;5C3F;5C3F;5C3F;
+F9BE;6599;6599;6599;6599;
+F9BF;6A02;6A02;6A02;6A02;
+F9C0;71CE;71CE;71CE;71CE;
+F9C1;7642;7642;7642;7642;
+F9C2;84FC;84FC;84FC;84FC;
+F9C3;907C;907C;907C;907C;
+F9C4;9F8D;9F8D;9F8D;9F8D;
+F9C5;6688;6688;6688;6688;
+F9C6;962E;962E;962E;962E;
+F9C7;5289;5289;5289;5289;
+F9C8;677B;677B;677B;677B;
+F9C9;67F3;67F3;67F3;67F3;
+F9CA;6D41;6D41;6D41;6D41;
+F9CB;6E9C;6E9C;6E9C;6E9C;
+F9CC;7409;7409;7409;7409;
+F9CD;7559;7559;7559;7559;
+F9CE;786B;786B;786B;786B;
+F9CF;7D10;7D10;7D10;7D10;
+F9D0;985E;985E;985E;985E;
+F9D1;516D;516D;516D;516D;
+F9D2;622E;622E;622E;622E;
+F9D3;9678;9678;9678;9678;
+F9D4;502B;502B;502B;502B;
+F9D5;5D19;5D19;5D19;5D19;
+F9D6;6DEA;6DEA;6DEA;6DEA;
+F9D7;8F2A;8F2A;8F2A;8F2A;
+F9D8;5F8B;5F8B;5F8B;5F8B;
+F9D9;6144;6144;6144;6144;
+F9DA;6817;6817;6817;6817;
+F9DB;7387;7387;7387;7387;
+F9DC;9686;9686;9686;9686;
+F9DD;5229;5229;5229;5229;
+F9DE;540F;540F;540F;540F;
+F9DF;5C65;5C65;5C65;5C65;
+F9E0;6613;6613;6613;6613;
+F9E1;674E;674E;674E;674E;
+F9E2;68A8;68A8;68A8;68A8;
+F9E3;6CE5;6CE5;6CE5;6CE5;
+F9E4;7406;7406;7406;7406;
+F9E5;75E2;75E2;75E2;75E2;
+F9E6;7F79;7F79;7F79;7F79;
+F9E7;88CF;88CF;88CF;88CF;
+F9E8;88E1;88E1;88E1;88E1;
+F9E9;91CC;91CC;91CC;91CC;
+F9EA;96E2;96E2;96E2;96E2;
+F9EB;533F;533F;533F;533F;
+F9EC;6EBA;6EBA;6EBA;6EBA;
+F9ED;541D;541D;541D;541D;
+F9EE;71D0;71D0;71D0;71D0;
+F9EF;7498;7498;7498;7498;
+F9F0;85FA;85FA;85FA;85FA;
+F9F1;96A3;96A3;96A3;96A3;
+F9F2;9C57;9C57;9C57;9C57;
+F9F3;9E9F;9E9F;9E9F;9E9F;
+F9F4;6797;6797;6797;6797;
+F9F5;6DCB;6DCB;6DCB;6DCB;
+F9F6;81E8;81E8;81E8;81E8;
+F9F7;7ACB;7ACB;7ACB;7ACB;
+F9F8;7B20;7B20;7B20;7B20;
+F9F9;7C92;7C92;7C92;7C92;
+F9FA;72C0;72C0;72C0;72C0;
+F9FB;7099;7099;7099;7099;
+F9FC;8B58;8B58;8B58;8B58;
+F9FD;4EC0;4EC0;4EC0;4EC0;
+F9FE;8336;8336;8336;8336;
+F9FF;523A;523A;523A;523A;
+FA00;5207;5207;5207;5207;
+FA01;5EA6;5EA6;5EA6;5EA6;
+FA02;62D3;62D3;62D3;62D3;
+FA03;7CD6;7CD6;7CD6;7CD6;
+FA04;5B85;5B85;5B85;5B85;
+FA05;6D1E;6D1E;6D1E;6D1E;
+FA06;66B4;66B4;66B4;66B4;
+FA07;8F3B;8F3B;8F3B;8F3B;
+FA08;884C;884C;884C;884C;
+FA09;964D;964D;964D;964D;
+FA0A;898B;898B;898B;898B;
+FA0B;5ED3;5ED3;5ED3;5ED3;
+FA0C;5140;5140;5140;5140;
+FA0D;55C0;55C0;55C0;55C0;
+FA10;585A;585A;585A;585A;
+FA12;6674;6674;6674;6674;
+FA15;51DE;51DE;51DE;51DE;
+FA16;732A;732A;732A;732A;
+FA17;76CA;76CA;76CA;76CA;
+FA18;793C;793C;793C;793C;
+FA19;795E;795E;795E;795E;
+FA1A;7965;7965;7965;7965;
+FA1B;798F;798F;798F;798F;
+FA1C;9756;9756;9756;9756;
+FA1D;7CBE;7CBE;7CBE;7CBE;
+FA1E;7FBD;7FBD;7FBD;7FBD;
+FA20;8612;8612;8612;8612;
+FA22;8AF8;8AF8;8AF8;8AF8;
+FA25;9038;9038;9038;9038;
+FA26;90FD;90FD;90FD;90FD;
+FA2A;98EF;98EF;98EF;98EF;
+FA2B;98FC;98FC;98FC;98FC;
+FA2C;9928;9928;9928;9928;
+FA2D;9DB4;9DB4;9DB4;9DB4;
+FA30;4FAE;4FAE;4FAE;4FAE;
+FA31;50E7;50E7;50E7;50E7;
+FA32;514D;514D;514D;514D;
+FA33;52C9;52C9;52C9;52C9;
+FA34;52E4;52E4;52E4;52E4;
+FA35;5351;5351;5351;5351;
+FA36;559D;559D;559D;559D;
+FA37;5606;5606;5606;5606;
+FA38;5668;5668;5668;5668;
+FA39;5840;5840;5840;5840;
+FA3A;58A8;58A8;58A8;58A8;
+FA3B;5C64;5C64;5C64;5C64;
+FA3C;5C6E;5C6E;5C6E;5C6E;
+FA3D;6094;6094;6094;6094;
+FA3E;6168;6168;6168;6168;
+FA3F;618E;618E;618E;618E;
+FA40;61F2;61F2;61F2;61F2;
+FA41;654F;654F;654F;654F;
+FA42;65E2;65E2;65E2;65E2;
+FA43;6691;6691;6691;6691;
+FA44;6885;6885;6885;6885;
+FA45;6D77;6D77;6D77;6D77;
+FA46;6E1A;6E1A;6E1A;6E1A;
+FA47;6F22;6F22;6F22;6F22;
+FA48;716E;716E;716E;716E;
+FA49;722B;722B;722B;722B;
+FA4A;7422;7422;7422;7422;
+FA4B;7891;7891;7891;7891;
+FA4C;793E;793E;793E;793E;
+FA4D;7949;7949;7949;7949;
+FA4E;7948;7948;7948;7948;
+FA4F;7950;7950;7950;7950;
+FA50;7956;7956;7956;7956;
+FA51;795D;795D;795D;795D;
+FA52;798D;798D;798D;798D;
+FA53;798E;798E;798E;798E;
+FA54;7A40;7A40;7A40;7A40;
+FA55;7A81;7A81;7A81;7A81;
+FA56;7BC0;7BC0;7BC0;7BC0;
+FA57;7DF4;7DF4;7DF4;7DF4;
+FA58;7E09;7E09;7E09;7E09;
+FA59;7E41;7E41;7E41;7E41;
+FA5A;7F72;7F72;7F72;7F72;
+FA5B;8005;8005;8005;8005;
+FA5C;81ED;81ED;81ED;81ED;
+FA5D;8279;8279;8279;8279;
+FA5E;8279;8279;8279;8279;
+FA5F;8457;8457;8457;8457;
+FA60;8910;8910;8910;8910;
+FA61;8996;8996;8996;8996;
+FA62;8B01;8B01;8B01;8B01;
+FA63;8B39;8B39;8B39;8B39;
+FA64;8CD3;8CD3;8CD3;8CD3;
+FA65;8D08;8D08;8D08;8D08;
+FA66;8FB6;8FB6;8FB6;8FB6;
+FA67;9038;9038;9038;9038;
+FA68;96E3;96E3;96E3;96E3;
+FA69;97FF;97FF;97FF;97FF;
+FA6A;983B;983B;983B;983B;
+FA70;4E26;4E26;4E26;4E26;
+FA71;51B5;51B5;51B5;51B5;
+FA72;5168;5168;5168;5168;
+FA73;4F80;4F80;4F80;4F80;
+FA74;5145;5145;5145;5145;
+FA75;5180;5180;5180;5180;
+FA76;52C7;52C7;52C7;52C7;
+FA77;52FA;52FA;52FA;52FA;
+FA78;559D;559D;559D;559D;
+FA79;5555;5555;5555;5555;
+FA7A;5599;5599;5599;5599;
+FA7B;55E2;55E2;55E2;55E2;
+FA7C;585A;585A;585A;585A;
+FA7D;58B3;58B3;58B3;58B3;
+FA7E;5944;5944;5944;5944;
+FA7F;5954;5954;5954;5954;
+FA80;5A62;5A62;5A62;5A62;
+FA81;5B28;5B28;5B28;5B28;
+FA82;5ED2;5ED2;5ED2;5ED2;
+FA83;5ED9;5ED9;5ED9;5ED9;
+FA84;5F69;5F69;5F69;5F69;
+FA85;5FAD;5FAD;5FAD;5FAD;
+FA86;60D8;60D8;60D8;60D8;
+FA87;614E;614E;614E;614E;
+FA88;6108;6108;6108;6108;
+FA89;618E;618E;618E;618E;
+FA8A;6160;6160;6160;6160;
+FA8B;61F2;61F2;61F2;61F2;
+FA8C;6234;6234;6234;6234;
+FA8D;63C4;63C4;63C4;63C4;
+FA8E;641C;641C;641C;641C;
+FA8F;6452;6452;6452;6452;
+FA90;6556;6556;6556;6556;
+FA91;6674;6674;6674;6674;
+FA92;6717;6717;6717;6717;
+FA93;671B;671B;671B;671B;
+FA94;6756;6756;6756;6756;
+FA95;6B79;6B79;6B79;6B79;
+FA96;6BBA;6BBA;6BBA;6BBA;
+FA97;6D41;6D41;6D41;6D41;
+FA98;6EDB;6EDB;6EDB;6EDB;
+FA99;6ECB;6ECB;6ECB;6ECB;
+FA9A;6F22;6F22;6F22;6F22;
+FA9B;701E;701E;701E;701E;
+FA9C;716E;716E;716E;716E;
+FA9D;77A7;77A7;77A7;77A7;
+FA9E;7235;7235;7235;7235;
+FA9F;72AF;72AF;72AF;72AF;
+FAA0;732A;732A;732A;732A;
+FAA1;7471;7471;7471;7471;
+FAA2;7506;7506;7506;7506;
+FAA3;753B;753B;753B;753B;
+FAA4;761D;761D;761D;761D;
+FAA5;761F;761F;761F;761F;
+FAA6;76CA;76CA;76CA;76CA;
+FAA7;76DB;76DB;76DB;76DB;
+FAA8;76F4;76F4;76F4;76F4;
+FAA9;774A;774A;774A;774A;
+FAAA;7740;7740;7740;7740;
+FAAB;78CC;78CC;78CC;78CC;
+FAAC;7AB1;7AB1;7AB1;7AB1;
+FAAD;7BC0;7BC0;7BC0;7BC0;
+FAAE;7C7B;7C7B;7C7B;7C7B;
+FAAF;7D5B;7D5B;7D5B;7D5B;
+FAB0;7DF4;7DF4;7DF4;7DF4;
+FAB1;7F3E;7F3E;7F3E;7F3E;
+FAB2;8005;8005;8005;8005;
+FAB3;8352;8352;8352;8352;
+FAB4;83EF;83EF;83EF;83EF;
+FAB5;8779;8779;8779;8779;
+FAB6;8941;8941;8941;8941;
+FAB7;8986;8986;8986;8986;
+FAB8;8996;8996;8996;8996;
+FAB9;8ABF;8ABF;8ABF;8ABF;
+FABA;8AF8;8AF8;8AF8;8AF8;
+FABB;8ACB;8ACB;8ACB;8ACB;
+FABC;8B01;8B01;8B01;8B01;
+FABD;8AFE;8AFE;8AFE;8AFE;
+FABE;8AED;8AED;8AED;8AED;
+FABF;8B39;8B39;8B39;8B39;
+FAC0;8B8A;8B8A;8B8A;8B8A;
+FAC1;8D08;8D08;8D08;8D08;
+FAC2;8F38;8F38;8F38;8F38;
+FAC3;9072;9072;9072;9072;
+FAC4;9199;9199;9199;9199;
+FAC5;9276;9276;9276;9276;
+FAC6;967C;967C;967C;967C;
+FAC7;96E3;96E3;96E3;96E3;
+FAC8;9756;9756;9756;9756;
+FAC9;97DB;97DB;97DB;97DB;
+FACA;97FF;97FF;97FF;97FF;
+FACB;980B;980B;980B;980B;
+FACC;983B;983B;983B;983B;
+FACD;9B12;9B12;9B12;9B12;
+FACE;9F9C;9F9C;9F9C;9F9C;
+FACF;2284A;2284A;2284A;2284A;
+FAD0;22844;22844;22844;22844;
+FAD1;233D5;233D5;233D5;233D5;
+FAD2;3B9D;3B9D;3B9D;3B9D;
+FAD3;4018;4018;4018;4018;
+FAD4;4039;4039;4039;4039;
+FAD5;25249;25249;25249;25249;
+FAD6;25CD0;25CD0;25CD0;25CD0;
+FAD7;27ED3;27ED3;27ED3;27ED3;
+FAD8;9F43;9F43;9F43;9F43;
+FAD9;9F8E;9F8E;9F8E;9F8E;
+FB00;FB00;FB00;0066 0066;0066 0066;
+FB01;FB01;FB01;0066 0069;0066 0069;
+FB02;FB02;FB02;0066 006C;0066 006C;
+FB03;FB03;FB03;0066 0066 0069;0066 0066 0069;
+FB04;FB04;FB04;0066 0066 006C;0066 0066 006C;
+FB05;FB05;FB05;0073 0074;0073 0074;
+FB06;FB06;FB06;0073 0074;0073 0074;
+FB13;FB13;FB13;0574 0576;0574 0576;
+FB14;FB14;FB14;0574 0565;0574 0565;
+FB15;FB15;FB15;0574 056B;0574 056B;
+FB16;FB16;FB16;057E 0576;057E 0576;
+FB17;FB17;FB17;0574 056D;0574 056D;
+FB1D;05D9 05B4;05D9 05B4;05D9 05B4;05D9 05B4;
+FB1F;05F2 05B7;05F2 05B7;05F2 05B7;05F2 05B7;
+FB20;FB20;FB20;05E2;05E2;
+FB21;FB21;FB21;05D0;05D0;
+FB22;FB22;FB22;05D3;05D3;
+FB23;FB23;FB23;05D4;05D4;
+FB24;FB24;FB24;05DB;05DB;
+FB25;FB25;FB25;05DC;05DC;
+FB26;FB26;FB26;05DD;05DD;
+FB27;FB27;FB27;05E8;05E8;
+FB28;FB28;FB28;05EA;05EA;
+FB29;FB29;FB29;002B;002B;
+FB2A;05E9 05C1;05E9 05C1;05E9 05C1;05E9 05C1;
+FB2B;05E9 05C2;05E9 05C2;05E9 05C2;05E9 05C2;
+FB2C;05E9 05BC 05C1;05E9 05BC 05C1;05E9 05BC 05C1;05E9 05BC 05C1;
+FB2D;05E9 05BC 05C2;05E9 05BC 05C2;05E9 05BC 05C2;05E9 05BC 05C2;
+FB2E;05D0 05B7;05D0 05B7;05D0 05B7;05D0 05B7;
+FB2F;05D0 05B8;05D0 05B8;05D0 05B8;05D0 05B8;
+FB30;05D0 05BC;05D0 05BC;05D0 05BC;05D0 05BC;
+FB31;05D1 05BC;05D1 05BC;05D1 05BC;05D1 05BC;
+FB32;05D2 05BC;05D2 05BC;05D2 05BC;05D2 05BC;
+FB33;05D3 05BC;05D3 05BC;05D3 05BC;05D3 05BC;
+FB34;05D4 05BC;05D4 05BC;05D4 05BC;05D4 05BC;
+FB35;05D5 05BC;05D5 05BC;05D5 05BC;05D5 05BC;
+FB36;05D6 05BC;05D6 05BC;05D6 05BC;05D6 05BC;
+FB38;05D8 05BC;05D8 05BC;05D8 05BC;05D8 05BC;
+FB39;05D9 05BC;05D9 05BC;05D9 05BC;05D9 05BC;
+FB3A;05DA 05BC;05DA 05BC;05DA 05BC;05DA 05BC;
+FB3B;05DB 05BC;05DB 05BC;05DB 05BC;05DB 05BC;
+FB3C;05DC 05BC;05DC 05BC;05DC 05BC;05DC 05BC;
+FB3E;05DE 05BC;05DE 05BC;05DE 05BC;05DE 05BC;
+FB40;05E0 05BC;05E0 05BC;05E0 05BC;05E0 05BC;
+FB41;05E1 05BC;05E1 05BC;05E1 05BC;05E1 05BC;
+FB43;05E3 05BC;05E3 05BC;05E3 05BC;05E3 05BC;
+FB44;05E4 05BC;05E4 05BC;05E4 05BC;05E4 05BC;
+FB46;05E6 05BC;05E6 05BC;05E6 05BC;05E6 05BC;
+FB47;05E7 05BC;05E7 05BC;05E7 05BC;05E7 05BC;
+FB48;05E8 05BC;05E8 05BC;05E8 05BC;05E8 05BC;
+FB49;05E9 05BC;05E9 05BC;05E9 05BC;05E9 05BC;
+FB4A;05EA 05BC;05EA 05BC;05EA 05BC;05EA 05BC;
+FB4B;05D5 05B9;05D5 05B9;05D5 05B9;05D5 05B9;
+FB4C;05D1 05BF;05D1 05BF;05D1 05BF;05D1 05BF;
+FB4D;05DB 05BF;05DB 05BF;05DB 05BF;05DB 05BF;
+FB4E;05E4 05BF;05E4 05BF;05E4 05BF;05E4 05BF;
+FB4F;FB4F;FB4F;05D0 05DC;05D0 05DC;
+FB50;FB50;FB50;0671;0671;
+FB51;FB51;FB51;0671;0671;
+FB52;FB52;FB52;067B;067B;
+FB53;FB53;FB53;067B;067B;
+FB54;FB54;FB54;067B;067B;
+FB55;FB55;FB55;067B;067B;
+FB56;FB56;FB56;067E;067E;
+FB57;FB57;FB57;067E;067E;
+FB58;FB58;FB58;067E;067E;
+FB59;FB59;FB59;067E;067E;
+FB5A;FB5A;FB5A;0680;0680;
+FB5B;FB5B;FB5B;0680;0680;
+FB5C;FB5C;FB5C;0680;0680;
+FB5D;FB5D;FB5D;0680;0680;
+FB5E;FB5E;FB5E;067A;067A;
+FB5F;FB5F;FB5F;067A;067A;
+FB60;FB60;FB60;067A;067A;
+FB61;FB61;FB61;067A;067A;
+FB62;FB62;FB62;067F;067F;
+FB63;FB63;FB63;067F;067F;
+FB64;FB64;FB64;067F;067F;
+FB65;FB65;FB65;067F;067F;
+FB66;FB66;FB66;0679;0679;
+FB67;FB67;FB67;0679;0679;
+FB68;FB68;FB68;0679;0679;
+FB69;FB69;FB69;0679;0679;
+FB6A;FB6A;FB6A;06A4;06A4;
+FB6B;FB6B;FB6B;06A4;06A4;
+FB6C;FB6C;FB6C;06A4;06A4;
+FB6D;FB6D;FB6D;06A4;06A4;
+FB6E;FB6E;FB6E;06A6;06A6;
+FB6F;FB6F;FB6F;06A6;06A6;
+FB70;FB70;FB70;06A6;06A6;
+FB71;FB71;FB71;06A6;06A6;
+FB72;FB72;FB72;0684;0684;
+FB73;FB73;FB73;0684;0684;
+FB74;FB74;FB74;0684;0684;
+FB75;FB75;FB75;0684;0684;
+FB76;FB76;FB76;0683;0683;
+FB77;FB77;FB77;0683;0683;
+FB78;FB78;FB78;0683;0683;
+FB79;FB79;FB79;0683;0683;
+FB7A;FB7A;FB7A;0686;0686;
+FB7B;FB7B;FB7B;0686;0686;
+FB7C;FB7C;FB7C;0686;0686;
+FB7D;FB7D;FB7D;0686;0686;
+FB7E;FB7E;FB7E;0687;0687;
+FB7F;FB7F;FB7F;0687;0687;
+FB80;FB80;FB80;0687;0687;
+FB81;FB81;FB81;0687;0687;
+FB82;FB82;FB82;068D;068D;
+FB83;FB83;FB83;068D;068D;
+FB84;FB84;FB84;068C;068C;
+FB85;FB85;FB85;068C;068C;
+FB86;FB86;FB86;068E;068E;
+FB87;FB87;FB87;068E;068E;
+FB88;FB88;FB88;0688;0688;
+FB89;FB89;FB89;0688;0688;
+FB8A;FB8A;FB8A;0698;0698;
+FB8B;FB8B;FB8B;0698;0698;
+FB8C;FB8C;FB8C;0691;0691;
+FB8D;FB8D;FB8D;0691;0691;
+FB8E;FB8E;FB8E;06A9;06A9;
+FB8F;FB8F;FB8F;06A9;06A9;
+FB90;FB90;FB90;06A9;06A9;
+FB91;FB91;FB91;06A9;06A9;
+FB92;FB92;FB92;06AF;06AF;
+FB93;FB93;FB93;06AF;06AF;
+FB94;FB94;FB94;06AF;06AF;
+FB95;FB95;FB95;06AF;06AF;
+FB96;FB96;FB96;06B3;06B3;
+FB97;FB97;FB97;06B3;06B3;
+FB98;FB98;FB98;06B3;06B3;
+FB99;FB99;FB99;06B3;06B3;
+FB9A;FB9A;FB9A;06B1;06B1;
+FB9B;FB9B;FB9B;06B1;06B1;
+FB9C;FB9C;FB9C;06B1;06B1;
+FB9D;FB9D;FB9D;06B1;06B1;
+FB9E;FB9E;FB9E;06BA;06BA;
+FB9F;FB9F;FB9F;06BA;06BA;
+FBA0;FBA0;FBA0;06BB;06BB;
+FBA1;FBA1;FBA1;06BB;06BB;
+FBA2;FBA2;FBA2;06BB;06BB;
+FBA3;FBA3;FBA3;06BB;06BB;
+FBA4;FBA4;FBA4;06C0;06D5 0654;
+FBA5;FBA5;FBA5;06C0;06D5 0654;
+FBA6;FBA6;FBA6;06C1;06C1;
+FBA7;FBA7;FBA7;06C1;06C1;
+FBA8;FBA8;FBA8;06C1;06C1;
+FBA9;FBA9;FBA9;06C1;06C1;
+FBAA;FBAA;FBAA;06BE;06BE;
+FBAB;FBAB;FBAB;06BE;06BE;
+FBAC;FBAC;FBAC;06BE;06BE;
+FBAD;FBAD;FBAD;06BE;06BE;
+FBAE;FBAE;FBAE;06D2;06D2;
+FBAF;FBAF;FBAF;06D2;06D2;
+FBB0;FBB0;FBB0;06D3;06D2 0654;
+FBB1;FBB1;FBB1;06D3;06D2 0654;
+FBD3;FBD3;FBD3;06AD;06AD;
+FBD4;FBD4;FBD4;06AD;06AD;
+FBD5;FBD5;FBD5;06AD;06AD;
+FBD6;FBD6;FBD6;06AD;06AD;
+FBD7;FBD7;FBD7;06C7;06C7;
+FBD8;FBD8;FBD8;06C7;06C7;
+FBD9;FBD9;FBD9;06C6;06C6;
+FBDA;FBDA;FBDA;06C6;06C6;
+FBDB;FBDB;FBDB;06C8;06C8;
+FBDC;FBDC;FBDC;06C8;06C8;
+FBDD;FBDD;FBDD;06C7 0674;06C7 0674;
+FBDE;FBDE;FBDE;06CB;06CB;
+FBDF;FBDF;FBDF;06CB;06CB;
+FBE0;FBE0;FBE0;06C5;06C5;
+FBE1;FBE1;FBE1;06C5;06C5;
+FBE2;FBE2;FBE2;06C9;06C9;
+FBE3;FBE3;FBE3;06C9;06C9;
+FBE4;FBE4;FBE4;06D0;06D0;
+FBE5;FBE5;FBE5;06D0;06D0;
+FBE6;FBE6;FBE6;06D0;06D0;
+FBE7;FBE7;FBE7;06D0;06D0;
+FBE8;FBE8;FBE8;0649;0649;
+FBE9;FBE9;FBE9;0649;0649;
+FBEA;FBEA;FBEA;0626 0627;064A 0654 0627;
+FBEB;FBEB;FBEB;0626 0627;064A 0654 0627;
+FBEC;FBEC;FBEC;0626 06D5;064A 0654 06D5;
+FBED;FBED;FBED;0626 06D5;064A 0654 06D5;
+FBEE;FBEE;FBEE;0626 0648;064A 0654 0648;
+FBEF;FBEF;FBEF;0626 0648;064A 0654 0648;
+FBF0;FBF0;FBF0;0626 06C7;064A 0654 06C7;
+FBF1;FBF1;FBF1;0626 06C7;064A 0654 06C7;
+FBF2;FBF2;FBF2;0626 06C6;064A 0654 06C6;
+FBF3;FBF3;FBF3;0626 06C6;064A 0654 06C6;
+FBF4;FBF4;FBF4;0626 06C8;064A 0654 06C8;
+FBF5;FBF5;FBF5;0626 06C8;064A 0654 06C8;
+FBF6;FBF6;FBF6;0626 06D0;064A 0654 06D0;
+FBF7;FBF7;FBF7;0626 06D0;064A 0654 06D0;
+FBF8;FBF8;FBF8;0626 06D0;064A 0654 06D0;
+FBF9;FBF9;FBF9;0626 0649;064A 0654 0649;
+FBFA;FBFA;FBFA;0626 0649;064A 0654 0649;
+FBFB;FBFB;FBFB;0626 0649;064A 0654 0649;
+FBFC;FBFC;FBFC;06CC;06CC;
+FBFD;FBFD;FBFD;06CC;06CC;
+FBFE;FBFE;FBFE;06CC;06CC;
+FBFF;FBFF;FBFF;06CC;06CC;
+FC00;FC00;FC00;0626 062C;064A 0654 062C;
+FC01;FC01;FC01;0626 062D;064A 0654 062D;
+FC02;FC02;FC02;0626 0645;064A 0654 0645;
+FC03;FC03;FC03;0626 0649;064A 0654 0649;
+FC04;FC04;FC04;0626 064A;064A 0654 064A;
+FC05;FC05;FC05;0628 062C;0628 062C;
+FC06;FC06;FC06;0628 062D;0628 062D;
+FC07;FC07;FC07;0628 062E;0628 062E;
+FC08;FC08;FC08;0628 0645;0628 0645;
+FC09;FC09;FC09;0628 0649;0628 0649;
+FC0A;FC0A;FC0A;0628 064A;0628 064A;
+FC0B;FC0B;FC0B;062A 062C;062A 062C;
+FC0C;FC0C;FC0C;062A 062D;062A 062D;
+FC0D;FC0D;FC0D;062A 062E;062A 062E;
+FC0E;FC0E;FC0E;062A 0645;062A 0645;
+FC0F;FC0F;FC0F;062A 0649;062A 0649;
+FC10;FC10;FC10;062A 064A;062A 064A;
+FC11;FC11;FC11;062B 062C;062B 062C;
+FC12;FC12;FC12;062B 0645;062B 0645;
+FC13;FC13;FC13;062B 0649;062B 0649;
+FC14;FC14;FC14;062B 064A;062B 064A;
+FC15;FC15;FC15;062C 062D;062C 062D;
+FC16;FC16;FC16;062C 0645;062C 0645;
+FC17;FC17;FC17;062D 062C;062D 062C;
+FC18;FC18;FC18;062D 0645;062D 0645;
+FC19;FC19;FC19;062E 062C;062E 062C;
+FC1A;FC1A;FC1A;062E 062D;062E 062D;
+FC1B;FC1B;FC1B;062E 0645;062E 0645;
+FC1C;FC1C;FC1C;0633 062C;0633 062C;
+FC1D;FC1D;FC1D;0633 062D;0633 062D;
+FC1E;FC1E;FC1E;0633 062E;0633 062E;
+FC1F;FC1F;FC1F;0633 0645;0633 0645;
+FC20;FC20;FC20;0635 062D;0635 062D;
+FC21;FC21;FC21;0635 0645;0635 0645;
+FC22;FC22;FC22;0636 062C;0636 062C;
+FC23;FC23;FC23;0636 062D;0636 062D;
+FC24;FC24;FC24;0636 062E;0636 062E;
+FC25;FC25;FC25;0636 0645;0636 0645;
+FC26;FC26;FC26;0637 062D;0637 062D;
+FC27;FC27;FC27;0637 0645;0637 0645;
+FC28;FC28;FC28;0638 0645;0638 0645;
+FC29;FC29;FC29;0639 062C;0639 062C;
+FC2A;FC2A;FC2A;0639 0645;0639 0645;
+FC2B;FC2B;FC2B;063A 062C;063A 062C;
+FC2C;FC2C;FC2C;063A 0645;063A 0645;
+FC2D;FC2D;FC2D;0641 062C;0641 062C;
+FC2E;FC2E;FC2E;0641 062D;0641 062D;
+FC2F;FC2F;FC2F;0641 062E;0641 062E;
+FC30;FC30;FC30;0641 0645;0641 0645;
+FC31;FC31;FC31;0641 0649;0641 0649;
+FC32;FC32;FC32;0641 064A;0641 064A;
+FC33;FC33;FC33;0642 062D;0642 062D;
+FC34;FC34;FC34;0642 0645;0642 0645;
+FC35;FC35;FC35;0642 0649;0642 0649;
+FC36;FC36;FC36;0642 064A;0642 064A;
+FC37;FC37;FC37;0643 0627;0643 0627;
+FC38;FC38;FC38;0643 062C;0643 062C;
+FC39;FC39;FC39;0643 062D;0643 062D;
+FC3A;FC3A;FC3A;0643 062E;0643 062E;
+FC3B;FC3B;FC3B;0643 0644;0643 0644;
+FC3C;FC3C;FC3C;0643 0645;0643 0645;
+FC3D;FC3D;FC3D;0643 0649;0643 0649;
+FC3E;FC3E;FC3E;0643 064A;0643 064A;
+FC3F;FC3F;FC3F;0644 062C;0644 062C;
+FC40;FC40;FC40;0644 062D;0644 062D;
+FC41;FC41;FC41;0644 062E;0644 062E;
+FC42;FC42;FC42;0644 0645;0644 0645;
+FC43;FC43;FC43;0644 0649;0644 0649;
+FC44;FC44;FC44;0644 064A;0644 064A;
+FC45;FC45;FC45;0645 062C;0645 062C;
+FC46;FC46;FC46;0645 062D;0645 062D;
+FC47;FC47;FC47;0645 062E;0645 062E;
+FC48;FC48;FC48;0645 0645;0645 0645;
+FC49;FC49;FC49;0645 0649;0645 0649;
+FC4A;FC4A;FC4A;0645 064A;0645 064A;
+FC4B;FC4B;FC4B;0646 062C;0646 062C;
+FC4C;FC4C;FC4C;0646 062D;0646 062D;
+FC4D;FC4D;FC4D;0646 062E;0646 062E;
+FC4E;FC4E;FC4E;0646 0645;0646 0645;
+FC4F;FC4F;FC4F;0646 0649;0646 0649;
+FC50;FC50;FC50;0646 064A;0646 064A;
+FC51;FC51;FC51;0647 062C;0647 062C;
+FC52;FC52;FC52;0647 0645;0647 0645;
+FC53;FC53;FC53;0647 0649;0647 0649;
+FC54;FC54;FC54;0647 064A;0647 064A;
+FC55;FC55;FC55;064A 062C;064A 062C;
+FC56;FC56;FC56;064A 062D;064A 062D;
+FC57;FC57;FC57;064A 062E;064A 062E;
+FC58;FC58;FC58;064A 0645;064A 0645;
+FC59;FC59;FC59;064A 0649;064A 0649;
+FC5A;FC5A;FC5A;064A 064A;064A 064A;
+FC5B;FC5B;FC5B;0630 0670;0630 0670;
+FC5C;FC5C;FC5C;0631 0670;0631 0670;
+FC5D;FC5D;FC5D;0649 0670;0649 0670;
+FC5E;FC5E;FC5E;0020 064C 0651;0020 064C 0651;
+FC5F;FC5F;FC5F;0020 064D 0651;0020 064D 0651;
+FC60;FC60;FC60;0020 064E 0651;0020 064E 0651;
+FC61;FC61;FC61;0020 064F 0651;0020 064F 0651;
+FC62;FC62;FC62;0020 0650 0651;0020 0650 0651;
+FC63;FC63;FC63;0020 0651 0670;0020 0651 0670;
+FC64;FC64;FC64;0626 0631;064A 0654 0631;
+FC65;FC65;FC65;0626 0632;064A 0654 0632;
+FC66;FC66;FC66;0626 0645;064A 0654 0645;
+FC67;FC67;FC67;0626 0646;064A 0654 0646;
+FC68;FC68;FC68;0626 0649;064A 0654 0649;
+FC69;FC69;FC69;0626 064A;064A 0654 064A;
+FC6A;FC6A;FC6A;0628 0631;0628 0631;
+FC6B;FC6B;FC6B;0628 0632;0628 0632;
+FC6C;FC6C;FC6C;0628 0645;0628 0645;
+FC6D;FC6D;FC6D;0628 0646;0628 0646;
+FC6E;FC6E;FC6E;0628 0649;0628 0649;
+FC6F;FC6F;FC6F;0628 064A;0628 064A;
+FC70;FC70;FC70;062A 0631;062A 0631;
+FC71;FC71;FC71;062A 0632;062A 0632;
+FC72;FC72;FC72;062A 0645;062A 0645;
+FC73;FC73;FC73;062A 0646;062A 0646;
+FC74;FC74;FC74;062A 0649;062A 0649;
+FC75;FC75;FC75;062A 064A;062A 064A;
+FC76;FC76;FC76;062B 0631;062B 0631;
+FC77;FC77;FC77;062B 0632;062B 0632;
+FC78;FC78;FC78;062B 0645;062B 0645;
+FC79;FC79;FC79;062B 0646;062B 0646;
+FC7A;FC7A;FC7A;062B 0649;062B 0649;
+FC7B;FC7B;FC7B;062B 064A;062B 064A;
+FC7C;FC7C;FC7C;0641 0649;0641 0649;
+FC7D;FC7D;FC7D;0641 064A;0641 064A;
+FC7E;FC7E;FC7E;0642 0649;0642 0649;
+FC7F;FC7F;FC7F;0642 064A;0642 064A;
+FC80;FC80;FC80;0643 0627;0643 0627;
+FC81;FC81;FC81;0643 0644;0643 0644;
+FC82;FC82;FC82;0643 0645;0643 0645;
+FC83;FC83;FC83;0643 0649;0643 0649;
+FC84;FC84;FC84;0643 064A;0643 064A;
+FC85;FC85;FC85;0644 0645;0644 0645;
+FC86;FC86;FC86;0644 0649;0644 0649;
+FC87;FC87;FC87;0644 064A;0644 064A;
+FC88;FC88;FC88;0645 0627;0645 0627;
+FC89;FC89;FC89;0645 0645;0645 0645;
+FC8A;FC8A;FC8A;0646 0631;0646 0631;
+FC8B;FC8B;FC8B;0646 0632;0646 0632;
+FC8C;FC8C;FC8C;0646 0645;0646 0645;
+FC8D;FC8D;FC8D;0646 0646;0646 0646;
+FC8E;FC8E;FC8E;0646 0649;0646 0649;
+FC8F;FC8F;FC8F;0646 064A;0646 064A;
+FC90;FC90;FC90;0649 0670;0649 0670;
+FC91;FC91;FC91;064A 0631;064A 0631;
+FC92;FC92;FC92;064A 0632;064A 0632;
+FC93;FC93;FC93;064A 0645;064A 0645;
+FC94;FC94;FC94;064A 0646;064A 0646;
+FC95;FC95;FC95;064A 0649;064A 0649;
+FC96;FC96;FC96;064A 064A;064A 064A;
+FC97;FC97;FC97;0626 062C;064A 0654 062C;
+FC98;FC98;FC98;0626 062D;064A 0654 062D;
+FC99;FC99;FC99;0626 062E;064A 0654 062E;
+FC9A;FC9A;FC9A;0626 0645;064A 0654 0645;
+FC9B;FC9B;FC9B;0626 0647;064A 0654 0647;
+FC9C;FC9C;FC9C;0628 062C;0628 062C;
+FC9D;FC9D;FC9D;0628 062D;0628 062D;
+FC9E;FC9E;FC9E;0628 062E;0628 062E;
+FC9F;FC9F;FC9F;0628 0645;0628 0645;
+FCA0;FCA0;FCA0;0628 0647;0628 0647;
+FCA1;FCA1;FCA1;062A 062C;062A 062C;
+FCA2;FCA2;FCA2;062A 062D;062A 062D;
+FCA3;FCA3;FCA3;062A 062E;062A 062E;
+FCA4;FCA4;FCA4;062A 0645;062A 0645;
+FCA5;FCA5;FCA5;062A 0647;062A 0647;
+FCA6;FCA6;FCA6;062B 0645;062B 0645;
+FCA7;FCA7;FCA7;062C 062D;062C 062D;
+FCA8;FCA8;FCA8;062C 0645;062C 0645;
+FCA9;FCA9;FCA9;062D 062C;062D 062C;
+FCAA;FCAA;FCAA;062D 0645;062D 0645;
+FCAB;FCAB;FCAB;062E 062C;062E 062C;
+FCAC;FCAC;FCAC;062E 0645;062E 0645;
+FCAD;FCAD;FCAD;0633 062C;0633 062C;
+FCAE;FCAE;FCAE;0633 062D;0633 062D;
+FCAF;FCAF;FCAF;0633 062E;0633 062E;
+FCB0;FCB0;FCB0;0633 0645;0633 0645;
+FCB1;FCB1;FCB1;0635 062D;0635 062D;
+FCB2;FCB2;FCB2;0635 062E;0635 062E;
+FCB3;FCB3;FCB3;0635 0645;0635 0645;
+FCB4;FCB4;FCB4;0636 062C;0636 062C;
+FCB5;FCB5;FCB5;0636 062D;0636 062D;
+FCB6;FCB6;FCB6;0636 062E;0636 062E;
+FCB7;FCB7;FCB7;0636 0645;0636 0645;
+FCB8;FCB8;FCB8;0637 062D;0637 062D;
+FCB9;FCB9;FCB9;0638 0645;0638 0645;
+FCBA;FCBA;FCBA;0639 062C;0639 062C;
+FCBB;FCBB;FCBB;0639 0645;0639 0645;
+FCBC;FCBC;FCBC;063A 062C;063A 062C;
+FCBD;FCBD;FCBD;063A 0645;063A 0645;
+FCBE;FCBE;FCBE;0641 062C;0641 062C;
+FCBF;FCBF;FCBF;0641 062D;0641 062D;
+FCC0;FCC0;FCC0;0641 062E;0641 062E;
+FCC1;FCC1;FCC1;0641 0645;0641 0645;
+FCC2;FCC2;FCC2;0642 062D;0642 062D;
+FCC3;FCC3;FCC3;0642 0645;0642 0645;
+FCC4;FCC4;FCC4;0643 062C;0643 062C;
+FCC5;FCC5;FCC5;0643 062D;0643 062D;
+FCC6;FCC6;FCC6;0643 062E;0643 062E;
+FCC7;FCC7;FCC7;0643 0644;0643 0644;
+FCC8;FCC8;FCC8;0643 0645;0643 0645;
+FCC9;FCC9;FCC9;0644 062C;0644 062C;
+FCCA;FCCA;FCCA;0644 062D;0644 062D;
+FCCB;FCCB;FCCB;0644 062E;0644 062E;
+FCCC;FCCC;FCCC;0644 0645;0644 0645;
+FCCD;FCCD;FCCD;0644 0647;0644 0647;
+FCCE;FCCE;FCCE;0645 062C;0645 062C;
+FCCF;FCCF;FCCF;0645 062D;0645 062D;
+FCD0;FCD0;FCD0;0645 062E;0645 062E;
+FCD1;FCD1;FCD1;0645 0645;0645 0645;
+FCD2;FCD2;FCD2;0646 062C;0646 062C;
+FCD3;FCD3;FCD3;0646 062D;0646 062D;
+FCD4;FCD4;FCD4;0646 062E;0646 062E;
+FCD5;FCD5;FCD5;0646 0645;0646 0645;
+FCD6;FCD6;FCD6;0646 0647;0646 0647;
+FCD7;FCD7;FCD7;0647 062C;0647 062C;
+FCD8;FCD8;FCD8;0647 0645;0647 0645;
+FCD9;FCD9;FCD9;0647 0670;0647 0670;
+FCDA;FCDA;FCDA;064A 062C;064A 062C;
+FCDB;FCDB;FCDB;064A 062D;064A 062D;
+FCDC;FCDC;FCDC;064A 062E;064A 062E;
+FCDD;FCDD;FCDD;064A 0645;064A 0645;
+FCDE;FCDE;FCDE;064A 0647;064A 0647;
+FCDF;FCDF;FCDF;0626 0645;064A 0654 0645;
+FCE0;FCE0;FCE0;0626 0647;064A 0654 0647;
+FCE1;FCE1;FCE1;0628 0645;0628 0645;
+FCE2;FCE2;FCE2;0628 0647;0628 0647;
+FCE3;FCE3;FCE3;062A 0645;062A 0645;
+FCE4;FCE4;FCE4;062A 0647;062A 0647;
+FCE5;FCE5;FCE5;062B 0645;062B 0645;
+FCE6;FCE6;FCE6;062B 0647;062B 0647;
+FCE7;FCE7;FCE7;0633 0645;0633 0645;
+FCE8;FCE8;FCE8;0633 0647;0633 0647;
+FCE9;FCE9;FCE9;0634 0645;0634 0645;
+FCEA;FCEA;FCEA;0634 0647;0634 0647;
+FCEB;FCEB;FCEB;0643 0644;0643 0644;
+FCEC;FCEC;FCEC;0643 0645;0643 0645;
+FCED;FCED;FCED;0644 0645;0644 0645;
+FCEE;FCEE;FCEE;0646 0645;0646 0645;
+FCEF;FCEF;FCEF;0646 0647;0646 0647;
+FCF0;FCF0;FCF0;064A 0645;064A 0645;
+FCF1;FCF1;FCF1;064A 0647;064A 0647;
+FCF2;FCF2;FCF2;0640 064E 0651;0640 064E 0651;
+FCF3;FCF3;FCF3;0640 064F 0651;0640 064F 0651;
+FCF4;FCF4;FCF4;0640 0650 0651;0640 0650 0651;
+FCF5;FCF5;FCF5;0637 0649;0637 0649;
+FCF6;FCF6;FCF6;0637 064A;0637 064A;
+FCF7;FCF7;FCF7;0639 0649;0639 0649;
+FCF8;FCF8;FCF8;0639 064A;0639 064A;
+FCF9;FCF9;FCF9;063A 0649;063A 0649;
+FCFA;FCFA;FCFA;063A 064A;063A 064A;
+FCFB;FCFB;FCFB;0633 0649;0633 0649;
+FCFC;FCFC;FCFC;0633 064A;0633 064A;
+FCFD;FCFD;FCFD;0634 0649;0634 0649;
+FCFE;FCFE;FCFE;0634 064A;0634 064A;
+FCFF;FCFF;FCFF;062D 0649;062D 0649;
+FD00;FD00;FD00;062D 064A;062D 064A;
+FD01;FD01;FD01;062C 0649;062C 0649;
+FD02;FD02;FD02;062C 064A;062C 064A;
+FD03;FD03;FD03;062E 0649;062E 0649;
+FD04;FD04;FD04;062E 064A;062E 064A;
+FD05;FD05;FD05;0635 0649;0635 0649;
+FD06;FD06;FD06;0635 064A;0635 064A;
+FD07;FD07;FD07;0636 0649;0636 0649;
+FD08;FD08;FD08;0636 064A;0636 064A;
+FD09;FD09;FD09;0634 062C;0634 062C;
+FD0A;FD0A;FD0A;0634 062D;0634 062D;
+FD0B;FD0B;FD0B;0634 062E;0634 062E;
+FD0C;FD0C;FD0C;0634 0645;0634 0645;
+FD0D;FD0D;FD0D;0634 0631;0634 0631;
+FD0E;FD0E;FD0E;0633 0631;0633 0631;
+FD0F;FD0F;FD0F;0635 0631;0635 0631;
+FD10;FD10;FD10;0636 0631;0636 0631;
+FD11;FD11;FD11;0637 0649;0637 0649;
+FD12;FD12;FD12;0637 064A;0637 064A;
+FD13;FD13;FD13;0639 0649;0639 0649;
+FD14;FD14;FD14;0639 064A;0639 064A;
+FD15;FD15;FD15;063A 0649;063A 0649;
+FD16;FD16;FD16;063A 064A;063A 064A;
+FD17;FD17;FD17;0633 0649;0633 0649;
+FD18;FD18;FD18;0633 064A;0633 064A;
+FD19;FD19;FD19;0634 0649;0634 0649;
+FD1A;FD1A;FD1A;0634 064A;0634 064A;
+FD1B;FD1B;FD1B;062D 0649;062D 0649;
+FD1C;FD1C;FD1C;062D 064A;062D 064A;
+FD1D;FD1D;FD1D;062C 0649;062C 0649;
+FD1E;FD1E;FD1E;062C 064A;062C 064A;
+FD1F;FD1F;FD1F;062E 0649;062E 0649;
+FD20;FD20;FD20;062E 064A;062E 064A;
+FD21;FD21;FD21;0635 0649;0635 0649;
+FD22;FD22;FD22;0635 064A;0635 064A;
+FD23;FD23;FD23;0636 0649;0636 0649;
+FD24;FD24;FD24;0636 064A;0636 064A;
+FD25;FD25;FD25;0634 062C;0634 062C;
+FD26;FD26;FD26;0634 062D;0634 062D;
+FD27;FD27;FD27;0634 062E;0634 062E;
+FD28;FD28;FD28;0634 0645;0634 0645;
+FD29;FD29;FD29;0634 0631;0634 0631;
+FD2A;FD2A;FD2A;0633 0631;0633 0631;
+FD2B;FD2B;FD2B;0635 0631;0635 0631;
+FD2C;FD2C;FD2C;0636 0631;0636 0631;
+FD2D;FD2D;FD2D;0634 062C;0634 062C;
+FD2E;FD2E;FD2E;0634 062D;0634 062D;
+FD2F;FD2F;FD2F;0634 062E;0634 062E;
+FD30;FD30;FD30;0634 0645;0634 0645;
+FD31;FD31;FD31;0633 0647;0633 0647;
+FD32;FD32;FD32;0634 0647;0634 0647;
+FD33;FD33;FD33;0637 0645;0637 0645;
+FD34;FD34;FD34;0633 062C;0633 062C;
+FD35;FD35;FD35;0633 062D;0633 062D;
+FD36;FD36;FD36;0633 062E;0633 062E;
+FD37;FD37;FD37;0634 062C;0634 062C;
+FD38;FD38;FD38;0634 062D;0634 062D;
+FD39;FD39;FD39;0634 062E;0634 062E;
+FD3A;FD3A;FD3A;0637 0645;0637 0645;
+FD3B;FD3B;FD3B;0638 0645;0638 0645;
+FD3C;FD3C;FD3C;0627 064B;0627 064B;
+FD3D;FD3D;FD3D;0627 064B;0627 064B;
+FD50;FD50;FD50;062A 062C 0645;062A 062C 0645;
+FD51;FD51;FD51;062A 062D 062C;062A 062D 062C;
+FD52;FD52;FD52;062A 062D 062C;062A 062D 062C;
+FD53;FD53;FD53;062A 062D 0645;062A 062D 0645;
+FD54;FD54;FD54;062A 062E 0645;062A 062E 0645;
+FD55;FD55;FD55;062A 0645 062C;062A 0645 062C;
+FD56;FD56;FD56;062A 0645 062D;062A 0645 062D;
+FD57;FD57;FD57;062A 0645 062E;062A 0645 062E;
+FD58;FD58;FD58;062C 0645 062D;062C 0645 062D;
+FD59;FD59;FD59;062C 0645 062D;062C 0645 062D;
+FD5A;FD5A;FD5A;062D 0645 064A;062D 0645 064A;
+FD5B;FD5B;FD5B;062D 0645 0649;062D 0645 0649;
+FD5C;FD5C;FD5C;0633 062D 062C;0633 062D 062C;
+FD5D;FD5D;FD5D;0633 062C 062D;0633 062C 062D;
+FD5E;FD5E;FD5E;0633 062C 0649;0633 062C 0649;
+FD5F;FD5F;FD5F;0633 0645 062D;0633 0645 062D;
+FD60;FD60;FD60;0633 0645 062D;0633 0645 062D;
+FD61;FD61;FD61;0633 0645 062C;0633 0645 062C;
+FD62;FD62;FD62;0633 0645 0645;0633 0645 0645;
+FD63;FD63;FD63;0633 0645 0645;0633 0645 0645;
+FD64;FD64;FD64;0635 062D 062D;0635 062D 062D;
+FD65;FD65;FD65;0635 062D 062D;0635 062D 062D;
+FD66;FD66;FD66;0635 0645 0645;0635 0645 0645;
+FD67;FD67;FD67;0634 062D 0645;0634 062D 0645;
+FD68;FD68;FD68;0634 062D 0645;0634 062D 0645;
+FD69;FD69;FD69;0634 062C 064A;0634 062C 064A;
+FD6A;FD6A;FD6A;0634 0645 062E;0634 0645 062E;
+FD6B;FD6B;FD6B;0634 0645 062E;0634 0645 062E;
+FD6C;FD6C;FD6C;0634 0645 0645;0634 0645 0645;
+FD6D;FD6D;FD6D;0634 0645 0645;0634 0645 0645;
+FD6E;FD6E;FD6E;0636 062D 0649;0636 062D 0649;
+FD6F;FD6F;FD6F;0636 062E 0645;0636 062E 0645;
+FD70;FD70;FD70;0636 062E 0645;0636 062E 0645;
+FD71;FD71;FD71;0637 0645 062D;0637 0645 062D;
+FD72;FD72;FD72;0637 0645 062D;0637 0645 062D;
+FD73;FD73;FD73;0637 0645 0645;0637 0645 0645;
+FD74;FD74;FD74;0637 0645 064A;0637 0645 064A;
+FD75;FD75;FD75;0639 062C 0645;0639 062C 0645;
+FD76;FD76;FD76;0639 0645 0645;0639 0645 0645;
+FD77;FD77;FD77;0639 0645 0645;0639 0645 0645;
+FD78;FD78;FD78;0639 0645 0649;0639 0645 0649;
+FD79;FD79;FD79;063A 0645 0645;063A 0645 0645;
+FD7A;FD7A;FD7A;063A 0645 064A;063A 0645 064A;
+FD7B;FD7B;FD7B;063A 0645 0649;063A 0645 0649;
+FD7C;FD7C;FD7C;0641 062E 0645;0641 062E 0645;
+FD7D;FD7D;FD7D;0641 062E 0645;0641 062E 0645;
+FD7E;FD7E;FD7E;0642 0645 062D;0642 0645 062D;
+FD7F;FD7F;FD7F;0642 0645 0645;0642 0645 0645;
+FD80;FD80;FD80;0644 062D 0645;0644 062D 0645;
+FD81;FD81;FD81;0644 062D 064A;0644 062D 064A;
+FD82;FD82;FD82;0644 062D 0649;0644 062D 0649;
+FD83;FD83;FD83;0644 062C 062C;0644 062C 062C;
+FD84;FD84;FD84;0644 062C 062C;0644 062C 062C;
+FD85;FD85;FD85;0644 062E 0645;0644 062E 0645;
+FD86;FD86;FD86;0644 062E 0645;0644 062E 0645;
+FD87;FD87;FD87;0644 0645 062D;0644 0645 062D;
+FD88;FD88;FD88;0644 0645 062D;0644 0645 062D;
+FD89;FD89;FD89;0645 062D 062C;0645 062D 062C;
+FD8A;FD8A;FD8A;0645 062D 0645;0645 062D 0645;
+FD8B;FD8B;FD8B;0645 062D 064A;0645 062D 064A;
+FD8C;FD8C;FD8C;0645 062C 062D;0645 062C 062D;
+FD8D;FD8D;FD8D;0645 062C 0645;0645 062C 0645;
+FD8E;FD8E;FD8E;0645 062E 062C;0645 062E 062C;
+FD8F;FD8F;FD8F;0645 062E 0645;0645 062E 0645;
+FD92;FD92;FD92;0645 062C 062E;0645 062C 062E;
+FD93;FD93;FD93;0647 0645 062C;0647 0645 062C;
+FD94;FD94;FD94;0647 0645 0645;0647 0645 0645;
+FD95;FD95;FD95;0646 062D 0645;0646 062D 0645;
+FD96;FD96;FD96;0646 062D 0649;0646 062D 0649;
+FD97;FD97;FD97;0646 062C 0645;0646 062C 0645;
+FD98;FD98;FD98;0646 062C 0645;0646 062C 0645;
+FD99;FD99;FD99;0646 062C 0649;0646 062C 0649;
+FD9A;FD9A;FD9A;0646 0645 064A;0646 0645 064A;
+FD9B;FD9B;FD9B;0646 0645 0649;0646 0645 0649;
+FD9C;FD9C;FD9C;064A 0645 0645;064A 0645 0645;
+FD9D;FD9D;FD9D;064A 0645 0645;064A 0645 0645;
+FD9E;FD9E;FD9E;0628 062E 064A;0628 062E 064A;
+FD9F;FD9F;FD9F;062A 062C 064A;062A 062C 064A;
+FDA0;FDA0;FDA0;062A 062C 0649;062A 062C 0649;
+FDA1;FDA1;FDA1;062A 062E 064A;062A 062E 064A;
+FDA2;FDA2;FDA2;062A 062E 0649;062A 062E 0649;
+FDA3;FDA3;FDA3;062A 0645 064A;062A 0645 064A;
+FDA4;FDA4;FDA4;062A 0645 0649;062A 0645 0649;
+FDA5;FDA5;FDA5;062C 0645 064A;062C 0645 064A;
+FDA6;FDA6;FDA6;062C 062D 0649;062C 062D 0649;
+FDA7;FDA7;FDA7;062C 0645 0649;062C 0645 0649;
+FDA8;FDA8;FDA8;0633 062E 0649;0633 062E 0649;
+FDA9;FDA9;FDA9;0635 062D 064A;0635 062D 064A;
+FDAA;FDAA;FDAA;0634 062D 064A;0634 062D 064A;
+FDAB;FDAB;FDAB;0636 062D 064A;0636 062D 064A;
+FDAC;FDAC;FDAC;0644 062C 064A;0644 062C 064A;
+FDAD;FDAD;FDAD;0644 0645 064A;0644 0645 064A;
+FDAE;FDAE;FDAE;064A 062D 064A;064A 062D 064A;
+FDAF;FDAF;FDAF;064A 062C 064A;064A 062C 064A;
+FDB0;FDB0;FDB0;064A 0645 064A;064A 0645 064A;
+FDB1;FDB1;FDB1;0645 0645 064A;0645 0645 064A;
+FDB2;FDB2;FDB2;0642 0645 064A;0642 0645 064A;
+FDB3;FDB3;FDB3;0646 062D 064A;0646 062D 064A;
+FDB4;FDB4;FDB4;0642 0645 062D;0642 0645 062D;
+FDB5;FDB5;FDB5;0644 062D 0645;0644 062D 0645;
+FDB6;FDB6;FDB6;0639 0645 064A;0639 0645 064A;
+FDB7;FDB7;FDB7;0643 0645 064A;0643 0645 064A;
+FDB8;FDB8;FDB8;0646 062C 062D;0646 062C 062D;
+FDB9;FDB9;FDB9;0645 062E 064A;0645 062E 064A;
+FDBA;FDBA;FDBA;0644 062C 0645;0644 062C 0645;
+FDBB;FDBB;FDBB;0643 0645 0645;0643 0645 0645;
+FDBC;FDBC;FDBC;0644 062C 0645;0644 062C 0645;
+FDBD;FDBD;FDBD;0646 062C 062D;0646 062C 062D;
+FDBE;FDBE;FDBE;062C 062D 064A;062C 062D 064A;
+FDBF;FDBF;FDBF;062D 062C 064A;062D 062C 064A;
+FDC0;FDC0;FDC0;0645 062C 064A;0645 062C 064A;
+FDC1;FDC1;FDC1;0641 0645 064A;0641 0645 064A;
+FDC2;FDC2;FDC2;0628 062D 064A;0628 062D 064A;
+FDC3;FDC3;FDC3;0643 0645 0645;0643 0645 0645;
+FDC4;FDC4;FDC4;0639 062C 0645;0639 062C 0645;
+FDC5;FDC5;FDC5;0635 0645 0645;0635 0645 0645;
+FDC6;FDC6;FDC6;0633 062E 064A;0633 062E 064A;
+FDC7;FDC7;FDC7;0646 062C 064A;0646 062C 064A;
+FDF0;FDF0;FDF0;0635 0644 06D2;0635 0644 06D2;
+FDF1;FDF1;FDF1;0642 0644 06D2;0642 0644 06D2;
+FDF2;FDF2;FDF2;0627 0644 0644 0647;0627 0644 0644 0647;
+FDF3;FDF3;FDF3;0627 0643 0628 0631;0627 0643 0628 0631;
+FDF4;FDF4;FDF4;0645 062D 0645 062F;0645 062D 0645 062F;
+FDF5;FDF5;FDF5;0635 0644 0639 0645;0635 0644 0639 0645;
+FDF6;FDF6;FDF6;0631 0633 0648 0644;0631 0633 0648 0644;
+FDF7;FDF7;FDF7;0639 0644 064A 0647;0639 0644 064A 0647;
+FDF8;FDF8;FDF8;0648 0633 0644 0645;0648 0633 0644 0645;
+FDF9;FDF9;FDF9;0635 0644 0649;0635 0644 0649;
+FDFA;FDFA;FDFA;0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;
+FDFB;FDFB;FDFB;062C 0644 0020 062C 0644 0627 0644 0647;062C 0644 0020 062C 0644 0627 0644 0647;
+FDFC;FDFC;FDFC;0631 06CC 0627 0644;0631 06CC 0627 0644;
+FE10;FE10;FE10;002C;002C;
+FE11;FE11;FE11;3001;3001;
+FE12;FE12;FE12;3002;3002;
+FE13;FE13;FE13;003A;003A;
+FE14;FE14;FE14;003B;003B;
+FE15;FE15;FE15;0021;0021;
+FE16;FE16;FE16;003F;003F;
+FE17;FE17;FE17;3016;3016;
+FE18;FE18;FE18;3017;3017;
+FE19;FE19;FE19;002E 002E 002E;002E 002E 002E;
+FE30;FE30;FE30;002E 002E;002E 002E;
+FE31;FE31;FE31;2014;2014;
+FE32;FE32;FE32;2013;2013;
+FE33;FE33;FE33;005F;005F;
+FE34;FE34;FE34;005F;005F;
+FE35;FE35;FE35;0028;0028;
+FE36;FE36;FE36;0029;0029;
+FE37;FE37;FE37;007B;007B;
+FE38;FE38;FE38;007D;007D;
+FE39;FE39;FE39;3014;3014;
+FE3A;FE3A;FE3A;3015;3015;
+FE3B;FE3B;FE3B;3010;3010;
+FE3C;FE3C;FE3C;3011;3011;
+FE3D;FE3D;FE3D;300A;300A;
+FE3E;FE3E;FE3E;300B;300B;
+FE3F;FE3F;FE3F;3008;3008;
+FE40;FE40;FE40;3009;3009;
+FE41;FE41;FE41;300C;300C;
+FE42;FE42;FE42;300D;300D;
+FE43;FE43;FE43;300E;300E;
+FE44;FE44;FE44;300F;300F;
+FE47;FE47;FE47;005B;005B;
+FE48;FE48;FE48;005D;005D;
+FE49;FE49;FE49;0020 0305;0020 0305;
+FE4A;FE4A;FE4A;0020 0305;0020 0305;
+FE4B;FE4B;FE4B;0020 0305;0020 0305;
+FE4C;FE4C;FE4C;0020 0305;0020 0305;
+FE4D;FE4D;FE4D;005F;005F;
+FE4E;FE4E;FE4E;005F;005F;
+FE4F;FE4F;FE4F;005F;005F;
+FE50;FE50;FE50;002C;002C;
+FE51;FE51;FE51;3001;3001;
+FE52;FE52;FE52;002E;002E;
+FE54;FE54;FE54;003B;003B;
+FE55;FE55;FE55;003A;003A;
+FE56;FE56;FE56;003F;003F;
+FE57;FE57;FE57;0021;0021;
+FE58;FE58;FE58;2014;2014;
+FE59;FE59;FE59;0028;0028;
+FE5A;FE5A;FE5A;0029;0029;
+FE5B;FE5B;FE5B;007B;007B;
+FE5C;FE5C;FE5C;007D;007D;
+FE5D;FE5D;FE5D;3014;3014;
+FE5E;FE5E;FE5E;3015;3015;
+FE5F;FE5F;FE5F;0023;0023;
+FE60;FE60;FE60;0026;0026;
+FE61;FE61;FE61;002A;002A;
+FE62;FE62;FE62;002B;002B;
+FE63;FE63;FE63;002D;002D;
+FE64;FE64;FE64;003C;003C;
+FE65;FE65;FE65;003E;003E;
+FE66;FE66;FE66;003D;003D;
+FE68;FE68;FE68;005C;005C;
+FE69;FE69;FE69;0024;0024;
+FE6A;FE6A;FE6A;0025;0025;
+FE6B;FE6B;FE6B;0040;0040;
+FE70;FE70;FE70;0020 064B;0020 064B;
+FE71;FE71;FE71;0640 064B;0640 064B;
+FE72;FE72;FE72;0020 064C;0020 064C;
+FE74;FE74;FE74;0020 064D;0020 064D;
+FE76;FE76;FE76;0020 064E;0020 064E;
+FE77;FE77;FE77;0640 064E;0640 064E;
+FE78;FE78;FE78;0020 064F;0020 064F;
+FE79;FE79;FE79;0640 064F;0640 064F;
+FE7A;FE7A;FE7A;0020 0650;0020 0650;
+FE7B;FE7B;FE7B;0640 0650;0640 0650;
+FE7C;FE7C;FE7C;0020 0651;0020 0651;
+FE7D;FE7D;FE7D;0640 0651;0640 0651;
+FE7E;FE7E;FE7E;0020 0652;0020 0652;
+FE7F;FE7F;FE7F;0640 0652;0640 0652;
+FE80;FE80;FE80;0621;0621;
+FE81;FE81;FE81;0622;0627 0653;
+FE82;FE82;FE82;0622;0627 0653;
+FE83;FE83;FE83;0623;0627 0654;
+FE84;FE84;FE84;0623;0627 0654;
+FE85;FE85;FE85;0624;0648 0654;
+FE86;FE86;FE86;0624;0648 0654;
+FE87;FE87;FE87;0625;0627 0655;
+FE88;FE88;FE88;0625;0627 0655;
+FE89;FE89;FE89;0626;064A 0654;
+FE8A;FE8A;FE8A;0626;064A 0654;
+FE8B;FE8B;FE8B;0626;064A 0654;
+FE8C;FE8C;FE8C;0626;064A 0654;
+FE8D;FE8D;FE8D;0627;0627;
+FE8E;FE8E;FE8E;0627;0627;
+FE8F;FE8F;FE8F;0628;0628;
+FE90;FE90;FE90;0628;0628;
+FE91;FE91;FE91;0628;0628;
+FE92;FE92;FE92;0628;0628;
+FE93;FE93;FE93;0629;0629;
+FE94;FE94;FE94;0629;0629;
+FE95;FE95;FE95;062A;062A;
+FE96;FE96;FE96;062A;062A;
+FE97;FE97;FE97;062A;062A;
+FE98;FE98;FE98;062A;062A;
+FE99;FE99;FE99;062B;062B;
+FE9A;FE9A;FE9A;062B;062B;
+FE9B;FE9B;FE9B;062B;062B;
+FE9C;FE9C;FE9C;062B;062B;
+FE9D;FE9D;FE9D;062C;062C;
+FE9E;FE9E;FE9E;062C;062C;
+FE9F;FE9F;FE9F;062C;062C;
+FEA0;FEA0;FEA0;062C;062C;
+FEA1;FEA1;FEA1;062D;062D;
+FEA2;FEA2;FEA2;062D;062D;
+FEA3;FEA3;FEA3;062D;062D;
+FEA4;FEA4;FEA4;062D;062D;
+FEA5;FEA5;FEA5;062E;062E;
+FEA6;FEA6;FEA6;062E;062E;
+FEA7;FEA7;FEA7;062E;062E;
+FEA8;FEA8;FEA8;062E;062E;
+FEA9;FEA9;FEA9;062F;062F;
+FEAA;FEAA;FEAA;062F;062F;
+FEAB;FEAB;FEAB;0630;0630;
+FEAC;FEAC;FEAC;0630;0630;
+FEAD;FEAD;FEAD;0631;0631;
+FEAE;FEAE;FEAE;0631;0631;
+FEAF;FEAF;FEAF;0632;0632;
+FEB0;FEB0;FEB0;0632;0632;
+FEB1;FEB1;FEB1;0633;0633;
+FEB2;FEB2;FEB2;0633;0633;
+FEB3;FEB3;FEB3;0633;0633;
+FEB4;FEB4;FEB4;0633;0633;
+FEB5;FEB5;FEB5;0634;0634;
+FEB6;FEB6;FEB6;0634;0634;
+FEB7;FEB7;FEB7;0634;0634;
+FEB8;FEB8;FEB8;0634;0634;
+FEB9;FEB9;FEB9;0635;0635;
+FEBA;FEBA;FEBA;0635;0635;
+FEBB;FEBB;FEBB;0635;0635;
+FEBC;FEBC;FEBC;0635;0635;
+FEBD;FEBD;FEBD;0636;0636;
+FEBE;FEBE;FEBE;0636;0636;
+FEBF;FEBF;FEBF;0636;0636;
+FEC0;FEC0;FEC0;0636;0636;
+FEC1;FEC1;FEC1;0637;0637;
+FEC2;FEC2;FEC2;0637;0637;
+FEC3;FEC3;FEC3;0637;0637;
+FEC4;FEC4;FEC4;0637;0637;
+FEC5;FEC5;FEC5;0638;0638;
+FEC6;FEC6;FEC6;0638;0638;
+FEC7;FEC7;FEC7;0638;0638;
+FEC8;FEC8;FEC8;0638;0638;
+FEC9;FEC9;FEC9;0639;0639;
+FECA;FECA;FECA;0639;0639;
+FECB;FECB;FECB;0639;0639;
+FECC;FECC;FECC;0639;0639;
+FECD;FECD;FECD;063A;063A;
+FECE;FECE;FECE;063A;063A;
+FECF;FECF;FECF;063A;063A;
+FED0;FED0;FED0;063A;063A;
+FED1;FED1;FED1;0641;0641;
+FED2;FED2;FED2;0641;0641;
+FED3;FED3;FED3;0641;0641;
+FED4;FED4;FED4;0641;0641;
+FED5;FED5;FED5;0642;0642;
+FED6;FED6;FED6;0642;0642;
+FED7;FED7;FED7;0642;0642;
+FED8;FED8;FED8;0642;0642;
+FED9;FED9;FED9;0643;0643;
+FEDA;FEDA;FEDA;0643;0643;
+FEDB;FEDB;FEDB;0643;0643;
+FEDC;FEDC;FEDC;0643;0643;
+FEDD;FEDD;FEDD;0644;0644;
+FEDE;FEDE;FEDE;0644;0644;
+FEDF;FEDF;FEDF;0644;0644;
+FEE0;FEE0;FEE0;0644;0644;
+FEE1;FEE1;FEE1;0645;0645;
+FEE2;FEE2;FEE2;0645;0645;
+FEE3;FEE3;FEE3;0645;0645;
+FEE4;FEE4;FEE4;0645;0645;
+FEE5;FEE5;FEE5;0646;0646;
+FEE6;FEE6;FEE6;0646;0646;
+FEE7;FEE7;FEE7;0646;0646;
+FEE8;FEE8;FEE8;0646;0646;
+FEE9;FEE9;FEE9;0647;0647;
+FEEA;FEEA;FEEA;0647;0647;
+FEEB;FEEB;FEEB;0647;0647;
+FEEC;FEEC;FEEC;0647;0647;
+FEED;FEED;FEED;0648;0648;
+FEEE;FEEE;FEEE;0648;0648;
+FEEF;FEEF;FEEF;0649;0649;
+FEF0;FEF0;FEF0;0649;0649;
+FEF1;FEF1;FEF1;064A;064A;
+FEF2;FEF2;FEF2;064A;064A;
+FEF3;FEF3;FEF3;064A;064A;
+FEF4;FEF4;FEF4;064A;064A;
+FEF5;FEF5;FEF5;0644 0622;0644 0627 0653;
+FEF6;FEF6;FEF6;0644 0622;0644 0627 0653;
+FEF7;FEF7;FEF7;0644 0623;0644 0627 0654;
+FEF8;FEF8;FEF8;0644 0623;0644 0627 0654;
+FEF9;FEF9;FEF9;0644 0625;0644 0627 0655;
+FEFA;FEFA;FEFA;0644 0625;0644 0627 0655;
+FEFB;FEFB;FEFB;0644 0627;0644 0627;
+FEFC;FEFC;FEFC;0644 0627;0644 0627;
+FF01;FF01;FF01;0021;0021;
+FF02;FF02;FF02;0022;0022;
+FF03;FF03;FF03;0023;0023;
+FF04;FF04;FF04;0024;0024;
+FF05;FF05;FF05;0025;0025;
+FF06;FF06;FF06;0026;0026;
+FF07;FF07;FF07;0027;0027;
+FF08;FF08;FF08;0028;0028;
+FF09;FF09;FF09;0029;0029;
+FF0A;FF0A;FF0A;002A;002A;
+FF0B;FF0B;FF0B;002B;002B;
+FF0C;FF0C;FF0C;002C;002C;
+FF0D;FF0D;FF0D;002D;002D;
+FF0E;FF0E;FF0E;002E;002E;
+FF0F;FF0F;FF0F;002F;002F;
+FF10;FF10;FF10;0030;0030;
+FF11;FF11;FF11;0031;0031;
+FF12;FF12;FF12;0032;0032;
+FF13;FF13;FF13;0033;0033;
+FF14;FF14;FF14;0034;0034;
+FF15;FF15;FF15;0035;0035;
+FF16;FF16;FF16;0036;0036;
+FF17;FF17;FF17;0037;0037;
+FF18;FF18;FF18;0038;0038;
+FF19;FF19;FF19;0039;0039;
+FF1A;FF1A;FF1A;003A;003A;
+FF1B;FF1B;FF1B;003B;003B;
+FF1C;FF1C;FF1C;003C;003C;
+FF1D;FF1D;FF1D;003D;003D;
+FF1E;FF1E;FF1E;003E;003E;
+FF1F;FF1F;FF1F;003F;003F;
+FF20;FF20;FF20;0040;0040;
+FF21;FF21;FF21;0041;0041;
+FF22;FF22;FF22;0042;0042;
+FF23;FF23;FF23;0043;0043;
+FF24;FF24;FF24;0044;0044;
+FF25;FF25;FF25;0045;0045;
+FF26;FF26;FF26;0046;0046;
+FF27;FF27;FF27;0047;0047;
+FF28;FF28;FF28;0048;0048;
+FF29;FF29;FF29;0049;0049;
+FF2A;FF2A;FF2A;004A;004A;
+FF2B;FF2B;FF2B;004B;004B;
+FF2C;FF2C;FF2C;004C;004C;
+FF2D;FF2D;FF2D;004D;004D;
+FF2E;FF2E;FF2E;004E;004E;
+FF2F;FF2F;FF2F;004F;004F;
+FF30;FF30;FF30;0050;0050;
+FF31;FF31;FF31;0051;0051;
+FF32;FF32;FF32;0052;0052;
+FF33;FF33;FF33;0053;0053;
+FF34;FF34;FF34;0054;0054;
+FF35;FF35;FF35;0055;0055;
+FF36;FF36;FF36;0056;0056;
+FF37;FF37;FF37;0057;0057;
+FF38;FF38;FF38;0058;0058;
+FF39;FF39;FF39;0059;0059;
+FF3A;FF3A;FF3A;005A;005A;
+FF3B;FF3B;FF3B;005B;005B;
+FF3C;FF3C;FF3C;005C;005C;
+FF3D;FF3D;FF3D;005D;005D;
+FF3E;FF3E;FF3E;005E;005E;
+FF3F;FF3F;FF3F;005F;005F;
+FF40;FF40;FF40;0060;0060;
+FF41;FF41;FF41;0061;0061;
+FF42;FF42;FF42;0062;0062;
+FF43;FF43;FF43;0063;0063;
+FF44;FF44;FF44;0064;0064;
+FF45;FF45;FF45;0065;0065;
+FF46;FF46;FF46;0066;0066;
+FF47;FF47;FF47;0067;0067;
+FF48;FF48;FF48;0068;0068;
+FF49;FF49;FF49;0069;0069;
+FF4A;FF4A;FF4A;006A;006A;
+FF4B;FF4B;FF4B;006B;006B;
+FF4C;FF4C;FF4C;006C;006C;
+FF4D;FF4D;FF4D;006D;006D;
+FF4E;FF4E;FF4E;006E;006E;
+FF4F;FF4F;FF4F;006F;006F;
+FF50;FF50;FF50;0070;0070;
+FF51;FF51;FF51;0071;0071;
+FF52;FF52;FF52;0072;0072;
+FF53;FF53;FF53;0073;0073;
+FF54;FF54;FF54;0074;0074;
+FF55;FF55;FF55;0075;0075;
+FF56;FF56;FF56;0076;0076;
+FF57;FF57;FF57;0077;0077;
+FF58;FF58;FF58;0078;0078;
+FF59;FF59;FF59;0079;0079;
+FF5A;FF5A;FF5A;007A;007A;
+FF5B;FF5B;FF5B;007B;007B;
+FF5C;FF5C;FF5C;007C;007C;
+FF5D;FF5D;FF5D;007D;007D;
+FF5E;FF5E;FF5E;007E;007E;
+FF5F;FF5F;FF5F;2985;2985;
+FF60;FF60;FF60;2986;2986;
+FF61;FF61;FF61;3002;3002;
+FF62;FF62;FF62;300C;300C;
+FF63;FF63;FF63;300D;300D;
+FF64;FF64;FF64;3001;3001;
+FF65;FF65;FF65;30FB;30FB;
+FF66;FF66;FF66;30F2;30F2;
+FF67;FF67;FF67;30A1;30A1;
+FF68;FF68;FF68;30A3;30A3;
+FF69;FF69;FF69;30A5;30A5;
+FF6A;FF6A;FF6A;30A7;30A7;
+FF6B;FF6B;FF6B;30A9;30A9;
+FF6C;FF6C;FF6C;30E3;30E3;
+FF6D;FF6D;FF6D;30E5;30E5;
+FF6E;FF6E;FF6E;30E7;30E7;
+FF6F;FF6F;FF6F;30C3;30C3;
+FF70;FF70;FF70;30FC;30FC;
+FF71;FF71;FF71;30A2;30A2;
+FF72;FF72;FF72;30A4;30A4;
+FF73;FF73;FF73;30A6;30A6;
+FF74;FF74;FF74;30A8;30A8;
+FF75;FF75;FF75;30AA;30AA;
+FF76;FF76;FF76;30AB;30AB;
+FF77;FF77;FF77;30AD;30AD;
+FF78;FF78;FF78;30AF;30AF;
+FF79;FF79;FF79;30B1;30B1;
+FF7A;FF7A;FF7A;30B3;30B3;
+FF7B;FF7B;FF7B;30B5;30B5;
+FF7C;FF7C;FF7C;30B7;30B7;
+FF7D;FF7D;FF7D;30B9;30B9;
+FF7E;FF7E;FF7E;30BB;30BB;
+FF7F;FF7F;FF7F;30BD;30BD;
+FF80;FF80;FF80;30BF;30BF;
+FF81;FF81;FF81;30C1;30C1;
+FF82;FF82;FF82;30C4;30C4;
+FF83;FF83;FF83;30C6;30C6;
+FF84;FF84;FF84;30C8;30C8;
+FF85;FF85;FF85;30CA;30CA;
+FF86;FF86;FF86;30CB;30CB;
+FF87;FF87;FF87;30CC;30CC;
+FF88;FF88;FF88;30CD;30CD;
+FF89;FF89;FF89;30CE;30CE;
+FF8A;FF8A;FF8A;30CF;30CF;
+FF8B;FF8B;FF8B;30D2;30D2;
+FF8C;FF8C;FF8C;30D5;30D5;
+FF8D;FF8D;FF8D;30D8;30D8;
+FF8E;FF8E;FF8E;30DB;30DB;
+FF8F;FF8F;FF8F;30DE;30DE;
+FF90;FF90;FF90;30DF;30DF;
+FF91;FF91;FF91;30E0;30E0;
+FF92;FF92;FF92;30E1;30E1;
+FF93;FF93;FF93;30E2;30E2;
+FF94;FF94;FF94;30E4;30E4;
+FF95;FF95;FF95;30E6;30E6;
+FF96;FF96;FF96;30E8;30E8;
+FF97;FF97;FF97;30E9;30E9;
+FF98;FF98;FF98;30EA;30EA;
+FF99;FF99;FF99;30EB;30EB;
+FF9A;FF9A;FF9A;30EC;30EC;
+FF9B;FF9B;FF9B;30ED;30ED;
+FF9C;FF9C;FF9C;30EF;30EF;
+FF9D;FF9D;FF9D;30F3;30F3;
+FF9E;FF9E;FF9E;3099;3099;
+FF9F;FF9F;FF9F;309A;309A;
+FFA0;FFA0;FFA0;1160;1160;
+FFA1;FFA1;FFA1;1100;1100;
+FFA2;FFA2;FFA2;1101;1101;
+FFA3;FFA3;FFA3;11AA;11AA;
+FFA4;FFA4;FFA4;1102;1102;
+FFA5;FFA5;FFA5;11AC;11AC;
+FFA6;FFA6;FFA6;11AD;11AD;
+FFA7;FFA7;FFA7;1103;1103;
+FFA8;FFA8;FFA8;1104;1104;
+FFA9;FFA9;FFA9;1105;1105;
+FFAA;FFAA;FFAA;11B0;11B0;
+FFAB;FFAB;FFAB;11B1;11B1;
+FFAC;FFAC;FFAC;11B2;11B2;
+FFAD;FFAD;FFAD;11B3;11B3;
+FFAE;FFAE;FFAE;11B4;11B4;
+FFAF;FFAF;FFAF;11B5;11B5;
+FFB0;FFB0;FFB0;111A;111A;
+FFB1;FFB1;FFB1;1106;1106;
+FFB2;FFB2;FFB2;1107;1107;
+FFB3;FFB3;FFB3;1108;1108;
+FFB4;FFB4;FFB4;1121;1121;
+FFB5;FFB5;FFB5;1109;1109;
+FFB6;FFB6;FFB6;110A;110A;
+FFB7;FFB7;FFB7;110B;110B;
+FFB8;FFB8;FFB8;110C;110C;
+FFB9;FFB9;FFB9;110D;110D;
+FFBA;FFBA;FFBA;110E;110E;
+FFBB;FFBB;FFBB;110F;110F;
+FFBC;FFBC;FFBC;1110;1110;
+FFBD;FFBD;FFBD;1111;1111;
+FFBE;FFBE;FFBE;1112;1112;
+FFC2;FFC2;FFC2;1161;1161;
+FFC3;FFC3;FFC3;1162;1162;
+FFC4;FFC4;FFC4;1163;1163;
+FFC5;FFC5;FFC5;1164;1164;
+FFC6;FFC6;FFC6;1165;1165;
+FFC7;FFC7;FFC7;1166;1166;
+FFCA;FFCA;FFCA;1167;1167;
+FFCB;FFCB;FFCB;1168;1168;
+FFCC;FFCC;FFCC;1169;1169;
+FFCD;FFCD;FFCD;116A;116A;
+FFCE;FFCE;FFCE;116B;116B;
+FFCF;FFCF;FFCF;116C;116C;
+FFD2;FFD2;FFD2;116D;116D;
+FFD3;FFD3;FFD3;116E;116E;
+FFD4;FFD4;FFD4;116F;116F;
+FFD5;FFD5;FFD5;1170;1170;
+FFD6;FFD6;FFD6;1171;1171;
+FFD7;FFD7;FFD7;1172;1172;
+FFDA;FFDA;FFDA;1173;1173;
+FFDB;FFDB;FFDB;1174;1174;
+FFDC;FFDC;FFDC;1175;1175;
+FFE0;FFE0;FFE0;00A2;00A2;
+FFE1;FFE1;FFE1;00A3;00A3;
+FFE2;FFE2;FFE2;00AC;00AC;
+FFE3;FFE3;FFE3;0020 0304;0020 0304;
+FFE4;FFE4;FFE4;00A6;00A6;
+FFE5;FFE5;FFE5;00A5;00A5;
+FFE6;FFE6;FFE6;20A9;20A9;
+FFE8;FFE8;FFE8;2502;2502;
+FFE9;FFE9;FFE9;2190;2190;
+FFEA;FFEA;FFEA;2191;2191;
+FFEB;FFEB;FFEB;2192;2192;
+FFEC;FFEC;FFEC;2193;2193;
+FFED;FFED;FFED;25A0;25A0;
+FFEE;FFEE;FFEE;25CB;25CB;
+1D15E;1D157 1D165;1D157 1D165;1D157 1D165;1D157 1D165;
+1D15F;1D158 1D165;1D158 1D165;1D158 1D165;1D158 1D165;
+1D160;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E;
+1D161;1D158 1D165 1D16F;1D158 1D165 1D16F;1D158 1D165 1D16F;1D158 1D165 1D16F;
+1D162;1D158 1D165 1D170;1D158 1D165 1D170;1D158 1D165 1D170;1D158 1D165 1D170;
+1D163;1D158 1D165 1D171;1D158 1D165 1D171;1D158 1D165 1D171;1D158 1D165 1D171;
+1D164;1D158 1D165 1D172;1D158 1D165 1D172;1D158 1D165 1D172;1D158 1D165 1D172;
+1D1BB;1D1B9 1D165;1D1B9 1D165;1D1B9 1D165;1D1B9 1D165;
+1D1BC;1D1BA 1D165;1D1BA 1D165;1D1BA 1D165;1D1BA 1D165;
+1D1BD;1D1B9 1D165 1D16E;1D1B9 1D165 1D16E;1D1B9 1D165 1D16E;1D1B9 1D165 1D16E;
+1D1BE;1D1BA 1D165 1D16E;1D1BA 1D165 1D16E;1D1BA 1D165 1D16E;1D1BA 1D165 1D16E;
+1D1BF;1D1B9 1D165 1D16F;1D1B9 1D165 1D16F;1D1B9 1D165 1D16F;1D1B9 1D165 1D16F;
+1D1C0;1D1BA 1D165 1D16F;1D1BA 1D165 1D16F;1D1BA 1D165 1D16F;1D1BA 1D165 1D16F;
+1D400;1D400;1D400;0041;0041;
+1D401;1D401;1D401;0042;0042;
+1D402;1D402;1D402;0043;0043;
+1D403;1D403;1D403;0044;0044;
+1D404;1D404;1D404;0045;0045;
+1D405;1D405;1D405;0046;0046;
+1D406;1D406;1D406;0047;0047;
+1D407;1D407;1D407;0048;0048;
+1D408;1D408;1D408;0049;0049;
+1D409;1D409;1D409;004A;004A;
+1D40A;1D40A;1D40A;004B;004B;
+1D40B;1D40B;1D40B;004C;004C;
+1D40C;1D40C;1D40C;004D;004D;
+1D40D;1D40D;1D40D;004E;004E;
+1D40E;1D40E;1D40E;004F;004F;
+1D40F;1D40F;1D40F;0050;0050;
+1D410;1D410;1D410;0051;0051;
+1D411;1D411;1D411;0052;0052;
+1D412;1D412;1D412;0053;0053;
+1D413;1D413;1D413;0054;0054;
+1D414;1D414;1D414;0055;0055;
+1D415;1D415;1D415;0056;0056;
+1D416;1D416;1D416;0057;0057;
+1D417;1D417;1D417;0058;0058;
+1D418;1D418;1D418;0059;0059;
+1D419;1D419;1D419;005A;005A;
+1D41A;1D41A;1D41A;0061;0061;
+1D41B;1D41B;1D41B;0062;0062;
+1D41C;1D41C;1D41C;0063;0063;
+1D41D;1D41D;1D41D;0064;0064;
+1D41E;1D41E;1D41E;0065;0065;
+1D41F;1D41F;1D41F;0066;0066;
+1D420;1D420;1D420;0067;0067;
+1D421;1D421;1D421;0068;0068;
+1D422;1D422;1D422;0069;0069;
+1D423;1D423;1D423;006A;006A;
+1D424;1D424;1D424;006B;006B;
+1D425;1D425;1D425;006C;006C;
+1D426;1D426;1D426;006D;006D;
+1D427;1D427;1D427;006E;006E;
+1D428;1D428;1D428;006F;006F;
+1D429;1D429;1D429;0070;0070;
+1D42A;1D42A;1D42A;0071;0071;
+1D42B;1D42B;1D42B;0072;0072;
+1D42C;1D42C;1D42C;0073;0073;
+1D42D;1D42D;1D42D;0074;0074;
+1D42E;1D42E;1D42E;0075;0075;
+1D42F;1D42F;1D42F;0076;0076;
+1D430;1D430;1D430;0077;0077;
+1D431;1D431;1D431;0078;0078;
+1D432;1D432;1D432;0079;0079;
+1D433;1D433;1D433;007A;007A;
+1D434;1D434;1D434;0041;0041;
+1D435;1D435;1D435;0042;0042;
+1D436;1D436;1D436;0043;0043;
+1D437;1D437;1D437;0044;0044;
+1D438;1D438;1D438;0045;0045;
+1D439;1D439;1D439;0046;0046;
+1D43A;1D43A;1D43A;0047;0047;
+1D43B;1D43B;1D43B;0048;0048;
+1D43C;1D43C;1D43C;0049;0049;
+1D43D;1D43D;1D43D;004A;004A;
+1D43E;1D43E;1D43E;004B;004B;
+1D43F;1D43F;1D43F;004C;004C;
+1D440;1D440;1D440;004D;004D;
+1D441;1D441;1D441;004E;004E;
+1D442;1D442;1D442;004F;004F;
+1D443;1D443;1D443;0050;0050;
+1D444;1D444;1D444;0051;0051;
+1D445;1D445;1D445;0052;0052;
+1D446;1D446;1D446;0053;0053;
+1D447;1D447;1D447;0054;0054;
+1D448;1D448;1D448;0055;0055;
+1D449;1D449;1D449;0056;0056;
+1D44A;1D44A;1D44A;0057;0057;
+1D44B;1D44B;1D44B;0058;0058;
+1D44C;1D44C;1D44C;0059;0059;
+1D44D;1D44D;1D44D;005A;005A;
+1D44E;1D44E;1D44E;0061;0061;
+1D44F;1D44F;1D44F;0062;0062;
+1D450;1D450;1D450;0063;0063;
+1D451;1D451;1D451;0064;0064;
+1D452;1D452;1D452;0065;0065;
+1D453;1D453;1D453;0066;0066;
+1D454;1D454;1D454;0067;0067;
+1D456;1D456;1D456;0069;0069;
+1D457;1D457;1D457;006A;006A;
+1D458;1D458;1D458;006B;006B;
+1D459;1D459;1D459;006C;006C;
+1D45A;1D45A;1D45A;006D;006D;
+1D45B;1D45B;1D45B;006E;006E;
+1D45C;1D45C;1D45C;006F;006F;
+1D45D;1D45D;1D45D;0070;0070;
+1D45E;1D45E;1D45E;0071;0071;
+1D45F;1D45F;1D45F;0072;0072;
+1D460;1D460;1D460;0073;0073;
+1D461;1D461;1D461;0074;0074;
+1D462;1D462;1D462;0075;0075;
+1D463;1D463;1D463;0076;0076;
+1D464;1D464;1D464;0077;0077;
+1D465;1D465;1D465;0078;0078;
+1D466;1D466;1D466;0079;0079;
+1D467;1D467;1D467;007A;007A;
+1D468;1D468;1D468;0041;0041;
+1D469;1D469;1D469;0042;0042;
+1D46A;1D46A;1D46A;0043;0043;
+1D46B;1D46B;1D46B;0044;0044;
+1D46C;1D46C;1D46C;0045;0045;
+1D46D;1D46D;1D46D;0046;0046;
+1D46E;1D46E;1D46E;0047;0047;
+1D46F;1D46F;1D46F;0048;0048;
+1D470;1D470;1D470;0049;0049;
+1D471;1D471;1D471;004A;004A;
+1D472;1D472;1D472;004B;004B;
+1D473;1D473;1D473;004C;004C;
+1D474;1D474;1D474;004D;004D;
+1D475;1D475;1D475;004E;004E;
+1D476;1D476;1D476;004F;004F;
+1D477;1D477;1D477;0050;0050;
+1D478;1D478;1D478;0051;0051;
+1D479;1D479;1D479;0052;0052;
+1D47A;1D47A;1D47A;0053;0053;
+1D47B;1D47B;1D47B;0054;0054;
+1D47C;1D47C;1D47C;0055;0055;
+1D47D;1D47D;1D47D;0056;0056;
+1D47E;1D47E;1D47E;0057;0057;
+1D47F;1D47F;1D47F;0058;0058;
+1D480;1D480;1D480;0059;0059;
+1D481;1D481;1D481;005A;005A;
+1D482;1D482;1D482;0061;0061;
+1D483;1D483;1D483;0062;0062;
+1D484;1D484;1D484;0063;0063;
+1D485;1D485;1D485;0064;0064;
+1D486;1D486;1D486;0065;0065;
+1D487;1D487;1D487;0066;0066;
+1D488;1D488;1D488;0067;0067;
+1D489;1D489;1D489;0068;0068;
+1D48A;1D48A;1D48A;0069;0069;
+1D48B;1D48B;1D48B;006A;006A;
+1D48C;1D48C;1D48C;006B;006B;
+1D48D;1D48D;1D48D;006C;006C;
+1D48E;1D48E;1D48E;006D;006D;
+1D48F;1D48F;1D48F;006E;006E;
+1D490;1D490;1D490;006F;006F;
+1D491;1D491;1D491;0070;0070;
+1D492;1D492;1D492;0071;0071;
+1D493;1D493;1D493;0072;0072;
+1D494;1D494;1D494;0073;0073;
+1D495;1D495;1D495;0074;0074;
+1D496;1D496;1D496;0075;0075;
+1D497;1D497;1D497;0076;0076;
+1D498;1D498;1D498;0077;0077;
+1D499;1D499;1D499;0078;0078;
+1D49A;1D49A;1D49A;0079;0079;
+1D49B;1D49B;1D49B;007A;007A;
+1D49C;1D49C;1D49C;0041;0041;
+1D49E;1D49E;1D49E;0043;0043;
+1D49F;1D49F;1D49F;0044;0044;
+1D4A2;1D4A2;1D4A2;0047;0047;
+1D4A5;1D4A5;1D4A5;004A;004A;
+1D4A6;1D4A6;1D4A6;004B;004B;
+1D4A9;1D4A9;1D4A9;004E;004E;
+1D4AA;1D4AA;1D4AA;004F;004F;
+1D4AB;1D4AB;1D4AB;0050;0050;
+1D4AC;1D4AC;1D4AC;0051;0051;
+1D4AE;1D4AE;1D4AE;0053;0053;
+1D4AF;1D4AF;1D4AF;0054;0054;
+1D4B0;1D4B0;1D4B0;0055;0055;
+1D4B1;1D4B1;1D4B1;0056;0056;
+1D4B2;1D4B2;1D4B2;0057;0057;
+1D4B3;1D4B3;1D4B3;0058;0058;
+1D4B4;1D4B4;1D4B4;0059;0059;
+1D4B5;1D4B5;1D4B5;005A;005A;
+1D4B6;1D4B6;1D4B6;0061;0061;
+1D4B7;1D4B7;1D4B7;0062;0062;
+1D4B8;1D4B8;1D4B8;0063;0063;
+1D4B9;1D4B9;1D4B9;0064;0064;
+1D4BB;1D4BB;1D4BB;0066;0066;
+1D4BD;1D4BD;1D4BD;0068;0068;
+1D4BE;1D4BE;1D4BE;0069;0069;
+1D4BF;1D4BF;1D4BF;006A;006A;
+1D4C0;1D4C0;1D4C0;006B;006B;
+1D4C1;1D4C1;1D4C1;006C;006C;
+1D4C2;1D4C2;1D4C2;006D;006D;
+1D4C3;1D4C3;1D4C3;006E;006E;
+1D4C5;1D4C5;1D4C5;0070;0070;
+1D4C6;1D4C6;1D4C6;0071;0071;
+1D4C7;1D4C7;1D4C7;0072;0072;
+1D4C8;1D4C8;1D4C8;0073;0073;
+1D4C9;1D4C9;1D4C9;0074;0074;
+1D4CA;1D4CA;1D4CA;0075;0075;
+1D4CB;1D4CB;1D4CB;0076;0076;
+1D4CC;1D4CC;1D4CC;0077;0077;
+1D4CD;1D4CD;1D4CD;0078;0078;
+1D4CE;1D4CE;1D4CE;0079;0079;
+1D4CF;1D4CF;1D4CF;007A;007A;
+1D4D0;1D4D0;1D4D0;0041;0041;
+1D4D1;1D4D1;1D4D1;0042;0042;
+1D4D2;1D4D2;1D4D2;0043;0043;
+1D4D3;1D4D3;1D4D3;0044;0044;
+1D4D4;1D4D4;1D4D4;0045;0045;
+1D4D5;1D4D5;1D4D5;0046;0046;
+1D4D6;1D4D6;1D4D6;0047;0047;
+1D4D7;1D4D7;1D4D7;0048;0048;
+1D4D8;1D4D8;1D4D8;0049;0049;
+1D4D9;1D4D9;1D4D9;004A;004A;
+1D4DA;1D4DA;1D4DA;004B;004B;
+1D4DB;1D4DB;1D4DB;004C;004C;
+1D4DC;1D4DC;1D4DC;004D;004D;
+1D4DD;1D4DD;1D4DD;004E;004E;
+1D4DE;1D4DE;1D4DE;004F;004F;
+1D4DF;1D4DF;1D4DF;0050;0050;
+1D4E0;1D4E0;1D4E0;0051;0051;
+1D4E1;1D4E1;1D4E1;0052;0052;
+1D4E2;1D4E2;1D4E2;0053;0053;
+1D4E3;1D4E3;1D4E3;0054;0054;
+1D4E4;1D4E4;1D4E4;0055;0055;
+1D4E5;1D4E5;1D4E5;0056;0056;
+1D4E6;1D4E6;1D4E6;0057;0057;
+1D4E7;1D4E7;1D4E7;0058;0058;
+1D4E8;1D4E8;1D4E8;0059;0059;
+1D4E9;1D4E9;1D4E9;005A;005A;
+1D4EA;1D4EA;1D4EA;0061;0061;
+1D4EB;1D4EB;1D4EB;0062;0062;
+1D4EC;1D4EC;1D4EC;0063;0063;
+1D4ED;1D4ED;1D4ED;0064;0064;
+1D4EE;1D4EE;1D4EE;0065;0065;
+1D4EF;1D4EF;1D4EF;0066;0066;
+1D4F0;1D4F0;1D4F0;0067;0067;
+1D4F1;1D4F1;1D4F1;0068;0068;
+1D4F2;1D4F2;1D4F2;0069;0069;
+1D4F3;1D4F3;1D4F3;006A;006A;
+1D4F4;1D4F4;1D4F4;006B;006B;
+1D4F5;1D4F5;1D4F5;006C;006C;
+1D4F6;1D4F6;1D4F6;006D;006D;
+1D4F7;1D4F7;1D4F7;006E;006E;
+1D4F8;1D4F8;1D4F8;006F;006F;
+1D4F9;1D4F9;1D4F9;0070;0070;
+1D4FA;1D4FA;1D4FA;0071;0071;
+1D4FB;1D4FB;1D4FB;0072;0072;
+1D4FC;1D4FC;1D4FC;0073;0073;
+1D4FD;1D4FD;1D4FD;0074;0074;
+1D4FE;1D4FE;1D4FE;0075;0075;
+1D4FF;1D4FF;1D4FF;0076;0076;
+1D500;1D500;1D500;0077;0077;
+1D501;1D501;1D501;0078;0078;
+1D502;1D502;1D502;0079;0079;
+1D503;1D503;1D503;007A;007A;
+1D504;1D504;1D504;0041;0041;
+1D505;1D505;1D505;0042;0042;
+1D507;1D507;1D507;0044;0044;
+1D508;1D508;1D508;0045;0045;
+1D509;1D509;1D509;0046;0046;
+1D50A;1D50A;1D50A;0047;0047;
+1D50D;1D50D;1D50D;004A;004A;
+1D50E;1D50E;1D50E;004B;004B;
+1D50F;1D50F;1D50F;004C;004C;
+1D510;1D510;1D510;004D;004D;
+1D511;1D511;1D511;004E;004E;
+1D512;1D512;1D512;004F;004F;
+1D513;1D513;1D513;0050;0050;
+1D514;1D514;1D514;0051;0051;
+1D516;1D516;1D516;0053;0053;
+1D517;1D517;1D517;0054;0054;
+1D518;1D518;1D518;0055;0055;
+1D519;1D519;1D519;0056;0056;
+1D51A;1D51A;1D51A;0057;0057;
+1D51B;1D51B;1D51B;0058;0058;
+1D51C;1D51C;1D51C;0059;0059;
+1D51E;1D51E;1D51E;0061;0061;
+1D51F;1D51F;1D51F;0062;0062;
+1D520;1D520;1D520;0063;0063;
+1D521;1D521;1D521;0064;0064;
+1D522;1D522;1D522;0065;0065;
+1D523;1D523;1D523;0066;0066;
+1D524;1D524;1D524;0067;0067;
+1D525;1D525;1D525;0068;0068;
+1D526;1D526;1D526;0069;0069;
+1D527;1D527;1D527;006A;006A;
+1D528;1D528;1D528;006B;006B;
+1D529;1D529;1D529;006C;006C;
+1D52A;1D52A;1D52A;006D;006D;
+1D52B;1D52B;1D52B;006E;006E;
+1D52C;1D52C;1D52C;006F;006F;
+1D52D;1D52D;1D52D;0070;0070;
+1D52E;1D52E;1D52E;0071;0071;
+1D52F;1D52F;1D52F;0072;0072;
+1D530;1D530;1D530;0073;0073;
+1D531;1D531;1D531;0074;0074;
+1D532;1D532;1D532;0075;0075;
+1D533;1D533;1D533;0076;0076;
+1D534;1D534;1D534;0077;0077;
+1D535;1D535;1D535;0078;0078;
+1D536;1D536;1D536;0079;0079;
+1D537;1D537;1D537;007A;007A;
+1D538;1D538;1D538;0041;0041;
+1D539;1D539;1D539;0042;0042;
+1D53B;1D53B;1D53B;0044;0044;
+1D53C;1D53C;1D53C;0045;0045;
+1D53D;1D53D;1D53D;0046;0046;
+1D53E;1D53E;1D53E;0047;0047;
+1D540;1D540;1D540;0049;0049;
+1D541;1D541;1D541;004A;004A;
+1D542;1D542;1D542;004B;004B;
+1D543;1D543;1D543;004C;004C;
+1D544;1D544;1D544;004D;004D;
+1D546;1D546;1D546;004F;004F;
+1D54A;1D54A;1D54A;0053;0053;
+1D54B;1D54B;1D54B;0054;0054;
+1D54C;1D54C;1D54C;0055;0055;
+1D54D;1D54D;1D54D;0056;0056;
+1D54E;1D54E;1D54E;0057;0057;
+1D54F;1D54F;1D54F;0058;0058;
+1D550;1D550;1D550;0059;0059;
+1D552;1D552;1D552;0061;0061;
+1D553;1D553;1D553;0062;0062;
+1D554;1D554;1D554;0063;0063;
+1D555;1D555;1D555;0064;0064;
+1D556;1D556;1D556;0065;0065;
+1D557;1D557;1D557;0066;0066;
+1D558;1D558;1D558;0067;0067;
+1D559;1D559;1D559;0068;0068;
+1D55A;1D55A;1D55A;0069;0069;
+1D55B;1D55B;1D55B;006A;006A;
+1D55C;1D55C;1D55C;006B;006B;
+1D55D;1D55D;1D55D;006C;006C;
+1D55E;1D55E;1D55E;006D;006D;
+1D55F;1D55F;1D55F;006E;006E;
+1D560;1D560;1D560;006F;006F;
+1D561;1D561;1D561;0070;0070;
+1D562;1D562;1D562;0071;0071;
+1D563;1D563;1D563;0072;0072;
+1D564;1D564;1D564;0073;0073;
+1D565;1D565;1D565;0074;0074;
+1D566;1D566;1D566;0075;0075;
+1D567;1D567;1D567;0076;0076;
+1D568;1D568;1D568;0077;0077;
+1D569;1D569;1D569;0078;0078;
+1D56A;1D56A;1D56A;0079;0079;
+1D56B;1D56B;1D56B;007A;007A;
+1D56C;1D56C;1D56C;0041;0041;
+1D56D;1D56D;1D56D;0042;0042;
+1D56E;1D56E;1D56E;0043;0043;
+1D56F;1D56F;1D56F;0044;0044;
+1D570;1D570;1D570;0045;0045;
+1D571;1D571;1D571;0046;0046;
+1D572;1D572;1D572;0047;0047;
+1D573;1D573;1D573;0048;0048;
+1D574;1D574;1D574;0049;0049;
+1D575;1D575;1D575;004A;004A;
+1D576;1D576;1D576;004B;004B;
+1D577;1D577;1D577;004C;004C;
+1D578;1D578;1D578;004D;004D;
+1D579;1D579;1D579;004E;004E;
+1D57A;1D57A;1D57A;004F;004F;
+1D57B;1D57B;1D57B;0050;0050;
+1D57C;1D57C;1D57C;0051;0051;
+1D57D;1D57D;1D57D;0052;0052;
+1D57E;1D57E;1D57E;0053;0053;
+1D57F;1D57F;1D57F;0054;0054;
+1D580;1D580;1D580;0055;0055;
+1D581;1D581;1D581;0056;0056;
+1D582;1D582;1D582;0057;0057;
+1D583;1D583;1D583;0058;0058;
+1D584;1D584;1D584;0059;0059;
+1D585;1D585;1D585;005A;005A;
+1D586;1D586;1D586;0061;0061;
+1D587;1D587;1D587;0062;0062;
+1D588;1D588;1D588;0063;0063;
+1D589;1D589;1D589;0064;0064;
+1D58A;1D58A;1D58A;0065;0065;
+1D58B;1D58B;1D58B;0066;0066;
+1D58C;1D58C;1D58C;0067;0067;
+1D58D;1D58D;1D58D;0068;0068;
+1D58E;1D58E;1D58E;0069;0069;
+1D58F;1D58F;1D58F;006A;006A;
+1D590;1D590;1D590;006B;006B;
+1D591;1D591;1D591;006C;006C;
+1D592;1D592;1D592;006D;006D;
+1D593;1D593;1D593;006E;006E;
+1D594;1D594;1D594;006F;006F;
+1D595;1D595;1D595;0070;0070;
+1D596;1D596;1D596;0071;0071;
+1D597;1D597;1D597;0072;0072;
+1D598;1D598;1D598;0073;0073;
+1D599;1D599;1D599;0074;0074;
+1D59A;1D59A;1D59A;0075;0075;
+1D59B;1D59B;1D59B;0076;0076;
+1D59C;1D59C;1D59C;0077;0077;
+1D59D;1D59D;1D59D;0078;0078;
+1D59E;1D59E;1D59E;0079;0079;
+1D59F;1D59F;1D59F;007A;007A;
+1D5A0;1D5A0;1D5A0;0041;0041;
+1D5A1;1D5A1;1D5A1;0042;0042;
+1D5A2;1D5A2;1D5A2;0043;0043;
+1D5A3;1D5A3;1D5A3;0044;0044;
+1D5A4;1D5A4;1D5A4;0045;0045;
+1D5A5;1D5A5;1D5A5;0046;0046;
+1D5A6;1D5A6;1D5A6;0047;0047;
+1D5A7;1D5A7;1D5A7;0048;0048;
+1D5A8;1D5A8;1D5A8;0049;0049;
+1D5A9;1D5A9;1D5A9;004A;004A;
+1D5AA;1D5AA;1D5AA;004B;004B;
+1D5AB;1D5AB;1D5AB;004C;004C;
+1D5AC;1D5AC;1D5AC;004D;004D;
+1D5AD;1D5AD;1D5AD;004E;004E;
+1D5AE;1D5AE;1D5AE;004F;004F;
+1D5AF;1D5AF;1D5AF;0050;0050;
+1D5B0;1D5B0;1D5B0;0051;0051;
+1D5B1;1D5B1;1D5B1;0052;0052;
+1D5B2;1D5B2;1D5B2;0053;0053;
+1D5B3;1D5B3;1D5B3;0054;0054;
+1D5B4;1D5B4;1D5B4;0055;0055;
+1D5B5;1D5B5;1D5B5;0056;0056;
+1D5B6;1D5B6;1D5B6;0057;0057;
+1D5B7;1D5B7;1D5B7;0058;0058;
+1D5B8;1D5B8;1D5B8;0059;0059;
+1D5B9;1D5B9;1D5B9;005A;005A;
+1D5BA;1D5BA;1D5BA;0061;0061;
+1D5BB;1D5BB;1D5BB;0062;0062;
+1D5BC;1D5BC;1D5BC;0063;0063;
+1D5BD;1D5BD;1D5BD;0064;0064;
+1D5BE;1D5BE;1D5BE;0065;0065;
+1D5BF;1D5BF;1D5BF;0066;0066;
+1D5C0;1D5C0;1D5C0;0067;0067;
+1D5C1;1D5C1;1D5C1;0068;0068;
+1D5C2;1D5C2;1D5C2;0069;0069;
+1D5C3;1D5C3;1D5C3;006A;006A;
+1D5C4;1D5C4;1D5C4;006B;006B;
+1D5C5;1D5C5;1D5C5;006C;006C;
+1D5C6;1D5C6;1D5C6;006D;006D;
+1D5C7;1D5C7;1D5C7;006E;006E;
+1D5C8;1D5C8;1D5C8;006F;006F;
+1D5C9;1D5C9;1D5C9;0070;0070;
+1D5CA;1D5CA;1D5CA;0071;0071;
+1D5CB;1D5CB;1D5CB;0072;0072;
+1D5CC;1D5CC;1D5CC;0073;0073;
+1D5CD;1D5CD;1D5CD;0074;0074;
+1D5CE;1D5CE;1D5CE;0075;0075;
+1D5CF;1D5CF;1D5CF;0076;0076;
+1D5D0;1D5D0;1D5D0;0077;0077;
+1D5D1;1D5D1;1D5D1;0078;0078;
+1D5D2;1D5D2;1D5D2;0079;0079;
+1D5D3;1D5D3;1D5D3;007A;007A;
+1D5D4;1D5D4;1D5D4;0041;0041;
+1D5D5;1D5D5;1D5D5;0042;0042;
+1D5D6;1D5D6;1D5D6;0043;0043;
+1D5D7;1D5D7;1D5D7;0044;0044;
+1D5D8;1D5D8;1D5D8;0045;0045;
+1D5D9;1D5D9;1D5D9;0046;0046;
+1D5DA;1D5DA;1D5DA;0047;0047;
+1D5DB;1D5DB;1D5DB;0048;0048;
+1D5DC;1D5DC;1D5DC;0049;0049;
+1D5DD;1D5DD;1D5DD;004A;004A;
+1D5DE;1D5DE;1D5DE;004B;004B;
+1D5DF;1D5DF;1D5DF;004C;004C;
+1D5E0;1D5E0;1D5E0;004D;004D;
+1D5E1;1D5E1;1D5E1;004E;004E;
+1D5E2;1D5E2;1D5E2;004F;004F;
+1D5E3;1D5E3;1D5E3;0050;0050;
+1D5E4;1D5E4;1D5E4;0051;0051;
+1D5E5;1D5E5;1D5E5;0052;0052;
+1D5E6;1D5E6;1D5E6;0053;0053;
+1D5E7;1D5E7;1D5E7;0054;0054;
+1D5E8;1D5E8;1D5E8;0055;0055;
+1D5E9;1D5E9;1D5E9;0056;0056;
+1D5EA;1D5EA;1D5EA;0057;0057;
+1D5EB;1D5EB;1D5EB;0058;0058;
+1D5EC;1D5EC;1D5EC;0059;0059;
+1D5ED;1D5ED;1D5ED;005A;005A;
+1D5EE;1D5EE;1D5EE;0061;0061;
+1D5EF;1D5EF;1D5EF;0062;0062;
+1D5F0;1D5F0;1D5F0;0063;0063;
+1D5F1;1D5F1;1D5F1;0064;0064;
+1D5F2;1D5F2;1D5F2;0065;0065;
+1D5F3;1D5F3;1D5F3;0066;0066;
+1D5F4;1D5F4;1D5F4;0067;0067;
+1D5F5;1D5F5;1D5F5;0068;0068;
+1D5F6;1D5F6;1D5F6;0069;0069;
+1D5F7;1D5F7;1D5F7;006A;006A;
+1D5F8;1D5F8;1D5F8;006B;006B;
+1D5F9;1D5F9;1D5F9;006C;006C;
+1D5FA;1D5FA;1D5FA;006D;006D;
+1D5FB;1D5FB;1D5FB;006E;006E;
+1D5FC;1D5FC;1D5FC;006F;006F;
+1D5FD;1D5FD;1D5FD;0070;0070;
+1D5FE;1D5FE;1D5FE;0071;0071;
+1D5FF;1D5FF;1D5FF;0072;0072;
+1D600;1D600;1D600;0073;0073;
+1D601;1D601;1D601;0074;0074;
+1D602;1D602;1D602;0075;0075;
+1D603;1D603;1D603;0076;0076;
+1D604;1D604;1D604;0077;0077;
+1D605;1D605;1D605;0078;0078;
+1D606;1D606;1D606;0079;0079;
+1D607;1D607;1D607;007A;007A;
+1D608;1D608;1D608;0041;0041;
+1D609;1D609;1D609;0042;0042;
+1D60A;1D60A;1D60A;0043;0043;
+1D60B;1D60B;1D60B;0044;0044;
+1D60C;1D60C;1D60C;0045;0045;
+1D60D;1D60D;1D60D;0046;0046;
+1D60E;1D60E;1D60E;0047;0047;
+1D60F;1D60F;1D60F;0048;0048;
+1D610;1D610;1D610;0049;0049;
+1D611;1D611;1D611;004A;004A;
+1D612;1D612;1D612;004B;004B;
+1D613;1D613;1D613;004C;004C;
+1D614;1D614;1D614;004D;004D;
+1D615;1D615;1D615;004E;004E;
+1D616;1D616;1D616;004F;004F;
+1D617;1D617;1D617;0050;0050;
+1D618;1D618;1D618;0051;0051;
+1D619;1D619;1D619;0052;0052;
+1D61A;1D61A;1D61A;0053;0053;
+1D61B;1D61B;1D61B;0054;0054;
+1D61C;1D61C;1D61C;0055;0055;
+1D61D;1D61D;1D61D;0056;0056;
+1D61E;1D61E;1D61E;0057;0057;
+1D61F;1D61F;1D61F;0058;0058;
+1D620;1D620;1D620;0059;0059;
+1D621;1D621;1D621;005A;005A;
+1D622;1D622;1D622;0061;0061;
+1D623;1D623;1D623;0062;0062;
+1D624;1D624;1D624;0063;0063;
+1D625;1D625;1D625;0064;0064;
+1D626;1D626;1D626;0065;0065;
+1D627;1D627;1D627;0066;0066;
+1D628;1D628;1D628;0067;0067;
+1D629;1D629;1D629;0068;0068;
+1D62A;1D62A;1D62A;0069;0069;
+1D62B;1D62B;1D62B;006A;006A;
+1D62C;1D62C;1D62C;006B;006B;
+1D62D;1D62D;1D62D;006C;006C;
+1D62E;1D62E;1D62E;006D;006D;
+1D62F;1D62F;1D62F;006E;006E;
+1D630;1D630;1D630;006F;006F;
+1D631;1D631;1D631;0070;0070;
+1D632;1D632;1D632;0071;0071;
+1D633;1D633;1D633;0072;0072;
+1D634;1D634;1D634;0073;0073;
+1D635;1D635;1D635;0074;0074;
+1D636;1D636;1D636;0075;0075;
+1D637;1D637;1D637;0076;0076;
+1D638;1D638;1D638;0077;0077;
+1D639;1D639;1D639;0078;0078;
+1D63A;1D63A;1D63A;0079;0079;
+1D63B;1D63B;1D63B;007A;007A;
+1D63C;1D63C;1D63C;0041;0041;
+1D63D;1D63D;1D63D;0042;0042;
+1D63E;1D63E;1D63E;0043;0043;
+1D63F;1D63F;1D63F;0044;0044;
+1D640;1D640;1D640;0045;0045;
+1D641;1D641;1D641;0046;0046;
+1D642;1D642;1D642;0047;0047;
+1D643;1D643;1D643;0048;0048;
+1D644;1D644;1D644;0049;0049;
+1D645;1D645;1D645;004A;004A;
+1D646;1D646;1D646;004B;004B;
+1D647;1D647;1D647;004C;004C;
+1D648;1D648;1D648;004D;004D;
+1D649;1D649;1D649;004E;004E;
+1D64A;1D64A;1D64A;004F;004F;
+1D64B;1D64B;1D64B;0050;0050;
+1D64C;1D64C;1D64C;0051;0051;
+1D64D;1D64D;1D64D;0052;0052;
+1D64E;1D64E;1D64E;0053;0053;
+1D64F;1D64F;1D64F;0054;0054;
+1D650;1D650;1D650;0055;0055;
+1D651;1D651;1D651;0056;0056;
+1D652;1D652;1D652;0057;0057;
+1D653;1D653;1D653;0058;0058;
+1D654;1D654;1D654;0059;0059;
+1D655;1D655;1D655;005A;005A;
+1D656;1D656;1D656;0061;0061;
+1D657;1D657;1D657;0062;0062;
+1D658;1D658;1D658;0063;0063;
+1D659;1D659;1D659;0064;0064;
+1D65A;1D65A;1D65A;0065;0065;
+1D65B;1D65B;1D65B;0066;0066;
+1D65C;1D65C;1D65C;0067;0067;
+1D65D;1D65D;1D65D;0068;0068;
+1D65E;1D65E;1D65E;0069;0069;
+1D65F;1D65F;1D65F;006A;006A;
+1D660;1D660;1D660;006B;006B;
+1D661;1D661;1D661;006C;006C;
+1D662;1D662;1D662;006D;006D;
+1D663;1D663;1D663;006E;006E;
+1D664;1D664;1D664;006F;006F;
+1D665;1D665;1D665;0070;0070;
+1D666;1D666;1D666;0071;0071;
+1D667;1D667;1D667;0072;0072;
+1D668;1D668;1D668;0073;0073;
+1D669;1D669;1D669;0074;0074;
+1D66A;1D66A;1D66A;0075;0075;
+1D66B;1D66B;1D66B;0076;0076;
+1D66C;1D66C;1D66C;0077;0077;
+1D66D;1D66D;1D66D;0078;0078;
+1D66E;1D66E;1D66E;0079;0079;
+1D66F;1D66F;1D66F;007A;007A;
+1D670;1D670;1D670;0041;0041;
+1D671;1D671;1D671;0042;0042;
+1D672;1D672;1D672;0043;0043;
+1D673;1D673;1D673;0044;0044;
+1D674;1D674;1D674;0045;0045;
+1D675;1D675;1D675;0046;0046;
+1D676;1D676;1D676;0047;0047;
+1D677;1D677;1D677;0048;0048;
+1D678;1D678;1D678;0049;0049;
+1D679;1D679;1D679;004A;004A;
+1D67A;1D67A;1D67A;004B;004B;
+1D67B;1D67B;1D67B;004C;004C;
+1D67C;1D67C;1D67C;004D;004D;
+1D67D;1D67D;1D67D;004E;004E;
+1D67E;1D67E;1D67E;004F;004F;
+1D67F;1D67F;1D67F;0050;0050;
+1D680;1D680;1D680;0051;0051;
+1D681;1D681;1D681;0052;0052;
+1D682;1D682;1D682;0053;0053;
+1D683;1D683;1D683;0054;0054;
+1D684;1D684;1D684;0055;0055;
+1D685;1D685;1D685;0056;0056;
+1D686;1D686;1D686;0057;0057;
+1D687;1D687;1D687;0058;0058;
+1D688;1D688;1D688;0059;0059;
+1D689;1D689;1D689;005A;005A;
+1D68A;1D68A;1D68A;0061;0061;
+1D68B;1D68B;1D68B;0062;0062;
+1D68C;1D68C;1D68C;0063;0063;
+1D68D;1D68D;1D68D;0064;0064;
+1D68E;1D68E;1D68E;0065;0065;
+1D68F;1D68F;1D68F;0066;0066;
+1D690;1D690;1D690;0067;0067;
+1D691;1D691;1D691;0068;0068;
+1D692;1D692;1D692;0069;0069;
+1D693;1D693;1D693;006A;006A;
+1D694;1D694;1D694;006B;006B;
+1D695;1D695;1D695;006C;006C;
+1D696;1D696;1D696;006D;006D;
+1D697;1D697;1D697;006E;006E;
+1D698;1D698;1D698;006F;006F;
+1D699;1D699;1D699;0070;0070;
+1D69A;1D69A;1D69A;0071;0071;
+1D69B;1D69B;1D69B;0072;0072;
+1D69C;1D69C;1D69C;0073;0073;
+1D69D;1D69D;1D69D;0074;0074;
+1D69E;1D69E;1D69E;0075;0075;
+1D69F;1D69F;1D69F;0076;0076;
+1D6A0;1D6A0;1D6A0;0077;0077;
+1D6A1;1D6A1;1D6A1;0078;0078;
+1D6A2;1D6A2;1D6A2;0079;0079;
+1D6A3;1D6A3;1D6A3;007A;007A;
+1D6A4;1D6A4;1D6A4;0131;0131;
+1D6A5;1D6A5;1D6A5;0237;0237;
+1D6A8;1D6A8;1D6A8;0391;0391;
+1D6A9;1D6A9;1D6A9;0392;0392;
+1D6AA;1D6AA;1D6AA;0393;0393;
+1D6AB;1D6AB;1D6AB;0394;0394;
+1D6AC;1D6AC;1D6AC;0395;0395;
+1D6AD;1D6AD;1D6AD;0396;0396;
+1D6AE;1D6AE;1D6AE;0397;0397;
+1D6AF;1D6AF;1D6AF;0398;0398;
+1D6B0;1D6B0;1D6B0;0399;0399;
+1D6B1;1D6B1;1D6B1;039A;039A;
+1D6B2;1D6B2;1D6B2;039B;039B;
+1D6B3;1D6B3;1D6B3;039C;039C;
+1D6B4;1D6B4;1D6B4;039D;039D;
+1D6B5;1D6B5;1D6B5;039E;039E;
+1D6B6;1D6B6;1D6B6;039F;039F;
+1D6B7;1D6B7;1D6B7;03A0;03A0;
+1D6B8;1D6B8;1D6B8;03A1;03A1;
+1D6B9;1D6B9;1D6B9;0398;0398;
+1D6BA;1D6BA;1D6BA;03A3;03A3;
+1D6BB;1D6BB;1D6BB;03A4;03A4;
+1D6BC;1D6BC;1D6BC;03A5;03A5;
+1D6BD;1D6BD;1D6BD;03A6;03A6;
+1D6BE;1D6BE;1D6BE;03A7;03A7;
+1D6BF;1D6BF;1D6BF;03A8;03A8;
+1D6C0;1D6C0;1D6C0;03A9;03A9;
+1D6C1;1D6C1;1D6C1;2207;2207;
+1D6C2;1D6C2;1D6C2;03B1;03B1;
+1D6C3;1D6C3;1D6C3;03B2;03B2;
+1D6C4;1D6C4;1D6C4;03B3;03B3;
+1D6C5;1D6C5;1D6C5;03B4;03B4;
+1D6C6;1D6C6;1D6C6;03B5;03B5;
+1D6C7;1D6C7;1D6C7;03B6;03B6;
+1D6C8;1D6C8;1D6C8;03B7;03B7;
+1D6C9;1D6C9;1D6C9;03B8;03B8;
+1D6CA;1D6CA;1D6CA;03B9;03B9;
+1D6CB;1D6CB;1D6CB;03BA;03BA;
+1D6CC;1D6CC;1D6CC;03BB;03BB;
+1D6CD;1D6CD;1D6CD;03BC;03BC;
+1D6CE;1D6CE;1D6CE;03BD;03BD;
+1D6CF;1D6CF;1D6CF;03BE;03BE;
+1D6D0;1D6D0;1D6D0;03BF;03BF;
+1D6D1;1D6D1;1D6D1;03C0;03C0;
+1D6D2;1D6D2;1D6D2;03C1;03C1;
+1D6D3;1D6D3;1D6D3;03C2;03C2;
+1D6D4;1D6D4;1D6D4;03C3;03C3;
+1D6D5;1D6D5;1D6D5;03C4;03C4;
+1D6D6;1D6D6;1D6D6;03C5;03C5;
+1D6D7;1D6D7;1D6D7;03C6;03C6;
+1D6D8;1D6D8;1D6D8;03C7;03C7;
+1D6D9;1D6D9;1D6D9;03C8;03C8;
+1D6DA;1D6DA;1D6DA;03C9;03C9;
+1D6DB;1D6DB;1D6DB;2202;2202;
+1D6DC;1D6DC;1D6DC;03B5;03B5;
+1D6DD;1D6DD;1D6DD;03B8;03B8;
+1D6DE;1D6DE;1D6DE;03BA;03BA;
+1D6DF;1D6DF;1D6DF;03C6;03C6;
+1D6E0;1D6E0;1D6E0;03C1;03C1;
+1D6E1;1D6E1;1D6E1;03C0;03C0;
+1D6E2;1D6E2;1D6E2;0391;0391;
+1D6E3;1D6E3;1D6E3;0392;0392;
+1D6E4;1D6E4;1D6E4;0393;0393;
+1D6E5;1D6E5;1D6E5;0394;0394;
+1D6E6;1D6E6;1D6E6;0395;0395;
+1D6E7;1D6E7;1D6E7;0396;0396;
+1D6E8;1D6E8;1D6E8;0397;0397;
+1D6E9;1D6E9;1D6E9;0398;0398;
+1D6EA;1D6EA;1D6EA;0399;0399;
+1D6EB;1D6EB;1D6EB;039A;039A;
+1D6EC;1D6EC;1D6EC;039B;039B;
+1D6ED;1D6ED;1D6ED;039C;039C;
+1D6EE;1D6EE;1D6EE;039D;039D;
+1D6EF;1D6EF;1D6EF;039E;039E;
+1D6F0;1D6F0;1D6F0;039F;039F;
+1D6F1;1D6F1;1D6F1;03A0;03A0;
+1D6F2;1D6F2;1D6F2;03A1;03A1;
+1D6F3;1D6F3;1D6F3;0398;0398;
+1D6F4;1D6F4;1D6F4;03A3;03A3;
+1D6F5;1D6F5;1D6F5;03A4;03A4;
+1D6F6;1D6F6;1D6F6;03A5;03A5;
+1D6F7;1D6F7;1D6F7;03A6;03A6;
+1D6F8;1D6F8;1D6F8;03A7;03A7;
+1D6F9;1D6F9;1D6F9;03A8;03A8;
+1D6FA;1D6FA;1D6FA;03A9;03A9;
+1D6FB;1D6FB;1D6FB;2207;2207;
+1D6FC;1D6FC;1D6FC;03B1;03B1;
+1D6FD;1D6FD;1D6FD;03B2;03B2;
+1D6FE;1D6FE;1D6FE;03B3;03B3;
+1D6FF;1D6FF;1D6FF;03B4;03B4;
+1D700;1D700;1D700;03B5;03B5;
+1D701;1D701;1D701;03B6;03B6;
+1D702;1D702;1D702;03B7;03B7;
+1D703;1D703;1D703;03B8;03B8;
+1D704;1D704;1D704;03B9;03B9;
+1D705;1D705;1D705;03BA;03BA;
+1D706;1D706;1D706;03BB;03BB;
+1D707;1D707;1D707;03BC;03BC;
+1D708;1D708;1D708;03BD;03BD;
+1D709;1D709;1D709;03BE;03BE;
+1D70A;1D70A;1D70A;03BF;03BF;
+1D70B;1D70B;1D70B;03C0;03C0;
+1D70C;1D70C;1D70C;03C1;03C1;
+1D70D;1D70D;1D70D;03C2;03C2;
+1D70E;1D70E;1D70E;03C3;03C3;
+1D70F;1D70F;1D70F;03C4;03C4;
+1D710;1D710;1D710;03C5;03C5;
+1D711;1D711;1D711;03C6;03C6;
+1D712;1D712;1D712;03C7;03C7;
+1D713;1D713;1D713;03C8;03C8;
+1D714;1D714;1D714;03C9;03C9;
+1D715;1D715;1D715;2202;2202;
+1D716;1D716;1D716;03B5;03B5;
+1D717;1D717;1D717;03B8;03B8;
+1D718;1D718;1D718;03BA;03BA;
+1D719;1D719;1D719;03C6;03C6;
+1D71A;1D71A;1D71A;03C1;03C1;
+1D71B;1D71B;1D71B;03C0;03C0;
+1D71C;1D71C;1D71C;0391;0391;
+1D71D;1D71D;1D71D;0392;0392;
+1D71E;1D71E;1D71E;0393;0393;
+1D71F;1D71F;1D71F;0394;0394;
+1D720;1D720;1D720;0395;0395;
+1D721;1D721;1D721;0396;0396;
+1D722;1D722;1D722;0397;0397;
+1D723;1D723;1D723;0398;0398;
+1D724;1D724;1D724;0399;0399;
+1D725;1D725;1D725;039A;039A;
+1D726;1D726;1D726;039B;039B;
+1D727;1D727;1D727;039C;039C;
+1D728;1D728;1D728;039D;039D;
+1D729;1D729;1D729;039E;039E;
+1D72A;1D72A;1D72A;039F;039F;
+1D72B;1D72B;1D72B;03A0;03A0;
+1D72C;1D72C;1D72C;03A1;03A1;
+1D72D;1D72D;1D72D;0398;0398;
+1D72E;1D72E;1D72E;03A3;03A3;
+1D72F;1D72F;1D72F;03A4;03A4;
+1D730;1D730;1D730;03A5;03A5;
+1D731;1D731;1D731;03A6;03A6;
+1D732;1D732;1D732;03A7;03A7;
+1D733;1D733;1D733;03A8;03A8;
+1D734;1D734;1D734;03A9;03A9;
+1D735;1D735;1D735;2207;2207;
+1D736;1D736;1D736;03B1;03B1;
+1D737;1D737;1D737;03B2;03B2;
+1D738;1D738;1D738;03B3;03B3;
+1D739;1D739;1D739;03B4;03B4;
+1D73A;1D73A;1D73A;03B5;03B5;
+1D73B;1D73B;1D73B;03B6;03B6;
+1D73C;1D73C;1D73C;03B7;03B7;
+1D73D;1D73D;1D73D;03B8;03B8;
+1D73E;1D73E;1D73E;03B9;03B9;
+1D73F;1D73F;1D73F;03BA;03BA;
+1D740;1D740;1D740;03BB;03BB;
+1D741;1D741;1D741;03BC;03BC;
+1D742;1D742;1D742;03BD;03BD;
+1D743;1D743;1D743;03BE;03BE;
+1D744;1D744;1D744;03BF;03BF;
+1D745;1D745;1D745;03C0;03C0;
+1D746;1D746;1D746;03C1;03C1;
+1D747;1D747;1D747;03C2;03C2;
+1D748;1D748;1D748;03C3;03C3;
+1D749;1D749;1D749;03C4;03C4;
+1D74A;1D74A;1D74A;03C5;03C5;
+1D74B;1D74B;1D74B;03C6;03C6;
+1D74C;1D74C;1D74C;03C7;03C7;
+1D74D;1D74D;1D74D;03C8;03C8;
+1D74E;1D74E;1D74E;03C9;03C9;
+1D74F;1D74F;1D74F;2202;2202;
+1D750;1D750;1D750;03B5;03B5;
+1D751;1D751;1D751;03B8;03B8;
+1D752;1D752;1D752;03BA;03BA;
+1D753;1D753;1D753;03C6;03C6;
+1D754;1D754;1D754;03C1;03C1;
+1D755;1D755;1D755;03C0;03C0;
+1D756;1D756;1D756;0391;0391;
+1D757;1D757;1D757;0392;0392;
+1D758;1D758;1D758;0393;0393;
+1D759;1D759;1D759;0394;0394;
+1D75A;1D75A;1D75A;0395;0395;
+1D75B;1D75B;1D75B;0396;0396;
+1D75C;1D75C;1D75C;0397;0397;
+1D75D;1D75D;1D75D;0398;0398;
+1D75E;1D75E;1D75E;0399;0399;
+1D75F;1D75F;1D75F;039A;039A;
+1D760;1D760;1D760;039B;039B;
+1D761;1D761;1D761;039C;039C;
+1D762;1D762;1D762;039D;039D;
+1D763;1D763;1D763;039E;039E;
+1D764;1D764;1D764;039F;039F;
+1D765;1D765;1D765;03A0;03A0;
+1D766;1D766;1D766;03A1;03A1;
+1D767;1D767;1D767;0398;0398;
+1D768;1D768;1D768;03A3;03A3;
+1D769;1D769;1D769;03A4;03A4;
+1D76A;1D76A;1D76A;03A5;03A5;
+1D76B;1D76B;1D76B;03A6;03A6;
+1D76C;1D76C;1D76C;03A7;03A7;
+1D76D;1D76D;1D76D;03A8;03A8;
+1D76E;1D76E;1D76E;03A9;03A9;
+1D76F;1D76F;1D76F;2207;2207;
+1D770;1D770;1D770;03B1;03B1;
+1D771;1D771;1D771;03B2;03B2;
+1D772;1D772;1D772;03B3;03B3;
+1D773;1D773;1D773;03B4;03B4;
+1D774;1D774;1D774;03B5;03B5;
+1D775;1D775;1D775;03B6;03B6;
+1D776;1D776;1D776;03B7;03B7;
+1D777;1D777;1D777;03B8;03B8;
+1D778;1D778;1D778;03B9;03B9;
+1D779;1D779;1D779;03BA;03BA;
+1D77A;1D77A;1D77A;03BB;03BB;
+1D77B;1D77B;1D77B;03BC;03BC;
+1D77C;1D77C;1D77C;03BD;03BD;
+1D77D;1D77D;1D77D;03BE;03BE;
+1D77E;1D77E;1D77E;03BF;03BF;
+1D77F;1D77F;1D77F;03C0;03C0;
+1D780;1D780;1D780;03C1;03C1;
+1D781;1D781;1D781;03C2;03C2;
+1D782;1D782;1D782;03C3;03C3;
+1D783;1D783;1D783;03C4;03C4;
+1D784;1D784;1D784;03C5;03C5;
+1D785;1D785;1D785;03C6;03C6;
+1D786;1D786;1D786;03C7;03C7;
+1D787;1D787;1D787;03C8;03C8;
+1D788;1D788;1D788;03C9;03C9;
+1D789;1D789;1D789;2202;2202;
+1D78A;1D78A;1D78A;03B5;03B5;
+1D78B;1D78B;1D78B;03B8;03B8;
+1D78C;1D78C;1D78C;03BA;03BA;
+1D78D;1D78D;1D78D;03C6;03C6;
+1D78E;1D78E;1D78E;03C1;03C1;
+1D78F;1D78F;1D78F;03C0;03C0;
+1D790;1D790;1D790;0391;0391;
+1D791;1D791;1D791;0392;0392;
+1D792;1D792;1D792;0393;0393;
+1D793;1D793;1D793;0394;0394;
+1D794;1D794;1D794;0395;0395;
+1D795;1D795;1D795;0396;0396;
+1D796;1D796;1D796;0397;0397;
+1D797;1D797;1D797;0398;0398;
+1D798;1D798;1D798;0399;0399;
+1D799;1D799;1D799;039A;039A;
+1D79A;1D79A;1D79A;039B;039B;
+1D79B;1D79B;1D79B;039C;039C;
+1D79C;1D79C;1D79C;039D;039D;
+1D79D;1D79D;1D79D;039E;039E;
+1D79E;1D79E;1D79E;039F;039F;
+1D79F;1D79F;1D79F;03A0;03A0;
+1D7A0;1D7A0;1D7A0;03A1;03A1;
+1D7A1;1D7A1;1D7A1;0398;0398;
+1D7A2;1D7A2;1D7A2;03A3;03A3;
+1D7A3;1D7A3;1D7A3;03A4;03A4;
+1D7A4;1D7A4;1D7A4;03A5;03A5;
+1D7A5;1D7A5;1D7A5;03A6;03A6;
+1D7A6;1D7A6;1D7A6;03A7;03A7;
+1D7A7;1D7A7;1D7A7;03A8;03A8;
+1D7A8;1D7A8;1D7A8;03A9;03A9;
+1D7A9;1D7A9;1D7A9;2207;2207;
+1D7AA;1D7AA;1D7AA;03B1;03B1;
+1D7AB;1D7AB;1D7AB;03B2;03B2;
+1D7AC;1D7AC;1D7AC;03B3;03B3;
+1D7AD;1D7AD;1D7AD;03B4;03B4;
+1D7AE;1D7AE;1D7AE;03B5;03B5;
+1D7AF;1D7AF;1D7AF;03B6;03B6;
+1D7B0;1D7B0;1D7B0;03B7;03B7;
+1D7B1;1D7B1;1D7B1;03B8;03B8;
+1D7B2;1D7B2;1D7B2;03B9;03B9;
+1D7B3;1D7B3;1D7B3;03BA;03BA;
+1D7B4;1D7B4;1D7B4;03BB;03BB;
+1D7B5;1D7B5;1D7B5;03BC;03BC;
+1D7B6;1D7B6;1D7B6;03BD;03BD;
+1D7B7;1D7B7;1D7B7;03BE;03BE;
+1D7B8;1D7B8;1D7B8;03BF;03BF;
+1D7B9;1D7B9;1D7B9;03C0;03C0;
+1D7BA;1D7BA;1D7BA;03C1;03C1;
+1D7BB;1D7BB;1D7BB;03C2;03C2;
+1D7BC;1D7BC;1D7BC;03C3;03C3;
+1D7BD;1D7BD;1D7BD;03C4;03C4;
+1D7BE;1D7BE;1D7BE;03C5;03C5;
+1D7BF;1D7BF;1D7BF;03C6;03C6;
+1D7C0;1D7C0;1D7C0;03C7;03C7;
+1D7C1;1D7C1;1D7C1;03C8;03C8;
+1D7C2;1D7C2;1D7C2;03C9;03C9;
+1D7C3;1D7C3;1D7C3;2202;2202;
+1D7C4;1D7C4;1D7C4;03B5;03B5;
+1D7C5;1D7C5;1D7C5;03B8;03B8;
+1D7C6;1D7C6;1D7C6;03BA;03BA;
+1D7C7;1D7C7;1D7C7;03C6;03C6;
+1D7C8;1D7C8;1D7C8;03C1;03C1;
+1D7C9;1D7C9;1D7C9;03C0;03C0;
+1D7CA;1D7CA;1D7CA;03DC;03DC;
+1D7CB;1D7CB;1D7CB;03DD;03DD;
+1D7CE;1D7CE;1D7CE;0030;0030;
+1D7CF;1D7CF;1D7CF;0031;0031;
+1D7D0;1D7D0;1D7D0;0032;0032;
+1D7D1;1D7D1;1D7D1;0033;0033;
+1D7D2;1D7D2;1D7D2;0034;0034;
+1D7D3;1D7D3;1D7D3;0035;0035;
+1D7D4;1D7D4;1D7D4;0036;0036;
+1D7D5;1D7D5;1D7D5;0037;0037;
+1D7D6;1D7D6;1D7D6;0038;0038;
+1D7D7;1D7D7;1D7D7;0039;0039;
+1D7D8;1D7D8;1D7D8;0030;0030;
+1D7D9;1D7D9;1D7D9;0031;0031;
+1D7DA;1D7DA;1D7DA;0032;0032;
+1D7DB;1D7DB;1D7DB;0033;0033;
+1D7DC;1D7DC;1D7DC;0034;0034;
+1D7DD;1D7DD;1D7DD;0035;0035;
+1D7DE;1D7DE;1D7DE;0036;0036;
+1D7DF;1D7DF;1D7DF;0037;0037;
+1D7E0;1D7E0;1D7E0;0038;0038;
+1D7E1;1D7E1;1D7E1;0039;0039;
+1D7E2;1D7E2;1D7E2;0030;0030;
+1D7E3;1D7E3;1D7E3;0031;0031;
+1D7E4;1D7E4;1D7E4;0032;0032;
+1D7E5;1D7E5;1D7E5;0033;0033;
+1D7E6;1D7E6;1D7E6;0034;0034;
+1D7E7;1D7E7;1D7E7;0035;0035;
+1D7E8;1D7E8;1D7E8;0036;0036;
+1D7E9;1D7E9;1D7E9;0037;0037;
+1D7EA;1D7EA;1D7EA;0038;0038;
+1D7EB;1D7EB;1D7EB;0039;0039;
+1D7EC;1D7EC;1D7EC;0030;0030;
+1D7ED;1D7ED;1D7ED;0031;0031;
+1D7EE;1D7EE;1D7EE;0032;0032;
+1D7EF;1D7EF;1D7EF;0033;0033;
+1D7F0;1D7F0;1D7F0;0034;0034;
+1D7F1;1D7F1;1D7F1;0035;0035;
+1D7F2;1D7F2;1D7F2;0036;0036;
+1D7F3;1D7F3;1D7F3;0037;0037;
+1D7F4;1D7F4;1D7F4;0038;0038;
+1D7F5;1D7F5;1D7F5;0039;0039;
+1D7F6;1D7F6;1D7F6;0030;0030;
+1D7F7;1D7F7;1D7F7;0031;0031;
+1D7F8;1D7F8;1D7F8;0032;0032;
+1D7F9;1D7F9;1D7F9;0033;0033;
+1D7FA;1D7FA;1D7FA;0034;0034;
+1D7FB;1D7FB;1D7FB;0035;0035;
+1D7FC;1D7FC;1D7FC;0036;0036;
+1D7FD;1D7FD;1D7FD;0037;0037;
+1D7FE;1D7FE;1D7FE;0038;0038;
+1D7FF;1D7FF;1D7FF;0039;0039;
+2F800;4E3D;4E3D;4E3D;4E3D;
+2F801;4E38;4E38;4E38;4E38;
+2F802;4E41;4E41;4E41;4E41;
+2F803;20122;20122;20122;20122;
+2F804;4F60;4F60;4F60;4F60;
+2F805;4FAE;4FAE;4FAE;4FAE;
+2F806;4FBB;4FBB;4FBB;4FBB;
+2F807;5002;5002;5002;5002;
+2F808;507A;507A;507A;507A;
+2F809;5099;5099;5099;5099;
+2F80A;50E7;50E7;50E7;50E7;
+2F80B;50CF;50CF;50CF;50CF;
+2F80C;349E;349E;349E;349E;
+2F80D;2063A;2063A;2063A;2063A;
+2F80E;514D;514D;514D;514D;
+2F80F;5154;5154;5154;5154;
+2F810;5164;5164;5164;5164;
+2F811;5177;5177;5177;5177;
+2F812;2051C;2051C;2051C;2051C;
+2F813;34B9;34B9;34B9;34B9;
+2F814;5167;5167;5167;5167;
+2F815;518D;518D;518D;518D;
+2F816;2054B;2054B;2054B;2054B;
+2F817;5197;5197;5197;5197;
+2F818;51A4;51A4;51A4;51A4;
+2F819;4ECC;4ECC;4ECC;4ECC;
+2F81A;51AC;51AC;51AC;51AC;
+2F81B;51B5;51B5;51B5;51B5;
+2F81C;291DF;291DF;291DF;291DF;
+2F81D;51F5;51F5;51F5;51F5;
+2F81E;5203;5203;5203;5203;
+2F81F;34DF;34DF;34DF;34DF;
+2F820;523B;523B;523B;523B;
+2F821;5246;5246;5246;5246;
+2F822;5272;5272;5272;5272;
+2F823;5277;5277;5277;5277;
+2F824;3515;3515;3515;3515;
+2F825;52C7;52C7;52C7;52C7;
+2F826;52C9;52C9;52C9;52C9;
+2F827;52E4;52E4;52E4;52E4;
+2F828;52FA;52FA;52FA;52FA;
+2F829;5305;5305;5305;5305;
+2F82A;5306;5306;5306;5306;
+2F82B;5317;5317;5317;5317;
+2F82C;5349;5349;5349;5349;
+2F82D;5351;5351;5351;5351;
+2F82E;535A;535A;535A;535A;
+2F82F;5373;5373;5373;5373;
+2F830;537D;537D;537D;537D;
+2F831;537F;537F;537F;537F;
+2F832;537F;537F;537F;537F;
+2F833;537F;537F;537F;537F;
+2F834;20A2C;20A2C;20A2C;20A2C;
+2F835;7070;7070;7070;7070;
+2F836;53CA;53CA;53CA;53CA;
+2F837;53DF;53DF;53DF;53DF;
+2F838;20B63;20B63;20B63;20B63;
+2F839;53EB;53EB;53EB;53EB;
+2F83A;53F1;53F1;53F1;53F1;
+2F83B;5406;5406;5406;5406;
+2F83C;549E;549E;549E;549E;
+2F83D;5438;5438;5438;5438;
+2F83E;5448;5448;5448;5448;
+2F83F;5468;5468;5468;5468;
+2F840;54A2;54A2;54A2;54A2;
+2F841;54F6;54F6;54F6;54F6;
+2F842;5510;5510;5510;5510;
+2F843;5553;5553;5553;5553;
+2F844;5563;5563;5563;5563;
+2F845;5584;5584;5584;5584;
+2F846;5584;5584;5584;5584;
+2F847;5599;5599;5599;5599;
+2F848;55AB;55AB;55AB;55AB;
+2F849;55B3;55B3;55B3;55B3;
+2F84A;55C2;55C2;55C2;55C2;
+2F84B;5716;5716;5716;5716;
+2F84C;5606;5606;5606;5606;
+2F84D;5717;5717;5717;5717;
+2F84E;5651;5651;5651;5651;
+2F84F;5674;5674;5674;5674;
+2F850;5207;5207;5207;5207;
+2F851;58EE;58EE;58EE;58EE;
+2F852;57CE;57CE;57CE;57CE;
+2F853;57F4;57F4;57F4;57F4;
+2F854;580D;580D;580D;580D;
+2F855;578B;578B;578B;578B;
+2F856;5832;5832;5832;5832;
+2F857;5831;5831;5831;5831;
+2F858;58AC;58AC;58AC;58AC;
+2F859;214E4;214E4;214E4;214E4;
+2F85A;58F2;58F2;58F2;58F2;
+2F85B;58F7;58F7;58F7;58F7;
+2F85C;5906;5906;5906;5906;
+2F85D;591A;591A;591A;591A;
+2F85E;5922;5922;5922;5922;
+2F85F;5962;5962;5962;5962;
+2F860;216A8;216A8;216A8;216A8;
+2F861;216EA;216EA;216EA;216EA;
+2F862;59EC;59EC;59EC;59EC;
+2F863;5A1B;5A1B;5A1B;5A1B;
+2F864;5A27;5A27;5A27;5A27;
+2F865;59D8;59D8;59D8;59D8;
+2F866;5A66;5A66;5A66;5A66;
+2F867;36EE;36EE;36EE;36EE;
+2F868;36FC;36FC;36FC;36FC;
+2F869;5B08;5B08;5B08;5B08;
+2F86A;5B3E;5B3E;5B3E;5B3E;
+2F86B;5B3E;5B3E;5B3E;5B3E;
+2F86C;219C8;219C8;219C8;219C8;
+2F86D;5BC3;5BC3;5BC3;5BC3;
+2F86E;5BD8;5BD8;5BD8;5BD8;
+2F86F;5BE7;5BE7;5BE7;5BE7;
+2F870;5BF3;5BF3;5BF3;5BF3;
+2F871;21B18;21B18;21B18;21B18;
+2F872;5BFF;5BFF;5BFF;5BFF;
+2F873;5C06;5C06;5C06;5C06;
+2F874;5F53;5F53;5F53;5F53;
+2F875;5C22;5C22;5C22;5C22;
+2F876;3781;3781;3781;3781;
+2F877;5C60;5C60;5C60;5C60;
+2F878;5C6E;5C6E;5C6E;5C6E;
+2F879;5CC0;5CC0;5CC0;5CC0;
+2F87A;5C8D;5C8D;5C8D;5C8D;
+2F87B;21DE4;21DE4;21DE4;21DE4;
+2F87C;5D43;5D43;5D43;5D43;
+2F87D;21DE6;21DE6;21DE6;21DE6;
+2F87E;5D6E;5D6E;5D6E;5D6E;
+2F87F;5D6B;5D6B;5D6B;5D6B;
+2F880;5D7C;5D7C;5D7C;5D7C;
+2F881;5DE1;5DE1;5DE1;5DE1;
+2F882;5DE2;5DE2;5DE2;5DE2;
+2F883;382F;382F;382F;382F;
+2F884;5DFD;5DFD;5DFD;5DFD;
+2F885;5E28;5E28;5E28;5E28;
+2F886;5E3D;5E3D;5E3D;5E3D;
+2F887;5E69;5E69;5E69;5E69;
+2F888;3862;3862;3862;3862;
+2F889;22183;22183;22183;22183;
+2F88A;387C;387C;387C;387C;
+2F88B;5EB0;5EB0;5EB0;5EB0;
+2F88C;5EB3;5EB3;5EB3;5EB3;
+2F88D;5EB6;5EB6;5EB6;5EB6;
+2F88E;5ECA;5ECA;5ECA;5ECA;
+2F88F;2A392;2A392;2A392;2A392;
+2F890;5EFE;5EFE;5EFE;5EFE;
+2F891;22331;22331;22331;22331;
+2F892;22331;22331;22331;22331;
+2F893;8201;8201;8201;8201;
+2F894;5F22;5F22;5F22;5F22;
+2F895;5F22;5F22;5F22;5F22;
+2F896;38C7;38C7;38C7;38C7;
+2F897;232B8;232B8;232B8;232B8;
+2F898;261DA;261DA;261DA;261DA;
+2F899;5F62;5F62;5F62;5F62;
+2F89A;5F6B;5F6B;5F6B;5F6B;
+2F89B;38E3;38E3;38E3;38E3;
+2F89C;5F9A;5F9A;5F9A;5F9A;
+2F89D;5FCD;5FCD;5FCD;5FCD;
+2F89E;5FD7;5FD7;5FD7;5FD7;
+2F89F;5FF9;5FF9;5FF9;5FF9;
+2F8A0;6081;6081;6081;6081;
+2F8A1;393A;393A;393A;393A;
+2F8A2;391C;391C;391C;391C;
+2F8A3;6094;6094;6094;6094;
+2F8A4;226D4;226D4;226D4;226D4;
+2F8A5;60C7;60C7;60C7;60C7;
+2F8A6;6148;6148;6148;6148;
+2F8A7;614C;614C;614C;614C;
+2F8A8;614E;614E;614E;614E;
+2F8A9;614C;614C;614C;614C;
+2F8AA;617A;617A;617A;617A;
+2F8AB;618E;618E;618E;618E;
+2F8AC;61B2;61B2;61B2;61B2;
+2F8AD;61A4;61A4;61A4;61A4;
+2F8AE;61AF;61AF;61AF;61AF;
+2F8AF;61DE;61DE;61DE;61DE;
+2F8B0;61F2;61F2;61F2;61F2;
+2F8B1;61F6;61F6;61F6;61F6;
+2F8B2;6210;6210;6210;6210;
+2F8B3;621B;621B;621B;621B;
+2F8B4;625D;625D;625D;625D;
+2F8B5;62B1;62B1;62B1;62B1;
+2F8B6;62D4;62D4;62D4;62D4;
+2F8B7;6350;6350;6350;6350;
+2F8B8;22B0C;22B0C;22B0C;22B0C;
+2F8B9;633D;633D;633D;633D;
+2F8BA;62FC;62FC;62FC;62FC;
+2F8BB;6368;6368;6368;6368;
+2F8BC;6383;6383;6383;6383;
+2F8BD;63E4;63E4;63E4;63E4;
+2F8BE;22BF1;22BF1;22BF1;22BF1;
+2F8BF;6422;6422;6422;6422;
+2F8C0;63C5;63C5;63C5;63C5;
+2F8C1;63A9;63A9;63A9;63A9;
+2F8C2;3A2E;3A2E;3A2E;3A2E;
+2F8C3;6469;6469;6469;6469;
+2F8C4;647E;647E;647E;647E;
+2F8C5;649D;649D;649D;649D;
+2F8C6;6477;6477;6477;6477;
+2F8C7;3A6C;3A6C;3A6C;3A6C;
+2F8C8;654F;654F;654F;654F;
+2F8C9;656C;656C;656C;656C;
+2F8CA;2300A;2300A;2300A;2300A;
+2F8CB;65E3;65E3;65E3;65E3;
+2F8CC;66F8;66F8;66F8;66F8;
+2F8CD;6649;6649;6649;6649;
+2F8CE;3B19;3B19;3B19;3B19;
+2F8CF;6691;6691;6691;6691;
+2F8D0;3B08;3B08;3B08;3B08;
+2F8D1;3AE4;3AE4;3AE4;3AE4;
+2F8D2;5192;5192;5192;5192;
+2F8D3;5195;5195;5195;5195;
+2F8D4;6700;6700;6700;6700;
+2F8D5;669C;669C;669C;669C;
+2F8D6;80AD;80AD;80AD;80AD;
+2F8D7;43D9;43D9;43D9;43D9;
+2F8D8;6717;6717;6717;6717;
+2F8D9;671B;671B;671B;671B;
+2F8DA;6721;6721;6721;6721;
+2F8DB;675E;675E;675E;675E;
+2F8DC;6753;6753;6753;6753;
+2F8DD;233C3;233C3;233C3;233C3;
+2F8DE;3B49;3B49;3B49;3B49;
+2F8DF;67FA;67FA;67FA;67FA;
+2F8E0;6785;6785;6785;6785;
+2F8E1;6852;6852;6852;6852;
+2F8E2;6885;6885;6885;6885;
+2F8E3;2346D;2346D;2346D;2346D;
+2F8E4;688E;688E;688E;688E;
+2F8E5;681F;681F;681F;681F;
+2F8E6;6914;6914;6914;6914;
+2F8E7;3B9D;3B9D;3B9D;3B9D;
+2F8E8;6942;6942;6942;6942;
+2F8E9;69A3;69A3;69A3;69A3;
+2F8EA;69EA;69EA;69EA;69EA;
+2F8EB;6AA8;6AA8;6AA8;6AA8;
+2F8EC;236A3;236A3;236A3;236A3;
+2F8ED;6ADB;6ADB;6ADB;6ADB;
+2F8EE;3C18;3C18;3C18;3C18;
+2F8EF;6B21;6B21;6B21;6B21;
+2F8F0;238A7;238A7;238A7;238A7;
+2F8F1;6B54;6B54;6B54;6B54;
+2F8F2;3C4E;3C4E;3C4E;3C4E;
+2F8F3;6B72;6B72;6B72;6B72;
+2F8F4;6B9F;6B9F;6B9F;6B9F;
+2F8F5;6BBA;6BBA;6BBA;6BBA;
+2F8F6;6BBB;6BBB;6BBB;6BBB;
+2F8F7;23A8D;23A8D;23A8D;23A8D;
+2F8F8;21D0B;21D0B;21D0B;21D0B;
+2F8F9;23AFA;23AFA;23AFA;23AFA;
+2F8FA;6C4E;6C4E;6C4E;6C4E;
+2F8FB;23CBC;23CBC;23CBC;23CBC;
+2F8FC;6CBF;6CBF;6CBF;6CBF;
+2F8FD;6CCD;6CCD;6CCD;6CCD;
+2F8FE;6C67;6C67;6C67;6C67;
+2F8FF;6D16;6D16;6D16;6D16;
+2F900;6D3E;6D3E;6D3E;6D3E;
+2F901;6D77;6D77;6D77;6D77;
+2F902;6D41;6D41;6D41;6D41;
+2F903;6D69;6D69;6D69;6D69;
+2F904;6D78;6D78;6D78;6D78;
+2F905;6D85;6D85;6D85;6D85;
+2F906;23D1E;23D1E;23D1E;23D1E;
+2F907;6D34;6D34;6D34;6D34;
+2F908;6E2F;6E2F;6E2F;6E2F;
+2F909;6E6E;6E6E;6E6E;6E6E;
+2F90A;3D33;3D33;3D33;3D33;
+2F90B;6ECB;6ECB;6ECB;6ECB;
+2F90C;6EC7;6EC7;6EC7;6EC7;
+2F90D;23ED1;23ED1;23ED1;23ED1;
+2F90E;6DF9;6DF9;6DF9;6DF9;
+2F90F;6F6E;6F6E;6F6E;6F6E;
+2F910;23F5E;23F5E;23F5E;23F5E;
+2F911;23F8E;23F8E;23F8E;23F8E;
+2F912;6FC6;6FC6;6FC6;6FC6;
+2F913;7039;7039;7039;7039;
+2F914;701E;701E;701E;701E;
+2F915;701B;701B;701B;701B;
+2F916;3D96;3D96;3D96;3D96;
+2F917;704A;704A;704A;704A;
+2F918;707D;707D;707D;707D;
+2F919;7077;7077;7077;7077;
+2F91A;70AD;70AD;70AD;70AD;
+2F91B;20525;20525;20525;20525;
+2F91C;7145;7145;7145;7145;
+2F91D;24263;24263;24263;24263;
+2F91E;719C;719C;719C;719C;
+2F91F;243AB;243AB;243AB;243AB;
+2F920;7228;7228;7228;7228;
+2F921;7235;7235;7235;7235;
+2F922;7250;7250;7250;7250;
+2F923;24608;24608;24608;24608;
+2F924;7280;7280;7280;7280;
+2F925;7295;7295;7295;7295;
+2F926;24735;24735;24735;24735;
+2F927;24814;24814;24814;24814;
+2F928;737A;737A;737A;737A;
+2F929;738B;738B;738B;738B;
+2F92A;3EAC;3EAC;3EAC;3EAC;
+2F92B;73A5;73A5;73A5;73A5;
+2F92C;3EB8;3EB8;3EB8;3EB8;
+2F92D;3EB8;3EB8;3EB8;3EB8;
+2F92E;7447;7447;7447;7447;
+2F92F;745C;745C;745C;745C;
+2F930;7471;7471;7471;7471;
+2F931;7485;7485;7485;7485;
+2F932;74CA;74CA;74CA;74CA;
+2F933;3F1B;3F1B;3F1B;3F1B;
+2F934;7524;7524;7524;7524;
+2F935;24C36;24C36;24C36;24C36;
+2F936;753E;753E;753E;753E;
+2F937;24C92;24C92;24C92;24C92;
+2F938;7570;7570;7570;7570;
+2F939;2219F;2219F;2219F;2219F;
+2F93A;7610;7610;7610;7610;
+2F93B;24FA1;24FA1;24FA1;24FA1;
+2F93C;24FB8;24FB8;24FB8;24FB8;
+2F93D;25044;25044;25044;25044;
+2F93E;3FFC;3FFC;3FFC;3FFC;
+2F93F;4008;4008;4008;4008;
+2F940;76F4;76F4;76F4;76F4;
+2F941;250F3;250F3;250F3;250F3;
+2F942;250F2;250F2;250F2;250F2;
+2F943;25119;25119;25119;25119;
+2F944;25133;25133;25133;25133;
+2F945;771E;771E;771E;771E;
+2F946;771F;771F;771F;771F;
+2F947;771F;771F;771F;771F;
+2F948;774A;774A;774A;774A;
+2F949;4039;4039;4039;4039;
+2F94A;778B;778B;778B;778B;
+2F94B;4046;4046;4046;4046;
+2F94C;4096;4096;4096;4096;
+2F94D;2541D;2541D;2541D;2541D;
+2F94E;784E;784E;784E;784E;
+2F94F;788C;788C;788C;788C;
+2F950;78CC;78CC;78CC;78CC;
+2F951;40E3;40E3;40E3;40E3;
+2F952;25626;25626;25626;25626;
+2F953;7956;7956;7956;7956;
+2F954;2569A;2569A;2569A;2569A;
+2F955;256C5;256C5;256C5;256C5;
+2F956;798F;798F;798F;798F;
+2F957;79EB;79EB;79EB;79EB;
+2F958;412F;412F;412F;412F;
+2F959;7A40;7A40;7A40;7A40;
+2F95A;7A4A;7A4A;7A4A;7A4A;
+2F95B;7A4F;7A4F;7A4F;7A4F;
+2F95C;2597C;2597C;2597C;2597C;
+2F95D;25AA7;25AA7;25AA7;25AA7;
+2F95E;25AA7;25AA7;25AA7;25AA7;
+2F95F;7AEE;7AEE;7AEE;7AEE;
+2F960;4202;4202;4202;4202;
+2F961;25BAB;25BAB;25BAB;25BAB;
+2F962;7BC6;7BC6;7BC6;7BC6;
+2F963;7BC9;7BC9;7BC9;7BC9;
+2F964;4227;4227;4227;4227;
+2F965;25C80;25C80;25C80;25C80;
+2F966;7CD2;7CD2;7CD2;7CD2;
+2F967;42A0;42A0;42A0;42A0;
+2F968;7CE8;7CE8;7CE8;7CE8;
+2F969;7CE3;7CE3;7CE3;7CE3;
+2F96A;7D00;7D00;7D00;7D00;
+2F96B;25F86;25F86;25F86;25F86;
+2F96C;7D63;7D63;7D63;7D63;
+2F96D;4301;4301;4301;4301;
+2F96E;7DC7;7DC7;7DC7;7DC7;
+2F96F;7E02;7E02;7E02;7E02;
+2F970;7E45;7E45;7E45;7E45;
+2F971;4334;4334;4334;4334;
+2F972;26228;26228;26228;26228;
+2F973;26247;26247;26247;26247;
+2F974;4359;4359;4359;4359;
+2F975;262D9;262D9;262D9;262D9;
+2F976;7F7A;7F7A;7F7A;7F7A;
+2F977;2633E;2633E;2633E;2633E;
+2F978;7F95;7F95;7F95;7F95;
+2F979;7FFA;7FFA;7FFA;7FFA;
+2F97A;8005;8005;8005;8005;
+2F97B;264DA;264DA;264DA;264DA;
+2F97C;26523;26523;26523;26523;
+2F97D;8060;8060;8060;8060;
+2F97E;265A8;265A8;265A8;265A8;
+2F97F;8070;8070;8070;8070;
+2F980;2335F;2335F;2335F;2335F;
+2F981;43D5;43D5;43D5;43D5;
+2F982;80B2;80B2;80B2;80B2;
+2F983;8103;8103;8103;8103;
+2F984;440B;440B;440B;440B;
+2F985;813E;813E;813E;813E;
+2F986;5AB5;5AB5;5AB5;5AB5;
+2F987;267A7;267A7;267A7;267A7;
+2F988;267B5;267B5;267B5;267B5;
+2F989;23393;23393;23393;23393;
+2F98A;2339C;2339C;2339C;2339C;
+2F98B;8201;8201;8201;8201;
+2F98C;8204;8204;8204;8204;
+2F98D;8F9E;8F9E;8F9E;8F9E;
+2F98E;446B;446B;446B;446B;
+2F98F;8291;8291;8291;8291;
+2F990;828B;828B;828B;828B;
+2F991;829D;829D;829D;829D;
+2F992;52B3;52B3;52B3;52B3;
+2F993;82B1;82B1;82B1;82B1;
+2F994;82B3;82B3;82B3;82B3;
+2F995;82BD;82BD;82BD;82BD;
+2F996;82E6;82E6;82E6;82E6;
+2F997;26B3C;26B3C;26B3C;26B3C;
+2F998;82E5;82E5;82E5;82E5;
+2F999;831D;831D;831D;831D;
+2F99A;8363;8363;8363;8363;
+2F99B;83AD;83AD;83AD;83AD;
+2F99C;8323;8323;8323;8323;
+2F99D;83BD;83BD;83BD;83BD;
+2F99E;83E7;83E7;83E7;83E7;
+2F99F;8457;8457;8457;8457;
+2F9A0;8353;8353;8353;8353;
+2F9A1;83CA;83CA;83CA;83CA;
+2F9A2;83CC;83CC;83CC;83CC;
+2F9A3;83DC;83DC;83DC;83DC;
+2F9A4;26C36;26C36;26C36;26C36;
+2F9A5;26D6B;26D6B;26D6B;26D6B;
+2F9A6;26CD5;26CD5;26CD5;26CD5;
+2F9A7;452B;452B;452B;452B;
+2F9A8;84F1;84F1;84F1;84F1;
+2F9A9;84F3;84F3;84F3;84F3;
+2F9AA;8516;8516;8516;8516;
+2F9AB;273CA;273CA;273CA;273CA;
+2F9AC;8564;8564;8564;8564;
+2F9AD;26F2C;26F2C;26F2C;26F2C;
+2F9AE;455D;455D;455D;455D;
+2F9AF;4561;4561;4561;4561;
+2F9B0;26FB1;26FB1;26FB1;26FB1;
+2F9B1;270D2;270D2;270D2;270D2;
+2F9B2;456B;456B;456B;456B;
+2F9B3;8650;8650;8650;8650;
+2F9B4;865C;865C;865C;865C;
+2F9B5;8667;8667;8667;8667;
+2F9B6;8669;8669;8669;8669;
+2F9B7;86A9;86A9;86A9;86A9;
+2F9B8;8688;8688;8688;8688;
+2F9B9;870E;870E;870E;870E;
+2F9BA;86E2;86E2;86E2;86E2;
+2F9BB;8779;8779;8779;8779;
+2F9BC;8728;8728;8728;8728;
+2F9BD;876B;876B;876B;876B;
+2F9BE;8786;8786;8786;8786;
+2F9BF;45D7;45D7;45D7;45D7;
+2F9C0;87E1;87E1;87E1;87E1;
+2F9C1;8801;8801;8801;8801;
+2F9C2;45F9;45F9;45F9;45F9;
+2F9C3;8860;8860;8860;8860;
+2F9C4;8863;8863;8863;8863;
+2F9C5;27667;27667;27667;27667;
+2F9C6;88D7;88D7;88D7;88D7;
+2F9C7;88DE;88DE;88DE;88DE;
+2F9C8;4635;4635;4635;4635;
+2F9C9;88FA;88FA;88FA;88FA;
+2F9CA;34BB;34BB;34BB;34BB;
+2F9CB;278AE;278AE;278AE;278AE;
+2F9CC;27966;27966;27966;27966;
+2F9CD;46BE;46BE;46BE;46BE;
+2F9CE;46C7;46C7;46C7;46C7;
+2F9CF;8AA0;8AA0;8AA0;8AA0;
+2F9D0;8AED;8AED;8AED;8AED;
+2F9D1;8B8A;8B8A;8B8A;8B8A;
+2F9D2;8C55;8C55;8C55;8C55;
+2F9D3;27CA8;27CA8;27CA8;27CA8;
+2F9D4;8CAB;8CAB;8CAB;8CAB;
+2F9D5;8CC1;8CC1;8CC1;8CC1;
+2F9D6;8D1B;8D1B;8D1B;8D1B;
+2F9D7;8D77;8D77;8D77;8D77;
+2F9D8;27F2F;27F2F;27F2F;27F2F;
+2F9D9;20804;20804;20804;20804;
+2F9DA;8DCB;8DCB;8DCB;8DCB;
+2F9DB;8DBC;8DBC;8DBC;8DBC;
+2F9DC;8DF0;8DF0;8DF0;8DF0;
+2F9DD;208DE;208DE;208DE;208DE;
+2F9DE;8ED4;8ED4;8ED4;8ED4;
+2F9DF;8F38;8F38;8F38;8F38;
+2F9E0;285D2;285D2;285D2;285D2;
+2F9E1;285ED;285ED;285ED;285ED;
+2F9E2;9094;9094;9094;9094;
+2F9E3;90F1;90F1;90F1;90F1;
+2F9E4;9111;9111;9111;9111;
+2F9E5;2872E;2872E;2872E;2872E;
+2F9E6;911B;911B;911B;911B;
+2F9E7;9238;9238;9238;9238;
+2F9E8;92D7;92D7;92D7;92D7;
+2F9E9;92D8;92D8;92D8;92D8;
+2F9EA;927C;927C;927C;927C;
+2F9EB;93F9;93F9;93F9;93F9;
+2F9EC;9415;9415;9415;9415;
+2F9ED;28BFA;28BFA;28BFA;28BFA;
+2F9EE;958B;958B;958B;958B;
+2F9EF;4995;4995;4995;4995;
+2F9F0;95B7;95B7;95B7;95B7;
+2F9F1;28D77;28D77;28D77;28D77;
+2F9F2;49E6;49E6;49E6;49E6;
+2F9F3;96C3;96C3;96C3;96C3;
+2F9F4;5DB2;5DB2;5DB2;5DB2;
+2F9F5;9723;9723;9723;9723;
+2F9F6;29145;29145;29145;29145;
+2F9F7;2921A;2921A;2921A;2921A;
+2F9F8;4A6E;4A6E;4A6E;4A6E;
+2F9F9;4A76;4A76;4A76;4A76;
+2F9FA;97E0;97E0;97E0;97E0;
+2F9FB;2940A;2940A;2940A;2940A;
+2F9FC;4AB2;4AB2;4AB2;4AB2;
+2F9FD;29496;29496;29496;29496;
+2F9FE;980B;980B;980B;980B;
+2F9FF;980B;980B;980B;980B;
+2FA00;9829;9829;9829;9829;
+2FA01;295B6;295B6;295B6;295B6;
+2FA02;98E2;98E2;98E2;98E2;
+2FA03;4B33;4B33;4B33;4B33;
+2FA04;9929;9929;9929;9929;
+2FA05;99A7;99A7;99A7;99A7;
+2FA06;99C2;99C2;99C2;99C2;
+2FA07;99FE;99FE;99FE;99FE;
+2FA08;4BCE;4BCE;4BCE;4BCE;
+2FA09;29B30;29B30;29B30;29B30;
+2FA0A;9B12;9B12;9B12;9B12;
+2FA0B;9C40;9C40;9C40;9C40;
+2FA0C;9CFD;9CFD;9CFD;9CFD;
+2FA0D;4CCE;4CCE;4CCE;4CCE;
+2FA0E;4CED;4CED;4CED;4CED;
+2FA0F;9D67;9D67;9D67;9D67;
+2FA10;2A0CE;2A0CE;2A0CE;2A0CE;
+2FA11;4CF8;4CF8;4CF8;4CF8;
+2FA12;2A105;2A105;2A105;2A105;
+2FA13;2A20E;2A20E;2A20E;2A20E;
+2FA14;2A291;2A291;2A291;2A291;
+2FA15;9EBB;9EBB;9EBB;9EBB;
+2FA16;4D56;4D56;4D56;4D56;
+2FA17;9EF9;9EF9;9EF9;9EF9;
+2FA18;9EFE;9EFE;9EFE;9EFE;
+2FA19;9F05;9F05;9F05;9F05;
+2FA1A;9F0F;9F0F;9F0F;9F0F;
+2FA1B;9F16;9F16;9F16;9F16;
+2FA1C;9F3B;9F3B;9F3B;9F3B;
+2FA1D;2A600;2A600;2A600;2A600;
+
+@Part2
+
+0061 0315 0300 05AE 0300 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;
+0061 0300 0315 0300 05AE 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;
+0061 0315 0300 05AE 0301 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062;
+0061 0301 0315 0300 05AE 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062;
+0061 0315 0300 05AE 0302 0062;00E0 05AE 0302 0315 0062;0061 05AE 0300 0302 0315 0062;00E0 05AE 0302 0315 0062;0061 05AE 0300 0302 0315 0062;
+0061 0302 0315 0300 05AE 0062;1EA7 05AE 0315 0062;0061 05AE 0302 0300 0315 0062;1EA7 05AE 0315 0062;0061 05AE 0302 0300 0315 0062;
+0061 0315 0300 05AE 0303 0062;00E0 05AE 0303 0315 0062;0061 05AE 0300 0303 0315 0062;00E0 05AE 0303 0315 0062;0061 05AE 0300 0303 0315 0062;
+0061 0303 0315 0300 05AE 0062;00E3 05AE 0300 0315 0062;0061 05AE 0303 0300 0315 0062;00E3 05AE 0300 0315 0062;0061 05AE 0303 0300 0315 0062;
+0061 0315 0300 05AE 0304 0062;00E0 05AE 0304 0315 0062;0061 05AE 0300 0304 0315 0062;00E0 05AE 0304 0315 0062;0061 05AE 0300 0304 0315 0062;
+0061 0304 0315 0300 05AE 0062;0101 05AE 0300 0315 0062;0061 05AE 0304 0300 0315 0062;0101 05AE 0300 0315 0062;0061 05AE 0304 0300 0315 0062;
+0061 0315 0300 05AE 0305 0062;00E0 05AE 0305 0315 0062;0061 05AE 0300 0305 0315 0062;00E0 05AE 0305 0315 0062;0061 05AE 0300 0305 0315 0062;
+0061 0305 0315 0300 05AE 0062;0061 05AE 0305 0300 0315 0062;0061 05AE 0305 0300 0315 0062;0061 05AE 0305 0300 0315 0062;0061 05AE 0305 0300 0315 0062;
+0061 0315 0300 05AE 0306 0062;00E0 05AE 0306 0315 0062;0061 05AE 0300 0306 0315 0062;00E0 05AE 0306 0315 0062;0061 05AE 0300 0306 0315 0062;
+0061 0306 0315 0300 05AE 0062;1EB1 05AE 0315 0062;0061 05AE 0306 0300 0315 0062;1EB1 05AE 0315 0062;0061 05AE 0306 0300 0315 0062;
+0061 0315 0300 05AE 0307 0062;00E0 05AE 0307 0315 0062;0061 05AE 0300 0307 0315 0062;00E0 05AE 0307 0315 0062;0061 05AE 0300 0307 0315 0062;
+0061 0307 0315 0300 05AE 0062;0227 05AE 0300 0315 0062;0061 05AE 0307 0300 0315 0062;0227 05AE 0300 0315 0062;0061 05AE 0307 0300 0315 0062;
+0061 0315 0300 05AE 0308 0062;00E0 05AE 0308 0315 0062;0061 05AE 0300 0308 0315 0062;00E0 05AE 0308 0315 0062;0061 05AE 0300 0308 0315 0062;
+0061 0308 0315 0300 05AE 0062;00E4 05AE 0300 0315 0062;0061 05AE 0308 0300 0315 0062;00E4 05AE 0300 0315 0062;0061 05AE 0308 0300 0315 0062;
+0061 0315 0300 05AE 0309 0062;00E0 05AE 0309 0315 0062;0061 05AE 0300 0309 0315 0062;00E0 05AE 0309 0315 0062;0061 05AE 0300 0309 0315 0062;
+0061 0309 0315 0300 05AE 0062;1EA3 05AE 0300 0315 0062;0061 05AE 0309 0300 0315 0062;1EA3 05AE 0300 0315 0062;0061 05AE 0309 0300 0315 0062;
+0061 0315 0300 05AE 030A 0062;00E0 05AE 030A 0315 0062;0061 05AE 0300 030A 0315 0062;00E0 05AE 030A 0315 0062;0061 05AE 0300 030A 0315 0062;
+0061 030A 0315 0300 05AE 0062;00E5 05AE 0300 0315 0062;0061 05AE 030A 0300 0315 0062;00E5 05AE 0300 0315 0062;0061 05AE 030A 0300 0315 0062;
+0061 0315 0300 05AE 030B 0062;00E0 05AE 030B 0315 0062;0061 05AE 0300 030B 0315 0062;00E0 05AE 030B 0315 0062;0061 05AE 0300 030B 0315 0062;
+0061 030B 0315 0300 05AE 0062;0061 05AE 030B 0300 0315 0062;0061 05AE 030B 0300 0315 0062;0061 05AE 030B 0300 0315 0062;0061 05AE 030B 0300 0315 0062;
+0061 0315 0300 05AE 030C 0062;00E0 05AE 030C 0315 0062;0061 05AE 0300 030C 0315 0062;00E0 05AE 030C 0315 0062;0061 05AE 0300 030C 0315 0062;
+0061 030C 0315 0300 05AE 0062;01CE 05AE 0300 0315 0062;0061 05AE 030C 0300 0315 0062;01CE 05AE 0300 0315 0062;0061 05AE 030C 0300 0315 0062;
+0061 0315 0300 05AE 030D 0062;00E0 05AE 030D 0315 0062;0061 05AE 0300 030D 0315 0062;00E0 05AE 030D 0315 0062;0061 05AE 0300 030D 0315 0062;
+0061 030D 0315 0300 05AE 0062;0061 05AE 030D 0300 0315 0062;0061 05AE 030D 0300 0315 0062;0061 05AE 030D 0300 0315 0062;0061 05AE 030D 0300 0315 0062;
+0061 0315 0300 05AE 030E 0062;00E0 05AE 030E 0315 0062;0061 05AE 0300 030E 0315 0062;00E0 05AE 030E 0315 0062;0061 05AE 0300 030E 0315 0062;
+0061 030E 0315 0300 05AE 0062;0061 05AE 030E 0300 0315 0062;0061 05AE 030E 0300 0315 0062;0061 05AE 030E 0300 0315 0062;0061 05AE 030E 0300 0315 0062;
+0061 0315 0300 05AE 030F 0062;00E0 05AE 030F 0315 0062;0061 05AE 0300 030F 0315 0062;00E0 05AE 030F 0315 0062;0061 05AE 0300 030F 0315 0062;
+0061 030F 0315 0300 05AE 0062;0201 05AE 0300 0315 0062;0061 05AE 030F 0300 0315 0062;0201 05AE 0300 0315 0062;0061 05AE 030F 0300 0315 0062;
+0061 0315 0300 05AE 0310 0062;00E0 05AE 0310 0315 0062;0061 05AE 0300 0310 0315 0062;00E0 05AE 0310 0315 0062;0061 05AE 0300 0310 0315 0062;
+0061 0310 0315 0300 05AE 0062;0061 05AE 0310 0300 0315 0062;0061 05AE 0310 0300 0315 0062;0061 05AE 0310 0300 0315 0062;0061 05AE 0310 0300 0315 0062;
+0061 0315 0300 05AE 0311 0062;00E0 05AE 0311 0315 0062;0061 05AE 0300 0311 0315 0062;00E0 05AE 0311 0315 0062;0061 05AE 0300 0311 0315 0062;
+0061 0311 0315 0300 05AE 0062;0203 05AE 0300 0315 0062;0061 05AE 0311 0300 0315 0062;0203 05AE 0300 0315 0062;0061 05AE 0311 0300 0315 0062;
+0061 0315 0300 05AE 0312 0062;00E0 05AE 0312 0315 0062;0061 05AE 0300 0312 0315 0062;00E0 05AE 0312 0315 0062;0061 05AE 0300 0312 0315 0062;
+0061 0312 0315 0300 05AE 0062;0061 05AE 0312 0300 0315 0062;0061 05AE 0312 0300 0315 0062;0061 05AE 0312 0300 0315 0062;0061 05AE 0312 0300 0315 0062;
+0061 0315 0300 05AE 0313 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062;
+0061 0313 0315 0300 05AE 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;
+0061 0315 0300 05AE 0314 0062;00E0 05AE 0314 0315 0062;0061 05AE 0300 0314 0315 0062;00E0 05AE 0314 0315 0062;0061 05AE 0300 0314 0315 0062;
+0061 0314 0315 0300 05AE 0062;0061 05AE 0314 0300 0315 0062;0061 05AE 0314 0300 0315 0062;0061 05AE 0314 0300 0315 0062;0061 05AE 0314 0300 0315 0062;
+0061 035C 0315 0300 0315 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062;
+0061 0315 035C 0315 0300 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062;00E0 0315 0315 035C 0062;0061 0300 0315 0315 035C 0062;
+0061 059A 0316 302A 0316 0062;0061 302A 0316 0316 059A 0062;0061 302A 0316 0316 059A 0062;0061 302A 0316 0316 059A 0062;0061 302A 0316 0316 059A 0062;
+0061 0316 059A 0316 302A 0062;0061 302A 0316 0316 059A 0062;0061 302A 0316 0316 059A 0062;0061 302A 0316 0316 059A 0062;0061 302A 0316 0316 059A 0062;
+0061 059A 0316 302A 0317 0062;0061 302A 0316 0317 059A 0062;0061 302A 0316 0317 059A 0062;0061 302A 0316 0317 059A 0062;0061 302A 0316 0317 059A 0062;
+0061 0317 059A 0316 302A 0062;0061 302A 0317 0316 059A 0062;0061 302A 0317 0316 059A 0062;0061 302A 0317 0316 059A 0062;0061 302A 0317 0316 059A 0062;
+0061 059A 0316 302A 0318 0062;0061 302A 0316 0318 059A 0062;0061 302A 0316 0318 059A 0062;0061 302A 0316 0318 059A 0062;0061 302A 0316 0318 059A 0062;
+0061 0318 059A 0316 302A 0062;0061 302A 0318 0316 059A 0062;0061 302A 0318 0316 059A 0062;0061 302A 0318 0316 059A 0062;0061 302A 0318 0316 059A 0062;
+0061 059A 0316 302A 0319 0062;0061 302A 0316 0319 059A 0062;0061 302A 0316 0319 059A 0062;0061 302A 0316 0319 059A 0062;0061 302A 0316 0319 059A 0062;
+0061 0319 059A 0316 302A 0062;0061 302A 0319 0316 059A 0062;0061 302A 0319 0316 059A 0062;0061 302A 0319 0316 059A 0062;0061 302A 0319 0316 059A 0062;
+0061 035C 0315 0300 031A 0062;00E0 0315 031A 035C 0062;0061 0300 0315 031A 035C 0062;00E0 0315 031A 035C 0062;0061 0300 0315 031A 035C 0062;
+0061 031A 035C 0315 0300 0062;00E0 031A 0315 035C 0062;0061 0300 031A 0315 035C 0062;00E0 031A 0315 035C 0062;0061 0300 031A 0315 035C 0062;
+0061 302A 031B 1DCE 031B 0062;0061 1DCE 031B 031B 302A 0062;0061 1DCE 031B 031B 302A 0062;0061 1DCE 031B 031B 302A 0062;0061 1DCE 031B 031B 302A 0062;
+0061 031B 302A 031B 1DCE 0062;0061 1DCE 031B 031B 302A 0062;0061 1DCE 031B 031B 302A 0062;0061 1DCE 031B 031B 302A 0062;0061 1DCE 031B 031B 302A 0062;
+0061 059A 0316 302A 031C 0062;0061 302A 0316 031C 059A 0062;0061 302A 0316 031C 059A 0062;0061 302A 0316 031C 059A 0062;0061 302A 0316 031C 059A 0062;
+0061 031C 059A 0316 302A 0062;0061 302A 031C 0316 059A 0062;0061 302A 031C 0316 059A 0062;0061 302A 031C 0316 059A 0062;0061 302A 031C 0316 059A 0062;
+0061 059A 0316 302A 031D 0062;0061 302A 0316 031D 059A 0062;0061 302A 0316 031D 059A 0062;0061 302A 0316 031D 059A 0062;0061 302A 0316 031D 059A 0062;
+0061 031D 059A 0316 302A 0062;0061 302A 031D 0316 059A 0062;0061 302A 031D 0316 059A 0062;0061 302A 031D 0316 059A 0062;0061 302A 031D 0316 059A 0062;
+0061 059A 0316 302A 031E 0062;0061 302A 0316 031E 059A 0062;0061 302A 0316 031E 059A 0062;0061 302A 0316 031E 059A 0062;0061 302A 0316 031E 059A 0062;
+0061 031E 059A 0316 302A 0062;0061 302A 031E 0316 059A 0062;0061 302A 031E 0316 059A 0062;0061 302A 031E 0316 059A 0062;0061 302A 031E 0316 059A 0062;
+0061 059A 0316 302A 031F 0062;0061 302A 0316 031F 059A 0062;0061 302A 0316 031F 059A 0062;0061 302A 0316 031F 059A 0062;0061 302A 0316 031F 059A 0062;
+0061 031F 059A 0316 302A 0062;0061 302A 031F 0316 059A 0062;0061 302A 031F 0316 059A 0062;0061 302A 031F 0316 059A 0062;0061 302A 031F 0316 059A 0062;
+0061 059A 0316 302A 0320 0062;0061 302A 0316 0320 059A 0062;0061 302A 0316 0320 059A 0062;0061 302A 0316 0320 059A 0062;0061 302A 0316 0320 059A 0062;
+0061 0320 059A 0316 302A 0062;0061 302A 0320 0316 059A 0062;0061 302A 0320 0316 059A 0062;0061 302A 0320 0316 059A 0062;0061 302A 0320 0316 059A 0062;
+0061 1DCE 0321 0F74 0321 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;
+0061 0321 1DCE 0321 0F74 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;0061 0F74 0321 0321 1DCE 0062;
+0061 1DCE 0321 0F74 0322 0062;0061 0F74 0321 0322 1DCE 0062;0061 0F74 0321 0322 1DCE 0062;0061 0F74 0321 0322 1DCE 0062;0061 0F74 0321 0322 1DCE 0062;
+0061 0322 1DCE 0321 0F74 0062;0061 0F74 0322 0321 1DCE 0062;0061 0F74 0322 0321 1DCE 0062;0061 0F74 0322 0321 1DCE 0062;0061 0F74 0322 0321 1DCE 0062;
+0061 059A 0316 302A 0323 0062;0061 302A 0316 0323 059A 0062;0061 302A 0316 0323 059A 0062;0061 302A 0316 0323 059A 0062;0061 302A 0316 0323 059A 0062;
+0061 0323 059A 0316 302A 0062;1EA1 302A 0316 059A 0062;0061 302A 0323 0316 059A 0062;1EA1 302A 0316 059A 0062;0061 302A 0323 0316 059A 0062;
+0061 059A 0316 302A 0324 0062;0061 302A 0316 0324 059A 0062;0061 302A 0316 0324 059A 0062;0061 302A 0316 0324 059A 0062;0061 302A 0316 0324 059A 0062;
+0061 0324 059A 0316 302A 0062;0061 302A 0324 0316 059A 0062;0061 302A 0324 0316 059A 0062;0061 302A 0324 0316 059A 0062;0061 302A 0324 0316 059A 0062;
+0061 059A 0316 302A 0325 0062;0061 302A 0316 0325 059A 0062;0061 302A 0316 0325 059A 0062;0061 302A 0316 0325 059A 0062;0061 302A 0316 0325 059A 0062;
+0061 0325 059A 0316 302A 0062;1E01 302A 0316 059A 0062;0061 302A 0325 0316 059A 0062;1E01 302A 0316 059A 0062;0061 302A 0325 0316 059A 0062;
+0061 059A 0316 302A 0326 0062;0061 302A 0316 0326 059A 0062;0061 302A 0316 0326 059A 0062;0061 302A 0316 0326 059A 0062;0061 302A 0316 0326 059A 0062;
+0061 0326 059A 0316 302A 0062;0061 302A 0326 0316 059A 0062;0061 302A 0326 0316 059A 0062;0061 302A 0326 0316 059A 0062;0061 302A 0326 0316 059A 0062;
+0061 1DCE 0321 0F74 0327 0062;0061 0F74 0321 0327 1DCE 0062;0061 0F74 0321 0327 1DCE 0062;0061 0F74 0321 0327 1DCE 0062;0061 0F74 0321 0327 1DCE 0062;
+0061 0327 1DCE 0321 0F74 0062;0061 0F74 0327 0321 1DCE 0062;0061 0F74 0327 0321 1DCE 0062;0061 0F74 0327 0321 1DCE 0062;0061 0F74 0327 0321 1DCE 0062;
+0061 1DCE 0321 0F74 0328 0062;0061 0F74 0321 0328 1DCE 0062;0061 0F74 0321 0328 1DCE 0062;0061 0F74 0321 0328 1DCE 0062;0061 0F74 0321 0328 1DCE 0062;
+0061 0328 1DCE 0321 0F74 0062;0105 0F74 0321 1DCE 0062;0061 0F74 0328 0321 1DCE 0062;0105 0F74 0321 1DCE 0062;0061 0F74 0328 0321 1DCE 0062;
+0061 059A 0316 302A 0329 0062;0061 302A 0316 0329 059A 0062;0061 302A 0316 0329 059A 0062;0061 302A 0316 0329 059A 0062;0061 302A 0316 0329 059A 0062;
+0061 0329 059A 0316 302A 0062;0061 302A 0329 0316 059A 0062;0061 302A 0329 0316 059A 0062;0061 302A 0329 0316 059A 0062;0061 302A 0329 0316 059A 0062;
+0061 059A 0316 302A 032A 0062;0061 302A 0316 032A 059A 0062;0061 302A 0316 032A 059A 0062;0061 302A 0316 032A 059A 0062;0061 302A 0316 032A 059A 0062;
+0061 032A 059A 0316 302A 0062;0061 302A 032A 0316 059A 0062;0061 302A 032A 0316 059A 0062;0061 302A 032A 0316 059A 0062;0061 302A 032A 0316 059A 0062;
+0061 059A 0316 302A 032B 0062;0061 302A 0316 032B 059A 0062;0061 302A 0316 032B 059A 0062;0061 302A 0316 032B 059A 0062;0061 302A 0316 032B 059A 0062;
+0061 032B 059A 0316 302A 0062;0061 302A 032B 0316 059A 0062;0061 302A 032B 0316 059A 0062;0061 302A 032B 0316 059A 0062;0061 302A 032B 0316 059A 0062;
+0061 059A 0316 302A 032C 0062;0061 302A 0316 032C 059A 0062;0061 302A 0316 032C 059A 0062;0061 302A 0316 032C 059A 0062;0061 302A 0316 032C 059A 0062;
+0061 032C 059A 0316 302A 0062;0061 302A 032C 0316 059A 0062;0061 302A 032C 0316 059A 0062;0061 302A 032C 0316 059A 0062;0061 302A 032C 0316 059A 0062;
+0061 059A 0316 302A 032D 0062;0061 302A 0316 032D 059A 0062;0061 302A 0316 032D 059A 0062;0061 302A 0316 032D 059A 0062;0061 302A 0316 032D 059A 0062;
+0061 032D 059A 0316 302A 0062;0061 302A 032D 0316 059A 0062;0061 302A 032D 0316 059A 0062;0061 302A 032D 0316 059A 0062;0061 302A 032D 0316 059A 0062;
+0061 059A 0316 302A 032E 0062;0061 302A 0316 032E 059A 0062;0061 302A 0316 032E 059A 0062;0061 302A 0316 032E 059A 0062;0061 302A 0316 032E 059A 0062;
+0061 032E 059A 0316 302A 0062;0061 302A 032E 0316 059A 0062;0061 302A 032E 0316 059A 0062;0061 302A 032E 0316 059A 0062;0061 302A 032E 0316 059A 0062;
+0061 059A 0316 302A 032F 0062;0061 302A 0316 032F 059A 0062;0061 302A 0316 032F 059A 0062;0061 302A 0316 032F 059A 0062;0061 302A 0316 032F 059A 0062;
+0061 032F 059A 0316 302A 0062;0061 302A 032F 0316 059A 0062;0061 302A 032F 0316 059A 0062;0061 302A 032F 0316 059A 0062;0061 302A 032F 0316 059A 0062;
+0061 059A 0316 302A 0330 0062;0061 302A 0316 0330 059A 0062;0061 302A 0316 0330 059A 0062;0061 302A 0316 0330 059A 0062;0061 302A 0316 0330 059A 0062;
+0061 0330 059A 0316 302A 0062;0061 302A 0330 0316 059A 0062;0061 302A 0330 0316 059A 0062;0061 302A 0330 0316 059A 0062;0061 302A 0330 0316 059A 0062;
+0061 059A 0316 302A 0331 0062;0061 302A 0316 0331 059A 0062;0061 302A 0316 0331 059A 0062;0061 302A 0316 0331 059A 0062;0061 302A 0316 0331 059A 0062;
+0061 0331 059A 0316 302A 0062;0061 302A 0331 0316 059A 0062;0061 302A 0331 0316 059A 0062;0061 302A 0331 0316 059A 0062;0061 302A 0331 0316 059A 0062;
+0061 059A 0316 302A 0332 0062;0061 302A 0316 0332 059A 0062;0061 302A 0316 0332 059A 0062;0061 302A 0316 0332 059A 0062;0061 302A 0316 0332 059A 0062;
+0061 0332 059A 0316 302A 0062;0061 302A 0332 0316 059A 0062;0061 302A 0332 0316 059A 0062;0061 302A 0332 0316 059A 0062;0061 302A 0332 0316 059A 0062;
+0061 059A 0316 302A 0333 0062;0061 302A 0316 0333 059A 0062;0061 302A 0316 0333 059A 0062;0061 302A 0316 0333 059A 0062;0061 302A 0316 0333 059A 0062;
+0061 0333 059A 0316 302A 0062;0061 302A 0333 0316 059A 0062;0061 302A 0333 0316 059A 0062;0061 302A 0333 0316 059A 0062;0061 302A 0333 0316 059A 0062;
+0061 093C 0334 0334 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062;
+0061 0334 093C 0334 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062;
+0061 093C 0334 0335 0062;0061 0334 0335 093C 0062;0061 0334 0335 093C 0062;0061 0334 0335 093C 0062;0061 0334 0335 093C 0062;
+0061 0335 093C 0334 0062;0061 0335 0334 093C 0062;0061 0335 0334 093C 0062;0061 0335 0334 093C 0062;0061 0335 0334 093C 0062;
+0061 093C 0334 0336 0062;0061 0334 0336 093C 0062;0061 0334 0336 093C 0062;0061 0334 0336 093C 0062;0061 0334 0336 093C 0062;
+0061 0336 093C 0334 0062;0061 0336 0334 093C 0062;0061 0336 0334 093C 0062;0061 0336 0334 093C 0062;0061 0336 0334 093C 0062;
+0061 093C 0334 0337 0062;0061 0334 0337 093C 0062;0061 0334 0337 093C 0062;0061 0334 0337 093C 0062;0061 0334 0337 093C 0062;
+0061 0337 093C 0334 0062;0061 0337 0334 093C 0062;0061 0337 0334 093C 0062;0061 0337 0334 093C 0062;0061 0337 0334 093C 0062;
+0061 093C 0334 0338 0062;0061 0334 0338 093C 0062;0061 0334 0338 093C 0062;0061 0334 0338 093C 0062;0061 0334 0338 093C 0062;
+0061 0338 093C 0334 0062;0061 0338 0334 093C 0062;0061 0338 0334 093C 0062;0061 0338 0334 093C 0062;0061 0338 0334 093C 0062;
+0061 059A 0316 302A 0339 0062;0061 302A 0316 0339 059A 0062;0061 302A 0316 0339 059A 0062;0061 302A 0316 0339 059A 0062;0061 302A 0316 0339 059A 0062;
+0061 0339 059A 0316 302A 0062;0061 302A 0339 0316 059A 0062;0061 302A 0339 0316 059A 0062;0061 302A 0339 0316 059A 0062;0061 302A 0339 0316 059A 0062;
+0061 059A 0316 302A 033A 0062;0061 302A 0316 033A 059A 0062;0061 302A 0316 033A 059A 0062;0061 302A 0316 033A 059A 0062;0061 302A 0316 033A 059A 0062;
+0061 033A 059A 0316 302A 0062;0061 302A 033A 0316 059A 0062;0061 302A 033A 0316 059A 0062;0061 302A 033A 0316 059A 0062;0061 302A 033A 0316 059A 0062;
+0061 059A 0316 302A 033B 0062;0061 302A 0316 033B 059A 0062;0061 302A 0316 033B 059A 0062;0061 302A 0316 033B 059A 0062;0061 302A 0316 033B 059A 0062;
+0061 033B 059A 0316 302A 0062;0061 302A 033B 0316 059A 0062;0061 302A 033B 0316 059A 0062;0061 302A 033B 0316 059A 0062;0061 302A 033B 0316 059A 0062;
+0061 059A 0316 302A 033C 0062;0061 302A 0316 033C 059A 0062;0061 302A 0316 033C 059A 0062;0061 302A 0316 033C 059A 0062;0061 302A 0316 033C 059A 0062;
+0061 033C 059A 0316 302A 0062;0061 302A 033C 0316 059A 0062;0061 302A 033C 0316 059A 0062;0061 302A 033C 0316 059A 0062;0061 302A 033C 0316 059A 0062;
+0061 0315 0300 05AE 033D 0062;00E0 05AE 033D 0315 0062;0061 05AE 0300 033D 0315 0062;00E0 05AE 033D 0315 0062;0061 05AE 0300 033D 0315 0062;
+0061 033D 0315 0300 05AE 0062;0061 05AE 033D 0300 0315 0062;0061 05AE 033D 0300 0315 0062;0061 05AE 033D 0300 0315 0062;0061 05AE 033D 0300 0315 0062;
+0061 0315 0300 05AE 033E 0062;00E0 05AE 033E 0315 0062;0061 05AE 0300 033E 0315 0062;00E0 05AE 033E 0315 0062;0061 05AE 0300 033E 0315 0062;
+0061 033E 0315 0300 05AE 0062;0061 05AE 033E 0300 0315 0062;0061 05AE 033E 0300 0315 0062;0061 05AE 033E 0300 0315 0062;0061 05AE 033E 0300 0315 0062;
+0061 0315 0300 05AE 033F 0062;00E0 05AE 033F 0315 0062;0061 05AE 0300 033F 0315 0062;00E0 05AE 033F 0315 0062;0061 05AE 0300 033F 0315 0062;
+0061 033F 0315 0300 05AE 0062;0061 05AE 033F 0300 0315 0062;0061 05AE 033F 0300 0315 0062;0061 05AE 033F 0300 0315 0062;0061 05AE 033F 0300 0315 0062;
+0061 0315 0300 05AE 0340 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;
+0061 0340 0315 0300 05AE 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;00E0 05AE 0300 0315 0062;0061 05AE 0300 0300 0315 0062;
+0061 0315 0300 05AE 0341 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062;00E0 05AE 0301 0315 0062;0061 05AE 0300 0301 0315 0062;
+0061 0341 0315 0300 05AE 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062;00E1 05AE 0300 0315 0062;0061 05AE 0301 0300 0315 0062;
+0061 0315 0300 05AE 0342 0062;00E0 05AE 0342 0315 0062;0061 05AE 0300 0342 0315 0062;00E0 05AE 0342 0315 0062;0061 05AE 0300 0342 0315 0062;
+0061 0342 0315 0300 05AE 0062;0061 05AE 0342 0300 0315 0062;0061 05AE 0342 0300 0315 0062;0061 05AE 0342 0300 0315 0062;0061 05AE 0342 0300 0315 0062;
+0061 0315 0300 05AE 0343 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062;00E0 05AE 0313 0315 0062;0061 05AE 0300 0313 0315 0062;
+0061 0343 0315 0300 05AE 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;0061 05AE 0313 0300 0315 0062;
+0061 0315 0300 05AE 0344 0062;00E0 05AE 0308 0301 0315 0062;0061 05AE 0300 0308 0301 0315 0062;00E0 05AE 0308 0301 0315 0062;0061 05AE 0300 0308 0301 0315 0062;
+0061 0344 0315 0300 05AE 0062;00E4 05AE 0301 0300 0315 0062;0061 05AE 0308 0301 0300 0315 0062;00E4 05AE 0301 0300 0315 0062;0061 05AE 0308 0301 0300 0315 0062;
+0061 0345 035D 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;
+0061 0345 0345 035D 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;0061 035D 0345 0345 0062;
+0061 0315 0300 05AE 0346 0062;00E0 05AE 0346 0315 0062;0061 05AE 0300 0346 0315 0062;00E0 05AE 0346 0315 0062;0061 05AE 0300 0346 0315 0062;
+0061 0346 0315 0300 05AE 0062;0061 05AE 0346 0300 0315 0062;0061 05AE 0346 0300 0315 0062;0061 05AE 0346 0300 0315 0062;0061 05AE 0346 0300 0315 0062;
+0061 059A 0316 302A 0347 0062;0061 302A 0316 0347 059A 0062;0061 302A 0316 0347 059A 0062;0061 302A 0316 0347 059A 0062;0061 302A 0316 0347 059A 0062;
+0061 0347 059A 0316 302A 0062;0061 302A 0347 0316 059A 0062;0061 302A 0347 0316 059A 0062;0061 302A 0347 0316 059A 0062;0061 302A 0347 0316 059A 0062;
+0061 059A 0316 302A 0348 0062;0061 302A 0316 0348 059A 0062;0061 302A 0316 0348 059A 0062;0061 302A 0316 0348 059A 0062;0061 302A 0316 0348 059A 0062;
+0061 0348 059A 0316 302A 0062;0061 302A 0348 0316 059A 0062;0061 302A 0348 0316 059A 0062;0061 302A 0348 0316 059A 0062;0061 302A 0348 0316 059A 0062;
+0061 059A 0316 302A 0349 0062;0061 302A 0316 0349 059A 0062;0061 302A 0316 0349 059A 0062;0061 302A 0316 0349 059A 0062;0061 302A 0316 0349 059A 0062;
+0061 0349 059A 0316 302A 0062;0061 302A 0349 0316 059A 0062;0061 302A 0349 0316 059A 0062;0061 302A 0349 0316 059A 0062;0061 302A 0349 0316 059A 0062;
+0061 0315 0300 05AE 034A 0062;00E0 05AE 034A 0315 0062;0061 05AE 0300 034A 0315 0062;00E0 05AE 034A 0315 0062;0061 05AE 0300 034A 0315 0062;
+0061 034A 0315 0300 05AE 0062;0061 05AE 034A 0300 0315 0062;0061 05AE 034A 0300 0315 0062;0061 05AE 034A 0300 0315 0062;0061 05AE 034A 0300 0315 0062;
+0061 0315 0300 05AE 034B 0062;00E0 05AE 034B 0315 0062;0061 05AE 0300 034B 0315 0062;00E0 05AE 034B 0315 0062;0061 05AE 0300 034B 0315 0062;
+0061 034B 0315 0300 05AE 0062;0061 05AE 034B 0300 0315 0062;0061 05AE 034B 0300 0315 0062;0061 05AE 034B 0300 0315 0062;0061 05AE 034B 0300 0315 0062;
+0061 0315 0300 05AE 034C 0062;00E0 05AE 034C 0315 0062;0061 05AE 0300 034C 0315 0062;00E0 05AE 034C 0315 0062;0061 05AE 0300 034C 0315 0062;
+0061 034C 0315 0300 05AE 0062;0061 05AE 034C 0300 0315 0062;0061 05AE 034C 0300 0315 0062;0061 05AE 034C 0300 0315 0062;0061 05AE 034C 0300 0315 0062;
+0061 059A 0316 302A 034D 0062;0061 302A 0316 034D 059A 0062;0061 302A 0316 034D 059A 0062;0061 302A 0316 034D 059A 0062;0061 302A 0316 034D 059A 0062;
+0061 034D 059A 0316 302A 0062;0061 302A 034D 0316 059A 0062;0061 302A 034D 0316 059A 0062;0061 302A 034D 0316 059A 0062;0061 302A 034D 0316 059A 0062;
+0061 059A 0316 302A 034E 0062;0061 302A 0316 034E 059A 0062;0061 302A 0316 034E 059A 0062;0061 302A 0316 034E 059A 0062;0061 302A 0316 034E 059A 0062;
+0061 034E 059A 0316 302A 0062;0061 302A 034E 0316 059A 0062;0061 302A 034E 0316 059A 0062;0061 302A 034E 0316 059A 0062;0061 302A 034E 0316 059A 0062;
+0061 0315 0300 05AE 0350 0062;00E0 05AE 0350 0315 0062;0061 05AE 0300 0350 0315 0062;00E0 05AE 0350 0315 0062;0061 05AE 0300 0350 0315 0062;
+0061 0350 0315 0300 05AE 0062;0061 05AE 0350 0300 0315 0062;0061 05AE 0350 0300 0315 0062;0061 05AE 0350 0300 0315 0062;0061 05AE 0350 0300 0315 0062;
+0061 0315 0300 05AE 0351 0062;00E0 05AE 0351 0315 0062;0061 05AE 0300 0351 0315 0062;00E0 05AE 0351 0315 0062;0061 05AE 0300 0351 0315 0062;
+0061 0351 0315 0300 05AE 0062;0061 05AE 0351 0300 0315 0062;0061 05AE 0351 0300 0315 0062;0061 05AE 0351 0300 0315 0062;0061 05AE 0351 0300 0315 0062;
+0061 0315 0300 05AE 0352 0062;00E0 05AE 0352 0315 0062;0061 05AE 0300 0352 0315 0062;00E0 05AE 0352 0315 0062;0061 05AE 0300 0352 0315 0062;
+0061 0352 0315 0300 05AE 0062;0061 05AE 0352 0300 0315 0062;0061 05AE 0352 0300 0315 0062;0061 05AE 0352 0300 0315 0062;0061 05AE 0352 0300 0315 0062;
+0061 059A 0316 302A 0353 0062;0061 302A 0316 0353 059A 0062;0061 302A 0316 0353 059A 0062;0061 302A 0316 0353 059A 0062;0061 302A 0316 0353 059A 0062;
+0061 0353 059A 0316 302A 0062;0061 302A 0353 0316 059A 0062;0061 302A 0353 0316 059A 0062;0061 302A 0353 0316 059A 0062;0061 302A 0353 0316 059A 0062;
+0061 059A 0316 302A 0354 0062;0061 302A 0316 0354 059A 0062;0061 302A 0316 0354 059A 0062;0061 302A 0316 0354 059A 0062;0061 302A 0316 0354 059A 0062;
+0061 0354 059A 0316 302A 0062;0061 302A 0354 0316 059A 0062;0061 302A 0354 0316 059A 0062;0061 302A 0354 0316 059A 0062;0061 302A 0354 0316 059A 0062;
+0061 059A 0316 302A 0355 0062;0061 302A 0316 0355 059A 0062;0061 302A 0316 0355 059A 0062;0061 302A 0316 0355 059A 0062;0061 302A 0316 0355 059A 0062;
+0061 0355 059A 0316 302A 0062;0061 302A 0355 0316 059A 0062;0061 302A 0355 0316 059A 0062;0061 302A 0355 0316 059A 0062;0061 302A 0355 0316 059A 0062;
+0061 059A 0316 302A 0356 0062;0061 302A 0316 0356 059A 0062;0061 302A 0316 0356 059A 0062;0061 302A 0316 0356 059A 0062;0061 302A 0316 0356 059A 0062;
+0061 0356 059A 0316 302A 0062;0061 302A 0356 0316 059A 0062;0061 302A 0356 0316 059A 0062;0061 302A 0356 0316 059A 0062;0061 302A 0356 0316 059A 0062;
+0061 0315 0300 05AE 0357 0062;00E0 05AE 0357 0315 0062;0061 05AE 0300 0357 0315 0062;00E0 05AE 0357 0315 0062;0061 05AE 0300 0357 0315 0062;
+0061 0357 0315 0300 05AE 0062;0061 05AE 0357 0300 0315 0062;0061 05AE 0357 0300 0315 0062;0061 05AE 0357 0300 0315 0062;0061 05AE 0357 0300 0315 0062;
+0061 035C 0315 0300 0358 0062;00E0 0315 0358 035C 0062;0061 0300 0315 0358 035C 0062;00E0 0315 0358 035C 0062;0061 0300 0315 0358 035C 0062;
+0061 0358 035C 0315 0300 0062;00E0 0358 0315 035C 0062;0061 0300 0358 0315 035C 0062;00E0 0358 0315 035C 0062;0061 0300 0358 0315 035C 0062;
+0061 059A 0316 302A 0359 0062;0061 302A 0316 0359 059A 0062;0061 302A 0316 0359 059A 0062;0061 302A 0316 0359 059A 0062;0061 302A 0316 0359 059A 0062;
+0061 0359 059A 0316 302A 0062;0061 302A 0359 0316 059A 0062;0061 302A 0359 0316 059A 0062;0061 302A 0359 0316 059A 0062;0061 302A 0359 0316 059A 0062;
+0061 059A 0316 302A 035A 0062;0061 302A 0316 035A 059A 0062;0061 302A 0316 035A 059A 0062;0061 302A 0316 035A 059A 0062;0061 302A 0316 035A 059A 0062;
+0061 035A 059A 0316 302A 0062;0061 302A 035A 0316 059A 0062;0061 302A 035A 0316 059A 0062;0061 302A 035A 0316 059A 0062;0061 302A 035A 0316 059A 0062;
+0061 0315 0300 05AE 035B 0062;00E0 05AE 035B 0315 0062;0061 05AE 0300 035B 0315 0062;00E0 05AE 035B 0315 0062;0061 05AE 0300 035B 0315 0062;
+0061 035B 0315 0300 05AE 0062;0061 05AE 035B 0300 0315 0062;0061 05AE 035B 0300 0315 0062;0061 05AE 035B 0300 0315 0062;0061 05AE 035B 0300 0315 0062;
+0061 035D 035C 0315 035C 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;
+0061 035C 035D 035C 0315 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;0061 0315 035C 035C 035D 0062;
+0061 0345 035D 035C 035D 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;
+0061 035D 0345 035D 035C 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;0061 035C 035D 035D 0345 0062;
+0061 0345 035D 035C 035E 0062;0061 035C 035D 035E 0345 0062;0061 035C 035D 035E 0345 0062;0061 035C 035D 035E 0345 0062;0061 035C 035D 035E 0345 0062;
+0061 035E 0345 035D 035C 0062;0061 035C 035E 035D 0345 0062;0061 035C 035E 035D 0345 0062;0061 035C 035E 035D 0345 0062;0061 035C 035E 035D 0345 0062;
+0061 035D 035C 0315 035F 0062;0061 0315 035C 035F 035D 0062;0061 0315 035C 035F 035D 0062;0061 0315 035C 035F 035D 0062;0061 0315 035C 035F 035D 0062;
+0061 035F 035D 035C 0315 0062;0061 0315 035F 035C 035D 0062;0061 0315 035F 035C 035D 0062;0061 0315 035F 035C 035D 0062;0061 0315 035F 035C 035D 0062;
+0061 0345 035D 035C 0360 0062;0061 035C 035D 0360 0345 0062;0061 035C 035D 0360 0345 0062;0061 035C 035D 0360 0345 0062;0061 035C 035D 0360 0345 0062;
+0061 0360 0345 035D 035C 0062;0061 035C 0360 035D 0345 0062;0061 035C 0360 035D 0345 0062;0061 035C 0360 035D 0345 0062;0061 035C 0360 035D 0345 0062;
+0061 0345 035D 035C 0361 0062;0061 035C 035D 0361 0345 0062;0061 035C 035D 0361 0345 0062;0061 035C 035D 0361 0345 0062;0061 035C 035D 0361 0345 0062;
+0061 0361 0345 035D 035C 0062;0061 035C 0361 035D 0345 0062;0061 035C 0361 035D 0345 0062;0061 035C 0361 035D 0345 0062;0061 035C 0361 035D 0345 0062;
+0061 035D 035C 0315 0362 0062;0061 0315 035C 0362 035D 0062;0061 0315 035C 0362 035D 0062;0061 0315 035C 0362 035D 0062;0061 0315 035C 0362 035D 0062;
+0061 0362 035D 035C 0315 0062;0061 0315 0362 035C 035D 0062;0061 0315 0362 035C 035D 0062;0061 0315 0362 035C 035D 0062;0061 0315 0362 035C 035D 0062;
+0061 0315 0300 05AE 0363 0062;00E0 05AE 0363 0315 0062;0061 05AE 0300 0363 0315 0062;00E0 05AE 0363 0315 0062;0061 05AE 0300 0363 0315 0062;
+0061 0363 0315 0300 05AE 0062;0061 05AE 0363 0300 0315 0062;0061 05AE 0363 0300 0315 0062;0061 05AE 0363 0300 0315 0062;0061 05AE 0363 0300 0315 0062;
+0061 0315 0300 05AE 0364 0062;00E0 05AE 0364 0315 0062;0061 05AE 0300 0364 0315 0062;00E0 05AE 0364 0315 0062;0061 05AE 0300 0364 0315 0062;
+0061 0364 0315 0300 05AE 0062;0061 05AE 0364 0300 0315 0062;0061 05AE 0364 0300 0315 0062;0061 05AE 0364 0300 0315 0062;0061 05AE 0364 0300 0315 0062;
+0061 0315 0300 05AE 0365 0062;00E0 05AE 0365 0315 0062;0061 05AE 0300 0365 0315 0062;00E0 05AE 0365 0315 0062;0061 05AE 0300 0365 0315 0062;
+0061 0365 0315 0300 05AE 0062;0061 05AE 0365 0300 0315 0062;0061 05AE 0365 0300 0315 0062;0061 05AE 0365 0300 0315 0062;0061 05AE 0365 0300 0315 0062;
+0061 0315 0300 05AE 0366 0062;00E0 05AE 0366 0315 0062;0061 05AE 0300 0366 0315 0062;00E0 05AE 0366 0315 0062;0061 05AE 0300 0366 0315 0062;
+0061 0366 0315 0300 05AE 0062;0061 05AE 0366 0300 0315 0062;0061 05AE 0366 0300 0315 0062;0061 05AE 0366 0300 0315 0062;0061 05AE 0366 0300 0315 0062;
+0061 0315 0300 05AE 0367 0062;00E0 05AE 0367 0315 0062;0061 05AE 0300 0367 0315 0062;00E0 05AE 0367 0315 0062;0061 05AE 0300 0367 0315 0062;
+0061 0367 0315 0300 05AE 0062;0061 05AE 0367 0300 0315 0062;0061 05AE 0367 0300 0315 0062;0061 05AE 0367 0300 0315 0062;0061 05AE 0367 0300 0315 0062;
+0061 0315 0300 05AE 0368 0062;00E0 05AE 0368 0315 0062;0061 05AE 0300 0368 0315 0062;00E0 05AE 0368 0315 0062;0061 05AE 0300 0368 0315 0062;
+0061 0368 0315 0300 05AE 0062;0061 05AE 0368 0300 0315 0062;0061 05AE 0368 0300 0315 0062;0061 05AE 0368 0300 0315 0062;0061 05AE 0368 0300 0315 0062;
+0061 0315 0300 05AE 0369 0062;00E0 05AE 0369 0315 0062;0061 05AE 0300 0369 0315 0062;00E0 05AE 0369 0315 0062;0061 05AE 0300 0369 0315 0062;
+0061 0369 0315 0300 05AE 0062;0061 05AE 0369 0300 0315 0062;0061 05AE 0369 0300 0315 0062;0061 05AE 0369 0300 0315 0062;0061 05AE 0369 0300 0315 0062;
+0061 0315 0300 05AE 036A 0062;00E0 05AE 036A 0315 0062;0061 05AE 0300 036A 0315 0062;00E0 05AE 036A 0315 0062;0061 05AE 0300 036A 0315 0062;
+0061 036A 0315 0300 05AE 0062;0061 05AE 036A 0300 0315 0062;0061 05AE 036A 0300 0315 0062;0061 05AE 036A 0300 0315 0062;0061 05AE 036A 0300 0315 0062;
+0061 0315 0300 05AE 036B 0062;00E0 05AE 036B 0315 0062;0061 05AE 0300 036B 0315 0062;00E0 05AE 036B 0315 0062;0061 05AE 0300 036B 0315 0062;
+0061 036B 0315 0300 05AE 0062;0061 05AE 036B 0300 0315 0062;0061 05AE 036B 0300 0315 0062;0061 05AE 036B 0300 0315 0062;0061 05AE 036B 0300 0315 0062;
+0061 0315 0300 05AE 036C 0062;00E0 05AE 036C 0315 0062;0061 05AE 0300 036C 0315 0062;00E0 05AE 036C 0315 0062;0061 05AE 0300 036C 0315 0062;
+0061 036C 0315 0300 05AE 0062;0061 05AE 036C 0300 0315 0062;0061 05AE 036C 0300 0315 0062;0061 05AE 036C 0300 0315 0062;0061 05AE 036C 0300 0315 0062;
+0061 0315 0300 05AE 036D 0062;00E0 05AE 036D 0315 0062;0061 05AE 0300 036D 0315 0062;00E0 05AE 036D 0315 0062;0061 05AE 0300 036D 0315 0062;
+0061 036D 0315 0300 05AE 0062;0061 05AE 036D 0300 0315 0062;0061 05AE 036D 0300 0315 0062;0061 05AE 036D 0300 0315 0062;0061 05AE 036D 0300 0315 0062;
+0061 0315 0300 05AE 036E 0062;00E0 05AE 036E 0315 0062;0061 05AE 0300 036E 0315 0062;00E0 05AE 036E 0315 0062;0061 05AE 0300 036E 0315 0062;
+0061 036E 0315 0300 05AE 0062;0061 05AE 036E 0300 0315 0062;0061 05AE 036E 0300 0315 0062;0061 05AE 036E 0300 0315 0062;0061 05AE 036E 0300 0315 0062;
+0061 0315 0300 05AE 036F 0062;00E0 05AE 036F 0315 0062;0061 05AE 0300 036F 0315 0062;00E0 05AE 036F 0315 0062;0061 05AE 0300 036F 0315 0062;
+0061 036F 0315 0300 05AE 0062;0061 05AE 036F 0300 0315 0062;0061 05AE 036F 0300 0315 0062;0061 05AE 036F 0300 0315 0062;0061 05AE 036F 0300 0315 0062;
+0061 0315 0300 05AE 0483 0062;00E0 05AE 0483 0315 0062;0061 05AE 0300 0483 0315 0062;00E0 05AE 0483 0315 0062;0061 05AE 0300 0483 0315 0062;
+0061 0483 0315 0300 05AE 0062;0061 05AE 0483 0300 0315 0062;0061 05AE 0483 0300 0315 0062;0061 05AE 0483 0300 0315 0062;0061 05AE 0483 0300 0315 0062;
+0061 0315 0300 05AE 0484 0062;00E0 05AE 0484 0315 0062;0061 05AE 0300 0484 0315 0062;00E0 05AE 0484 0315 0062;0061 05AE 0300 0484 0315 0062;
+0061 0484 0315 0300 05AE 0062;0061 05AE 0484 0300 0315 0062;0061 05AE 0484 0300 0315 0062;0061 05AE 0484 0300 0315 0062;0061 05AE 0484 0300 0315 0062;
+0061 0315 0300 05AE 0485 0062;00E0 05AE 0485 0315 0062;0061 05AE 0300 0485 0315 0062;00E0 05AE 0485 0315 0062;0061 05AE 0300 0485 0315 0062;
+0061 0485 0315 0300 05AE 0062;0061 05AE 0485 0300 0315 0062;0061 05AE 0485 0300 0315 0062;0061 05AE 0485 0300 0315 0062;0061 05AE 0485 0300 0315 0062;
+0061 0315 0300 05AE 0486 0062;00E0 05AE 0486 0315 0062;0061 05AE 0300 0486 0315 0062;00E0 05AE 0486 0315 0062;0061 05AE 0300 0486 0315 0062;
+0061 0486 0315 0300 05AE 0062;0061 05AE 0486 0300 0315 0062;0061 05AE 0486 0300 0315 0062;0061 05AE 0486 0300 0315 0062;0061 05AE 0486 0300 0315 0062;
+0061 0315 0300 05AE 0487 0062;00E0 05AE 0487 0315 0062;0061 05AE 0300 0487 0315 0062;00E0 05AE 0487 0315 0062;0061 05AE 0300 0487 0315 0062;
+0061 0487 0315 0300 05AE 0062;0061 05AE 0487 0300 0315 0062;0061 05AE 0487 0300 0315 0062;0061 05AE 0487 0300 0315 0062;0061 05AE 0487 0300 0315 0062;
+0061 059A 0316 302A 0591 0062;0061 302A 0316 0591 059A 0062;0061 302A 0316 0591 059A 0062;0061 302A 0316 0591 059A 0062;0061 302A 0316 0591 059A 0062;
+0061 0591 059A 0316 302A 0062;0061 302A 0591 0316 059A 0062;0061 302A 0591 0316 059A 0062;0061 302A 0591 0316 059A 0062;0061 302A 0591 0316 059A 0062;
+0061 0315 0300 05AE 0592 0062;00E0 05AE 0592 0315 0062;0061 05AE 0300 0592 0315 0062;00E0 05AE 0592 0315 0062;0061 05AE 0300 0592 0315 0062;
+0061 0592 0315 0300 05AE 0062;0061 05AE 0592 0300 0315 0062;0061 05AE 0592 0300 0315 0062;0061 05AE 0592 0300 0315 0062;0061 05AE 0592 0300 0315 0062;
+0061 0315 0300 05AE 0593 0062;00E0 05AE 0593 0315 0062;0061 05AE 0300 0593 0315 0062;00E0 05AE 0593 0315 0062;0061 05AE 0300 0593 0315 0062;
+0061 0593 0315 0300 05AE 0062;0061 05AE 0593 0300 0315 0062;0061 05AE 0593 0300 0315 0062;0061 05AE 0593 0300 0315 0062;0061 05AE 0593 0300 0315 0062;
+0061 0315 0300 05AE 0594 0062;00E0 05AE 0594 0315 0062;0061 05AE 0300 0594 0315 0062;00E0 05AE 0594 0315 0062;0061 05AE 0300 0594 0315 0062;
+0061 0594 0315 0300 05AE 0062;0061 05AE 0594 0300 0315 0062;0061 05AE 0594 0300 0315 0062;0061 05AE 0594 0300 0315 0062;0061 05AE 0594 0300 0315 0062;
+0061 0315 0300 05AE 0595 0062;00E0 05AE 0595 0315 0062;0061 05AE 0300 0595 0315 0062;00E0 05AE 0595 0315 0062;0061 05AE 0300 0595 0315 0062;
+0061 0595 0315 0300 05AE 0062;0061 05AE 0595 0300 0315 0062;0061 05AE 0595 0300 0315 0062;0061 05AE 0595 0300 0315 0062;0061 05AE 0595 0300 0315 0062;
+0061 059A 0316 302A 0596 0062;0061 302A 0316 0596 059A 0062;0061 302A 0316 0596 059A 0062;0061 302A 0316 0596 059A 0062;0061 302A 0316 0596 059A 0062;
+0061 0596 059A 0316 302A 0062;0061 302A 0596 0316 059A 0062;0061 302A 0596 0316 059A 0062;0061 302A 0596 0316 059A 0062;0061 302A 0596 0316 059A 0062;
+0061 0315 0300 05AE 0597 0062;00E0 05AE 0597 0315 0062;0061 05AE 0300 0597 0315 0062;00E0 05AE 0597 0315 0062;0061 05AE 0300 0597 0315 0062;
+0061 0597 0315 0300 05AE 0062;0061 05AE 0597 0300 0315 0062;0061 05AE 0597 0300 0315 0062;0061 05AE 0597 0300 0315 0062;0061 05AE 0597 0300 0315 0062;
+0061 0315 0300 05AE 0598 0062;00E0 05AE 0598 0315 0062;0061 05AE 0300 0598 0315 0062;00E0 05AE 0598 0315 0062;0061 05AE 0300 0598 0315 0062;
+0061 0598 0315 0300 05AE 0062;0061 05AE 0598 0300 0315 0062;0061 05AE 0598 0300 0315 0062;0061 05AE 0598 0300 0315 0062;0061 05AE 0598 0300 0315 0062;
+0061 0315 0300 05AE 0599 0062;00E0 05AE 0599 0315 0062;0061 05AE 0300 0599 0315 0062;00E0 05AE 0599 0315 0062;0061 05AE 0300 0599 0315 0062;
+0061 0599 0315 0300 05AE 0062;0061 05AE 0599 0300 0315 0062;0061 05AE 0599 0300 0315 0062;0061 05AE 0599 0300 0315 0062;0061 05AE 0599 0300 0315 0062;
+0061 302E 059A 0316 059A 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;
+0061 059A 302E 059A 0316 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;0061 0316 059A 059A 302E 0062;
+0061 059A 0316 302A 059B 0062;0061 302A 0316 059B 059A 0062;0061 302A 0316 059B 059A 0062;0061 302A 0316 059B 059A 0062;0061 302A 0316 059B 059A 0062;
+0061 059B 059A 0316 302A 0062;0061 302A 059B 0316 059A 0062;0061 302A 059B 0316 059A 0062;0061 302A 059B 0316 059A 0062;0061 302A 059B 0316 059A 0062;
+0061 0315 0300 05AE 059C 0062;00E0 05AE 059C 0315 0062;0061 05AE 0300 059C 0315 0062;00E0 05AE 059C 0315 0062;0061 05AE 0300 059C 0315 0062;
+0061 059C 0315 0300 05AE 0062;0061 05AE 059C 0300 0315 0062;0061 05AE 059C 0300 0315 0062;0061 05AE 059C 0300 0315 0062;0061 05AE 059C 0300 0315 0062;
+0061 0315 0300 05AE 059D 0062;00E0 05AE 059D 0315 0062;0061 05AE 0300 059D 0315 0062;00E0 05AE 059D 0315 0062;0061 05AE 0300 059D 0315 0062;
+0061 059D 0315 0300 05AE 0062;0061 05AE 059D 0300 0315 0062;0061 05AE 059D 0300 0315 0062;0061 05AE 059D 0300 0315 0062;0061 05AE 059D 0300 0315 0062;
+0061 0315 0300 05AE 059E 0062;00E0 05AE 059E 0315 0062;0061 05AE 0300 059E 0315 0062;00E0 05AE 059E 0315 0062;0061 05AE 0300 059E 0315 0062;
+0061 059E 0315 0300 05AE 0062;0061 05AE 059E 0300 0315 0062;0061 05AE 059E 0300 0315 0062;0061 05AE 059E 0300 0315 0062;0061 05AE 059E 0300 0315 0062;
+0061 0315 0300 05AE 059F 0062;00E0 05AE 059F 0315 0062;0061 05AE 0300 059F 0315 0062;00E0 05AE 059F 0315 0062;0061 05AE 0300 059F 0315 0062;
+0061 059F 0315 0300 05AE 0062;0061 05AE 059F 0300 0315 0062;0061 05AE 059F 0300 0315 0062;0061 05AE 059F 0300 0315 0062;0061 05AE 059F 0300 0315 0062;
+0061 0315 0300 05AE 05A0 0062;00E0 05AE 05A0 0315 0062;0061 05AE 0300 05A0 0315 0062;00E0 05AE 05A0 0315 0062;0061 05AE 0300 05A0 0315 0062;
+0061 05A0 0315 0300 05AE 0062;0061 05AE 05A0 0300 0315 0062;0061 05AE 05A0 0300 0315 0062;0061 05AE 05A0 0300 0315 0062;0061 05AE 05A0 0300 0315 0062;
+0061 0315 0300 05AE 05A1 0062;00E0 05AE 05A1 0315 0062;0061 05AE 0300 05A1 0315 0062;00E0 05AE 05A1 0315 0062;0061 05AE 0300 05A1 0315 0062;
+0061 05A1 0315 0300 05AE 0062;0061 05AE 05A1 0300 0315 0062;0061 05AE 05A1 0300 0315 0062;0061 05AE 05A1 0300 0315 0062;0061 05AE 05A1 0300 0315 0062;
+0061 059A 0316 302A 05A2 0062;0061 302A 0316 05A2 059A 0062;0061 302A 0316 05A2 059A 0062;0061 302A 0316 05A2 059A 0062;0061 302A 0316 05A2 059A 0062;
+0061 05A2 059A 0316 302A 0062;0061 302A 05A2 0316 059A 0062;0061 302A 05A2 0316 059A 0062;0061 302A 05A2 0316 059A 0062;0061 302A 05A2 0316 059A 0062;
+0061 059A 0316 302A 05A3 0062;0061 302A 0316 05A3 059A 0062;0061 302A 0316 05A3 059A 0062;0061 302A 0316 05A3 059A 0062;0061 302A 0316 05A3 059A 0062;
+0061 05A3 059A 0316 302A 0062;0061 302A 05A3 0316 059A 0062;0061 302A 05A3 0316 059A 0062;0061 302A 05A3 0316 059A 0062;0061 302A 05A3 0316 059A 0062;
+0061 059A 0316 302A 05A4 0062;0061 302A 0316 05A4 059A 0062;0061 302A 0316 05A4 059A 0062;0061 302A 0316 05A4 059A 0062;0061 302A 0316 05A4 059A 0062;
+0061 05A4 059A 0316 302A 0062;0061 302A 05A4 0316 059A 0062;0061 302A 05A4 0316 059A 0062;0061 302A 05A4 0316 059A 0062;0061 302A 05A4 0316 059A 0062;
+0061 059A 0316 302A 05A5 0062;0061 302A 0316 05A5 059A 0062;0061 302A 0316 05A5 059A 0062;0061 302A 0316 05A5 059A 0062;0061 302A 0316 05A5 059A 0062;
+0061 05A5 059A 0316 302A 0062;0061 302A 05A5 0316 059A 0062;0061 302A 05A5 0316 059A 0062;0061 302A 05A5 0316 059A 0062;0061 302A 05A5 0316 059A 0062;
+0061 059A 0316 302A 05A6 0062;0061 302A 0316 05A6 059A 0062;0061 302A 0316 05A6 059A 0062;0061 302A 0316 05A6 059A 0062;0061 302A 0316 05A6 059A 0062;
+0061 05A6 059A 0316 302A 0062;0061 302A 05A6 0316 059A 0062;0061 302A 05A6 0316 059A 0062;0061 302A 05A6 0316 059A 0062;0061 302A 05A6 0316 059A 0062;
+0061 059A 0316 302A 05A7 0062;0061 302A 0316 05A7 059A 0062;0061 302A 0316 05A7 059A 0062;0061 302A 0316 05A7 059A 0062;0061 302A 0316 05A7 059A 0062;
+0061 05A7 059A 0316 302A 0062;0061 302A 05A7 0316 059A 0062;0061 302A 05A7 0316 059A 0062;0061 302A 05A7 0316 059A 0062;0061 302A 05A7 0316 059A 0062;
+0061 0315 0300 05AE 05A8 0062;00E0 05AE 05A8 0315 0062;0061 05AE 0300 05A8 0315 0062;00E0 05AE 05A8 0315 0062;0061 05AE 0300 05A8 0315 0062;
+0061 05A8 0315 0300 05AE 0062;0061 05AE 05A8 0300 0315 0062;0061 05AE 05A8 0300 0315 0062;0061 05AE 05A8 0300 0315 0062;0061 05AE 05A8 0300 0315 0062;
+0061 0315 0300 05AE 05A9 0062;00E0 05AE 05A9 0315 0062;0061 05AE 0300 05A9 0315 0062;00E0 05AE 05A9 0315 0062;0061 05AE 0300 05A9 0315 0062;
+0061 05A9 0315 0300 05AE 0062;0061 05AE 05A9 0300 0315 0062;0061 05AE 05A9 0300 0315 0062;0061 05AE 05A9 0300 0315 0062;0061 05AE 05A9 0300 0315 0062;
+0061 059A 0316 302A 05AA 0062;0061 302A 0316 05AA 059A 0062;0061 302A 0316 05AA 059A 0062;0061 302A 0316 05AA 059A 0062;0061 302A 0316 05AA 059A 0062;
+0061 05AA 059A 0316 302A 0062;0061 302A 05AA 0316 059A 0062;0061 302A 05AA 0316 059A 0062;0061 302A 05AA 0316 059A 0062;0061 302A 05AA 0316 059A 0062;
+0061 0315 0300 05AE 05AB 0062;00E0 05AE 05AB 0315 0062;0061 05AE 0300 05AB 0315 0062;00E0 05AE 05AB 0315 0062;0061 05AE 0300 05AB 0315 0062;
+0061 05AB 0315 0300 05AE 0062;0061 05AE 05AB 0300 0315 0062;0061 05AE 05AB 0300 0315 0062;0061 05AE 05AB 0300 0315 0062;0061 05AE 05AB 0300 0315 0062;
+0061 0315 0300 05AE 05AC 0062;00E0 05AE 05AC 0315 0062;0061 05AE 0300 05AC 0315 0062;00E0 05AE 05AC 0315 0062;0061 05AE 0300 05AC 0315 0062;
+0061 05AC 0315 0300 05AE 0062;0061 05AE 05AC 0300 0315 0062;0061 05AE 05AC 0300 0315 0062;0061 05AE 05AC 0300 0315 0062;0061 05AE 05AC 0300 0315 0062;
+0061 302E 059A 0316 05AD 0062;0061 0316 059A 05AD 302E 0062;0061 0316 059A 05AD 302E 0062;0061 0316 059A 05AD 302E 0062;0061 0316 059A 05AD 302E 0062;
+0061 05AD 302E 059A 0316 0062;0061 0316 05AD 059A 302E 0062;0061 0316 05AD 059A 302E 0062;0061 0316 05AD 059A 302E 0062;0061 0316 05AD 059A 302E 0062;
+0061 0300 05AE 1D16D 05AE 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062;
+0061 05AE 0300 05AE 1D16D 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062;00E0 1D16D 05AE 05AE 0062;0061 1D16D 05AE 05AE 0300 0062;
+0061 0315 0300 05AE 05AF 0062;00E0 05AE 05AF 0315 0062;0061 05AE 0300 05AF 0315 0062;00E0 05AE 05AF 0315 0062;0061 05AE 0300 05AF 0315 0062;
+0061 05AF 0315 0300 05AE 0062;0061 05AE 05AF 0300 0315 0062;0061 05AE 05AF 0300 0315 0062;0061 05AE 05AF 0300 0315 0062;0061 05AE 05AF 0300 0315 0062;
+0061 05B1 05B0 094D 05B0 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;
+0061 05B0 05B1 05B0 094D 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;0061 094D 05B0 05B0 05B1 0062;
+0061 05B2 05B1 05B0 05B1 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;
+0061 05B1 05B2 05B1 05B0 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;0061 05B0 05B1 05B1 05B2 0062;
+0061 05B3 05B2 05B1 05B2 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;
+0061 05B2 05B3 05B2 05B1 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;0061 05B1 05B2 05B2 05B3 0062;
+0061 05B4 05B3 05B2 05B3 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;
+0061 05B3 05B4 05B3 05B2 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;0061 05B2 05B3 05B3 05B4 0062;
+0061 05B5 05B4 05B3 05B4 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;
+0061 05B4 05B5 05B4 05B3 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;0061 05B3 05B4 05B4 05B5 0062;
+0061 05B6 05B5 05B4 05B5 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;
+0061 05B5 05B6 05B5 05B4 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;0061 05B4 05B5 05B5 05B6 0062;
+0061 05B7 05B6 05B5 05B6 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;
+0061 05B6 05B7 05B6 05B5 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;0061 05B5 05B6 05B6 05B7 0062;
+0061 05B8 05B7 05B6 05B7 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;
+0061 05B7 05B8 05B7 05B6 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;0061 05B6 05B7 05B7 05B8 0062;
+0061 05B9 05B8 05B7 05B8 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;
+0061 05B8 05B9 05B8 05B7 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;
+0061 05BB 05B9 05B8 05B9 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;
+0061 05B9 05BB 05B9 05B8 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;
+0061 05BB 05B9 05B8 05BA 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;
+0061 05BA 05BB 05B9 05B8 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;
+0061 05BC 05BB 05B9 05BB 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;
+0061 05BB 05BC 05BB 05B9 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;
+0061 05BD 05BC 05BB 05BC 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;
+0061 05BC 05BD 05BC 05BB 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;
+0061 05BF 05BD 05BC 05BD 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;
+0061 05BD 05BF 05BD 05BC 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;0061 05BC 05BD 05BD 05BF 0062;
+0061 05C1 05BF 05BD 05BF 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;
+0061 05BF 05C1 05BF 05BD 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;0061 05BD 05BF 05BF 05C1 0062;
+0061 05C2 05C1 05BF 05C1 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;
+0061 05C1 05C2 05C1 05BF 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;0061 05BF 05C1 05C1 05C2 0062;
+0061 FB1E 05C2 05C1 05C2 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;
+0061 05C2 FB1E 05C2 05C1 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;0061 05C1 05C2 05C2 FB1E 0062;
+0061 0315 0300 05AE 05C4 0062;00E0 05AE 05C4 0315 0062;0061 05AE 0300 05C4 0315 0062;00E0 05AE 05C4 0315 0062;0061 05AE 0300 05C4 0315 0062;
+0061 05C4 0315 0300 05AE 0062;0061 05AE 05C4 0300 0315 0062;0061 05AE 05C4 0300 0315 0062;0061 05AE 05C4 0300 0315 0062;0061 05AE 05C4 0300 0315 0062;
+0061 059A 0316 302A 05C5 0062;0061 302A 0316 05C5 059A 0062;0061 302A 0316 05C5 059A 0062;0061 302A 0316 05C5 059A 0062;0061 302A 0316 05C5 059A 0062;
+0061 05C5 059A 0316 302A 0062;0061 302A 05C5 0316 059A 0062;0061 302A 05C5 0316 059A 0062;0061 302A 05C5 0316 059A 0062;0061 302A 05C5 0316 059A 0062;
+0061 05B9 05B8 05B7 05C7 0062;0061 05B7 05B8 05C7 05B9 0062;0061 05B7 05B8 05C7 05B9 0062;0061 05B7 05B8 05C7 05B9 0062;0061 05B7 05B8 05C7 05B9 0062;
+0061 05C7 05B9 05B8 05B7 0062;0061 05B7 05C7 05B8 05B9 0062;0061 05B7 05C7 05B8 05B9 0062;0061 05B7 05C7 05B8 05B9 0062;0061 05B7 05C7 05B8 05B9 0062;
+0061 0315 0300 05AE 0610 0062;00E0 05AE 0610 0315 0062;0061 05AE 0300 0610 0315 0062;00E0 05AE 0610 0315 0062;0061 05AE 0300 0610 0315 0062;
+0061 0610 0315 0300 05AE 0062;0061 05AE 0610 0300 0315 0062;0061 05AE 0610 0300 0315 0062;0061 05AE 0610 0300 0315 0062;0061 05AE 0610 0300 0315 0062;
+0061 0315 0300 05AE 0611 0062;00E0 05AE 0611 0315 0062;0061 05AE 0300 0611 0315 0062;00E0 05AE 0611 0315 0062;0061 05AE 0300 0611 0315 0062;
+0061 0611 0315 0300 05AE 0062;0061 05AE 0611 0300 0315 0062;0061 05AE 0611 0300 0315 0062;0061 05AE 0611 0300 0315 0062;0061 05AE 0611 0300 0315 0062;
+0061 0315 0300 05AE 0612 0062;00E0 05AE 0612 0315 0062;0061 05AE 0300 0612 0315 0062;00E0 05AE 0612 0315 0062;0061 05AE 0300 0612 0315 0062;
+0061 0612 0315 0300 05AE 0062;0061 05AE 0612 0300 0315 0062;0061 05AE 0612 0300 0315 0062;0061 05AE 0612 0300 0315 0062;0061 05AE 0612 0300 0315 0062;
+0061 0315 0300 05AE 0613 0062;00E0 05AE 0613 0315 0062;0061 05AE 0300 0613 0315 0062;00E0 05AE 0613 0315 0062;0061 05AE 0300 0613 0315 0062;
+0061 0613 0315 0300 05AE 0062;0061 05AE 0613 0300 0315 0062;0061 05AE 0613 0300 0315 0062;0061 05AE 0613 0300 0315 0062;0061 05AE 0613 0300 0315 0062;
+0061 0315 0300 05AE 0614 0062;00E0 05AE 0614 0315 0062;0061 05AE 0300 0614 0315 0062;00E0 05AE 0614 0315 0062;0061 05AE 0300 0614 0315 0062;
+0061 0614 0315 0300 05AE 0062;0061 05AE 0614 0300 0315 0062;0061 05AE 0614 0300 0315 0062;0061 05AE 0614 0300 0315 0062;0061 05AE 0614 0300 0315 0062;
+0061 0315 0300 05AE 0615 0062;00E0 05AE 0615 0315 0062;0061 05AE 0300 0615 0315 0062;00E0 05AE 0615 0315 0062;0061 05AE 0300 0615 0315 0062;
+0061 0615 0315 0300 05AE 0062;0061 05AE 0615 0300 0315 0062;0061 05AE 0615 0300 0315 0062;0061 05AE 0615 0300 0315 0062;0061 05AE 0615 0300 0315 0062;
+0061 0315 0300 05AE 0616 0062;00E0 05AE 0616 0315 0062;0061 05AE 0300 0616 0315 0062;00E0 05AE 0616 0315 0062;0061 05AE 0300 0616 0315 0062;
+0061 0616 0315 0300 05AE 0062;0061 05AE 0616 0300 0315 0062;0061 05AE 0616 0300 0315 0062;0061 05AE 0616 0300 0315 0062;0061 05AE 0616 0300 0315 0062;
+0061 0315 0300 05AE 0617 0062;00E0 05AE 0617 0315 0062;0061 05AE 0300 0617 0315 0062;00E0 05AE 0617 0315 0062;0061 05AE 0300 0617 0315 0062;
+0061 0617 0315 0300 05AE 0062;0061 05AE 0617 0300 0315 0062;0061 05AE 0617 0300 0315 0062;0061 05AE 0617 0300 0315 0062;0061 05AE 0617 0300 0315 0062;
+0061 0619 0618 064D 0618 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;
+0061 0618 0619 0618 064D 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;0061 064D 0618 0618 0619 0062;
+0061 061A 0619 0618 0619 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;
+0061 0619 061A 0619 0618 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;0061 0618 0619 0619 061A 0062;
+0061 0651 061A 0619 061A 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;
+0061 061A 0651 061A 0619 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;0061 0619 061A 061A 0651 0062;
+0061 064C 064B FB1E 064B 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;
+0061 064B 064C 064B FB1E 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;0061 FB1E 064B 064B 064C 0062;
+0061 064D 064C 064B 064C 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;
+0061 064C 064D 064C 064B 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;0061 064B 064C 064C 064D 0062;
+0061 0618 064D 064C 064D 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;
+0061 064D 0618 064D 064C 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;0061 064C 064D 064D 0618 0062;
+0061 0619 0618 064D 064E 0062;0061 064D 0618 064E 0619 0062;0061 064D 0618 064E 0619 0062;0061 064D 0618 064E 0619 0062;0061 064D 0618 064E 0619 0062;
+0061 064E 0619 0618 064D 0062;0061 064D 064E 0618 0619 0062;0061 064D 064E 0618 0619 0062;0061 064D 064E 0618 0619 0062;0061 064D 064E 0618 0619 0062;
+0061 061A 0619 0618 064F 0062;0061 0618 0619 064F 061A 0062;0061 0618 0619 064F 061A 0062;0061 0618 0619 064F 061A 0062;0061 0618 0619 064F 061A 0062;
+0061 064F 061A 0619 0618 0062;0061 0618 064F 0619 061A 0062;0061 0618 064F 0619 061A 0062;0061 0618 064F 0619 061A 0062;0061 0618 064F 0619 061A 0062;
+0061 0651 061A 0619 0650 0062;0061 0619 061A 0650 0651 0062;0061 0619 061A 0650 0651 0062;0061 0619 061A 0650 0651 0062;0061 0619 061A 0650 0651 0062;
+0061 0650 0651 061A 0619 0062;0061 0619 0650 061A 0651 0062;0061 0619 0650 061A 0651 0062;0061 0619 0650 061A 0651 0062;0061 0619 0650 061A 0651 0062;
+0061 0652 0651 061A 0651 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;
+0061 0651 0652 0651 061A 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;0061 061A 0651 0651 0652 0062;
+0061 0670 0652 0651 0652 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;
+0061 0652 0670 0652 0651 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;0061 0651 0652 0652 0670 0062;
+0061 0315 0300 05AE 0653 0062;00E0 05AE 0653 0315 0062;0061 05AE 0300 0653 0315 0062;00E0 05AE 0653 0315 0062;0061 05AE 0300 0653 0315 0062;
+0061 0653 0315 0300 05AE 0062;0061 05AE 0653 0300 0315 0062;0061 05AE 0653 0300 0315 0062;0061 05AE 0653 0300 0315 0062;0061 05AE 0653 0300 0315 0062;
+0061 0315 0300 05AE 0654 0062;00E0 05AE 0654 0315 0062;0061 05AE 0300 0654 0315 0062;00E0 05AE 0654 0315 0062;0061 05AE 0300 0654 0315 0062;
+0061 0654 0315 0300 05AE 0062;0061 05AE 0654 0300 0315 0062;0061 05AE 0654 0300 0315 0062;0061 05AE 0654 0300 0315 0062;0061 05AE 0654 0300 0315 0062;
+0061 059A 0316 302A 0655 0062;0061 302A 0316 0655 059A 0062;0061 302A 0316 0655 059A 0062;0061 302A 0316 0655 059A 0062;0061 302A 0316 0655 059A 0062;
+0061 0655 059A 0316 302A 0062;0061 302A 0655 0316 059A 0062;0061 302A 0655 0316 059A 0062;0061 302A 0655 0316 059A 0062;0061 302A 0655 0316 059A 0062;
+0061 059A 0316 302A 0656 0062;0061 302A 0316 0656 059A 0062;0061 302A 0316 0656 059A 0062;0061 302A 0316 0656 059A 0062;0061 302A 0316 0656 059A 0062;
+0061 0656 059A 0316 302A 0062;0061 302A 0656 0316 059A 0062;0061 302A 0656 0316 059A 0062;0061 302A 0656 0316 059A 0062;0061 302A 0656 0316 059A 0062;
+0061 0315 0300 05AE 0657 0062;00E0 05AE 0657 0315 0062;0061 05AE 0300 0657 0315 0062;00E0 05AE 0657 0315 0062;0061 05AE 0300 0657 0315 0062;
+0061 0657 0315 0300 05AE 0062;0061 05AE 0657 0300 0315 0062;0061 05AE 0657 0300 0315 0062;0061 05AE 0657 0300 0315 0062;0061 05AE 0657 0300 0315 0062;
+0061 0315 0300 05AE 0658 0062;00E0 05AE 0658 0315 0062;0061 05AE 0300 0658 0315 0062;00E0 05AE 0658 0315 0062;0061 05AE 0300 0658 0315 0062;
+0061 0658 0315 0300 05AE 0062;0061 05AE 0658 0300 0315 0062;0061 05AE 0658 0300 0315 0062;0061 05AE 0658 0300 0315 0062;0061 05AE 0658 0300 0315 0062;
+0061 0315 0300 05AE 0659 0062;00E0 05AE 0659 0315 0062;0061 05AE 0300 0659 0315 0062;00E0 05AE 0659 0315 0062;0061 05AE 0300 0659 0315 0062;
+0061 0659 0315 0300 05AE 0062;0061 05AE 0659 0300 0315 0062;0061 05AE 0659 0300 0315 0062;0061 05AE 0659 0300 0315 0062;0061 05AE 0659 0300 0315 0062;
+0061 0315 0300 05AE 065A 0062;00E0 05AE 065A 0315 0062;0061 05AE 0300 065A 0315 0062;00E0 05AE 065A 0315 0062;0061 05AE 0300 065A 0315 0062;
+0061 065A 0315 0300 05AE 0062;0061 05AE 065A 0300 0315 0062;0061 05AE 065A 0300 0315 0062;0061 05AE 065A 0300 0315 0062;0061 05AE 065A 0300 0315 0062;
+0061 0315 0300 05AE 065B 0062;00E0 05AE 065B 0315 0062;0061 05AE 0300 065B 0315 0062;00E0 05AE 065B 0315 0062;0061 05AE 0300 065B 0315 0062;
+0061 065B 0315 0300 05AE 0062;0061 05AE 065B 0300 0315 0062;0061 05AE 065B 0300 0315 0062;0061 05AE 065B 0300 0315 0062;0061 05AE 065B 0300 0315 0062;
+0061 059A 0316 302A 065C 0062;0061 302A 0316 065C 059A 0062;0061 302A 0316 065C 059A 0062;0061 302A 0316 065C 059A 0062;0061 302A 0316 065C 059A 0062;
+0061 065C 059A 0316 302A 0062;0061 302A 065C 0316 059A 0062;0061 302A 065C 0316 059A 0062;0061 302A 065C 0316 059A 0062;0061 302A 065C 0316 059A 0062;
+0061 0315 0300 05AE 065D 0062;00E0 05AE 065D 0315 0062;0061 05AE 0300 065D 0315 0062;00E0 05AE 065D 0315 0062;0061 05AE 0300 065D 0315 0062;
+0061 065D 0315 0300 05AE 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;
+0061 0315 0300 05AE 065E 0062;00E0 05AE 065E 0315 0062;0061 05AE 0300 065E 0315 0062;00E0 05AE 065E 0315 0062;0061 05AE 0300 065E 0315 0062;
+0061 065E 0315 0300 05AE 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;
+0061 0711 0670 0652 0670 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;
+0061 0670 0711 0670 0652 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;
+0061 0315 0300 05AE 06D6 0062;00E0 05AE 06D6 0315 0062;0061 05AE 0300 06D6 0315 0062;00E0 05AE 06D6 0315 0062;0061 05AE 0300 06D6 0315 0062;
+0061 06D6 0315 0300 05AE 0062;0061 05AE 06D6 0300 0315 0062;0061 05AE 06D6 0300 0315 0062;0061 05AE 06D6 0300 0315 0062;0061 05AE 06D6 0300 0315 0062;
+0061 0315 0300 05AE 06D7 0062;00E0 05AE 06D7 0315 0062;0061 05AE 0300 06D7 0315 0062;00E0 05AE 06D7 0315 0062;0061 05AE 0300 06D7 0315 0062;
+0061 06D7 0315 0300 05AE 0062;0061 05AE 06D7 0300 0315 0062;0061 05AE 06D7 0300 0315 0062;0061 05AE 06D7 0300 0315 0062;0061 05AE 06D7 0300 0315 0062;
+0061 0315 0300 05AE 06D8 0062;00E0 05AE 06D8 0315 0062;0061 05AE 0300 06D8 0315 0062;00E0 05AE 06D8 0315 0062;0061 05AE 0300 06D8 0315 0062;
+0061 06D8 0315 0300 05AE 0062;0061 05AE 06D8 0300 0315 0062;0061 05AE 06D8 0300 0315 0062;0061 05AE 06D8 0300 0315 0062;0061 05AE 06D8 0300 0315 0062;
+0061 0315 0300 05AE 06D9 0062;00E0 05AE 06D9 0315 0062;0061 05AE 0300 06D9 0315 0062;00E0 05AE 06D9 0315 0062;0061 05AE 0300 06D9 0315 0062;
+0061 06D9 0315 0300 05AE 0062;0061 05AE 06D9 0300 0315 0062;0061 05AE 06D9 0300 0315 0062;0061 05AE 06D9 0300 0315 0062;0061 05AE 06D9 0300 0315 0062;
+0061 0315 0300 05AE 06DA 0062;00E0 05AE 06DA 0315 0062;0061 05AE 0300 06DA 0315 0062;00E0 05AE 06DA 0315 0062;0061 05AE 0300 06DA 0315 0062;
+0061 06DA 0315 0300 05AE 0062;0061 05AE 06DA 0300 0315 0062;0061 05AE 06DA 0300 0315 0062;0061 05AE 06DA 0300 0315 0062;0061 05AE 06DA 0300 0315 0062;
+0061 0315 0300 05AE 06DB 0062;00E0 05AE 06DB 0315 0062;0061 05AE 0300 06DB 0315 0062;00E0 05AE 06DB 0315 0062;0061 05AE 0300 06DB 0315 0062;
+0061 06DB 0315 0300 05AE 0062;0061 05AE 06DB 0300 0315 0062;0061 05AE 06DB 0300 0315 0062;0061 05AE 06DB 0300 0315 0062;0061 05AE 06DB 0300 0315 0062;
+0061 0315 0300 05AE 06DC 0062;00E0 05AE 06DC 0315 0062;0061 05AE 0300 06DC 0315 0062;00E0 05AE 06DC 0315 0062;0061 05AE 0300 06DC 0315 0062;
+0061 06DC 0315 0300 05AE 0062;0061 05AE 06DC 0300 0315 0062;0061 05AE 06DC 0300 0315 0062;0061 05AE 06DC 0300 0315 0062;0061 05AE 06DC 0300 0315 0062;
+0061 0315 0300 05AE 06DF 0062;00E0 05AE 06DF 0315 0062;0061 05AE 0300 06DF 0315 0062;00E0 05AE 06DF 0315 0062;0061 05AE 0300 06DF 0315 0062;
+0061 06DF 0315 0300 05AE 0062;0061 05AE 06DF 0300 0315 0062;0061 05AE 06DF 0300 0315 0062;0061 05AE 06DF 0300 0315 0062;0061 05AE 06DF 0300 0315 0062;
+0061 0315 0300 05AE 06E0 0062;00E0 05AE 06E0 0315 0062;0061 05AE 0300 06E0 0315 0062;00E0 05AE 06E0 0315 0062;0061 05AE 0300 06E0 0315 0062;
+0061 06E0 0315 0300 05AE 0062;0061 05AE 06E0 0300 0315 0062;0061 05AE 06E0 0300 0315 0062;0061 05AE 06E0 0300 0315 0062;0061 05AE 06E0 0300 0315 0062;
+0061 0315 0300 05AE 06E1 0062;00E0 05AE 06E1 0315 0062;0061 05AE 0300 06E1 0315 0062;00E0 05AE 06E1 0315 0062;0061 05AE 0300 06E1 0315 0062;
+0061 06E1 0315 0300 05AE 0062;0061 05AE 06E1 0300 0315 0062;0061 05AE 06E1 0300 0315 0062;0061 05AE 06E1 0300 0315 0062;0061 05AE 06E1 0300 0315 0062;
+0061 0315 0300 05AE 06E2 0062;00E0 05AE 06E2 0315 0062;0061 05AE 0300 06E2 0315 0062;00E0 05AE 06E2 0315 0062;0061 05AE 0300 06E2 0315 0062;
+0061 06E2 0315 0300 05AE 0062;0061 05AE 06E2 0300 0315 0062;0061 05AE 06E2 0300 0315 0062;0061 05AE 06E2 0300 0315 0062;0061 05AE 06E2 0300 0315 0062;
+0061 059A 0316 302A 06E3 0062;0061 302A 0316 06E3 059A 0062;0061 302A 0316 06E3 059A 0062;0061 302A 0316 06E3 059A 0062;0061 302A 0316 06E3 059A 0062;
+0061 06E3 059A 0316 302A 0062;0061 302A 06E3 0316 059A 0062;0061 302A 06E3 0316 059A 0062;0061 302A 06E3 0316 059A 0062;0061 302A 06E3 0316 059A 0062;
+0061 0315 0300 05AE 06E4 0062;00E0 05AE 06E4 0315 0062;0061 05AE 0300 06E4 0315 0062;00E0 05AE 06E4 0315 0062;0061 05AE 0300 06E4 0315 0062;
+0061 06E4 0315 0300 05AE 0062;0061 05AE 06E4 0300 0315 0062;0061 05AE 06E4 0300 0315 0062;0061 05AE 06E4 0300 0315 0062;0061 05AE 06E4 0300 0315 0062;
+0061 0315 0300 05AE 06E7 0062;00E0 05AE 06E7 0315 0062;0061 05AE 0300 06E7 0315 0062;00E0 05AE 06E7 0315 0062;0061 05AE 0300 06E7 0315 0062;
+0061 06E7 0315 0300 05AE 0062;0061 05AE 06E7 0300 0315 0062;0061 05AE 06E7 0300 0315 0062;0061 05AE 06E7 0300 0315 0062;0061 05AE 06E7 0300 0315 0062;
+0061 0315 0300 05AE 06E8 0062;00E0 05AE 06E8 0315 0062;0061 05AE 0300 06E8 0315 0062;00E0 05AE 06E8 0315 0062;0061 05AE 0300 06E8 0315 0062;
+0061 06E8 0315 0300 05AE 0062;0061 05AE 06E8 0300 0315 0062;0061 05AE 06E8 0300 0315 0062;0061 05AE 06E8 0300 0315 0062;0061 05AE 06E8 0300 0315 0062;
+0061 059A 0316 302A 06EA 0062;0061 302A 0316 06EA 059A 0062;0061 302A 0316 06EA 059A 0062;0061 302A 0316 06EA 059A 0062;0061 302A 0316 06EA 059A 0062;
+0061 06EA 059A 0316 302A 0062;0061 302A 06EA 0316 059A 0062;0061 302A 06EA 0316 059A 0062;0061 302A 06EA 0316 059A 0062;0061 302A 06EA 0316 059A 0062;
+0061 0315 0300 05AE 06EB 0062;00E0 05AE 06EB 0315 0062;0061 05AE 0300 06EB 0315 0062;00E0 05AE 06EB 0315 0062;0061 05AE 0300 06EB 0315 0062;
+0061 06EB 0315 0300 05AE 0062;0061 05AE 06EB 0300 0315 0062;0061 05AE 06EB 0300 0315 0062;0061 05AE 06EB 0300 0315 0062;0061 05AE 06EB 0300 0315 0062;
+0061 0315 0300 05AE 06EC 0062;00E0 05AE 06EC 0315 0062;0061 05AE 0300 06EC 0315 0062;00E0 05AE 06EC 0315 0062;0061 05AE 0300 06EC 0315 0062;
+0061 06EC 0315 0300 05AE 0062;0061 05AE 06EC 0300 0315 0062;0061 05AE 06EC 0300 0315 0062;0061 05AE 06EC 0300 0315 0062;0061 05AE 06EC 0300 0315 0062;
+0061 059A 0316 302A 06ED 0062;0061 302A 0316 06ED 059A 0062;0061 302A 0316 06ED 059A 0062;0061 302A 0316 06ED 059A 0062;0061 302A 0316 06ED 059A 0062;
+0061 06ED 059A 0316 302A 0062;0061 302A 06ED 0316 059A 0062;0061 302A 06ED 0316 059A 0062;0061 302A 06ED 0316 059A 0062;0061 302A 06ED 0316 059A 0062;
+0061 0C55 0711 0670 0711 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;
+0061 0711 0C55 0711 0670 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;0061 0670 0711 0711 0C55 0062;
+0061 0315 0300 05AE 0730 0062;00E0 05AE 0730 0315 0062;0061 05AE 0300 0730 0315 0062;00E0 05AE 0730 0315 0062;0061 05AE 0300 0730 0315 0062;
+0061 0730 0315 0300 05AE 0062;0061 05AE 0730 0300 0315 0062;0061 05AE 0730 0300 0315 0062;0061 05AE 0730 0300 0315 0062;0061 05AE 0730 0300 0315 0062;
+0061 059A 0316 302A 0731 0062;0061 302A 0316 0731 059A 0062;0061 302A 0316 0731 059A 0062;0061 302A 0316 0731 059A 0062;0061 302A 0316 0731 059A 0062;
+0061 0731 059A 0316 302A 0062;0061 302A 0731 0316 059A 0062;0061 302A 0731 0316 059A 0062;0061 302A 0731 0316 059A 0062;0061 302A 0731 0316 059A 0062;
+0061 0315 0300 05AE 0732 0062;00E0 05AE 0732 0315 0062;0061 05AE 0300 0732 0315 0062;00E0 05AE 0732 0315 0062;0061 05AE 0300 0732 0315 0062;
+0061 0732 0315 0300 05AE 0062;0061 05AE 0732 0300 0315 0062;0061 05AE 0732 0300 0315 0062;0061 05AE 0732 0300 0315 0062;0061 05AE 0732 0300 0315 0062;
+0061 0315 0300 05AE 0733 0062;00E0 05AE 0733 0315 0062;0061 05AE 0300 0733 0315 0062;00E0 05AE 0733 0315 0062;0061 05AE 0300 0733 0315 0062;
+0061 0733 0315 0300 05AE 0062;0061 05AE 0733 0300 0315 0062;0061 05AE 0733 0300 0315 0062;0061 05AE 0733 0300 0315 0062;0061 05AE 0733 0300 0315 0062;
+0061 059A 0316 302A 0734 0062;0061 302A 0316 0734 059A 0062;0061 302A 0316 0734 059A 0062;0061 302A 0316 0734 059A 0062;0061 302A 0316 0734 059A 0062;
+0061 0734 059A 0316 302A 0062;0061 302A 0734 0316 059A 0062;0061 302A 0734 0316 059A 0062;0061 302A 0734 0316 059A 0062;0061 302A 0734 0316 059A 0062;
+0061 0315 0300 05AE 0735 0062;00E0 05AE 0735 0315 0062;0061 05AE 0300 0735 0315 0062;00E0 05AE 0735 0315 0062;0061 05AE 0300 0735 0315 0062;
+0061 0735 0315 0300 05AE 0062;0061 05AE 0735 0300 0315 0062;0061 05AE 0735 0300 0315 0062;0061 05AE 0735 0300 0315 0062;0061 05AE 0735 0300 0315 0062;
+0061 0315 0300 05AE 0736 0062;00E0 05AE 0736 0315 0062;0061 05AE 0300 0736 0315 0062;00E0 05AE 0736 0315 0062;0061 05AE 0300 0736 0315 0062;
+0061 0736 0315 0300 05AE 0062;0061 05AE 0736 0300 0315 0062;0061 05AE 0736 0300 0315 0062;0061 05AE 0736 0300 0315 0062;0061 05AE 0736 0300 0315 0062;
+0061 059A 0316 302A 0737 0062;0061 302A 0316 0737 059A 0062;0061 302A 0316 0737 059A 0062;0061 302A 0316 0737 059A 0062;0061 302A 0316 0737 059A 0062;
+0061 0737 059A 0316 302A 0062;0061 302A 0737 0316 059A 0062;0061 302A 0737 0316 059A 0062;0061 302A 0737 0316 059A 0062;0061 302A 0737 0316 059A 0062;
+0061 059A 0316 302A 0738 0062;0061 302A 0316 0738 059A 0062;0061 302A 0316 0738 059A 0062;0061 302A 0316 0738 059A 0062;0061 302A 0316 0738 059A 0062;
+0061 0738 059A 0316 302A 0062;0061 302A 0738 0316 059A 0062;0061 302A 0738 0316 059A 0062;0061 302A 0738 0316 059A 0062;0061 302A 0738 0316 059A 0062;
+0061 059A 0316 302A 0739 0062;0061 302A 0316 0739 059A 0062;0061 302A 0316 0739 059A 0062;0061 302A 0316 0739 059A 0062;0061 302A 0316 0739 059A 0062;
+0061 0739 059A 0316 302A 0062;0061 302A 0739 0316 059A 0062;0061 302A 0739 0316 059A 0062;0061 302A 0739 0316 059A 0062;0061 302A 0739 0316 059A 0062;
+0061 0315 0300 05AE 073A 0062;00E0 05AE 073A 0315 0062;0061 05AE 0300 073A 0315 0062;00E0 05AE 073A 0315 0062;0061 05AE 0300 073A 0315 0062;
+0061 073A 0315 0300 05AE 0062;0061 05AE 073A 0300 0315 0062;0061 05AE 073A 0300 0315 0062;0061 05AE 073A 0300 0315 0062;0061 05AE 073A 0300 0315 0062;
+0061 059A 0316 302A 073B 0062;0061 302A 0316 073B 059A 0062;0061 302A 0316 073B 059A 0062;0061 302A 0316 073B 059A 0062;0061 302A 0316 073B 059A 0062;
+0061 073B 059A 0316 302A 0062;0061 302A 073B 0316 059A 0062;0061 302A 073B 0316 059A 0062;0061 302A 073B 0316 059A 0062;0061 302A 073B 0316 059A 0062;
+0061 059A 0316 302A 073C 0062;0061 302A 0316 073C 059A 0062;0061 302A 0316 073C 059A 0062;0061 302A 0316 073C 059A 0062;0061 302A 0316 073C 059A 0062;
+0061 073C 059A 0316 302A 0062;0061 302A 073C 0316 059A 0062;0061 302A 073C 0316 059A 0062;0061 302A 073C 0316 059A 0062;0061 302A 073C 0316 059A 0062;
+0061 0315 0300 05AE 073D 0062;00E0 05AE 073D 0315 0062;0061 05AE 0300 073D 0315 0062;00E0 05AE 073D 0315 0062;0061 05AE 0300 073D 0315 0062;
+0061 073D 0315 0300 05AE 0062;0061 05AE 073D 0300 0315 0062;0061 05AE 073D 0300 0315 0062;0061 05AE 073D 0300 0315 0062;0061 05AE 073D 0300 0315 0062;
+0061 059A 0316 302A 073E 0062;0061 302A 0316 073E 059A 0062;0061 302A 0316 073E 059A 0062;0061 302A 0316 073E 059A 0062;0061 302A 0316 073E 059A 0062;
+0061 073E 059A 0316 302A 0062;0061 302A 073E 0316 059A 0062;0061 302A 073E 0316 059A 0062;0061 302A 073E 0316 059A 0062;0061 302A 073E 0316 059A 0062;
+0061 0315 0300 05AE 073F 0062;00E0 05AE 073F 0315 0062;0061 05AE 0300 073F 0315 0062;00E0 05AE 073F 0315 0062;0061 05AE 0300 073F 0315 0062;
+0061 073F 0315 0300 05AE 0062;0061 05AE 073F 0300 0315 0062;0061 05AE 073F 0300 0315 0062;0061 05AE 073F 0300 0315 0062;0061 05AE 073F 0300 0315 0062;
+0061 0315 0300 05AE 0740 0062;00E0 05AE 0740 0315 0062;0061 05AE 0300 0740 0315 0062;00E0 05AE 0740 0315 0062;0061 05AE 0300 0740 0315 0062;
+0061 0740 0315 0300 05AE 0062;0061 05AE 0740 0300 0315 0062;0061 05AE 0740 0300 0315 0062;0061 05AE 0740 0300 0315 0062;0061 05AE 0740 0300 0315 0062;
+0061 0315 0300 05AE 0741 0062;00E0 05AE 0741 0315 0062;0061 05AE 0300 0741 0315 0062;00E0 05AE 0741 0315 0062;0061 05AE 0300 0741 0315 0062;
+0061 0741 0315 0300 05AE 0062;0061 05AE 0741 0300 0315 0062;0061 05AE 0741 0300 0315 0062;0061 05AE 0741 0300 0315 0062;0061 05AE 0741 0300 0315 0062;
+0061 059A 0316 302A 0742 0062;0061 302A 0316 0742 059A 0062;0061 302A 0316 0742 059A 0062;0061 302A 0316 0742 059A 0062;0061 302A 0316 0742 059A 0062;
+0061 0742 059A 0316 302A 0062;0061 302A 0742 0316 059A 0062;0061 302A 0742 0316 059A 0062;0061 302A 0742 0316 059A 0062;0061 302A 0742 0316 059A 0062;
+0061 0315 0300 05AE 0743 0062;00E0 05AE 0743 0315 0062;0061 05AE 0300 0743 0315 0062;00E0 05AE 0743 0315 0062;0061 05AE 0300 0743 0315 0062;
+0061 0743 0315 0300 05AE 0062;0061 05AE 0743 0300 0315 0062;0061 05AE 0743 0300 0315 0062;0061 05AE 0743 0300 0315 0062;0061 05AE 0743 0300 0315 0062;
+0061 059A 0316 302A 0744 0062;0061 302A 0316 0744 059A 0062;0061 302A 0316 0744 059A 0062;0061 302A 0316 0744 059A 0062;0061 302A 0316 0744 059A 0062;
+0061 0744 059A 0316 302A 0062;0061 302A 0744 0316 059A 0062;0061 302A 0744 0316 059A 0062;0061 302A 0744 0316 059A 0062;0061 302A 0744 0316 059A 0062;
+0061 0315 0300 05AE 0745 0062;00E0 05AE 0745 0315 0062;0061 05AE 0300 0745 0315 0062;00E0 05AE 0745 0315 0062;0061 05AE 0300 0745 0315 0062;
+0061 0745 0315 0300 05AE 0062;0061 05AE 0745 0300 0315 0062;0061 05AE 0745 0300 0315 0062;0061 05AE 0745 0300 0315 0062;0061 05AE 0745 0300 0315 0062;
+0061 059A 0316 302A 0746 0062;0061 302A 0316 0746 059A 0062;0061 302A 0316 0746 059A 0062;0061 302A 0316 0746 059A 0062;0061 302A 0316 0746 059A 0062;
+0061 0746 059A 0316 302A 0062;0061 302A 0746 0316 059A 0062;0061 302A 0746 0316 059A 0062;0061 302A 0746 0316 059A 0062;0061 302A 0746 0316 059A 0062;
+0061 0315 0300 05AE 0747 0062;00E0 05AE 0747 0315 0062;0061 05AE 0300 0747 0315 0062;00E0 05AE 0747 0315 0062;0061 05AE 0300 0747 0315 0062;
+0061 0747 0315 0300 05AE 0062;0061 05AE 0747 0300 0315 0062;0061 05AE 0747 0300 0315 0062;0061 05AE 0747 0300 0315 0062;0061 05AE 0747 0300 0315 0062;
+0061 059A 0316 302A 0748 0062;0061 302A 0316 0748 059A 0062;0061 302A 0316 0748 059A 0062;0061 302A 0316 0748 059A 0062;0061 302A 0316 0748 059A 0062;
+0061 0748 059A 0316 302A 0062;0061 302A 0748 0316 059A 0062;0061 302A 0748 0316 059A 0062;0061 302A 0748 0316 059A 0062;0061 302A 0748 0316 059A 0062;
+0061 0315 0300 05AE 0749 0062;00E0 05AE 0749 0315 0062;0061 05AE 0300 0749 0315 0062;00E0 05AE 0749 0315 0062;0061 05AE 0300 0749 0315 0062;
+0061 0749 0315 0300 05AE 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;
+0061 0315 0300 05AE 074A 0062;00E0 05AE 074A 0315 0062;0061 05AE 0300 074A 0315 0062;00E0 05AE 074A 0315 0062;0061 05AE 0300 074A 0315 0062;
+0061 074A 0315 0300 05AE 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;
+0061 0315 0300 05AE 07EB 0062;00E0 05AE 07EB 0315 0062;0061 05AE 0300 07EB 0315 0062;00E0 05AE 07EB 0315 0062;0061 05AE 0300 07EB 0315 0062;
+0061 07EB 0315 0300 05AE 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;
+0061 0315 0300 05AE 07EC 0062;00E0 05AE 07EC 0315 0062;0061 05AE 0300 07EC 0315 0062;00E0 05AE 07EC 0315 0062;0061 05AE 0300 07EC 0315 0062;
+0061 07EC 0315 0300 05AE 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;
+0061 0315 0300 05AE 07ED 0062;00E0 05AE 07ED 0315 0062;0061 05AE 0300 07ED 0315 0062;00E0 05AE 07ED 0315 0062;0061 05AE 0300 07ED 0315 0062;
+0061 07ED 0315 0300 05AE 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;
+0061 0315 0300 05AE 07EE 0062;00E0 05AE 07EE 0315 0062;0061 05AE 0300 07EE 0315 0062;00E0 05AE 07EE 0315 0062;0061 05AE 0300 07EE 0315 0062;
+0061 07EE 0315 0300 05AE 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;
+0061 0315 0300 05AE 07EF 0062;00E0 05AE 07EF 0315 0062;0061 05AE 0300 07EF 0315 0062;00E0 05AE 07EF 0315 0062;0061 05AE 0300 07EF 0315 0062;
+0061 07EF 0315 0300 05AE 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;
+0061 0315 0300 05AE 07F0 0062;00E0 05AE 07F0 0315 0062;0061 05AE 0300 07F0 0315 0062;00E0 05AE 07F0 0315 0062;0061 05AE 0300 07F0 0315 0062;
+0061 07F0 0315 0300 05AE 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;
+0061 0315 0300 05AE 07F1 0062;00E0 05AE 07F1 0315 0062;0061 05AE 0300 07F1 0315 0062;00E0 05AE 07F1 0315 0062;0061 05AE 0300 07F1 0315 0062;
+0061 07F1 0315 0300 05AE 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;
+0061 059A 0316 302A 07F2 0062;0061 302A 0316 07F2 059A 0062;0061 302A 0316 07F2 059A 0062;0061 302A 0316 07F2 059A 0062;0061 302A 0316 07F2 059A 0062;
+0061 07F2 059A 0316 302A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;
+0061 0315 0300 05AE 07F3 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;
+0061 07F3 0315 0300 05AE 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;
+0061 3099 093C 0334 093C 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;
+0061 093C 3099 093C 0334 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;
+0061 05B0 094D 3099 094D 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;
+0061 094D 05B0 094D 3099 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;
+0061 0315 0300 05AE 0951 0062;00E0 05AE 0951 0315 0062;0061 05AE 0300 0951 0315 0062;00E0 05AE 0951 0315 0062;0061 05AE 0300 0951 0315 0062;
+0061 0951 0315 0300 05AE 0062;0061 05AE 0951 0300 0315 0062;0061 05AE 0951 0300 0315 0062;0061 05AE 0951 0300 0315 0062;0061 05AE 0951 0300 0315 0062;
+0061 059A 0316 302A 0952 0062;0061 302A 0316 0952 059A 0062;0061 302A 0316 0952 059A 0062;0061 302A 0316 0952 059A 0062;0061 302A 0316 0952 059A 0062;
+0061 0952 059A 0316 302A 0062;0061 302A 0952 0316 059A 0062;0061 302A 0952 0316 059A 0062;0061 302A 0952 0316 059A 0062;0061 302A 0952 0316 059A 0062;
+0061 0315 0300 05AE 0953 0062;00E0 05AE 0953 0315 0062;0061 05AE 0300 0953 0315 0062;00E0 05AE 0953 0315 0062;0061 05AE 0300 0953 0315 0062;
+0061 0953 0315 0300 05AE 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 0300 0315 0062;
+0061 0315 0300 05AE 0954 0062;00E0 05AE 0954 0315 0062;0061 05AE 0300 0954 0315 0062;00E0 05AE 0954 0315 0062;0061 05AE 0300 0954 0315 0062;
+0061 0954 0315 0300 05AE 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 0300 0315 0062;
+0061 3099 093C 0334 09BC 0062;0061 0334 093C 09BC 3099 0062;0061 0334 093C 09BC 3099 0062;0061 0334 093C 09BC 3099 0062;0061 0334 093C 09BC 3099 0062;
+0061 09BC 3099 093C 0334 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 093C 3099 0062;
+0061 05B0 094D 3099 09CD 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;
+0061 09CD 05B0 094D 3099 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;
+0061 3099 093C 0334 0A3C 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062;
+0061 0A3C 3099 093C 0334 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 093C 3099 0062;
+0061 05B0 094D 3099 0A4D 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;
+0061 0A4D 05B0 094D 3099 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062;
+0061 3099 093C 0334 0ABC 0062;0061 0334 093C 0ABC 3099 0062;0061 0334 093C 0ABC 3099 0062;0061 0334 093C 0ABC 3099 0062;0061 0334 093C 0ABC 3099 0062;
+0061 0ABC 3099 093C 0334 0062;0061 0334 0ABC 093C 3099 0062;0061 0334 0ABC 093C 3099 0062;0061 0334 0ABC 093C 3099 0062;0061 0334 0ABC 093C 3099 0062;
+0061 05B0 094D 3099 0ACD 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062;
+0061 0ACD 05B0 094D 3099 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062;
+0061 3099 093C 0334 0B3C 0062;0061 0334 093C 0B3C 3099 0062;0061 0334 093C 0B3C 3099 0062;0061 0334 093C 0B3C 3099 0062;0061 0334 093C 0B3C 3099 0062;
+0061 0B3C 3099 093C 0334 0062;0061 0334 0B3C 093C 3099 0062;0061 0334 0B3C 093C 3099 0062;0061 0334 0B3C 093C 3099 0062;0061 0334 0B3C 093C 3099 0062;
+0061 05B0 094D 3099 0B4D 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062;
+0061 0B4D 05B0 094D 3099 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062;
+0061 05B0 094D 3099 0BCD 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062;
+0061 0BCD 05B0 094D 3099 0062;0061 3099 0BCD 094D 05B0 0062;0061 3099 0BCD 094D 05B0 0062;0061 3099 0BCD 094D 05B0 0062;0061 3099 0BCD 094D 05B0 0062;
+0061 05B0 094D 3099 0C4D 0062;0061 3099 094D 0C4D 05B0 0062;0061 3099 094D 0C4D 05B0 0062;0061 3099 094D 0C4D 05B0 0062;0061 3099 094D 0C4D 05B0 0062;
+0061 0C4D 05B0 094D 3099 0062;0061 3099 0C4D 094D 05B0 0062;0061 3099 0C4D 094D 05B0 0062;0061 3099 0C4D 094D 05B0 0062;0061 3099 0C4D 094D 05B0 0062;
+0061 0C56 0C55 0711 0C55 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;
+0061 0C55 0C56 0C55 0711 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;
+0061 0E38 0C56 0C55 0C56 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;
+0061 0C56 0E38 0C56 0C55 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;
+0061 3099 093C 0334 0CBC 0062;0061 0334 093C 0CBC 3099 0062;0061 0334 093C 0CBC 3099 0062;0061 0334 093C 0CBC 3099 0062;0061 0334 093C 0CBC 3099 0062;
+0061 0CBC 3099 093C 0334 0062;0061 0334 0CBC 093C 3099 0062;0061 0334 0CBC 093C 3099 0062;0061 0334 0CBC 093C 3099 0062;0061 0334 0CBC 093C 3099 0062;
+0061 05B0 094D 3099 0CCD 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062;
+0061 0CCD 05B0 094D 3099 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062;
+0061 05B0 094D 3099 0D4D 0062;0061 3099 094D 0D4D 05B0 0062;0061 3099 094D 0D4D 05B0 0062;0061 3099 094D 0D4D 05B0 0062;0061 3099 094D 0D4D 05B0 0062;
+0061 0D4D 05B0 094D 3099 0062;0061 3099 0D4D 094D 05B0 0062;0061 3099 0D4D 094D 05B0 0062;0061 3099 0D4D 094D 05B0 0062;0061 3099 0D4D 094D 05B0 0062;
+0061 05B0 094D 3099 0DCA 0062;0061 3099 094D 0DCA 05B0 0062;0061 3099 094D 0DCA 05B0 0062;0061 3099 094D 0DCA 05B0 0062;0061 3099 094D 0DCA 05B0 0062;
+0061 0DCA 05B0 094D 3099 0062;0061 3099 0DCA 094D 05B0 0062;0061 3099 0DCA 094D 05B0 0062;0061 3099 0DCA 094D 05B0 0062;0061 3099 0DCA 094D 05B0 0062;
+0061 0E48 0E38 0C56 0E38 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;
+0061 0E38 0E48 0E38 0C56 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;0061 0C56 0E38 0E38 0E48 0062;
+0061 0E48 0E38 0C56 0E39 0062;0061 0C56 0E38 0E39 0E48 0062;0061 0C56 0E38 0E39 0E48 0062;0061 0C56 0E38 0E39 0E48 0062;0061 0C56 0E38 0E39 0E48 0062;
+0061 0E39 0E48 0E38 0C56 0062;0061 0C56 0E39 0E38 0E48 0062;0061 0C56 0E39 0E38 0E48 0062;0061 0C56 0E39 0E38 0E48 0062;0061 0C56 0E39 0E38 0E48 0062;
+0061 05B0 094D 3099 0E3A 0062;0061 3099 094D 0E3A 05B0 0062;0061 3099 094D 0E3A 05B0 0062;0061 3099 094D 0E3A 05B0 0062;0061 3099 094D 0E3A 05B0 0062;
+0061 0E3A 05B0 094D 3099 0062;0061 3099 0E3A 094D 05B0 0062;0061 3099 0E3A 094D 05B0 0062;0061 3099 0E3A 094D 05B0 0062;0061 3099 0E3A 094D 05B0 0062;
+0061 0EB8 0E48 0E38 0E48 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;
+0061 0E48 0EB8 0E48 0E38 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;0061 0E38 0E48 0E48 0EB8 0062;
+0061 0EB8 0E48 0E38 0E49 0062;0061 0E38 0E48 0E49 0EB8 0062;0061 0E38 0E48 0E49 0EB8 0062;0061 0E38 0E48 0E49 0EB8 0062;0061 0E38 0E48 0E49 0EB8 0062;
+0061 0E49 0EB8 0E48 0E38 0062;0061 0E38 0E49 0E48 0EB8 0062;0061 0E38 0E49 0E48 0EB8 0062;0061 0E38 0E49 0E48 0EB8 0062;0061 0E38 0E49 0E48 0EB8 0062;
+0061 0EB8 0E48 0E38 0E4A 0062;0061 0E38 0E48 0E4A 0EB8 0062;0061 0E38 0E48 0E4A 0EB8 0062;0061 0E38 0E48 0E4A 0EB8 0062;0061 0E38 0E48 0E4A 0EB8 0062;
+0061 0E4A 0EB8 0E48 0E38 0062;0061 0E38 0E4A 0E48 0EB8 0062;0061 0E38 0E4A 0E48 0EB8 0062;0061 0E38 0E4A 0E48 0EB8 0062;0061 0E38 0E4A 0E48 0EB8 0062;
+0061 0EB8 0E48 0E38 0E4B 0062;0061 0E38 0E48 0E4B 0EB8 0062;0061 0E38 0E48 0E4B 0EB8 0062;0061 0E38 0E48 0E4B 0EB8 0062;0061 0E38 0E48 0E4B 0EB8 0062;
+0061 0E4B 0EB8 0E48 0E38 0062;0061 0E38 0E4B 0E48 0EB8 0062;0061 0E38 0E4B 0E48 0EB8 0062;0061 0E38 0E4B 0E48 0EB8 0062;0061 0E38 0E4B 0E48 0EB8 0062;
+0061 0EC8 0EB8 0E48 0EB8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;
+0061 0EB8 0EC8 0EB8 0E48 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;
+0061 0EC8 0EB8 0E48 0EB9 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;
+0061 0EB9 0EC8 0EB8 0E48 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;
+0061 0F71 0EC8 0EB8 0EC8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;
+0061 0EC8 0F71 0EC8 0EB8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;
+0061 0F71 0EC8 0EB8 0EC9 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;
+0061 0EC9 0F71 0EC8 0EB8 0062;0061 0EB8 0EC9 0EC8 0F71 0062;0061 0EB8 0EC9 0EC8 0F71 0062;0061 0EB8 0EC9 0EC8 0F71 0062;0061 0EB8 0EC9 0EC8 0F71 0062;
+0061 0F71 0EC8 0EB8 0ECA 0062;0061 0EB8 0EC8 0ECA 0F71 0062;0061 0EB8 0EC8 0ECA 0F71 0062;0061 0EB8 0EC8 0ECA 0F71 0062;0061 0EB8 0EC8 0ECA 0F71 0062;
+0061 0ECA 0F71 0EC8 0EB8 0062;0061 0EB8 0ECA 0EC8 0F71 0062;0061 0EB8 0ECA 0EC8 0F71 0062;0061 0EB8 0ECA 0EC8 0F71 0062;0061 0EB8 0ECA 0EC8 0F71 0062;
+0061 0F71 0EC8 0EB8 0ECB 0062;0061 0EB8 0EC8 0ECB 0F71 0062;0061 0EB8 0EC8 0ECB 0F71 0062;0061 0EB8 0EC8 0ECB 0F71 0062;0061 0EB8 0EC8 0ECB 0F71 0062;
+0061 0ECB 0F71 0EC8 0EB8 0062;0061 0EB8 0ECB 0EC8 0F71 0062;0061 0EB8 0ECB 0EC8 0F71 0062;0061 0EB8 0ECB 0EC8 0F71 0062;0061 0EB8 0ECB 0EC8 0F71 0062;
+0061 059A 0316 302A 0F18 0062;0061 302A 0316 0F18 059A 0062;0061 302A 0316 0F18 059A 0062;0061 302A 0316 0F18 059A 0062;0061 302A 0316 0F18 059A 0062;
+0061 0F18 059A 0316 302A 0062;0061 302A 0F18 0316 059A 0062;0061 302A 0F18 0316 059A 0062;0061 302A 0F18 0316 059A 0062;0061 302A 0F18 0316 059A 0062;
+0061 059A 0316 302A 0F19 0062;0061 302A 0316 0F19 059A 0062;0061 302A 0316 0F19 059A 0062;0061 302A 0316 0F19 059A 0062;0061 302A 0316 0F19 059A 0062;
+0061 0F19 059A 0316 302A 0062;0061 302A 0F19 0316 059A 0062;0061 302A 0F19 0316 059A 0062;0061 302A 0F19 0316 059A 0062;0061 302A 0F19 0316 059A 0062;
+0061 059A 0316 302A 0F35 0062;0061 302A 0316 0F35 059A 0062;0061 302A 0316 0F35 059A 0062;0061 302A 0316 0F35 059A 0062;0061 302A 0316 0F35 059A 0062;
+0061 0F35 059A 0316 302A 0062;0061 302A 0F35 0316 059A 0062;0061 302A 0F35 0316 059A 0062;0061 302A 0F35 0316 059A 0062;0061 302A 0F35 0316 059A 0062;
+0061 059A 0316 302A 0F37 0062;0061 302A 0316 0F37 059A 0062;0061 302A 0316 0F37 059A 0062;0061 302A 0316 0F37 059A 0062;0061 302A 0316 0F37 059A 0062;
+0061 0F37 059A 0316 302A 0062;0061 302A 0F37 0316 059A 0062;0061 302A 0F37 0316 059A 0062;0061 302A 0F37 0316 059A 0062;0061 302A 0F37 0316 059A 0062;
+0061 302A 031B 1DCE 0F39 0062;0061 1DCE 031B 0F39 302A 0062;0061 1DCE 031B 0F39 302A 0062;0061 1DCE 031B 0F39 302A 0062;0061 1DCE 031B 0F39 302A 0062;
+0061 0F39 302A 031B 1DCE 0062;0061 1DCE 0F39 031B 302A 0062;0061 1DCE 0F39 031B 302A 0062;0061 1DCE 0F39 031B 302A 0062;0061 1DCE 0F39 031B 302A 0062;
+0061 0F72 0F71 0EC8 0F71 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;
+0061 0F71 0F72 0F71 0EC8 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;0061 0EC8 0F71 0F71 0F72 0062;
+0061 0F74 0F72 0F71 0F72 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;
+0061 0F72 0F74 0F72 0F71 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;0061 0F71 0F72 0F72 0F74 0062;
+0061 0321 0F74 0F72 0F74 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;
+0061 0F74 0321 0F74 0F72 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;0061 0F72 0F74 0F74 0321 0062;
+0061 0F74 0F72 0F71 0F7A 0062;0061 0F71 0F72 0F7A 0F74 0062;0061 0F71 0F72 0F7A 0F74 0062;0061 0F71 0F72 0F7A 0F74 0062;0061 0F71 0F72 0F7A 0F74 0062;
+0061 0F7A 0F74 0F72 0F71 0062;0061 0F71 0F7A 0F72 0F74 0062;0061 0F71 0F7A 0F72 0F74 0062;0061 0F71 0F7A 0F72 0F74 0062;0061 0F71 0F7A 0F72 0F74 0062;
+0061 0F74 0F72 0F71 0F7B 0062;0061 0F71 0F72 0F7B 0F74 0062;0061 0F71 0F72 0F7B 0F74 0062;0061 0F71 0F72 0F7B 0F74 0062;0061 0F71 0F72 0F7B 0F74 0062;
+0061 0F7B 0F74 0F72 0F71 0062;0061 0F71 0F7B 0F72 0F74 0062;0061 0F71 0F7B 0F72 0F74 0062;0061 0F71 0F7B 0F72 0F74 0062;0061 0F71 0F7B 0F72 0F74 0062;
+0061 0F74 0F72 0F71 0F7C 0062;0061 0F71 0F72 0F7C 0F74 0062;0061 0F71 0F72 0F7C 0F74 0062;0061 0F71 0F72 0F7C 0F74 0062;0061 0F71 0F72 0F7C 0F74 0062;
+0061 0F7C 0F74 0F72 0F71 0062;0061 0F71 0F7C 0F72 0F74 0062;0061 0F71 0F7C 0F72 0F74 0062;0061 0F71 0F7C 0F72 0F74 0062;0061 0F71 0F7C 0F72 0F74 0062;
+0061 0F74 0F72 0F71 0F7D 0062;0061 0F71 0F72 0F7D 0F74 0062;0061 0F71 0F72 0F7D 0F74 0062;0061 0F71 0F72 0F7D 0F74 0062;0061 0F71 0F72 0F7D 0F74 0062;
+0061 0F7D 0F74 0F72 0F71 0062;0061 0F71 0F7D 0F72 0F74 0062;0061 0F71 0F7D 0F72 0F74 0062;0061 0F71 0F7D 0F72 0F74 0062;0061 0F71 0F7D 0F72 0F74 0062;
+0061 0F74 0F72 0F71 0F80 0062;0061 0F71 0F72 0F80 0F74 0062;0061 0F71 0F72 0F80 0F74 0062;0061 0F71 0F72 0F80 0F74 0062;0061 0F71 0F72 0F80 0F74 0062;
+0061 0F80 0F74 0F72 0F71 0062;0061 0F71 0F80 0F72 0F74 0062;0061 0F71 0F80 0F72 0F74 0062;0061 0F71 0F80 0F72 0F74 0062;0061 0F71 0F80 0F72 0F74 0062;
+0061 0315 0300 05AE 0F82 0062;00E0 05AE 0F82 0315 0062;0061 05AE 0300 0F82 0315 0062;00E0 05AE 0F82 0315 0062;0061 05AE 0300 0F82 0315 0062;
+0061 0F82 0315 0300 05AE 0062;0061 05AE 0F82 0300 0315 0062;0061 05AE 0F82 0300 0315 0062;0061 05AE 0F82 0300 0315 0062;0061 05AE 0F82 0300 0315 0062;
+0061 0315 0300 05AE 0F83 0062;00E0 05AE 0F83 0315 0062;0061 05AE 0300 0F83 0315 0062;00E0 05AE 0F83 0315 0062;0061 05AE 0300 0F83 0315 0062;
+0061 0F83 0315 0300 05AE 0062;0061 05AE 0F83 0300 0315 0062;0061 05AE 0F83 0300 0315 0062;0061 05AE 0F83 0300 0315 0062;0061 05AE 0F83 0300 0315 0062;
+0061 05B0 094D 3099 0F84 0062;0061 3099 094D 0F84 05B0 0062;0061 3099 094D 0F84 05B0 0062;0061 3099 094D 0F84 05B0 0062;0061 3099 094D 0F84 05B0 0062;
+0061 0F84 05B0 094D 3099 0062;0061 3099 0F84 094D 05B0 0062;0061 3099 0F84 094D 05B0 0062;0061 3099 0F84 094D 05B0 0062;0061 3099 0F84 094D 05B0 0062;
+0061 0315 0300 05AE 0F86 0062;00E0 05AE 0F86 0315 0062;0061 05AE 0300 0F86 0315 0062;00E0 05AE 0F86 0315 0062;0061 05AE 0300 0F86 0315 0062;
+0061 0F86 0315 0300 05AE 0062;0061 05AE 0F86 0300 0315 0062;0061 05AE 0F86 0300 0315 0062;0061 05AE 0F86 0300 0315 0062;0061 05AE 0F86 0300 0315 0062;
+0061 0315 0300 05AE 0F87 0062;00E0 05AE 0F87 0315 0062;0061 05AE 0300 0F87 0315 0062;00E0 05AE 0F87 0315 0062;0061 05AE 0300 0F87 0315 0062;
+0061 0F87 0315 0300 05AE 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 0300 0315 0062;
+0061 059A 0316 302A 0FC6 0062;0061 302A 0316 0FC6 059A 0062;0061 302A 0316 0FC6 059A 0062;0061 302A 0316 0FC6 059A 0062;0061 302A 0316 0FC6 059A 0062;
+0061 0FC6 059A 0316 302A 0062;0061 302A 0FC6 0316 059A 0062;0061 302A 0FC6 0316 059A 0062;0061 302A 0FC6 0316 059A 0062;0061 302A 0FC6 0316 059A 0062;
+0061 3099 093C 0334 1037 0062;0061 0334 093C 1037 3099 0062;0061 0334 093C 1037 3099 0062;0061 0334 093C 1037 3099 0062;0061 0334 093C 1037 3099 0062;
+0061 1037 3099 093C 0334 0062;0061 0334 1037 093C 3099 0062;0061 0334 1037 093C 3099 0062;0061 0334 1037 093C 3099 0062;0061 0334 1037 093C 3099 0062;
+0061 05B0 094D 3099 1039 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 1039 05B0 0062;
+0061 1039 05B0 094D 3099 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 094D 05B0 0062;
+0061 05B0 094D 3099 103A 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 103A 05B0 0062;
+0061 103A 05B0 094D 3099 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;
+0061 059A 0316 302A 108D 0062;0061 302A 0316 108D 059A 0062;0061 302A 0316 108D 059A 0062;0061 302A 0316 108D 059A 0062;0061 302A 0316 108D 059A 0062;
+0061 108D 059A 0316 302A 0062;0061 302A 108D 0316 059A 0062;0061 302A 108D 0316 059A 0062;0061 302A 108D 0316 059A 0062;0061 302A 108D 0316 059A 0062;
+0061 0315 0300 05AE 135F 0062;00E0 05AE 135F 0315 0062;0061 05AE 0300 135F 0315 0062;00E0 05AE 135F 0315 0062;0061 05AE 0300 135F 0315 0062;
+0061 135F 0315 0300 05AE 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;
+0061 05B0 094D 3099 1714 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;
+0061 1714 05B0 094D 3099 0062;0061 3099 1714 094D 05B0 0062;0061 3099 1714 094D 05B0 0062;0061 3099 1714 094D 05B0 0062;0061 3099 1714 094D 05B0 0062;
+0061 05B0 094D 3099 1734 0062;0061 3099 094D 1734 05B0 0062;0061 3099 094D 1734 05B0 0062;0061 3099 094D 1734 05B0 0062;0061 3099 094D 1734 05B0 0062;
+0061 1734 05B0 094D 3099 0062;0061 3099 1734 094D 05B0 0062;0061 3099 1734 094D 05B0 0062;0061 3099 1734 094D 05B0 0062;0061 3099 1734 094D 05B0 0062;
+0061 05B0 094D 3099 17D2 0062;0061 3099 094D 17D2 05B0 0062;0061 3099 094D 17D2 05B0 0062;0061 3099 094D 17D2 05B0 0062;0061 3099 094D 17D2 05B0 0062;
+0061 17D2 05B0 094D 3099 0062;0061 3099 17D2 094D 05B0 0062;0061 3099 17D2 094D 05B0 0062;0061 3099 17D2 094D 05B0 0062;0061 3099 17D2 094D 05B0 0062;
+0061 0315 0300 05AE 17DD 0062;00E0 05AE 17DD 0315 0062;0061 05AE 0300 17DD 0315 0062;00E0 05AE 17DD 0315 0062;0061 05AE 0300 17DD 0315 0062;
+0061 17DD 0315 0300 05AE 0062;0061 05AE 17DD 0300 0315 0062;0061 05AE 17DD 0300 0315 0062;0061 05AE 17DD 0300 0315 0062;0061 05AE 17DD 0300 0315 0062;
+0061 0300 05AE 1D16D 18A9 0062;00E0 1D16D 05AE 18A9 0062;0061 1D16D 05AE 18A9 0300 0062;00E0 1D16D 05AE 18A9 0062;0061 1D16D 05AE 18A9 0300 0062;
+0061 18A9 0300 05AE 1D16D 0062;00E0 1D16D 18A9 05AE 0062;0061 1D16D 18A9 05AE 0300 0062;00E0 1D16D 18A9 05AE 0062;0061 1D16D 18A9 05AE 0300 0062;
+0061 302E 059A 0316 1939 0062;0061 0316 059A 1939 302E 0062;0061 0316 059A 1939 302E 0062;0061 0316 059A 1939 302E 0062;0061 0316 059A 1939 302E 0062;
+0061 1939 302E 059A 0316 0062;0061 0316 1939 059A 302E 0062;0061 0316 1939 059A 302E 0062;0061 0316 1939 059A 302E 0062;0061 0316 1939 059A 302E 0062;
+0061 0315 0300 05AE 193A 0062;00E0 05AE 193A 0315 0062;0061 05AE 0300 193A 0315 0062;00E0 05AE 193A 0315 0062;0061 05AE 0300 193A 0315 0062;
+0061 193A 0315 0300 05AE 0062;0061 05AE 193A 0300 0315 0062;0061 05AE 193A 0300 0315 0062;0061 05AE 193A 0300 0315 0062;0061 05AE 193A 0300 0315 0062;
+0061 059A 0316 302A 193B 0062;0061 302A 0316 193B 059A 0062;0061 302A 0316 193B 059A 0062;0061 302A 0316 193B 059A 0062;0061 302A 0316 193B 059A 0062;
+0061 193B 059A 0316 302A 0062;0061 302A 193B 0316 059A 0062;0061 302A 193B 0316 059A 0062;0061 302A 193B 0316 059A 0062;0061 302A 193B 0316 059A 0062;
+0061 0315 0300 05AE 1A17 0062;00E0 05AE 1A17 0315 0062;0061 05AE 0300 1A17 0315 0062;00E0 05AE 1A17 0315 0062;0061 05AE 0300 1A17 0315 0062;
+0061 1A17 0315 0300 05AE 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;
+0061 059A 0316 302A 1A18 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;
+0061 1A18 059A 0316 302A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;
+0061 3099 093C 0334 1B34 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;
+0061 1B34 3099 093C 0334 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;
+0061 05B0 094D 3099 1B44 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;
+0061 1B44 05B0 094D 3099 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;
+0061 0315 0300 05AE 1B6B 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 0315 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 0315 0062;
+0061 1B6B 0315 0300 05AE 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;
+0061 059A 0316 302A 1B6C 0062;0061 302A 0316 1B6C 059A 0062;0061 302A 0316 1B6C 059A 0062;0061 302A 0316 1B6C 059A 0062;0061 302A 0316 1B6C 059A 0062;
+0061 1B6C 059A 0316 302A 0062;0061 302A 1B6C 0316 059A 0062;0061 302A 1B6C 0316 059A 0062;0061 302A 1B6C 0316 059A 0062;0061 302A 1B6C 0316 059A 0062;
+0061 0315 0300 05AE 1B6D 0062;00E0 05AE 1B6D 0315 0062;0061 05AE 0300 1B6D 0315 0062;00E0 05AE 1B6D 0315 0062;0061 05AE 0300 1B6D 0315 0062;
+0061 1B6D 0315 0300 05AE 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;
+0061 0315 0300 05AE 1B6E 0062;00E0 05AE 1B6E 0315 0062;0061 05AE 0300 1B6E 0315 0062;00E0 05AE 1B6E 0315 0062;0061 05AE 0300 1B6E 0315 0062;
+0061 1B6E 0315 0300 05AE 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;
+0061 0315 0300 05AE 1B6F 0062;00E0 05AE 1B6F 0315 0062;0061 05AE 0300 1B6F 0315 0062;00E0 05AE 1B6F 0315 0062;0061 05AE 0300 1B6F 0315 0062;
+0061 1B6F 0315 0300 05AE 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;
+0061 0315 0300 05AE 1B70 0062;00E0 05AE 1B70 0315 0062;0061 05AE 0300 1B70 0315 0062;00E0 05AE 1B70 0315 0062;0061 05AE 0300 1B70 0315 0062;
+0061 1B70 0315 0300 05AE 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;
+0061 0315 0300 05AE 1B71 0062;00E0 05AE 1B71 0315 0062;0061 05AE 0300 1B71 0315 0062;00E0 05AE 1B71 0315 0062;0061 05AE 0300 1B71 0315 0062;
+0061 1B71 0315 0300 05AE 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;
+0061 0315 0300 05AE 1B72 0062;00E0 05AE 1B72 0315 0062;0061 05AE 0300 1B72 0315 0062;00E0 05AE 1B72 0315 0062;0061 05AE 0300 1B72 0315 0062;
+0061 1B72 0315 0300 05AE 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;
+0061 0315 0300 05AE 1B73 0062;00E0 05AE 1B73 0315 0062;0061 05AE 0300 1B73 0315 0062;00E0 05AE 1B73 0315 0062;0061 05AE 0300 1B73 0315 0062;
+0061 1B73 0315 0300 05AE 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;
+0061 05B0 094D 3099 1BAA 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;
+0061 1BAA 05B0 094D 3099 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;
+0061 3099 093C 0334 1C37 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 1C37 3099 0062;
+0061 1C37 3099 093C 0334 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 093C 3099 0062;
+0061 0315 0300 05AE 1DC0 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;
+0061 1DC0 0315 0300 05AE 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;
+0061 0315 0300 05AE 1DC1 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;
+0061 1DC1 0315 0300 05AE 0062;0061 05AE 1DC1 0300 0315 0062;0061 05AE 1DC1 0300 0315 0062;0061 05AE 1DC1 0300 0315 0062;0061 05AE 1DC1 0300 0315 0062;
+0061 059A 0316 302A 1DC2 0062;0061 302A 0316 1DC2 059A 0062;0061 302A 0316 1DC2 059A 0062;0061 302A 0316 1DC2 059A 0062;0061 302A 0316 1DC2 059A 0062;
+0061 1DC2 059A 0316 302A 0062;0061 302A 1DC2 0316 059A 0062;0061 302A 1DC2 0316 059A 0062;0061 302A 1DC2 0316 059A 0062;0061 302A 1DC2 0316 059A 0062;
+0061 0315 0300 05AE 1DC3 0062;00E0 05AE 1DC3 0315 0062;0061 05AE 0300 1DC3 0315 0062;00E0 05AE 1DC3 0315 0062;0061 05AE 0300 1DC3 0315 0062;
+0061 1DC3 0315 0300 05AE 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;
+0061 0315 0300 05AE 1DC4 0062;00E0 05AE 1DC4 0315 0062;0061 05AE 0300 1DC4 0315 0062;00E0 05AE 1DC4 0315 0062;0061 05AE 0300 1DC4 0315 0062;
+0061 1DC4 0315 0300 05AE 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;
+0061 0315 0300 05AE 1DC5 0062;00E0 05AE 1DC5 0315 0062;0061 05AE 0300 1DC5 0315 0062;00E0 05AE 1DC5 0315 0062;0061 05AE 0300 1DC5 0315 0062;
+0061 1DC5 0315 0300 05AE 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;
+0061 0315 0300 05AE 1DC6 0062;00E0 05AE 1DC6 0315 0062;0061 05AE 0300 1DC6 0315 0062;00E0 05AE 1DC6 0315 0062;0061 05AE 0300 1DC6 0315 0062;
+0061 1DC6 0315 0300 05AE 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;
+0061 0315 0300 05AE 1DC7 0062;00E0 05AE 1DC7 0315 0062;0061 05AE 0300 1DC7 0315 0062;00E0 05AE 1DC7 0315 0062;0061 05AE 0300 1DC7 0315 0062;
+0061 1DC7 0315 0300 05AE 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;
+0061 0315 0300 05AE 1DC8 0062;00E0 05AE 1DC8 0315 0062;0061 05AE 0300 1DC8 0315 0062;00E0 05AE 1DC8 0315 0062;0061 05AE 0300 1DC8 0315 0062;
+0061 1DC8 0315 0300 05AE 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;
+0061 0315 0300 05AE 1DC9 0062;00E0 05AE 1DC9 0315 0062;0061 05AE 0300 1DC9 0315 0062;00E0 05AE 1DC9 0315 0062;0061 05AE 0300 1DC9 0315 0062;
+0061 1DC9 0315 0300 05AE 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;
+0061 059A 0316 302A 1DCA 0062;0061 302A 0316 1DCA 059A 0062;0061 302A 0316 1DCA 059A 0062;0061 302A 0316 1DCA 059A 0062;0061 302A 0316 1DCA 059A 0062;
+0061 1DCA 059A 0316 302A 0062;0061 302A 1DCA 0316 059A 0062;0061 302A 1DCA 0316 059A 0062;0061 302A 1DCA 0316 059A 0062;0061 302A 1DCA 0316 059A 0062;
+0061 0315 0300 05AE 1DCB 0062;00E0 05AE 1DCB 0315 0062;0061 05AE 0300 1DCB 0315 0062;00E0 05AE 1DCB 0315 0062;0061 05AE 0300 1DCB 0315 0062;
+0061 1DCB 0315 0300 05AE 0062;0061 05AE 1DCB 0300 0315 0062;0061 05AE 1DCB 0300 0315 0062;0061 05AE 1DCB 0300 0315 0062;0061 05AE 1DCB 0300 0315 0062;
+0061 0315 0300 05AE 1DCC 0062;00E0 05AE 1DCC 0315 0062;0061 05AE 0300 1DCC 0315 0062;00E0 05AE 1DCC 0315 0062;0061 05AE 0300 1DCC 0315 0062;
+0061 1DCC 0315 0300 05AE 0062;0061 05AE 1DCC 0300 0315 0062;0061 05AE 1DCC 0300 0315 0062;0061 05AE 1DCC 0300 0315 0062;0061 05AE 1DCC 0300 0315 0062;
+0061 0345 035D 035C 1DCD 0062;0061 035C 035D 1DCD 0345 0062;0061 035C 035D 1DCD 0345 0062;0061 035C 035D 1DCD 0345 0062;0061 035C 035D 1DCD 0345 0062;
+0061 1DCD 0345 035D 035C 0062;0061 035C 1DCD 035D 0345 0062;0061 035C 1DCD 035D 0345 0062;0061 035C 1DCD 035D 0345 0062;0061 035C 1DCD 035D 0345 0062;
+0061 031B 1DCE 0321 1DCE 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;
+0061 1DCE 031B 1DCE 0321 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;0061 0321 1DCE 1DCE 031B 0062;
+0061 059A 0316 302A 1DCF 0062;0061 302A 0316 1DCF 059A 0062;0061 302A 0316 1DCF 059A 0062;0061 302A 0316 1DCF 059A 0062;0061 302A 0316 1DCF 059A 0062;
+0061 1DCF 059A 0316 302A 0062;0061 302A 1DCF 0316 059A 0062;0061 302A 1DCF 0316 059A 0062;0061 302A 1DCF 0316 059A 0062;0061 302A 1DCF 0316 059A 0062;
+0061 1DCE 0321 0F74 1DD0 0062;0061 0F74 0321 1DD0 1DCE 0062;0061 0F74 0321 1DD0 1DCE 0062;0061 0F74 0321 1DD0 1DCE 0062;0061 0F74 0321 1DD0 1DCE 0062;
+0061 1DD0 1DCE 0321 0F74 0062;0061 0F74 1DD0 0321 1DCE 0062;0061 0F74 1DD0 0321 1DCE 0062;0061 0F74 1DD0 0321 1DCE 0062;0061 0F74 1DD0 0321 1DCE 0062;
+0061 0315 0300 05AE 1DD1 0062;00E0 05AE 1DD1 0315 0062;0061 05AE 0300 1DD1 0315 0062;00E0 05AE 1DD1 0315 0062;0061 05AE 0300 1DD1 0315 0062;
+0061 1DD1 0315 0300 05AE 0062;0061 05AE 1DD1 0300 0315 0062;0061 05AE 1DD1 0300 0315 0062;0061 05AE 1DD1 0300 0315 0062;0061 05AE 1DD1 0300 0315 0062;
+0061 0315 0300 05AE 1DD2 0062;00E0 05AE 1DD2 0315 0062;0061 05AE 0300 1DD2 0315 0062;00E0 05AE 1DD2 0315 0062;0061 05AE 0300 1DD2 0315 0062;
+0061 1DD2 0315 0300 05AE 0062;0061 05AE 1DD2 0300 0315 0062;0061 05AE 1DD2 0300 0315 0062;0061 05AE 1DD2 0300 0315 0062;0061 05AE 1DD2 0300 0315 0062;
+0061 0315 0300 05AE 1DD3 0062;00E0 05AE 1DD3 0315 0062;0061 05AE 0300 1DD3 0315 0062;00E0 05AE 1DD3 0315 0062;0061 05AE 0300 1DD3 0315 0062;
+0061 1DD3 0315 0300 05AE 0062;0061 05AE 1DD3 0300 0315 0062;0061 05AE 1DD3 0300 0315 0062;0061 05AE 1DD3 0300 0315 0062;0061 05AE 1DD3 0300 0315 0062;
+0061 0315 0300 05AE 1DD4 0062;00E0 05AE 1DD4 0315 0062;0061 05AE 0300 1DD4 0315 0062;00E0 05AE 1DD4 0315 0062;0061 05AE 0300 1DD4 0315 0062;
+0061 1DD4 0315 0300 05AE 0062;0061 05AE 1DD4 0300 0315 0062;0061 05AE 1DD4 0300 0315 0062;0061 05AE 1DD4 0300 0315 0062;0061 05AE 1DD4 0300 0315 0062;
+0061 0315 0300 05AE 1DD5 0062;00E0 05AE 1DD5 0315 0062;0061 05AE 0300 1DD5 0315 0062;00E0 05AE 1DD5 0315 0062;0061 05AE 0300 1DD5 0315 0062;
+0061 1DD5 0315 0300 05AE 0062;0061 05AE 1DD5 0300 0315 0062;0061 05AE 1DD5 0300 0315 0062;0061 05AE 1DD5 0300 0315 0062;0061 05AE 1DD5 0300 0315 0062;
+0061 0315 0300 05AE 1DD6 0062;00E0 05AE 1DD6 0315 0062;0061 05AE 0300 1DD6 0315 0062;00E0 05AE 1DD6 0315 0062;0061 05AE 0300 1DD6 0315 0062;
+0061 1DD6 0315 0300 05AE 0062;0061 05AE 1DD6 0300 0315 0062;0061 05AE 1DD6 0300 0315 0062;0061 05AE 1DD6 0300 0315 0062;0061 05AE 1DD6 0300 0315 0062;
+0061 0315 0300 05AE 1DD7 0062;00E0 05AE 1DD7 0315 0062;0061 05AE 0300 1DD7 0315 0062;00E0 05AE 1DD7 0315 0062;0061 05AE 0300 1DD7 0315 0062;
+0061 1DD7 0315 0300 05AE 0062;0061 05AE 1DD7 0300 0315 0062;0061 05AE 1DD7 0300 0315 0062;0061 05AE 1DD7 0300 0315 0062;0061 05AE 1DD7 0300 0315 0062;
+0061 0315 0300 05AE 1DD8 0062;00E0 05AE 1DD8 0315 0062;0061 05AE 0300 1DD8 0315 0062;00E0 05AE 1DD8 0315 0062;0061 05AE 0300 1DD8 0315 0062;
+0061 1DD8 0315 0300 05AE 0062;0061 05AE 1DD8 0300 0315 0062;0061 05AE 1DD8 0300 0315 0062;0061 05AE 1DD8 0300 0315 0062;0061 05AE 1DD8 0300 0315 0062;
+0061 0315 0300 05AE 1DD9 0062;00E0 05AE 1DD9 0315 0062;0061 05AE 0300 1DD9 0315 0062;00E0 05AE 1DD9 0315 0062;0061 05AE 0300 1DD9 0315 0062;
+0061 1DD9 0315 0300 05AE 0062;0061 05AE 1DD9 0300 0315 0062;0061 05AE 1DD9 0300 0315 0062;0061 05AE 1DD9 0300 0315 0062;0061 05AE 1DD9 0300 0315 0062;
+0061 0315 0300 05AE 1DDA 0062;00E0 05AE 1DDA 0315 0062;0061 05AE 0300 1DDA 0315 0062;00E0 05AE 1DDA 0315 0062;0061 05AE 0300 1DDA 0315 0062;
+0061 1DDA 0315 0300 05AE 0062;0061 05AE 1DDA 0300 0315 0062;0061 05AE 1DDA 0300 0315 0062;0061 05AE 1DDA 0300 0315 0062;0061 05AE 1DDA 0300 0315 0062;
+0061 0315 0300 05AE 1DDB 0062;00E0 05AE 1DDB 0315 0062;0061 05AE 0300 1DDB 0315 0062;00E0 05AE 1DDB 0315 0062;0061 05AE 0300 1DDB 0315 0062;
+0061 1DDB 0315 0300 05AE 0062;0061 05AE 1DDB 0300 0315 0062;0061 05AE 1DDB 0300 0315 0062;0061 05AE 1DDB 0300 0315 0062;0061 05AE 1DDB 0300 0315 0062;
+0061 0315 0300 05AE 1DDC 0062;00E0 05AE 1DDC 0315 0062;0061 05AE 0300 1DDC 0315 0062;00E0 05AE 1DDC 0315 0062;0061 05AE 0300 1DDC 0315 0062;
+0061 1DDC 0315 0300 05AE 0062;0061 05AE 1DDC 0300 0315 0062;0061 05AE 1DDC 0300 0315 0062;0061 05AE 1DDC 0300 0315 0062;0061 05AE 1DDC 0300 0315 0062;
+0061 0315 0300 05AE 1DDD 0062;00E0 05AE 1DDD 0315 0062;0061 05AE 0300 1DDD 0315 0062;00E0 05AE 1DDD 0315 0062;0061 05AE 0300 1DDD 0315 0062;
+0061 1DDD 0315 0300 05AE 0062;0061 05AE 1DDD 0300 0315 0062;0061 05AE 1DDD 0300 0315 0062;0061 05AE 1DDD 0300 0315 0062;0061 05AE 1DDD 0300 0315 0062;
+0061 0315 0300 05AE 1DDE 0062;00E0 05AE 1DDE 0315 0062;0061 05AE 0300 1DDE 0315 0062;00E0 05AE 1DDE 0315 0062;0061 05AE 0300 1DDE 0315 0062;
+0061 1DDE 0315 0300 05AE 0062;0061 05AE 1DDE 0300 0315 0062;0061 05AE 1DDE 0300 0315 0062;0061 05AE 1DDE 0300 0315 0062;0061 05AE 1DDE 0300 0315 0062;
+0061 0315 0300 05AE 1DDF 0062;00E0 05AE 1DDF 0315 0062;0061 05AE 0300 1DDF 0315 0062;00E0 05AE 1DDF 0315 0062;0061 05AE 0300 1DDF 0315 0062;
+0061 1DDF 0315 0300 05AE 0062;0061 05AE 1DDF 0300 0315 0062;0061 05AE 1DDF 0300 0315 0062;0061 05AE 1DDF 0300 0315 0062;0061 05AE 1DDF 0300 0315 0062;
+0061 0315 0300 05AE 1DE0 0062;00E0 05AE 1DE0 0315 0062;0061 05AE 0300 1DE0 0315 0062;00E0 05AE 1DE0 0315 0062;0061 05AE 0300 1DE0 0315 0062;
+0061 1DE0 0315 0300 05AE 0062;0061 05AE 1DE0 0300 0315 0062;0061 05AE 1DE0 0300 0315 0062;0061 05AE 1DE0 0300 0315 0062;0061 05AE 1DE0 0300 0315 0062;
+0061 0315 0300 05AE 1DE1 0062;00E0 05AE 1DE1 0315 0062;0061 05AE 0300 1DE1 0315 0062;00E0 05AE 1DE1 0315 0062;0061 05AE 0300 1DE1 0315 0062;
+0061 1DE1 0315 0300 05AE 0062;0061 05AE 1DE1 0300 0315 0062;0061 05AE 1DE1 0300 0315 0062;0061 05AE 1DE1 0300 0315 0062;0061 05AE 1DE1 0300 0315 0062;
+0061 0315 0300 05AE 1DE2 0062;00E0 05AE 1DE2 0315 0062;0061 05AE 0300 1DE2 0315 0062;00E0 05AE 1DE2 0315 0062;0061 05AE 0300 1DE2 0315 0062;
+0061 1DE2 0315 0300 05AE 0062;0061 05AE 1DE2 0300 0315 0062;0061 05AE 1DE2 0300 0315 0062;0061 05AE 1DE2 0300 0315 0062;0061 05AE 1DE2 0300 0315 0062;
+0061 0315 0300 05AE 1DE3 0062;00E0 05AE 1DE3 0315 0062;0061 05AE 0300 1DE3 0315 0062;00E0 05AE 1DE3 0315 0062;0061 05AE 0300 1DE3 0315 0062;
+0061 1DE3 0315 0300 05AE 0062;0061 05AE 1DE3 0300 0315 0062;0061 05AE 1DE3 0300 0315 0062;0061 05AE 1DE3 0300 0315 0062;0061 05AE 1DE3 0300 0315 0062;
+0061 0315 0300 05AE 1DE4 0062;00E0 05AE 1DE4 0315 0062;0061 05AE 0300 1DE4 0315 0062;00E0 05AE 1DE4 0315 0062;0061 05AE 0300 1DE4 0315 0062;
+0061 1DE4 0315 0300 05AE 0062;0061 05AE 1DE4 0300 0315 0062;0061 05AE 1DE4 0300 0315 0062;0061 05AE 1DE4 0300 0315 0062;0061 05AE 1DE4 0300 0315 0062;
+0061 0315 0300 05AE 1DE5 0062;00E0 05AE 1DE5 0315 0062;0061 05AE 0300 1DE5 0315 0062;00E0 05AE 1DE5 0315 0062;0061 05AE 0300 1DE5 0315 0062;
+0061 1DE5 0315 0300 05AE 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;
+0061 0315 0300 05AE 1DE6 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062;
+0061 1DE6 0315 0300 05AE 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;
+0061 0315 0300 05AE 1DFE 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062;
+0061 1DFE 0315 0300 05AE 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;
+0061 059A 0316 302A 1DFF 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;
+0061 1DFF 059A 0316 302A 0062;0061 302A 1DFF 0316 059A 0062;0061 302A 1DFF 0316 059A 0062;0061 302A 1DFF 0316 059A 0062;0061 302A 1DFF 0316 059A 0062;
+0061 0315 0300 05AE 20D0 0062;00E0 05AE 20D0 0315 0062;0061 05AE 0300 20D0 0315 0062;00E0 05AE 20D0 0315 0062;0061 05AE 0300 20D0 0315 0062;
+0061 20D0 0315 0300 05AE 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;
+0061 0315 0300 05AE 20D1 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 0315 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 0315 0062;
+0061 20D1 0315 0300 05AE 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 0300 0315 0062;
+0061 093C 0334 20D2 0062;0061 0334 20D2 093C 0062;0061 0334 20D2 093C 0062;0061 0334 20D2 093C 0062;0061 0334 20D2 093C 0062;
+0061 20D2 093C 0334 0062;0061 20D2 0334 093C 0062;0061 20D2 0334 093C 0062;0061 20D2 0334 093C 0062;0061 20D2 0334 093C 0062;
+0061 093C 0334 20D3 0062;0061 0334 20D3 093C 0062;0061 0334 20D3 093C 0062;0061 0334 20D3 093C 0062;0061 0334 20D3 093C 0062;
+0061 20D3 093C 0334 0062;0061 20D3 0334 093C 0062;0061 20D3 0334 093C 0062;0061 20D3 0334 093C 0062;0061 20D3 0334 093C 0062;
+0061 0315 0300 05AE 20D4 0062;00E0 05AE 20D4 0315 0062;0061 05AE 0300 20D4 0315 0062;00E0 05AE 20D4 0315 0062;0061 05AE 0300 20D4 0315 0062;
+0061 20D4 0315 0300 05AE 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 0300 0315 0062;
+0061 0315 0300 05AE 20D5 0062;00E0 05AE 20D5 0315 0062;0061 05AE 0300 20D5 0315 0062;00E0 05AE 20D5 0315 0062;0061 05AE 0300 20D5 0315 0062;
+0061 20D5 0315 0300 05AE 0062;0061 05AE 20D5 0300 0315 0062;0061 05AE 20D5 0300 0315 0062;0061 05AE 20D5 0300 0315 0062;0061 05AE 20D5 0300 0315 0062;
+0061 0315 0300 05AE 20D6 0062;00E0 05AE 20D6 0315 0062;0061 05AE 0300 20D6 0315 0062;00E0 05AE 20D6 0315 0062;0061 05AE 0300 20D6 0315 0062;
+0061 20D6 0315 0300 05AE 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 0300 0315 0062;
+0061 0315 0300 05AE 20D7 0062;00E0 05AE 20D7 0315 0062;0061 05AE 0300 20D7 0315 0062;00E0 05AE 20D7 0315 0062;0061 05AE 0300 20D7 0315 0062;
+0061 20D7 0315 0300 05AE 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 0300 0315 0062;
+0061 093C 0334 20D8 0062;0061 0334 20D8 093C 0062;0061 0334 20D8 093C 0062;0061 0334 20D8 093C 0062;0061 0334 20D8 093C 0062;
+0061 20D8 093C 0334 0062;0061 20D8 0334 093C 0062;0061 20D8 0334 093C 0062;0061 20D8 0334 093C 0062;0061 20D8 0334 093C 0062;
+0061 093C 0334 20D9 0062;0061 0334 20D9 093C 0062;0061 0334 20D9 093C 0062;0061 0334 20D9 093C 0062;0061 0334 20D9 093C 0062;
+0061 20D9 093C 0334 0062;0061 20D9 0334 093C 0062;0061 20D9 0334 093C 0062;0061 20D9 0334 093C 0062;0061 20D9 0334 093C 0062;
+0061 093C 0334 20DA 0062;0061 0334 20DA 093C 0062;0061 0334 20DA 093C 0062;0061 0334 20DA 093C 0062;0061 0334 20DA 093C 0062;
+0061 20DA 093C 0334 0062;0061 20DA 0334 093C 0062;0061 20DA 0334 093C 0062;0061 20DA 0334 093C 0062;0061 20DA 0334 093C 0062;
+0061 0315 0300 05AE 20DB 0062;00E0 05AE 20DB 0315 0062;0061 05AE 0300 20DB 0315 0062;00E0 05AE 20DB 0315 0062;0061 05AE 0300 20DB 0315 0062;
+0061 20DB 0315 0300 05AE 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 0300 0315 0062;
+0061 0315 0300 05AE 20DC 0062;00E0 05AE 20DC 0315 0062;0061 05AE 0300 20DC 0315 0062;00E0 05AE 20DC 0315 0062;0061 05AE 0300 20DC 0315 0062;
+0061 20DC 0315 0300 05AE 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 0300 0315 0062;
+0061 0315 0300 05AE 20E1 0062;00E0 05AE 20E1 0315 0062;0061 05AE 0300 20E1 0315 0062;00E0 05AE 20E1 0315 0062;0061 05AE 0300 20E1 0315 0062;
+0061 20E1 0315 0300 05AE 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 0300 0315 0062;
+0061 093C 0334 20E5 0062;0061 0334 20E5 093C 0062;0061 0334 20E5 093C 0062;0061 0334 20E5 093C 0062;0061 0334 20E5 093C 0062;
+0061 20E5 093C 0334 0062;0061 20E5 0334 093C 0062;0061 20E5 0334 093C 0062;0061 20E5 0334 093C 0062;0061 20E5 0334 093C 0062;
+0061 093C 0334 20E6 0062;0061 0334 20E6 093C 0062;0061 0334 20E6 093C 0062;0061 0334 20E6 093C 0062;0061 0334 20E6 093C 0062;
+0061 20E6 093C 0334 0062;0061 20E6 0334 093C 0062;0061 20E6 0334 093C 0062;0061 20E6 0334 093C 0062;0061 20E6 0334 093C 0062;
+0061 0315 0300 05AE 20E7 0062;00E0 05AE 20E7 0315 0062;0061 05AE 0300 20E7 0315 0062;00E0 05AE 20E7 0315 0062;0061 05AE 0300 20E7 0315 0062;
+0061 20E7 0315 0300 05AE 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 0300 0315 0062;
+0061 059A 0316 302A 20E8 0062;0061 302A 0316 20E8 059A 0062;0061 302A 0316 20E8 059A 0062;0061 302A 0316 20E8 059A 0062;0061 302A 0316 20E8 059A 0062;
+0061 20E8 059A 0316 302A 0062;0061 302A 20E8 0316 059A 0062;0061 302A 20E8 0316 059A 0062;0061 302A 20E8 0316 059A 0062;0061 302A 20E8 0316 059A 0062;
+0061 0315 0300 05AE 20E9 0062;00E0 05AE 20E9 0315 0062;0061 05AE 0300 20E9 0315 0062;00E0 05AE 20E9 0315 0062;0061 05AE 0300 20E9 0315 0062;
+0061 20E9 0315 0300 05AE 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 0300 0315 0062;
+0061 093C 0334 20EA 0062;0061 0334 20EA 093C 0062;0061 0334 20EA 093C 0062;0061 0334 20EA 093C 0062;0061 0334 20EA 093C 0062;
+0061 20EA 093C 0334 0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 0062;
+0061 093C 0334 20EB 0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 0062;
+0061 20EB 093C 0334 0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 0062;
+0061 059A 0316 302A 20EC 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 20EC 059A 0062;
+0061 20EC 059A 0316 302A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 0316 059A 0062;
+0061 059A 0316 302A 20ED 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 20ED 059A 0062;
+0061 20ED 059A 0316 302A 0062;0061 302A 20ED 0316 059A 0062;0061 302A 20ED 0316 059A 0062;0061 302A 20ED 0316 059A 0062;0061 302A 20ED 0316 059A 0062;
+0061 059A 0316 302A 20EE 0062;0061 302A 0316 20EE 059A 0062;0061 302A 0316 20EE 059A 0062;0061 302A 0316 20EE 059A 0062;0061 302A 0316 20EE 059A 0062;
+0061 20EE 059A 0316 302A 0062;0061 302A 20EE 0316 059A 0062;0061 302A 20EE 0316 059A 0062;0061 302A 20EE 0316 059A 0062;0061 302A 20EE 0316 059A 0062;
+0061 059A 0316 302A 20EF 0062;0061 302A 0316 20EF 059A 0062;0061 302A 0316 20EF 059A 0062;0061 302A 0316 20EF 059A 0062;0061 302A 0316 20EF 059A 0062;
+0061 20EF 059A 0316 302A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;
+0061 0315 0300 05AE 20F0 0062;00E0 05AE 20F0 0315 0062;0061 05AE 0300 20F0 0315 0062;00E0 05AE 20F0 0315 0062;0061 05AE 0300 20F0 0315 0062;
+0061 20F0 0315 0300 05AE 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;
+0061 0315 0300 05AE 2DE0 0062;00E0 05AE 2DE0 0315 0062;0061 05AE 0300 2DE0 0315 0062;00E0 05AE 2DE0 0315 0062;0061 05AE 0300 2DE0 0315 0062;
+0061 2DE0 0315 0300 05AE 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;
+0061 0315 0300 05AE 2DE1 0062;00E0 05AE 2DE1 0315 0062;0061 05AE 0300 2DE1 0315 0062;00E0 05AE 2DE1 0315 0062;0061 05AE 0300 2DE1 0315 0062;
+0061 2DE1 0315 0300 05AE 0062;0061 05AE 2DE1 0300 0315 0062;0061 05AE 2DE1 0300 0315 0062;0061 05AE 2DE1 0300 0315 0062;0061 05AE 2DE1 0300 0315 0062;
+0061 0315 0300 05AE 2DE2 0062;00E0 05AE 2DE2 0315 0062;0061 05AE 0300 2DE2 0315 0062;00E0 05AE 2DE2 0315 0062;0061 05AE 0300 2DE2 0315 0062;
+0061 2DE2 0315 0300 05AE 0062;0061 05AE 2DE2 0300 0315 0062;0061 05AE 2DE2 0300 0315 0062;0061 05AE 2DE2 0300 0315 0062;0061 05AE 2DE2 0300 0315 0062;
+0061 0315 0300 05AE 2DE3 0062;00E0 05AE 2DE3 0315 0062;0061 05AE 0300 2DE3 0315 0062;00E0 05AE 2DE3 0315 0062;0061 05AE 0300 2DE3 0315 0062;
+0061 2DE3 0315 0300 05AE 0062;0061 05AE 2DE3 0300 0315 0062;0061 05AE 2DE3 0300 0315 0062;0061 05AE 2DE3 0300 0315 0062;0061 05AE 2DE3 0300 0315 0062;
+0061 0315 0300 05AE 2DE4 0062;00E0 05AE 2DE4 0315 0062;0061 05AE 0300 2DE4 0315 0062;00E0 05AE 2DE4 0315 0062;0061 05AE 0300 2DE4 0315 0062;
+0061 2DE4 0315 0300 05AE 0062;0061 05AE 2DE4 0300 0315 0062;0061 05AE 2DE4 0300 0315 0062;0061 05AE 2DE4 0300 0315 0062;0061 05AE 2DE4 0300 0315 0062;
+0061 0315 0300 05AE 2DE5 0062;00E0 05AE 2DE5 0315 0062;0061 05AE 0300 2DE5 0315 0062;00E0 05AE 2DE5 0315 0062;0061 05AE 0300 2DE5 0315 0062;
+0061 2DE5 0315 0300 05AE 0062;0061 05AE 2DE5 0300 0315 0062;0061 05AE 2DE5 0300 0315 0062;0061 05AE 2DE5 0300 0315 0062;0061 05AE 2DE5 0300 0315 0062;
+0061 0315 0300 05AE 2DE6 0062;00E0 05AE 2DE6 0315 0062;0061 05AE 0300 2DE6 0315 0062;00E0 05AE 2DE6 0315 0062;0061 05AE 0300 2DE6 0315 0062;
+0061 2DE6 0315 0300 05AE 0062;0061 05AE 2DE6 0300 0315 0062;0061 05AE 2DE6 0300 0315 0062;0061 05AE 2DE6 0300 0315 0062;0061 05AE 2DE6 0300 0315 0062;
+0061 0315 0300 05AE 2DE7 0062;00E0 05AE 2DE7 0315 0062;0061 05AE 0300 2DE7 0315 0062;00E0 05AE 2DE7 0315 0062;0061 05AE 0300 2DE7 0315 0062;
+0061 2DE7 0315 0300 05AE 0062;0061 05AE 2DE7 0300 0315 0062;0061 05AE 2DE7 0300 0315 0062;0061 05AE 2DE7 0300 0315 0062;0061 05AE 2DE7 0300 0315 0062;
+0061 0315 0300 05AE 2DE8 0062;00E0 05AE 2DE8 0315 0062;0061 05AE 0300 2DE8 0315 0062;00E0 05AE 2DE8 0315 0062;0061 05AE 0300 2DE8 0315 0062;
+0061 2DE8 0315 0300 05AE 0062;0061 05AE 2DE8 0300 0315 0062;0061 05AE 2DE8 0300 0315 0062;0061 05AE 2DE8 0300 0315 0062;0061 05AE 2DE8 0300 0315 0062;
+0061 0315 0300 05AE 2DE9 0062;00E0 05AE 2DE9 0315 0062;0061 05AE 0300 2DE9 0315 0062;00E0 05AE 2DE9 0315 0062;0061 05AE 0300 2DE9 0315 0062;
+0061 2DE9 0315 0300 05AE 0062;0061 05AE 2DE9 0300 0315 0062;0061 05AE 2DE9 0300 0315 0062;0061 05AE 2DE9 0300 0315 0062;0061 05AE 2DE9 0300 0315 0062;
+0061 0315 0300 05AE 2DEA 0062;00E0 05AE 2DEA 0315 0062;0061 05AE 0300 2DEA 0315 0062;00E0 05AE 2DEA 0315 0062;0061 05AE 0300 2DEA 0315 0062;
+0061 2DEA 0315 0300 05AE 0062;0061 05AE 2DEA 0300 0315 0062;0061 05AE 2DEA 0300 0315 0062;0061 05AE 2DEA 0300 0315 0062;0061 05AE 2DEA 0300 0315 0062;
+0061 0315 0300 05AE 2DEB 0062;00E0 05AE 2DEB 0315 0062;0061 05AE 0300 2DEB 0315 0062;00E0 05AE 2DEB 0315 0062;0061 05AE 0300 2DEB 0315 0062;
+0061 2DEB 0315 0300 05AE 0062;0061 05AE 2DEB 0300 0315 0062;0061 05AE 2DEB 0300 0315 0062;0061 05AE 2DEB 0300 0315 0062;0061 05AE 2DEB 0300 0315 0062;
+0061 0315 0300 05AE 2DEC 0062;00E0 05AE 2DEC 0315 0062;0061 05AE 0300 2DEC 0315 0062;00E0 05AE 2DEC 0315 0062;0061 05AE 0300 2DEC 0315 0062;
+0061 2DEC 0315 0300 05AE 0062;0061 05AE 2DEC 0300 0315 0062;0061 05AE 2DEC 0300 0315 0062;0061 05AE 2DEC 0300 0315 0062;0061 05AE 2DEC 0300 0315 0062;
+0061 0315 0300 05AE 2DED 0062;00E0 05AE 2DED 0315 0062;0061 05AE 0300 2DED 0315 0062;00E0 05AE 2DED 0315 0062;0061 05AE 0300 2DED 0315 0062;
+0061 2DED 0315 0300 05AE 0062;0061 05AE 2DED 0300 0315 0062;0061 05AE 2DED 0300 0315 0062;0061 05AE 2DED 0300 0315 0062;0061 05AE 2DED 0300 0315 0062;
+0061 0315 0300 05AE 2DEE 0062;00E0 05AE 2DEE 0315 0062;0061 05AE 0300 2DEE 0315 0062;00E0 05AE 2DEE 0315 0062;0061 05AE 0300 2DEE 0315 0062;
+0061 2DEE 0315 0300 05AE 0062;0061 05AE 2DEE 0300 0315 0062;0061 05AE 2DEE 0300 0315 0062;0061 05AE 2DEE 0300 0315 0062;0061 05AE 2DEE 0300 0315 0062;
+0061 0315 0300 05AE 2DEF 0062;00E0 05AE 2DEF 0315 0062;0061 05AE 0300 2DEF 0315 0062;00E0 05AE 2DEF 0315 0062;0061 05AE 0300 2DEF 0315 0062;
+0061 2DEF 0315 0300 05AE 0062;0061 05AE 2DEF 0300 0315 0062;0061 05AE 2DEF 0300 0315 0062;0061 05AE 2DEF 0300 0315 0062;0061 05AE 2DEF 0300 0315 0062;
+0061 0315 0300 05AE 2DF0 0062;00E0 05AE 2DF0 0315 0062;0061 05AE 0300 2DF0 0315 0062;00E0 05AE 2DF0 0315 0062;0061 05AE 0300 2DF0 0315 0062;
+0061 2DF0 0315 0300 05AE 0062;0061 05AE 2DF0 0300 0315 0062;0061 05AE 2DF0 0300 0315 0062;0061 05AE 2DF0 0300 0315 0062;0061 05AE 2DF0 0300 0315 0062;
+0061 0315 0300 05AE 2DF1 0062;00E0 05AE 2DF1 0315 0062;0061 05AE 0300 2DF1 0315 0062;00E0 05AE 2DF1 0315 0062;0061 05AE 0300 2DF1 0315 0062;
+0061 2DF1 0315 0300 05AE 0062;0061 05AE 2DF1 0300 0315 0062;0061 05AE 2DF1 0300 0315 0062;0061 05AE 2DF1 0300 0315 0062;0061 05AE 2DF1 0300 0315 0062;
+0061 0315 0300 05AE 2DF2 0062;00E0 05AE 2DF2 0315 0062;0061 05AE 0300 2DF2 0315 0062;00E0 05AE 2DF2 0315 0062;0061 05AE 0300 2DF2 0315 0062;
+0061 2DF2 0315 0300 05AE 0062;0061 05AE 2DF2 0300 0315 0062;0061 05AE 2DF2 0300 0315 0062;0061 05AE 2DF2 0300 0315 0062;0061 05AE 2DF2 0300 0315 0062;
+0061 0315 0300 05AE 2DF3 0062;00E0 05AE 2DF3 0315 0062;0061 05AE 0300 2DF3 0315 0062;00E0 05AE 2DF3 0315 0062;0061 05AE 0300 2DF3 0315 0062;
+0061 2DF3 0315 0300 05AE 0062;0061 05AE 2DF3 0300 0315 0062;0061 05AE 2DF3 0300 0315 0062;0061 05AE 2DF3 0300 0315 0062;0061 05AE 2DF3 0300 0315 0062;
+0061 0315 0300 05AE 2DF4 0062;00E0 05AE 2DF4 0315 0062;0061 05AE 0300 2DF4 0315 0062;00E0 05AE 2DF4 0315 0062;0061 05AE 0300 2DF4 0315 0062;
+0061 2DF4 0315 0300 05AE 0062;0061 05AE 2DF4 0300 0315 0062;0061 05AE 2DF4 0300 0315 0062;0061 05AE 2DF4 0300 0315 0062;0061 05AE 2DF4 0300 0315 0062;
+0061 0315 0300 05AE 2DF5 0062;00E0 05AE 2DF5 0315 0062;0061 05AE 0300 2DF5 0315 0062;00E0 05AE 2DF5 0315 0062;0061 05AE 0300 2DF5 0315 0062;
+0061 2DF5 0315 0300 05AE 0062;0061 05AE 2DF5 0300 0315 0062;0061 05AE 2DF5 0300 0315 0062;0061 05AE 2DF5 0300 0315 0062;0061 05AE 2DF5 0300 0315 0062;
+0061 0315 0300 05AE 2DF6 0062;00E0 05AE 2DF6 0315 0062;0061 05AE 0300 2DF6 0315 0062;00E0 05AE 2DF6 0315 0062;0061 05AE 0300 2DF6 0315 0062;
+0061 2DF6 0315 0300 05AE 0062;0061 05AE 2DF6 0300 0315 0062;0061 05AE 2DF6 0300 0315 0062;0061 05AE 2DF6 0300 0315 0062;0061 05AE 2DF6 0300 0315 0062;
+0061 0315 0300 05AE 2DF7 0062;00E0 05AE 2DF7 0315 0062;0061 05AE 0300 2DF7 0315 0062;00E0 05AE 2DF7 0315 0062;0061 05AE 0300 2DF7 0315 0062;
+0061 2DF7 0315 0300 05AE 0062;0061 05AE 2DF7 0300 0315 0062;0061 05AE 2DF7 0300 0315 0062;0061 05AE 2DF7 0300 0315 0062;0061 05AE 2DF7 0300 0315 0062;
+0061 0315 0300 05AE 2DF8 0062;00E0 05AE 2DF8 0315 0062;0061 05AE 0300 2DF8 0315 0062;00E0 05AE 2DF8 0315 0062;0061 05AE 0300 2DF8 0315 0062;
+0061 2DF8 0315 0300 05AE 0062;0061 05AE 2DF8 0300 0315 0062;0061 05AE 2DF8 0300 0315 0062;0061 05AE 2DF8 0300 0315 0062;0061 05AE 2DF8 0300 0315 0062;
+0061 0315 0300 05AE 2DF9 0062;00E0 05AE 2DF9 0315 0062;0061 05AE 0300 2DF9 0315 0062;00E0 05AE 2DF9 0315 0062;0061 05AE 0300 2DF9 0315 0062;
+0061 2DF9 0315 0300 05AE 0062;0061 05AE 2DF9 0300 0315 0062;0061 05AE 2DF9 0300 0315 0062;0061 05AE 2DF9 0300 0315 0062;0061 05AE 2DF9 0300 0315 0062;
+0061 0315 0300 05AE 2DFA 0062;00E0 05AE 2DFA 0315 0062;0061 05AE 0300 2DFA 0315 0062;00E0 05AE 2DFA 0315 0062;0061 05AE 0300 2DFA 0315 0062;
+0061 2DFA 0315 0300 05AE 0062;0061 05AE 2DFA 0300 0315 0062;0061 05AE 2DFA 0300 0315 0062;0061 05AE 2DFA 0300 0315 0062;0061 05AE 2DFA 0300 0315 0062;
+0061 0315 0300 05AE 2DFB 0062;00E0 05AE 2DFB 0315 0062;0061 05AE 0300 2DFB 0315 0062;00E0 05AE 2DFB 0315 0062;0061 05AE 0300 2DFB 0315 0062;
+0061 2DFB 0315 0300 05AE 0062;0061 05AE 2DFB 0300 0315 0062;0061 05AE 2DFB 0300 0315 0062;0061 05AE 2DFB 0300 0315 0062;0061 05AE 2DFB 0300 0315 0062;
+0061 0315 0300 05AE 2DFC 0062;00E0 05AE 2DFC 0315 0062;0061 05AE 0300 2DFC 0315 0062;00E0 05AE 2DFC 0315 0062;0061 05AE 0300 2DFC 0315 0062;
+0061 2DFC 0315 0300 05AE 0062;0061 05AE 2DFC 0300 0315 0062;0061 05AE 2DFC 0300 0315 0062;0061 05AE 2DFC 0300 0315 0062;0061 05AE 2DFC 0300 0315 0062;
+0061 0315 0300 05AE 2DFD 0062;00E0 05AE 2DFD 0315 0062;0061 05AE 0300 2DFD 0315 0062;00E0 05AE 2DFD 0315 0062;0061 05AE 0300 2DFD 0315 0062;
+0061 2DFD 0315 0300 05AE 0062;0061 05AE 2DFD 0300 0315 0062;0061 05AE 2DFD 0300 0315 0062;0061 05AE 2DFD 0300 0315 0062;0061 05AE 2DFD 0300 0315 0062;
+0061 0315 0300 05AE 2DFE 0062;00E0 05AE 2DFE 0315 0062;0061 05AE 0300 2DFE 0315 0062;00E0 05AE 2DFE 0315 0062;0061 05AE 0300 2DFE 0315 0062;
+0061 2DFE 0315 0300 05AE 0062;0061 05AE 2DFE 0300 0315 0062;0061 05AE 2DFE 0300 0315 0062;0061 05AE 2DFE 0300 0315 0062;0061 05AE 2DFE 0300 0315 0062;
+0061 0315 0300 05AE 2DFF 0062;00E0 05AE 2DFF 0315 0062;0061 05AE 0300 2DFF 0315 0062;00E0 05AE 2DFF 0315 0062;0061 05AE 0300 2DFF 0315 0062;
+0061 2DFF 0315 0300 05AE 0062;0061 05AE 2DFF 0300 0315 0062;0061 05AE 2DFF 0300 0315 0062;0061 05AE 2DFF 0300 0315 0062;0061 05AE 2DFF 0300 0315 0062;
+0061 0316 302A 031B 302A 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;
+0061 302A 0316 302A 031B 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;
+0061 0300 05AE 1D16D 302B 0062;00E0 1D16D 05AE 302B 0062;0061 1D16D 05AE 302B 0300 0062;00E0 1D16D 05AE 302B 0062;0061 1D16D 05AE 302B 0300 0062;
+0061 302B 0300 05AE 1D16D 0062;00E0 1D16D 302B 05AE 0062;0061 1D16D 302B 05AE 0300 0062;00E0 1D16D 302B 05AE 0062;0061 1D16D 302B 05AE 0300 0062;
+0061 035C 0315 0300 302C 0062;00E0 0315 302C 035C 0062;0061 0300 0315 302C 035C 0062;00E0 0315 302C 035C 0062;0061 0300 0315 302C 035C 0062;
+0061 302C 035C 0315 0300 0062;00E0 302C 0315 035C 0062;0061 0300 302C 0315 035C 0062;00E0 302C 0315 035C 0062;0061 0300 302C 0315 035C 0062;
+0061 302E 059A 0316 302D 0062;0061 0316 059A 302D 302E 0062;0061 0316 059A 302D 302E 0062;0061 0316 059A 302D 302E 0062;0061 0316 059A 302D 302E 0062;
+0061 302D 302E 059A 0316 0062;0061 0316 302D 059A 302E 0062;0061 0316 302D 059A 302E 0062;0061 0316 302D 059A 302E 0062;0061 0316 302D 059A 302E 0062;
+0061 1D16D 302E 059A 302E 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;
+0061 302E 1D16D 302E 059A 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;0061 059A 302E 302E 1D16D 0062;
+0061 1D16D 302E 059A 302F 0062;0061 059A 302E 302F 1D16D 0062;0061 059A 302E 302F 1D16D 0062;0061 059A 302E 302F 1D16D 0062;0061 059A 302E 302F 1D16D 0062;
+0061 302F 1D16D 302E 059A 0062;0061 059A 302F 302E 1D16D 0062;0061 059A 302F 302E 1D16D 0062;0061 059A 302F 302E 1D16D 0062;0061 059A 302F 302E 1D16D 0062;
+0061 094D 3099 093C 3099 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;
+0061 3099 094D 3099 093C 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;0061 093C 3099 3099 094D 0062;
+0061 094D 3099 093C 309A 0062;0061 093C 3099 309A 094D 0062;0061 093C 3099 309A 094D 0062;0061 093C 3099 309A 094D 0062;0061 093C 3099 309A 094D 0062;
+0061 309A 094D 3099 093C 0062;0061 093C 309A 3099 094D 0062;0061 093C 309A 3099 094D 0062;0061 093C 309A 3099 094D 0062;0061 093C 309A 3099 094D 0062;
+0061 0315 0300 05AE A66F 0062;00E0 05AE A66F 0315 0062;0061 05AE 0300 A66F 0315 0062;00E0 05AE A66F 0315 0062;0061 05AE 0300 A66F 0315 0062;
+0061 A66F 0315 0300 05AE 0062;0061 05AE A66F 0300 0315 0062;0061 05AE A66F 0300 0315 0062;0061 05AE A66F 0300 0315 0062;0061 05AE A66F 0300 0315 0062;
+0061 0315 0300 05AE A67C 0062;00E0 05AE A67C 0315 0062;0061 05AE 0300 A67C 0315 0062;00E0 05AE A67C 0315 0062;0061 05AE 0300 A67C 0315 0062;
+0061 A67C 0315 0300 05AE 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;
+0061 0315 0300 05AE A67D 0062;00E0 05AE A67D 0315 0062;0061 05AE 0300 A67D 0315 0062;00E0 05AE A67D 0315 0062;0061 05AE 0300 A67D 0315 0062;
+0061 A67D 0315 0300 05AE 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;
+0061 05B0 094D 3099 A806 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;
+0061 A806 05B0 094D 3099 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;
+0061 05B0 094D 3099 A8C4 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;
+0061 A8C4 05B0 094D 3099 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;
+0061 059A 0316 302A A92B 0062;0061 302A 0316 A92B 059A 0062;0061 302A 0316 A92B 059A 0062;0061 302A 0316 A92B 059A 0062;0061 302A 0316 A92B 059A 0062;
+0061 A92B 059A 0316 302A 0062;0061 302A A92B 0316 059A 0062;0061 302A A92B 0316 059A 0062;0061 302A A92B 0316 059A 0062;0061 302A A92B 0316 059A 0062;
+0061 059A 0316 302A A92C 0062;0061 302A 0316 A92C 059A 0062;0061 302A 0316 A92C 059A 0062;0061 302A 0316 A92C 059A 0062;0061 302A 0316 A92C 059A 0062;
+0061 A92C 059A 0316 302A 0062;0061 302A A92C 0316 059A 0062;0061 302A A92C 0316 059A 0062;0061 302A A92C 0316 059A 0062;0061 302A A92C 0316 059A 0062;
+0061 059A 0316 302A A92D 0062;0061 302A 0316 A92D 059A 0062;0061 302A 0316 A92D 059A 0062;0061 302A 0316 A92D 059A 0062;0061 302A 0316 A92D 059A 0062;
+0061 A92D 059A 0316 302A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 0316 059A 0062;
+0061 05B0 094D 3099 A953 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;
+0061 A953 05B0 094D 3099 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;
+0061 064B FB1E 05C2 FB1E 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;
+0061 FB1E 064B FB1E 05C2 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;
+0061 0315 0300 05AE FE20 0062;00E0 05AE FE20 0315 0062;0061 05AE 0300 FE20 0315 0062;00E0 05AE FE20 0315 0062;0061 05AE 0300 FE20 0315 0062;
+0061 FE20 0315 0300 05AE 0062;0061 05AE FE20 0300 0315 0062;0061 05AE FE20 0300 0315 0062;0061 05AE FE20 0300 0315 0062;0061 05AE FE20 0300 0315 0062;
+0061 0315 0300 05AE FE21 0062;00E0 05AE FE21 0315 0062;0061 05AE 0300 FE21 0315 0062;00E0 05AE FE21 0315 0062;0061 05AE 0300 FE21 0315 0062;
+0061 FE21 0315 0300 05AE 0062;0061 05AE FE21 0300 0315 0062;0061 05AE FE21 0300 0315 0062;0061 05AE FE21 0300 0315 0062;0061 05AE FE21 0300 0315 0062;
+0061 0315 0300 05AE FE22 0062;00E0 05AE FE22 0315 0062;0061 05AE 0300 FE22 0315 0062;00E0 05AE FE22 0315 0062;0061 05AE 0300 FE22 0315 0062;
+0061 FE22 0315 0300 05AE 0062;0061 05AE FE22 0300 0315 0062;0061 05AE FE22 0300 0315 0062;0061 05AE FE22 0300 0315 0062;0061 05AE FE22 0300 0315 0062;
+0061 0315 0300 05AE FE23 0062;00E0 05AE FE23 0315 0062;0061 05AE 0300 FE23 0315 0062;00E0 05AE FE23 0315 0062;0061 05AE 0300 FE23 0315 0062;
+0061 FE23 0315 0300 05AE 0062;0061 05AE FE23 0300 0315 0062;0061 05AE FE23 0300 0315 0062;0061 05AE FE23 0300 0315 0062;0061 05AE FE23 0300 0315 0062;
+0061 0315 0300 05AE FE24 0062;00E0 05AE FE24 0315 0062;0061 05AE 0300 FE24 0315 0062;00E0 05AE FE24 0315 0062;0061 05AE 0300 FE24 0315 0062;
+0061 FE24 0315 0300 05AE 0062;0061 05AE FE24 0300 0315 0062;0061 05AE FE24 0300 0315 0062;0061 05AE FE24 0300 0315 0062;0061 05AE FE24 0300 0315 0062;
+0061 0315 0300 05AE FE25 0062;00E0 05AE FE25 0315 0062;0061 05AE 0300 FE25 0315 0062;00E0 05AE FE25 0315 0062;0061 05AE 0300 FE25 0315 0062;
+0061 FE25 0315 0300 05AE 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062;0061 05AE FE25 0300 0315 0062;
+0061 0315 0300 05AE FE26 0062;00E0 05AE FE26 0315 0062;0061 05AE 0300 FE26 0315 0062;00E0 05AE FE26 0315 0062;0061 05AE 0300 FE26 0315 0062;
+0061 FE26 0315 0300 05AE 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062;0061 05AE FE26 0300 0315 0062;
+0061 059A 0316 302A 101FD 0062;0061 302A 0316 101FD 059A 0062;0061 302A 0316 101FD 059A 0062;0061 302A 0316 101FD 059A 0062;0061 302A 0316 101FD 059A 0062;
+0061 101FD 059A 0316 302A 0062;0061 302A 101FD 0316 059A 0062;0061 302A 101FD 0316 059A 0062;0061 302A 101FD 0316 059A 0062;0061 302A 101FD 0316 059A 0062;
+0061 059A 0316 302A 10A0D 0062;0061 302A 0316 10A0D 059A 0062;0061 302A 0316 10A0D 059A 0062;0061 302A 0316 10A0D 059A 0062;0061 302A 0316 10A0D 059A 0062;
+0061 10A0D 059A 0316 302A 0062;0061 302A 10A0D 0316 059A 0062;0061 302A 10A0D 0316 059A 0062;0061 302A 10A0D 0316 059A 0062;0061 302A 10A0D 0316 059A 0062;
+0061 0315 0300 05AE 10A0F 0062;00E0 05AE 10A0F 0315 0062;0061 05AE 0300 10A0F 0315 0062;00E0 05AE 10A0F 0315 0062;0061 05AE 0300 10A0F 0315 0062;
+0061 10A0F 0315 0300 05AE 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 0300 0315 0062;
+0061 0315 0300 05AE 10A38 0062;00E0 05AE 10A38 0315 0062;0061 05AE 0300 10A38 0315 0062;00E0 05AE 10A38 0315 0062;0061 05AE 0300 10A38 0315 0062;
+0061 10A38 0315 0300 05AE 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 0300 0315 0062;
+0061 093C 0334 10A39 0062;0061 0334 10A39 093C 0062;0061 0334 10A39 093C 0062;0061 0334 10A39 093C 0062;0061 0334 10A39 093C 0062;
+0061 10A39 093C 0334 0062;0061 10A39 0334 093C 0062;0061 10A39 0334 093C 0062;0061 10A39 0334 093C 0062;0061 10A39 0334 093C 0062;
+0061 059A 0316 302A 10A3A 0062;0061 302A 0316 10A3A 059A 0062;0061 302A 0316 10A3A 059A 0062;0061 302A 0316 10A3A 059A 0062;0061 302A 0316 10A3A 059A 0062;
+0061 10A3A 059A 0316 302A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;
+0061 05B0 094D 3099 10A3F 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;
+0061 10A3F 05B0 094D 3099 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;
+0061 302A 031B 1DCE 1D165 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;
+0061 1D165 302A 031B 1DCE 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;
+0061 302A 031B 1DCE 1D166 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;
+0061 1D166 302A 031B 1DCE 0062;0061 1DCE 1D166 031B 302A 0062;0061 1DCE 1D166 031B 302A 0062;0061 1DCE 1D166 031B 302A 0062;0061 1DCE 1D166 031B 302A 0062;
+0061 093C 0334 1D167 0062;0061 0334 1D167 093C 0062;0061 0334 1D167 093C 0062;0061 0334 1D167 093C 0062;0061 0334 1D167 093C 0062;
+0061 1D167 093C 0334 0062;0061 1D167 0334 093C 0062;0061 1D167 0334 093C 0062;0061 1D167 0334 093C 0062;0061 1D167 0334 093C 0062;
+0061 093C 0334 1D168 0062;0061 0334 1D168 093C 0062;0061 0334 1D168 093C 0062;0061 0334 1D168 093C 0062;0061 0334 1D168 093C 0062;
+0061 1D168 093C 0334 0062;0061 1D168 0334 093C 0062;0061 1D168 0334 093C 0062;0061 1D168 0334 093C 0062;0061 1D168 0334 093C 0062;
+0061 093C 0334 1D169 0062;0061 0334 1D169 093C 0062;0061 0334 1D169 093C 0062;0061 0334 1D169 093C 0062;0061 0334 1D169 093C 0062;
+0061 1D169 093C 0334 0062;0061 1D169 0334 093C 0062;0061 1D169 0334 093C 0062;0061 1D169 0334 093C 0062;0061 1D169 0334 093C 0062;
+0061 05AE 1D16D 302E 1D16D 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;
+0061 1D16D 05AE 1D16D 302E 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;
+0061 302A 031B 1DCE 1D16E 0062;0061 1DCE 031B 1D16E 302A 0062;0061 1DCE 031B 1D16E 302A 0062;0061 1DCE 031B 1D16E 302A 0062;0061 1DCE 031B 1D16E 302A 0062;
+0061 1D16E 302A 031B 1DCE 0062;0061 1DCE 1D16E 031B 302A 0062;0061 1DCE 1D16E 031B 302A 0062;0061 1DCE 1D16E 031B 302A 0062;0061 1DCE 1D16E 031B 302A 0062;
+0061 302A 031B 1DCE 1D16F 0062;0061 1DCE 031B 1D16F 302A 0062;0061 1DCE 031B 1D16F 302A 0062;0061 1DCE 031B 1D16F 302A 0062;0061 1DCE 031B 1D16F 302A 0062;
+0061 1D16F 302A 031B 1DCE 0062;0061 1DCE 1D16F 031B 302A 0062;0061 1DCE 1D16F 031B 302A 0062;0061 1DCE 1D16F 031B 302A 0062;0061 1DCE 1D16F 031B 302A 0062;
+0061 302A 031B 1DCE 1D170 0062;0061 1DCE 031B 1D170 302A 0062;0061 1DCE 031B 1D170 302A 0062;0061 1DCE 031B 1D170 302A 0062;0061 1DCE 031B 1D170 302A 0062;
+0061 1D170 302A 031B 1DCE 0062;0061 1DCE 1D170 031B 302A 0062;0061 1DCE 1D170 031B 302A 0062;0061 1DCE 1D170 031B 302A 0062;0061 1DCE 1D170 031B 302A 0062;
+0061 302A 031B 1DCE 1D171 0062;0061 1DCE 031B 1D171 302A 0062;0061 1DCE 031B 1D171 302A 0062;0061 1DCE 031B 1D171 302A 0062;0061 1DCE 031B 1D171 302A 0062;
+0061 1D171 302A 031B 1DCE 0062;0061 1DCE 1D171 031B 302A 0062;0061 1DCE 1D171 031B 302A 0062;0061 1DCE 1D171 031B 302A 0062;0061 1DCE 1D171 031B 302A 0062;
+0061 302A 031B 1DCE 1D172 0062;0061 1DCE 031B 1D172 302A 0062;0061 1DCE 031B 1D172 302A 0062;0061 1DCE 031B 1D172 302A 0062;0061 1DCE 031B 1D172 302A 0062;
+0061 1D172 302A 031B 1DCE 0062;0061 1DCE 1D172 031B 302A 0062;0061 1DCE 1D172 031B 302A 0062;0061 1DCE 1D172 031B 302A 0062;0061 1DCE 1D172 031B 302A 0062;
+0061 059A 0316 302A 1D17B 0062;0061 302A 0316 1D17B 059A 0062;0061 302A 0316 1D17B 059A 0062;0061 302A 0316 1D17B 059A 0062;0061 302A 0316 1D17B 059A 0062;
+0061 1D17B 059A 0316 302A 0062;0061 302A 1D17B 0316 059A 0062;0061 302A 1D17B 0316 059A 0062;0061 302A 1D17B 0316 059A 0062;0061 302A 1D17B 0316 059A 0062;
+0061 059A 0316 302A 1D17C 0062;0061 302A 0316 1D17C 059A 0062;0061 302A 0316 1D17C 059A 0062;0061 302A 0316 1D17C 059A 0062;0061 302A 0316 1D17C 059A 0062;
+0061 1D17C 059A 0316 302A 0062;0061 302A 1D17C 0316 059A 0062;0061 302A 1D17C 0316 059A 0062;0061 302A 1D17C 0316 059A 0062;0061 302A 1D17C 0316 059A 0062;
+0061 059A 0316 302A 1D17D 0062;0061 302A 0316 1D17D 059A 0062;0061 302A 0316 1D17D 059A 0062;0061 302A 0316 1D17D 059A 0062;0061 302A 0316 1D17D 059A 0062;
+0061 1D17D 059A 0316 302A 0062;0061 302A 1D17D 0316 059A 0062;0061 302A 1D17D 0316 059A 0062;0061 302A 1D17D 0316 059A 0062;0061 302A 1D17D 0316 059A 0062;
+0061 059A 0316 302A 1D17E 0062;0061 302A 0316 1D17E 059A 0062;0061 302A 0316 1D17E 059A 0062;0061 302A 0316 1D17E 059A 0062;0061 302A 0316 1D17E 059A 0062;
+0061 1D17E 059A 0316 302A 0062;0061 302A 1D17E 0316 059A 0062;0061 302A 1D17E 0316 059A 0062;0061 302A 1D17E 0316 059A 0062;0061 302A 1D17E 0316 059A 0062;
+0061 059A 0316 302A 1D17F 0062;0061 302A 0316 1D17F 059A 0062;0061 302A 0316 1D17F 059A 0062;0061 302A 0316 1D17F 059A 0062;0061 302A 0316 1D17F 059A 0062;
+0061 1D17F 059A 0316 302A 0062;0061 302A 1D17F 0316 059A 0062;0061 302A 1D17F 0316 059A 0062;0061 302A 1D17F 0316 059A 0062;0061 302A 1D17F 0316 059A 0062;
+0061 059A 0316 302A 1D180 0062;0061 302A 0316 1D180 059A 0062;0061 302A 0316 1D180 059A 0062;0061 302A 0316 1D180 059A 0062;0061 302A 0316 1D180 059A 0062;
+0061 1D180 059A 0316 302A 0062;0061 302A 1D180 0316 059A 0062;0061 302A 1D180 0316 059A 0062;0061 302A 1D180 0316 059A 0062;0061 302A 1D180 0316 059A 0062;
+0061 059A 0316 302A 1D181 0062;0061 302A 0316 1D181 059A 0062;0061 302A 0316 1D181 059A 0062;0061 302A 0316 1D181 059A 0062;0061 302A 0316 1D181 059A 0062;
+0061 1D181 059A 0316 302A 0062;0061 302A 1D181 0316 059A 0062;0061 302A 1D181 0316 059A 0062;0061 302A 1D181 0316 059A 0062;0061 302A 1D181 0316 059A 0062;
+0061 059A 0316 302A 1D182 0062;0061 302A 0316 1D182 059A 0062;0061 302A 0316 1D182 059A 0062;0061 302A 0316 1D182 059A 0062;0061 302A 0316 1D182 059A 0062;
+0061 1D182 059A 0316 302A 0062;0061 302A 1D182 0316 059A 0062;0061 302A 1D182 0316 059A 0062;0061 302A 1D182 0316 059A 0062;0061 302A 1D182 0316 059A 0062;
+0061 0315 0300 05AE 1D185 0062;00E0 05AE 1D185 0315 0062;0061 05AE 0300 1D185 0315 0062;00E0 05AE 1D185 0315 0062;0061 05AE 0300 1D185 0315 0062;
+0061 1D185 0315 0300 05AE 0062;0061 05AE 1D185 0300 0315 0062;0061 05AE 1D185 0300 0315 0062;0061 05AE 1D185 0300 0315 0062;0061 05AE 1D185 0300 0315 0062;
+0061 0315 0300 05AE 1D186 0062;00E0 05AE 1D186 0315 0062;0061 05AE 0300 1D186 0315 0062;00E0 05AE 1D186 0315 0062;0061 05AE 0300 1D186 0315 0062;
+0061 1D186 0315 0300 05AE 0062;0061 05AE 1D186 0300 0315 0062;0061 05AE 1D186 0300 0315 0062;0061 05AE 1D186 0300 0315 0062;0061 05AE 1D186 0300 0315 0062;
+0061 0315 0300 05AE 1D187 0062;00E0 05AE 1D187 0315 0062;0061 05AE 0300 1D187 0315 0062;00E0 05AE 1D187 0315 0062;0061 05AE 0300 1D187 0315 0062;
+0061 1D187 0315 0300 05AE 0062;0061 05AE 1D187 0300 0315 0062;0061 05AE 1D187 0300 0315 0062;0061 05AE 1D187 0300 0315 0062;0061 05AE 1D187 0300 0315 0062;
+0061 0315 0300 05AE 1D188 0062;00E0 05AE 1D188 0315 0062;0061 05AE 0300 1D188 0315 0062;00E0 05AE 1D188 0315 0062;0061 05AE 0300 1D188 0315 0062;
+0061 1D188 0315 0300 05AE 0062;0061 05AE 1D188 0300 0315 0062;0061 05AE 1D188 0300 0315 0062;0061 05AE 1D188 0300 0315 0062;0061 05AE 1D188 0300 0315 0062;
+0061 0315 0300 05AE 1D189 0062;00E0 05AE 1D189 0315 0062;0061 05AE 0300 1D189 0315 0062;00E0 05AE 1D189 0315 0062;0061 05AE 0300 1D189 0315 0062;
+0061 1D189 0315 0300 05AE 0062;0061 05AE 1D189 0300 0315 0062;0061 05AE 1D189 0300 0315 0062;0061 05AE 1D189 0300 0315 0062;0061 05AE 1D189 0300 0315 0062;
+0061 059A 0316 302A 1D18A 0062;0061 302A 0316 1D18A 059A 0062;0061 302A 0316 1D18A 059A 0062;0061 302A 0316 1D18A 059A 0062;0061 302A 0316 1D18A 059A 0062;
+0061 1D18A 059A 0316 302A 0062;0061 302A 1D18A 0316 059A 0062;0061 302A 1D18A 0316 059A 0062;0061 302A 1D18A 0316 059A 0062;0061 302A 1D18A 0316 059A 0062;
+0061 059A 0316 302A 1D18B 0062;0061 302A 0316 1D18B 059A 0062;0061 302A 0316 1D18B 059A 0062;0061 302A 0316 1D18B 059A 0062;0061 302A 0316 1D18B 059A 0062;
+0061 1D18B 059A 0316 302A 0062;0061 302A 1D18B 0316 059A 0062;0061 302A 1D18B 0316 059A 0062;0061 302A 1D18B 0316 059A 0062;0061 302A 1D18B 0316 059A 0062;
+0061 0315 0300 05AE 1D1AA 0062;00E0 05AE 1D1AA 0315 0062;0061 05AE 0300 1D1AA 0315 0062;00E0 05AE 1D1AA 0315 0062;0061 05AE 0300 1D1AA 0315 0062;
+0061 1D1AA 0315 0300 05AE 0062;0061 05AE 1D1AA 0300 0315 0062;0061 05AE 1D1AA 0300 0315 0062;0061 05AE 1D1AA 0300 0315 0062;0061 05AE 1D1AA 0300 0315 0062;
+0061 0315 0300 05AE 1D1AB 0062;00E0 05AE 1D1AB 0315 0062;0061 05AE 0300 1D1AB 0315 0062;00E0 05AE 1D1AB 0315 0062;0061 05AE 0300 1D1AB 0315 0062;
+0061 1D1AB 0315 0300 05AE 0062;0061 05AE 1D1AB 0300 0315 0062;0061 05AE 1D1AB 0300 0315 0062;0061 05AE 1D1AB 0300 0315 0062;0061 05AE 1D1AB 0300 0315 0062;
+0061 0315 0300 05AE 1D1AC 0062;00E0 05AE 1D1AC 0315 0062;0061 05AE 0300 1D1AC 0315 0062;00E0 05AE 1D1AC 0315 0062;0061 05AE 0300 1D1AC 0315 0062;
+0061 1D1AC 0315 0300 05AE 0062;0061 05AE 1D1AC 0300 0315 0062;0061 05AE 1D1AC 0300 0315 0062;0061 05AE 1D1AC 0300 0315 0062;0061 05AE 1D1AC 0300 0315 0062;
+0061 0315 0300 05AE 1D1AD 0062;00E0 05AE 1D1AD 0315 0062;0061 05AE 0300 1D1AD 0315 0062;00E0 05AE 1D1AD 0315 0062;0061 05AE 0300 1D1AD 0315 0062;
+0061 1D1AD 0315 0300 05AE 0062;0061 05AE 1D1AD 0300 0315 0062;0061 05AE 1D1AD 0300 0315 0062;0061 05AE 1D1AD 0300 0315 0062;0061 05AE 1D1AD 0300 0315 0062;
+0061 0315 0300 05AE 1D242 0062;00E0 05AE 1D242 0315 0062;0061 05AE 0300 1D242 0315 0062;00E0 05AE 1D242 0315 0062;0061 05AE 0300 1D242 0315 0062;
+0061 1D242 0315 0300 05AE 0062;0061 05AE 1D242 0300 0315 0062;0061 05AE 1D242 0300 0315 0062;0061 05AE 1D242 0300 0315 0062;0061 05AE 1D242 0300 0315 0062;
+0061 0315 0300 05AE 1D243 0062;00E0 05AE 1D243 0315 0062;0061 05AE 0300 1D243 0315 0062;00E0 05AE 1D243 0315 0062;0061 05AE 0300 1D243 0315 0062;
+0061 1D243 0315 0300 05AE 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062;0061 05AE 1D243 0300 0315 0062;
+0061 0315 0300 05AE 1D244 0062;00E0 05AE 1D244 0315 0062;0061 05AE 0300 1D244 0315 0062;00E0 05AE 1D244 0315 0062;0061 05AE 0300 1D244 0315 0062;
+0061 1D244 0315 0300 05AE 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062;0061 05AE 1D244 0300 0315 0062;
+
+@Part3
+
+09C7 0334 09BE;09C7 0334 09BE;09C7 0334 09BE;09C7 0334 09BE;09C7 0334 09BE;
+09C7 0334 09D7;09C7 0334 09D7;09C7 0334 09D7;09C7 0334 09D7;09C7 0334 09D7;
+0B47 0334 0B3E;0B47 0334 0B3E;0B47 0334 0B3E;0B47 0334 0B3E;0B47 0334 0B3E;
+0B47 0334 0B56;0B47 0334 0B56;0B47 0334 0B56;0B47 0334 0B56;0B47 0334 0B56;
+0B47 0334 0B57;0B47 0334 0B57;0B47 0334 0B57;0B47 0334 0B57;0B47 0334 0B57;
+0B92 0334 0BD7;0B92 0334 0BD7;0B92 0334 0BD7;0B92 0334 0BD7;0B92 0334 0BD7;
+0BC6 0334 0BBE;0BC6 0334 0BBE;0BC6 0334 0BBE;0BC6 0334 0BBE;0BC6 0334 0BBE;
+0BC6 0334 0BD7;0BC6 0334 0BD7;0BC6 0334 0BD7;0BC6 0334 0BD7;0BC6 0334 0BD7;
+0BC7 0334 0BBE;0BC7 0334 0BBE;0BC7 0334 0BBE;0BC7 0334 0BBE;0BC7 0334 0BBE;
+0CBF 0334 0CD5;0CBF 0334 0CD5;0CBF 0334 0CD5;0CBF 0334 0CD5;0CBF 0334 0CD5;
+0CC6 0334 0CC2;0CC6 0334 0CC2;0CC6 0334 0CC2;0CC6 0334 0CC2;0CC6 0334 0CC2;
+0CC6 0334 0CD5;0CC6 0334 0CD5;0CC6 0334 0CD5;0CC6 0334 0CD5;0CC6 0334 0CD5;
+0CC6 0334 0CD6;0CC6 0334 0CD6;0CC6 0334 0CD6;0CC6 0334 0CD6;0CC6 0334 0CD6;
+0CCA 0334 0CD5;0CCA 0334 0CD5;0CC6 0CC2 0334 0CD5;0CCA 0334 0CD5;0CC6 0CC2 0334 0CD5;
+0D46 0334 0D3E;0D46 0334 0D3E;0D46 0334 0D3E;0D46 0334 0D3E;0D46 0334 0D3E;
+0D46 0334 0D57;0D46 0334 0D57;0D46 0334 0D57;0D46 0334 0D57;0D46 0334 0D57;
+0D47 0334 0D3E;0D47 0334 0D3E;0D47 0334 0D3E;0D47 0334 0D3E;0D47 0334 0D3E;
+0DD9 0334 0DCF;0DD9 0334 0DCF;0DD9 0334 0DCF;0DD9 0334 0DCF;0DD9 0334 0DCF;
+0DD9 0334 0DDF;0DD9 0334 0DDF;0DD9 0334 0DDF;0DD9 0334 0DDF;0DD9 0334 0DDF;
+0F40 0334 0FB5;0F40 0334 0FB5;0F40 0334 0FB5;0F40 0334 0FB5;0F40 0334 0FB5;
+0F42 0334 0FB7;0F42 0334 0FB7;0F42 0334 0FB7;0F42 0334 0FB7;0F42 0334 0FB7;
+0F4C 0334 0FB7;0F4C 0334 0FB7;0F4C 0334 0FB7;0F4C 0334 0FB7;0F4C 0334 0FB7;
+0F51 0334 0FB7;0F51 0334 0FB7;0F51 0334 0FB7;0F51 0334 0FB7;0F51 0334 0FB7;
+0F56 0334 0FB7;0F56 0334 0FB7;0F56 0334 0FB7;0F56 0334 0FB7;0F56 0334 0FB7;
+0F5B 0334 0FB7;0F5B 0334 0FB7;0F5B 0334 0FB7;0F5B 0334 0FB7;0F5B 0334 0FB7;
+0F90 0334 0FB5;0F90 0334 0FB5;0F90 0334 0FB5;0F90 0334 0FB5;0F90 0334 0FB5;
+0F92 0334 0FB7;0F92 0334 0FB7;0F92 0334 0FB7;0F92 0334 0FB7;0F92 0334 0FB7;
+0F9C 0334 0FB7;0F9C 0334 0FB7;0F9C 0334 0FB7;0F9C 0334 0FB7;0F9C 0334 0FB7;
+0FA1 0334 0FB7;0FA1 0334 0FB7;0FA1 0334 0FB7;0FA1 0334 0FB7;0FA1 0334 0FB7;
+0FA6 0334 0FB7;0FA6 0334 0FB7;0FA6 0334 0FB7;0FA6 0334 0FB7;0FA6 0334 0FB7;
+0FAB 0334 0FB7;0FAB 0334 0FB7;0FAB 0334 0FB7;0FAB 0334 0FB7;0FAB 0334 0FB7;
+1025 0334 102E;1025 0334 102E;1025 0334 102E;1025 0334 102E;1025 0334 102E;
+1100 0334 1161;1100 0334 1161;1100 0334 1161;1100 0334 1161;1100 0334 1161;
+1100 0334 116E;1100 0334 116E;1100 0334 116E;1100 0334 116E;1100 0334 116E;
+1101 0334 1166;1101 0334 1166;1101 0334 1166;1101 0334 1166;1101 0334 1166;
+1101 0334 1173;1101 0334 1173;1101 0334 1173;1101 0334 1173;1101 0334 1173;
+1102 0334 116B;1102 0334 116B;1102 0334 116B;1102 0334 116B;1102 0334 116B;
+1103 0334 1163;1103 0334 1163;1103 0334 1163;1103 0334 1163;1103 0334 1163;
+1103 0334 1170;1103 0334 1170;1103 0334 1170;1103 0334 1170;1103 0334 1170;
+1104 0334 1168;1104 0334 1168;1104 0334 1168;1104 0334 1168;1104 0334 1168;
+1104 0334 1175;1104 0334 1175;1104 0334 1175;1104 0334 1175;1104 0334 1175;
+1105 0334 116D;1105 0334 116D;1105 0334 116D;1105 0334 116D;1105 0334 116D;
+1106 0334 1165;1106 0334 1165;1106 0334 1165;1106 0334 1165;1106 0334 1165;
+1106 0334 1172;1106 0334 1172;1106 0334 1172;1106 0334 1172;1106 0334 1172;
+1107 0334 116A;1107 0334 116A;1107 0334 116A;1107 0334 116A;1107 0334 116A;
+1108 0334 1162;1108 0334 1162;1108 0334 1162;1108 0334 1162;1108 0334 1162;
+1108 0334 116F;1108 0334 116F;1108 0334 116F;1108 0334 116F;1108 0334 116F;
+1109 0334 1167;1109 0334 1167;1109 0334 1167;1109 0334 1167;1109 0334 1167;
+1109 0334 1174;1109 0334 1174;1109 0334 1174;1109 0334 1174;1109 0334 1174;
+110A 0334 116C;110A 0334 116C;110A 0334 116C;110A 0334 116C;110A 0334 116C;
+110B 0334 1164;110B 0334 1164;110B 0334 1164;110B 0334 1164;110B 0334 1164;
+110B 0334 1171;110B 0334 1171;110B 0334 1171;110B 0334 1171;110B 0334 1171;
+110C 0334 1169;110C 0334 1169;110C 0334 1169;110C 0334 1169;110C 0334 1169;
+110D 0334 1161;110D 0334 1161;110D 0334 1161;110D 0334 1161;110D 0334 1161;
+110D 0334 116E;110D 0334 116E;110D 0334 116E;110D 0334 116E;110D 0334 116E;
+110E 0334 1166;110E 0334 1166;110E 0334 1166;110E 0334 1166;110E 0334 1166;
+110E 0334 1173;110E 0334 1173;110E 0334 1173;110E 0334 1173;110E 0334 1173;
+110F 0334 116B;110F 0334 116B;110F 0334 116B;110F 0334 116B;110F 0334 116B;
+1110 0334 1163;1110 0334 1163;1110 0334 1163;1110 0334 1163;1110 0334 1163;
+1110 0334 1170;1110 0334 1170;1110 0334 1170;1110 0334 1170;1110 0334 1170;
+1111 0334 1168;1111 0334 1168;1111 0334 1168;1111 0334 1168;1111 0334 1168;
+1111 0334 1175;1111 0334 1175;1111 0334 1175;1111 0334 1175;1111 0334 1175;
+1112 0334 116D;1112 0334 116D;1112 0334 116D;1112 0334 116D;1112 0334 116D;
+1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;
+1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;
+1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;
+1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;
+1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;
+1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;
+1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;
+1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;
+1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;
+1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;
+1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;
+AC54 0334 11AE;AC54 0334 11AE;1100 1164 0334 11AE;AC54 0334 11AE;1100 1164 0334 11AE;
+ACA8 0334 11B5;ACA8 0334 11B5;1100 1167 0334 11B5;ACA8 0334 11B5;1100 1167 0334 11B5;
+ACFC 0334 11BC;ACFC 0334 11BC;1100 116A 0334 11BC;ACFC 0334 11BC;1100 116A 0334 11BC;
+ADC0 0334 11AE;ADC0 0334 11AE;1100 1171 0334 11AE;ADC0 0334 11AE;1100 1171 0334 11AE;
+AE14 0334 11B5;AE14 0334 11B5;1100 1174 0334 11B5;AE14 0334 11B5;1100 1174 0334 11B5;
+AE68 0334 11BC;AE68 0334 11BC;1101 1162 0334 11BC;AE68 0334 11BC;1101 1162 0334 11BC;
+AF2C 0334 11AE;AF2C 0334 11AE;1101 1169 0334 11AE;AF2C 0334 11AE;1101 1169 0334 11AE;
+AF80 0334 11B5;AF80 0334 11B5;1101 116C 0334 11B5;AF80 0334 11B5;1101 116C 0334 11B5;
+AFD4 0334 11BC;AFD4 0334 11BC;1101 116F 0334 11BC;AFD4 0334 11BC;1101 116F 0334 11BC;
+B098 0334 11AE;B098 0334 11AE;1102 1161 0334 11AE;B098 0334 11AE;1102 1161 0334 11AE;
+B0EC 0334 11B5;B0EC 0334 11B5;1102 1164 0334 11B5;B0EC 0334 11B5;1102 1164 0334 11B5;
+B140 0334 11BC;B140 0334 11BC;1102 1167 0334 11BC;B140 0334 11BC;1102 1167 0334 11BC;
+B204 0334 11AE;B204 0334 11AE;1102 116E 0334 11AE;B204 0334 11AE;1102 116E 0334 11AE;
+B258 0334 11B5;B258 0334 11B5;1102 1171 0334 11B5;B258 0334 11B5;1102 1171 0334 11B5;
+B2AC 0334 11BC;B2AC 0334 11BC;1102 1174 0334 11BC;B2AC 0334 11BC;1102 1174 0334 11BC;
+B370 0334 11AE;B370 0334 11AE;1103 1166 0334 11AE;B370 0334 11AE;1103 1166 0334 11AE;
+B3C4 0334 11B5;B3C4 0334 11B5;1103 1169 0334 11B5;B3C4 0334 11B5;1103 1169 0334 11B5;
+B418 0334 11BC;B418 0334 11BC;1103 116C 0334 11BC;B418 0334 11BC;1103 116C 0334 11BC;
+B4DC 0334 11AE;B4DC 0334 11AE;1103 1173 0334 11AE;B4DC 0334 11AE;1103 1173 0334 11AE;
+B530 0334 11B5;B530 0334 11B5;1104 1161 0334 11B5;B530 0334 11B5;1104 1161 0334 11B5;
+B584 0334 11BC;B584 0334 11BC;1104 1164 0334 11BC;B584 0334 11BC;1104 1164 0334 11BC;
+B648 0334 11AE;B648 0334 11AE;1104 116B 0334 11AE;B648 0334 11AE;1104 116B 0334 11AE;
+B69C 0334 11B5;B69C 0334 11B5;1104 116E 0334 11B5;B69C 0334 11B5;1104 116E 0334 11B5;
+B6F0 0334 11BC;B6F0 0334 11BC;1104 1171 0334 11BC;B6F0 0334 11BC;1104 1171 0334 11BC;
+B7B4 0334 11AE;B7B4 0334 11AE;1105 1163 0334 11AE;B7B4 0334 11AE;1105 1163 0334 11AE;
+B808 0334 11B5;B808 0334 11B5;1105 1166 0334 11B5;B808 0334 11B5;1105 1166 0334 11B5;
+B85C 0334 11BC;B85C 0334 11BC;1105 1169 0334 11BC;B85C 0334 11BC;1105 1169 0334 11BC;
+B920 0334 11AE;B920 0334 11AE;1105 1170 0334 11AE;B920 0334 11AE;1105 1170 0334 11AE;
+B974 0334 11B5;B974 0334 11B5;1105 1173 0334 11B5;B974 0334 11B5;1105 1173 0334 11B5;
+B9C8 0334 11BC;B9C8 0334 11BC;1106 1161 0334 11BC;B9C8 0334 11BC;1106 1161 0334 11BC;
+BA8C 0334 11AE;BA8C 0334 11AE;1106 1168 0334 11AE;BA8C 0334 11AE;1106 1168 0334 11AE;
+BAE0 0334 11B5;BAE0 0334 11B5;1106 116B 0334 11B5;BAE0 0334 11B5;1106 116B 0334 11B5;
+BB34 0334 11BC;BB34 0334 11BC;1106 116E 0334 11BC;BB34 0334 11BC;1106 116E 0334 11BC;
+BBF8 0334 11AE;BBF8 0334 11AE;1106 1175 0334 11AE;BBF8 0334 11AE;1106 1175 0334 11AE;
+BC4C 0334 11B5;BC4C 0334 11B5;1107 1163 0334 11B5;BC4C 0334 11B5;1107 1163 0334 11B5;
+BCA0 0334 11BC;BCA0 0334 11BC;1107 1166 0334 11BC;BCA0 0334 11BC;1107 1166 0334 11BC;
+BD64 0334 11AE;BD64 0334 11AE;1107 116D 0334 11AE;BD64 0334 11AE;1107 116D 0334 11AE;
+BDB8 0334 11B5;BDB8 0334 11B5;1107 1170 0334 11B5;BDB8 0334 11B5;1107 1170 0334 11B5;
+BE0C 0334 11BC;BE0C 0334 11BC;1107 1173 0334 11BC;BE0C 0334 11BC;1107 1173 0334 11BC;
+BED0 0334 11AE;BED0 0334 11AE;1108 1165 0334 11AE;BED0 0334 11AE;1108 1165 0334 11AE;
+BF24 0334 11B5;BF24 0334 11B5;1108 1168 0334 11B5;BF24 0334 11B5;1108 1168 0334 11B5;
+BF78 0334 11BC;BF78 0334 11BC;1108 116B 0334 11BC;BF78 0334 11BC;1108 116B 0334 11BC;
+C03C 0334 11AE;C03C 0334 11AE;1108 1172 0334 11AE;C03C 0334 11AE;1108 1172 0334 11AE;
+C090 0334 11B5;C090 0334 11B5;1108 1175 0334 11B5;C090 0334 11B5;1108 1175 0334 11B5;
+C0E4 0334 11BC;C0E4 0334 11BC;1109 1163 0334 11BC;C0E4 0334 11BC;1109 1163 0334 11BC;
+C1A8 0334 11AE;C1A8 0334 11AE;1109 116A 0334 11AE;C1A8 0334 11AE;1109 116A 0334 11AE;
+C1FC 0334 11B5;C1FC 0334 11B5;1109 116D 0334 11B5;C1FC 0334 11B5;1109 116D 0334 11B5;
+C250 0334 11BC;C250 0334 11BC;1109 1170 0334 11BC;C250 0334 11BC;1109 1170 0334 11BC;
+C314 0334 11AE;C314 0334 11AE;110A 1162 0334 11AE;C314 0334 11AE;110A 1162 0334 11AE;
+C368 0334 11B5;C368 0334 11B5;110A 1165 0334 11B5;C368 0334 11B5;110A 1165 0334 11B5;
+C3BC 0334 11BC;C3BC 0334 11BC;110A 1168 0334 11BC;C3BC 0334 11BC;110A 1168 0334 11BC;
+C480 0334 11AE;C480 0334 11AE;110A 116F 0334 11AE;C480 0334 11AE;110A 116F 0334 11AE;
+C4D4 0334 11B5;C4D4 0334 11B5;110A 1172 0334 11B5;C4D4 0334 11B5;110A 1172 0334 11B5;
+C528 0334 11BC;C528 0334 11BC;110A 1175 0334 11BC;C528 0334 11BC;110A 1175 0334 11BC;
+C5EC 0334 11AE;C5EC 0334 11AE;110B 1167 0334 11AE;C5EC 0334 11AE;110B 1167 0334 11AE;
+C640 0334 11B5;C640 0334 11B5;110B 116A 0334 11B5;C640 0334 11B5;110B 116A 0334 11B5;
+C694 0334 11BC;C694 0334 11BC;110B 116D 0334 11BC;C694 0334 11BC;110B 116D 0334 11BC;
+C758 0334 11AE;C758 0334 11AE;110B 1174 0334 11AE;C758 0334 11AE;110B 1174 0334 11AE;
+C7AC 0334 11B5;C7AC 0334 11B5;110C 1162 0334 11B5;C7AC 0334 11B5;110C 1162 0334 11B5;
+C800 0334 11BC;C800 0334 11BC;110C 1165 0334 11BC;C800 0334 11BC;110C 1165 0334 11BC;
+C8C4 0334 11AE;C8C4 0334 11AE;110C 116C 0334 11AE;C8C4 0334 11AE;110C 116C 0334 11AE;
+C918 0334 11B5;C918 0334 11B5;110C 116F 0334 11B5;C918 0334 11B5;110C 116F 0334 11B5;
+C96C 0334 11BC;C96C 0334 11BC;110C 1172 0334 11BC;C96C 0334 11BC;110C 1172 0334 11BC;
+CA30 0334 11AE;CA30 0334 11AE;110D 1164 0334 11AE;CA30 0334 11AE;110D 1164 0334 11AE;
+CA84 0334 11B5;CA84 0334 11B5;110D 1167 0334 11B5;CA84 0334 11B5;110D 1167 0334 11B5;
+CAD8 0334 11BC;CAD8 0334 11BC;110D 116A 0334 11BC;CAD8 0334 11BC;110D 116A 0334 11BC;
+CB9C 0334 11AE;CB9C 0334 11AE;110D 1171 0334 11AE;CB9C 0334 11AE;110D 1171 0334 11AE;
+CBF0 0334 11B5;CBF0 0334 11B5;110D 1174 0334 11B5;CBF0 0334 11B5;110D 1174 0334 11B5;
+CC44 0334 11BC;CC44 0334 11BC;110E 1162 0334 11BC;CC44 0334 11BC;110E 1162 0334 11BC;
+CD08 0334 11AE;CD08 0334 11AE;110E 1169 0334 11AE;CD08 0334 11AE;110E 1169 0334 11AE;
+CD5C 0334 11B5;CD5C 0334 11B5;110E 116C 0334 11B5;CD5C 0334 11B5;110E 116C 0334 11B5;
+CDB0 0334 11BC;CDB0 0334 11BC;110E 116F 0334 11BC;CDB0 0334 11BC;110E 116F 0334 11BC;
+CE74 0334 11AE;CE74 0334 11AE;110F 1161 0334 11AE;CE74 0334 11AE;110F 1161 0334 11AE;
+CEC8 0334 11B5;CEC8 0334 11B5;110F 1164 0334 11B5;CEC8 0334 11B5;110F 1164 0334 11B5;
+CF1C 0334 11BC;CF1C 0334 11BC;110F 1167 0334 11BC;CF1C 0334 11BC;110F 1167 0334 11BC;
+CFE0 0334 11AE;CFE0 0334 11AE;110F 116E 0334 11AE;CFE0 0334 11AE;110F 116E 0334 11AE;
+D034 0334 11B5;D034 0334 11B5;110F 1171 0334 11B5;D034 0334 11B5;110F 1171 0334 11B5;
+D088 0334 11BC;D088 0334 11BC;110F 1174 0334 11BC;D088 0334 11BC;110F 1174 0334 11BC;
+D14C 0334 11AE;D14C 0334 11AE;1110 1166 0334 11AE;D14C 0334 11AE;1110 1166 0334 11AE;
+D1A0 0334 11B5;D1A0 0334 11B5;1110 1169 0334 11B5;D1A0 0334 11B5;1110 1169 0334 11B5;
+D1F4 0334 11BC;D1F4 0334 11BC;1110 116C 0334 11BC;D1F4 0334 11BC;1110 116C 0334 11BC;
+D2B8 0334 11AE;D2B8 0334 11AE;1110 1173 0334 11AE;D2B8 0334 11AE;1110 1173 0334 11AE;
+D30C 0334 11B5;D30C 0334 11B5;1111 1161 0334 11B5;D30C 0334 11B5;1111 1161 0334 11B5;
+D360 0334 11BC;D360 0334 11BC;1111 1164 0334 11BC;D360 0334 11BC;1111 1164 0334 11BC;
+D424 0334 11AE;D424 0334 11AE;1111 116B 0334 11AE;D424 0334 11AE;1111 116B 0334 11AE;
+D478 0334 11B5;D478 0334 11B5;1111 116E 0334 11B5;D478 0334 11B5;1111 116E 0334 11B5;
+D4CC 0334 11BC;D4CC 0334 11BC;1111 1171 0334 11BC;D4CC 0334 11BC;1111 1171 0334 11BC;
+D590 0334 11AE;D590 0334 11AE;1112 1163 0334 11AE;D590 0334 11AE;1112 1163 0334 11AE;
+D5E4 0334 11B5;D5E4 0334 11B5;1112 1166 0334 11B5;D5E4 0334 11B5;1112 1166 0334 11B5;
+D638 0334 11BC;D638 0334 11BC;1112 1169 0334 11BC;D638 0334 11BC;1112 1169 0334 11BC;
+D6FC 0334 11AE;D6FC 0334 11AE;1112 1170 0334 11AE;D6FC 0334 11AE;1112 1170 0334 11AE;
+D750 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5;
+
+
diff --git a/tests/uninorm/test-canonical-decomposition.c b/tests/uninorm/test-canonical-decomposition.c
new file mode 100644
index 0000000..040011b
--- /dev/null
+++ b/tests/uninorm/test-canonical-decomposition.c
@@ -0,0 +1,156 @@
+/* Test of canonical decomposition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int ret;
+
+ /* SPACE */
+ ret = uc_canonical_decomposition (0x0020, decomposed);
+ ASSERT (ret == -1);
+
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ ret = uc_canonical_decomposition (0x00C4, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x0041);
+ ASSERT (decomposed[1] == 0x0308);
+
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ ret = uc_canonical_decomposition (0x01DE, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x00C4);
+ ASSERT (decomposed[1] == 0x0304);
+
+ /* GREEK DIALYTIKA AND PERISPOMENI */
+ ret = uc_canonical_decomposition (0x1FC1, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x00A8);
+ ASSERT (decomposed[1] == 0x0342);
+
+ /* SCRIPT SMALL L */
+ ret = uc_canonical_decomposition (0x2113, decomposed);
+ ASSERT (ret == -1);
+
+ /* NO-BREAK SPACE */
+ ret = uc_canonical_decomposition (0x00A0, decomposed);
+ ASSERT (ret == -1);
+
+ /* ARABIC LETTER VEH INITIAL FORM */
+ ret = uc_canonical_decomposition (0xFB6C, decomposed);
+ ASSERT (ret == -1);
+
+ /* ARABIC LETTER VEH MEDIAL FORM */
+ ret = uc_canonical_decomposition (0xFB6D, decomposed);
+ ASSERT (ret == -1);
+
+ /* ARABIC LETTER VEH FINAL FORM */
+ ret = uc_canonical_decomposition (0xFB6B, decomposed);
+ ASSERT (ret == -1);
+
+ /* ARABIC LETTER VEH ISOLATED FORM */
+ ret = uc_canonical_decomposition (0xFB6A, decomposed);
+ ASSERT (ret == -1);
+
+ /* CIRCLED NUMBER FIFTEEN */
+ ret = uc_canonical_decomposition (0x246E, decomposed);
+ ASSERT (ret == -1);
+
+ /* TRADE MARK SIGN */
+ ret = uc_canonical_decomposition (0x2122, decomposed);
+ ASSERT (ret == -1);
+
+ /* LATIN SUBSCRIPT SMALL LETTER I */
+ ret = uc_canonical_decomposition (0x1D62, decomposed);
+ ASSERT (ret == -1);
+
+ /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ ret = uc_canonical_decomposition (0xFE35, decomposed);
+ ASSERT (ret == -1);
+
+ /* FULLWIDTH LATIN CAPITAL LETTER A */
+ ret = uc_canonical_decomposition (0xFF21, decomposed);
+ ASSERT (ret == -1);
+
+ /* HALFWIDTH IDEOGRAPHIC COMMA */
+ ret = uc_canonical_decomposition (0xFF64, decomposed);
+ ASSERT (ret == -1);
+
+ /* SMALL IDEOGRAPHIC COMMA */
+ ret = uc_canonical_decomposition (0xFE51, decomposed);
+ ASSERT (ret == -1);
+
+ /* SQUARE MHZ */
+ ret = uc_canonical_decomposition (0x3392, decomposed);
+ ASSERT (ret == -1);
+
+ /* VULGAR FRACTION THREE EIGHTHS */
+ ret = uc_canonical_decomposition (0x215C, decomposed);
+ ASSERT (ret == -1);
+
+ /* MICRO SIGN */
+ ret = uc_canonical_decomposition (0x00B5, decomposed);
+ ASSERT (ret == -1);
+
+ /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ ret = uc_canonical_decomposition (0xFDFA, decomposed);
+ ASSERT (ret == -1);
+
+ /* HANGUL SYLLABLE GEUL */
+ ret = uc_canonical_decomposition (0xAE00, decomposed);
+ /* See the clarification at <http://www.unicode.org/versions/Unicode5.1.0/>,
+ section "Clarification of Hangul Jamo Handling". */
+#if 1
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0xADF8);
+ ASSERT (decomposed[1] == 0x11AF);
+#else
+ ASSERT (ret == 3);
+ ASSERT (decomposed[0] == 0x1100);
+ ASSERT (decomposed[1] == 0x1173);
+ ASSERT (decomposed[2] == 0x11AF);
+#endif
+
+ /* HANGUL SYLLABLE GEU */
+ ret = uc_canonical_decomposition (0xADF8, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x1100);
+ ASSERT (decomposed[1] == 0x1173);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-compat-decomposition.c b/tests/uninorm/test-compat-decomposition.c
new file mode 100644
index 0000000..49a2b09
--- /dev/null
+++ b/tests/uninorm/test-compat-decomposition.c
@@ -0,0 +1,198 @@
+/* Test of compatibility decomposition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm/decompose-internal.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "uninorm.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int ret;
+
+ /* SPACE */
+ ret = uc_compat_decomposition (0x0020, decomposed);
+ ASSERT (ret == -1);
+
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ ret = uc_compat_decomposition (0x00C4, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x0041);
+ ASSERT (decomposed[1] == 0x0308);
+
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ ret = uc_compat_decomposition (0x01DE, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x00C4);
+ ASSERT (decomposed[1] == 0x0304);
+
+ /* GREEK DIALYTIKA AND PERISPOMENI */
+ ret = uc_compat_decomposition (0x1FC1, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x00A8);
+ ASSERT (decomposed[1] == 0x0342);
+
+ /* SCRIPT SMALL L */
+ ret = uc_compat_decomposition (0x2113, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x006C);
+
+ /* NO-BREAK SPACE */
+ ret = uc_compat_decomposition (0x00A0, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x0020);
+
+ /* ARABIC LETTER VEH INITIAL FORM */
+ ret = uc_compat_decomposition (0xFB6C, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* ARABIC LETTER VEH MEDIAL FORM */
+ ret = uc_compat_decomposition (0xFB6D, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* ARABIC LETTER VEH FINAL FORM */
+ ret = uc_compat_decomposition (0xFB6B, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* ARABIC LETTER VEH ISOLATED FORM */
+ ret = uc_compat_decomposition (0xFB6A, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* CIRCLED NUMBER FIFTEEN */
+ ret = uc_compat_decomposition (0x246E, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x0031);
+ ASSERT (decomposed[1] == 0x0035);
+
+ /* TRADE MARK SIGN */
+ ret = uc_compat_decomposition (0x2122, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x0054);
+ ASSERT (decomposed[1] == 0x004D);
+
+ /* LATIN SUBSCRIPT SMALL LETTER I */
+ ret = uc_compat_decomposition (0x1D62, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x0069);
+
+ /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ ret = uc_compat_decomposition (0xFE35, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x0028);
+
+ /* FULLWIDTH LATIN CAPITAL LETTER A */
+ ret = uc_compat_decomposition (0xFF21, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x0041);
+
+ /* HALFWIDTH IDEOGRAPHIC COMMA */
+ ret = uc_compat_decomposition (0xFF64, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x3001);
+
+ /* SMALL IDEOGRAPHIC COMMA */
+ ret = uc_compat_decomposition (0xFE51, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x3001);
+
+ /* SQUARE MHZ */
+ ret = uc_compat_decomposition (0x3392, decomposed);
+ ASSERT (ret == 3);
+ ASSERT (decomposed[0] == 0x004D);
+ ASSERT (decomposed[1] == 0x0048);
+ ASSERT (decomposed[2] == 0x007A);
+
+ /* VULGAR FRACTION THREE EIGHTHS */
+ ret = uc_compat_decomposition (0x215C, decomposed);
+ ASSERT (ret == 3);
+ ASSERT (decomposed[0] == 0x0033);
+ ASSERT (decomposed[1] == 0x2044);
+ ASSERT (decomposed[2] == 0x0038);
+
+ /* MICRO SIGN */
+ ret = uc_compat_decomposition (0x00B5, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (decomposed[0] == 0x03BC);
+
+ /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ ret = uc_compat_decomposition (0xFDFA, decomposed);
+ ASSERT (ret == 18);
+ ASSERT (decomposed[0] == 0x0635);
+ ASSERT (decomposed[1] == 0x0644);
+ ASSERT (decomposed[2] == 0x0649);
+ ASSERT (decomposed[3] == 0x0020);
+ ASSERT (decomposed[4] == 0x0627);
+ ASSERT (decomposed[5] == 0x0644);
+ ASSERT (decomposed[6] == 0x0644);
+ ASSERT (decomposed[7] == 0x0647);
+ ASSERT (decomposed[8] == 0x0020);
+ ASSERT (decomposed[9] == 0x0639);
+ ASSERT (decomposed[10] == 0x0644);
+ ASSERT (decomposed[11] == 0x064A);
+ ASSERT (decomposed[12] == 0x0647);
+ ASSERT (decomposed[13] == 0x0020);
+ ASSERT (decomposed[14] == 0x0648);
+ ASSERT (decomposed[15] == 0x0633);
+ ASSERT (decomposed[16] == 0x0644);
+ ASSERT (decomposed[17] == 0x0645);
+
+ /* HANGUL SYLLABLE GEUL */
+ ret = uc_compat_decomposition (0xAE00, decomposed);
+ /* See the clarification at <http://www.unicode.org/versions/Unicode5.1.0/>,
+ section "Clarification of Hangul Jamo Handling". */
+#if 1
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0xADF8);
+ ASSERT (decomposed[1] == 0x11AF);
+#else
+ ASSERT (ret == 3);
+ ASSERT (decomposed[0] == 0x1100);
+ ASSERT (decomposed[1] == 0x1173);
+ ASSERT (decomposed[2] == 0x11AF);
+#endif
+
+ /* HANGUL SYLLABLE GEU */
+ ret = uc_compat_decomposition (0xADF8, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (decomposed[0] == 0x1100);
+ ASSERT (decomposed[1] == 0x1173);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-composition.c b/tests/uninorm/test-composition.c
new file mode 100644
index 0000000..dbadbba
--- /dev/null
+++ b/tests/uninorm/test-composition.c
@@ -0,0 +1,66 @@
+/* Test of canonical composition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ ASSERT (uc_composition (0x0041, 0x0308) == 0x00C4);
+
+ /* LATIN CAPITAL LETTER A WITH RING ABOVE */
+ ASSERT (uc_composition (0x0041, 0x030A) == 0x00C5);
+
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ ASSERT (uc_composition (0x00C4, 0x0304) == 0x01DE);
+
+ /* GREEK DIALYTIKA AND PERISPOMENI */
+ ASSERT (uc_composition (0x00A8, 0x0342) == 0x1FC1);
+
+ /* CIRCLED NUMBER FIFTEEN */
+ ASSERT (uc_composition (0x0031, 0x0035) == 0);
+
+ /* TRADE MARK SIGN */
+ ASSERT (uc_composition (0x0054, 0x004D) == 0);
+
+ /* HANGUL SYLLABLE GEU */
+ ASSERT (uc_composition (0x1100, 0x1173) == 0xADF8);
+
+ /* HANGUL SYLLABLE GEUL */
+ ASSERT (uc_composition (0xADF8, 0x11AF) == 0xAE00);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-decomposing-form.c b/tests/uninorm/test-decomposing-form.c
new file mode 100644
index 0000000..3802c3f
--- /dev/null
+++ b/tests/uninorm/test-decomposing-form.c
@@ -0,0 +1,47 @@
+/* Test of decomposing variant of a normalization form.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ASSERT (uninorm_decomposing_form (UNINORM_NFC) == UNINORM_NFD);
+ ASSERT (uninorm_decomposing_form (UNINORM_NFD) == UNINORM_NFD);
+ ASSERT (uninorm_decomposing_form (UNINORM_NFKC) == UNINORM_NFKD);
+ ASSERT (uninorm_decomposing_form (UNINORM_NFKD) == UNINORM_NFKD);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-decomposition.c b/tests/uninorm/test-decomposition.c
new file mode 100644
index 0000000..684dee4
--- /dev/null
+++ b/tests/uninorm/test-decomposition.c
@@ -0,0 +1,220 @@
+/* Test of decomposition of Unicode characters.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH];
+ int tag;
+ int ret;
+
+ /* SPACE */
+ ret = uc_decomposition (0x0020, &tag, decomposed);
+ ASSERT (ret == -1);
+
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ ret = uc_decomposition (0x00C4, &tag, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (tag == UC_DECOMP_CANONICAL);
+ ASSERT (decomposed[0] == 0x0041);
+ ASSERT (decomposed[1] == 0x0308);
+
+ /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ ret = uc_decomposition (0x01DE, &tag, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (tag == UC_DECOMP_CANONICAL);
+ ASSERT (decomposed[0] == 0x00C4);
+ ASSERT (decomposed[1] == 0x0304);
+
+ /* GREEK DIALYTIKA AND PERISPOMENI */
+ ret = uc_decomposition (0x1FC1, &tag, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (tag == UC_DECOMP_CANONICAL);
+ ASSERT (decomposed[0] == 0x00A8);
+ ASSERT (decomposed[1] == 0x0342);
+
+ /* SCRIPT SMALL L */
+ ret = uc_decomposition (0x2113, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_FONT);
+ ASSERT (decomposed[0] == 0x006C);
+
+ /* NO-BREAK SPACE */
+ ret = uc_decomposition (0x00A0, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_NOBREAK);
+ ASSERT (decomposed[0] == 0x0020);
+
+ /* ARABIC LETTER VEH INITIAL FORM */
+ ret = uc_decomposition (0xFB6C, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_INITIAL);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* ARABIC LETTER VEH MEDIAL FORM */
+ ret = uc_decomposition (0xFB6D, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_MEDIAL);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* ARABIC LETTER VEH FINAL FORM */
+ ret = uc_decomposition (0xFB6B, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_FINAL);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* ARABIC LETTER VEH ISOLATED FORM */
+ ret = uc_decomposition (0xFB6A, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_ISOLATED);
+ ASSERT (decomposed[0] == 0x06A4);
+
+ /* CIRCLED NUMBER FIFTEEN */
+ ret = uc_decomposition (0x246E, &tag, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (tag == UC_DECOMP_CIRCLE);
+ ASSERT (decomposed[0] == 0x0031);
+ ASSERT (decomposed[1] == 0x0035);
+
+ /* TRADE MARK SIGN */
+ ret = uc_decomposition (0x2122, &tag, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (tag == UC_DECOMP_SUPER);
+ ASSERT (decomposed[0] == 0x0054);
+ ASSERT (decomposed[1] == 0x004D);
+
+ /* LATIN SUBSCRIPT SMALL LETTER I */
+ ret = uc_decomposition (0x1D62, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_SUB);
+ ASSERT (decomposed[0] == 0x0069);
+
+ /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ ret = uc_decomposition (0xFE35, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_VERTICAL);
+ ASSERT (decomposed[0] == 0x0028);
+
+ /* FULLWIDTH LATIN CAPITAL LETTER A */
+ ret = uc_decomposition (0xFF21, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_WIDE);
+ ASSERT (decomposed[0] == 0x0041);
+
+ /* HALFWIDTH IDEOGRAPHIC COMMA */
+ ret = uc_decomposition (0xFF64, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_NARROW);
+ ASSERT (decomposed[0] == 0x3001);
+
+ /* SMALL IDEOGRAPHIC COMMA */
+ ret = uc_decomposition (0xFE51, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_SMALL);
+ ASSERT (decomposed[0] == 0x3001);
+
+ /* SQUARE MHZ */
+ ret = uc_decomposition (0x3392, &tag, decomposed);
+ ASSERT (ret == 3);
+ ASSERT (tag == UC_DECOMP_SQUARE);
+ ASSERT (decomposed[0] == 0x004D);
+ ASSERT (decomposed[1] == 0x0048);
+ ASSERT (decomposed[2] == 0x007A);
+
+ /* VULGAR FRACTION THREE EIGHTHS */
+ ret = uc_decomposition (0x215C, &tag, decomposed);
+ ASSERT (ret == 3);
+ ASSERT (tag == UC_DECOMP_FRACTION);
+ ASSERT (decomposed[0] == 0x0033);
+ ASSERT (decomposed[1] == 0x2044);
+ ASSERT (decomposed[2] == 0x0038);
+
+ /* MICRO SIGN */
+ ret = uc_decomposition (0x00B5, &tag, decomposed);
+ ASSERT (ret == 1);
+ ASSERT (tag == UC_DECOMP_COMPAT);
+ ASSERT (decomposed[0] == 0x03BC);
+
+ /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ ret = uc_decomposition (0xFDFA, &tag, decomposed);
+ ASSERT (ret == 18);
+ ASSERT (tag == UC_DECOMP_ISOLATED);
+ ASSERT (decomposed[0] == 0x0635);
+ ASSERT (decomposed[1] == 0x0644);
+ ASSERT (decomposed[2] == 0x0649);
+ ASSERT (decomposed[3] == 0x0020);
+ ASSERT (decomposed[4] == 0x0627);
+ ASSERT (decomposed[5] == 0x0644);
+ ASSERT (decomposed[6] == 0x0644);
+ ASSERT (decomposed[7] == 0x0647);
+ ASSERT (decomposed[8] == 0x0020);
+ ASSERT (decomposed[9] == 0x0639);
+ ASSERT (decomposed[10] == 0x0644);
+ ASSERT (decomposed[11] == 0x064A);
+ ASSERT (decomposed[12] == 0x0647);
+ ASSERT (decomposed[13] == 0x0020);
+ ASSERT (decomposed[14] == 0x0648);
+ ASSERT (decomposed[15] == 0x0633);
+ ASSERT (decomposed[16] == 0x0644);
+ ASSERT (decomposed[17] == 0x0645);
+
+ /* HANGUL SYLLABLE GEUL */
+ ret = uc_decomposition (0xAE00, &tag, decomposed);
+ /* See the clarification at <http://www.unicode.org/versions/Unicode5.1.0/>,
+ section "Clarification of Hangul Jamo Handling". */
+#if 1
+ ASSERT (ret == 2);
+ ASSERT (tag == UC_DECOMP_CANONICAL);
+ ASSERT (decomposed[0] == 0xADF8);
+ ASSERT (decomposed[1] == 0x11AF);
+#else
+ ASSERT (ret == 3);
+ ASSERT (tag == UC_DECOMP_CANONICAL);
+ ASSERT (decomposed[0] == 0x1100);
+ ASSERT (decomposed[1] == 0x1173);
+ ASSERT (decomposed[2] == 0x11AF);
+#endif
+
+ /* HANGUL SYLLABLE GEU */
+ ret = uc_decomposition (0xADF8, &tag, decomposed);
+ ASSERT (ret == 2);
+ ASSERT (tag == UC_DECOMP_CANONICAL);
+ ASSERT (decomposed[0] == 0x1100);
+ ASSERT (decomposed[1] == 0x1173);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-nfc.c b/tests/uninorm/test-nfc.c
new file mode 100644
index 0000000..ca95710
--- /dev/null
+++ b/tests/uninorm/test-nfc.c
@@ -0,0 +1,44 @@
+/* Test of canonical normalization of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#if !WOE32DLL
+/* Check that UNINORM_NFC is defined and links. */
+uninorm_t n = UNINORM_NFC;
+#endif
+
+extern void test_u8_nfc (void);
+extern void test_u16_nfc (void);
+extern void test_u32_nfc (void);
+
+int
+main ()
+{
+ /* Check that UNINORM_NFC is defined and links. */
+ uninorm_t nf = UNINORM_NFC;
+ (void) nf;
+
+ test_u32_nfc ();
+ test_u16_nfc ();
+ test_u8_nfc ();
+
+ return 0;
+}
diff --git a/tests/uninorm/test-nfd.c b/tests/uninorm/test-nfd.c
new file mode 100644
index 0000000..2a7e55b
--- /dev/null
+++ b/tests/uninorm/test-nfd.c
@@ -0,0 +1,44 @@
+/* Test of canonical decomposition of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#if !WOE32DLL
+/* Check that UNINORM_NFD is defined and links. */
+uninorm_t n = UNINORM_NFD;
+#endif
+
+extern void test_u8_nfd (void);
+extern void test_u16_nfd (void);
+extern void test_u32_nfd (void);
+
+int
+main ()
+{
+ /* Check that UNINORM_NFD is defined and links. */
+ uninorm_t nf = UNINORM_NFD;
+ (void) nf;
+
+ test_u32_nfd ();
+ test_u16_nfd ();
+ test_u8_nfd ();
+
+ return 0;
+}
diff --git a/tests/uninorm/test-nfkc.c b/tests/uninorm/test-nfkc.c
new file mode 100644
index 0000000..2e57a15
--- /dev/null
+++ b/tests/uninorm/test-nfkc.c
@@ -0,0 +1,44 @@
+/* Test of compatibility normalization of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#if !WOE32DLL
+/* Check that UNINORM_NFKC is defined and links. */
+uninorm_t n = UNINORM_NFKC;
+#endif
+
+extern void test_u8_nfkc (void);
+extern void test_u16_nfkc (void);
+extern void test_u32_nfkc (void);
+
+int
+main ()
+{
+ /* Check that UNINORM_NFKC is defined and links. */
+ uninorm_t nf = UNINORM_NFKC;
+ (void) nf;
+
+ test_u32_nfkc ();
+ test_u16_nfkc ();
+ test_u8_nfkc ();
+
+ return 0;
+}
diff --git a/tests/uninorm/test-nfkd.c b/tests/uninorm/test-nfkd.c
new file mode 100644
index 0000000..8e330fe
--- /dev/null
+++ b/tests/uninorm/test-nfkd.c
@@ -0,0 +1,44 @@
+/* Test of compatibility decomposition of Unicode strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#if !WOE32DLL
+/* Check that UNINORM_NFKD is defined and links. */
+uninorm_t n = UNINORM_NFKD;
+#endif
+
+extern void test_u8_nfkd (void);
+extern void test_u16_nfkd (void);
+extern void test_u32_nfkd (void);
+
+int
+main ()
+{
+ /* Check that UNINORM_NFKD is defined and links. */
+ uninorm_t nf = UNINORM_NFKD;
+ (void) nf;
+
+ test_u32_nfkd ();
+ test_u16_nfkd ();
+ test_u8_nfkd ();
+
+ return 0;
+}
diff --git a/tests/uninorm/test-u16-nfc.c b/tests/uninorm/test-u16-nfc.c
new file mode 100644
index 0000000..1bf9a94
--- /dev/null
+++ b/tests/uninorm/test-u16-nfc.c
@@ -0,0 +1,345 @@
+/* Test of canonical normalization of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U16_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_normalize (UNINORM_NFC, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u16_nfc (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint16_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint16_t input[] = { 0x00C4 };
+ static const uint16_t decomposed[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint16_t input[] = { 0x01DE };
+ static const uint16_t decomposed[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ANGSTROM SIGN */
+ static const uint16_t input[] = { 0x212B };
+ static const uint16_t decomposed[] = { 0x0041, 0x030A };
+ static const uint16_t expected[] = { 0x00C5 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint16_t input[] = { 0x1FC1 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint16_t input[] = { 0x2113 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint16_t input[] = { 0x00A0 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint16_t input[] = { 0xFB6C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint16_t input[] = { 0xFB6D };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint16_t input[] = { 0xFB6B };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint16_t input[] = { 0xFB6A };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint16_t input[] = { 0x246E };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint16_t input[] = { 0x2122 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint16_t input[] = { 0x1D62 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint16_t input[] = { 0xFE35 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint16_t input[] = { 0xFF21 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFF64 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFE51 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint16_t input[] = { 0x3392 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint16_t input[] = { 0x215C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint16_t input[] = { 0x00B5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint16_t input[] = { 0xFDFA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint16_t input[] = { 0xAE00 };
+ static const uint16_t decomposed[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint16_t input[] = { 0xADF8 };
+ static const uint16_t decomposed[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t decomposed[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u16_nfc (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u16-nfd.c b/tests/uninorm/test-u16-nfd.c
new file mode 100644
index 0000000..34789b8
--- /dev/null
+++ b/tests/uninorm/test-u16-nfd.c
@@ -0,0 +1,329 @@
+/* Test of canonical decomposition of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U16_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_normalize (UNINORM_NFD, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u16_nfd (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint16_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint16_t input[] = { 0x00C4 };
+ static const uint16_t expected[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint16_t input[] = { 0x01DE };
+ static const uint16_t expected[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint16_t input[] = { 0x1FC1 };
+ static const uint16_t expected[] = { 0x00A8, 0x0342 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint16_t input[] = { 0x2113 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint16_t input[] = { 0x00A0 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint16_t input[] = { 0xFB6C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint16_t input[] = { 0xFB6D };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint16_t input[] = { 0xFB6B };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint16_t input[] = { 0xFB6A };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint16_t input[] = { 0x246E };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint16_t input[] = { 0x2122 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint16_t input[] = { 0x1D62 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint16_t input[] = { 0xFE35 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint16_t input[] = { 0xFF21 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFF64 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFE51 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint16_t input[] = { 0x3392 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint16_t input[] = { 0x215C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint16_t input[] = { 0x00B5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint16_t input[] = { 0xFDFA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint16_t input[] = { 0xAE00 };
+ static const uint16_t expected[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint16_t input[] = { 0xADF8 };
+ static const uint16_t expected[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t expected[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u16_nfd (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u16-nfkc.c b/tests/uninorm/test-u16-nfkc.c
new file mode 100644
index 0000000..4ac8f7e
--- /dev/null
+++ b/tests/uninorm/test-u16-nfkc.c
@@ -0,0 +1,393 @@
+/* Test of compatibility normalization of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U16_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_normalize (UNINORM_NFKC, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFKC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFKC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u16_nfkc (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint16_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint16_t input[] = { 0x00C4 };
+ static const uint16_t decomposed[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint16_t input[] = { 0x01DE };
+ static const uint16_t decomposed[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ANGSTROM SIGN */
+ static const uint16_t input[] = { 0x212B };
+ static const uint16_t decomposed[] = { 0x0041, 0x030A };
+ static const uint16_t expected[] = { 0x00C5 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint16_t input[] = { 0x1FC1 };
+ static const uint16_t decomposed[] = { 0x0020, 0x0308, 0x0342 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint16_t input[] = { 0x2113 };
+ static const uint16_t decomposed[] = { 0x006C };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint16_t input[] = { 0x00A0 };
+ static const uint16_t decomposed[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint16_t input[] = { 0xFB6C };
+ static const uint16_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint16_t input[] = { 0xFB6D };
+ static const uint16_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint16_t input[] = { 0xFB6B };
+ static const uint16_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint16_t input[] = { 0xFB6A };
+ static const uint16_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint16_t input[] = { 0x246E };
+ static const uint16_t decomposed[] = { 0x0031, 0x0035 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint16_t input[] = { 0x2122 };
+ static const uint16_t decomposed[] = { 0x0054, 0x004D };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint16_t input[] = { 0x1D62 };
+ static const uint16_t decomposed[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint16_t input[] = { 0xFE35 };
+ static const uint16_t decomposed[] = { 0x0028 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint16_t input[] = { 0xFF21 };
+ static const uint16_t decomposed[] = { 0x0041 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFF64 };
+ static const uint16_t decomposed[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFE51 };
+ static const uint16_t decomposed[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint16_t input[] = { 0x3392 };
+ static const uint16_t decomposed[] = { 0x004D, 0x0048, 0x007A };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint16_t input[] = { 0x215C };
+ static const uint16_t decomposed[] = { 0x0033, 0x2044, 0x0038 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint16_t input[] = { 0x00B5 };
+ static const uint16_t decomposed[] = { 0x03BC };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint16_t input[] = { 0xFDFA };
+ static const uint16_t decomposed[] =
+ { 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020,
+ 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645
+ };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint16_t input[] = { 0xAE00 };
+ static const uint16_t decomposed[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint16_t input[] = { 0xADF8 };
+ static const uint16_t decomposed[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t decomposed[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x0032,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ static const uint16_t expected[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x0032,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u16_nfkc (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u16-nfkd.c b/tests/uninorm/test-u16-nfkd.c
new file mode 100644
index 0000000..6dfa39f
--- /dev/null
+++ b/tests/uninorm/test-u16-nfkd.c
@@ -0,0 +1,349 @@
+/* Test of compatibility decomposition of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U16_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint16_t *input, size_t input_length,
+ const uint16_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint16_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u16_normalize (UNINORM_NFKD, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint16_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFKD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint16_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint16_t *) malloc (length * sizeof (uint16_t));
+ result = u16_normalize (UNINORM_NFKD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u16_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u16_nfkd (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint16_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint16_t input[] = { 0x00C4 };
+ static const uint16_t expected[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint16_t input[] = { 0x01DE };
+ static const uint16_t expected[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint16_t input[] = { 0x1FC1 };
+ static const uint16_t expected[] = { 0x0020, 0x0308, 0x0342 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint16_t input[] = { 0x2113 };
+ static const uint16_t expected[] = { 0x006C };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint16_t input[] = { 0x00A0 };
+ static const uint16_t expected[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint16_t input[] = { 0xFB6C };
+ static const uint16_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint16_t input[] = { 0xFB6D };
+ static const uint16_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint16_t input[] = { 0xFB6B };
+ static const uint16_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint16_t input[] = { 0xFB6A };
+ static const uint16_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint16_t input[] = { 0x246E };
+ static const uint16_t expected[] = { 0x0031, 0x0035 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint16_t input[] = { 0x2122 };
+ static const uint16_t expected[] = { 0x0054, 0x004D };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint16_t input[] = { 0x1D62 };
+ static const uint16_t expected[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint16_t input[] = { 0xFE35 };
+ static const uint16_t expected[] = { 0x0028 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint16_t input[] = { 0xFF21 };
+ static const uint16_t expected[] = { 0x0041 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFF64 };
+ static const uint16_t expected[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint16_t input[] = { 0xFE51 };
+ static const uint16_t expected[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint16_t input[] = { 0x3392 };
+ static const uint16_t expected[] = { 0x004D, 0x0048, 0x007A };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint16_t input[] = { 0x215C };
+ static const uint16_t expected[] = { 0x0033, 0x2044, 0x0038 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint16_t input[] = { 0x00B5 };
+ static const uint16_t expected[] = { 0x03BC };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint16_t input[] = { 0xFDFA };
+ static const uint16_t expected[] =
+ { 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020,
+ 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint16_t input[] = { 0xAE00 };
+ static const uint16_t expected[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint16_t input[] = { 0xADF8 };
+ static const uint16_t expected[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint16_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint16_t expected[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x0032,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint16_t *input = (uint16_t *) malloc (2 * m * sizeof (uint16_t));
+ if (input != NULL)
+ {
+ uint16_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint16_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u16_nfkd (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u16-normcmp.c b/tests/uninorm/test-u16-normcmp.c
new file mode 100644
index 0000000..3cf947a
--- /dev/null
+++ b/tests/uninorm/test-u16-normcmp.c
@@ -0,0 +1,130 @@
+/* Test of normalization insensitive comparison of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u16-normcmp.h"
+
+static void
+test_nonascii (int (*my_normcmp) (const uint16_t *, size_t, const uint16_t *, size_t, uninorm_t, int *))
+{
+ /* Normalization effects. */
+ {
+ static const uint16_t input1[] = { 'H', 0x00F6, 'h', 'l', 'e' };
+ static const uint16_t input2[] = { 'H', 'o', 0x0308, 'h', 'l', 'e' };
+ static const uint16_t input3[] = { 'H', 0x00F6, 'h', 'l', 'e', 'n' };
+ static const uint16_t input4[] = { 'H', 'o', 0x0308, 'h', 'l', 'e', 'n' };
+ static const uint16_t input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input3, SIZEOF (input3), input4, SIZEOF (input4), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input4, SIZEOF (input4), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input4, SIZEOF (input4), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input5, SIZEOF (input5), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input5, SIZEOF (input5), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint16_t input1[] = { 0x00C4 };
+ static const uint16_t input2[] = { 0x0041, 0x0308 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint16_t input1[] = { 0x01DE };
+ static const uint16_t input2[] = { 0x0041, 0x0308, 0x0304 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint16_t input1[] = { 0x1FC1 };
+ static const uint16_t input2[] = { 0x00A8, 0x0342 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint16_t input1[] = { 0xAE00 };
+ static const uint16_t input2[] = { 0xADF8, 0x11AF };
+ static const uint16_t input3[] = { 0x1100, 0x1173, 0x11AF };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEU */
+ static const uint16_t input1[] = { 0xADF8 };
+ static const uint16_t input2[] = { 0x1100, 0x1173 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u16_normcmp, UNINORM_NFD);
+ test_nonascii (u16_normcmp);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-u16-normcmp.h b/tests/uninorm/test-u16-normcmp.h
new file mode 100644
index 0000000..ea7def8
--- /dev/null
+++ b/tests/uninorm/test-u16-normcmp.h
@@ -0,0 +1,69 @@
+/* Test of normalization insensitive comparison of UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_normcmp) (const uint16_t *, size_t, const uint16_t *, size_t, uninorm_t, int *),
+ uninorm_t nf)
+{
+ /* Empty string. */
+ {
+ int cmp;
+
+ ASSERT (my_normcmp (NULL, 0, NULL, 0, nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ {
+ static const uint16_t input[] = { 'x', 'y' };
+ int cmp;
+
+ ASSERT (my_normcmp (input, SIZEOF (input), NULL, 0, nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_normcmp (NULL, 0, input, SIZEOF (input), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input, SIZEOF (input), input, SIZEOF (input), nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Normal lexicographic order. */
+ {
+ static const uint16_t input1[] = { 'A', 'm', 'e', 'r', 'i', 'c', 'a' };
+ static const uint16_t input2[] = { 'A', 'm', 'i', 'g', 'o' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+
+ /* Shorter and longer strings. */
+ {
+ static const uint16_t input1[] = { 'R', 'e', 'a', 'g', 'a', 'n' };
+ static const uint16_t input2[] = { 'R', 'e', 'a', 'g', 'a', 'n', 'o', 'm', 'i', 'c', 's' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+}
diff --git a/tests/uninorm/test-u16-normcoll.c b/tests/uninorm/test-u16-normcoll.c
new file mode 100644
index 0000000..d83799d
--- /dev/null
+++ b/tests/uninorm/test-u16-normcoll.c
@@ -0,0 +1,49 @@
+/* Test of locale dependent, normalization insensitive comparison of
+ UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u16-normcmp.h"
+int
+main ()
+{
+ /* In the "C" locale, strcoll is equivalent to strcmp, therefore u8_normcoll
+ on ASCII strings should behave like strcmp as well. */
+ test_ascii (u16_normcoll, UNINORM_NFC);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-u32-nfc-big.c b/tests/uninorm/test-u32-nfc-big.c
new file mode 100644
index 0000000..2a1b611
--- /dev/null
+++ b/tests/uninorm/test-u32-nfc-big.c
@@ -0,0 +1,125 @@
+/* Test of Unicode compliance of canonical normalization of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "progname.h"
+#include "test-u32-normalize-big.h"
+
+static int
+check (const uint32_t *c1, size_t c1_length,
+ const uint32_t *c2, size_t c2_length,
+ const uint32_t *c3, size_t c3_length,
+ const uint32_t *c4, size_t c4_length,
+ const uint32_t *c5, size_t c5_length)
+{
+ /* Check
+ c2 == NFC(c1) == NFC(c2) == NFC(c3)
+ c4 == NFC(c4) == NFC(c5)
+ */
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFC, c1, c1_length, NULL, &length);
+ if (!(result != NULL
+ && length == c2_length
+ && u32_cmp (result, c2, c2_length) == 0))
+ return 1;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFC, c2, c2_length, NULL, &length);
+ if (!(result != NULL
+ && length == c2_length
+ && u32_cmp (result, c2, c2_length) == 0))
+ return 2;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFC, c3, c3_length, NULL, &length);
+ if (!(result != NULL
+ && length == c2_length
+ && u32_cmp (result, c2, c2_length) == 0))
+ return 3;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFC, c4, c4_length, NULL, &length);
+ if (!(result != NULL
+ && length == c4_length
+ && u32_cmp (result, c4, c4_length) == 0))
+ return 4;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFC, c5, c5_length, NULL, &length);
+ if (!(result != NULL
+ && length == c4_length
+ && u32_cmp (result, c4, c4_length) == 0))
+ return 5;
+ free (result);
+ }
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ struct normalization_test_file file;
+
+ set_program_name (argv[0]);
+ read_normalization_test_file (argv[1], &file);
+
+ test_specific (&file, check);
+ test_other (&file, UNINORM_NFC);
+
+ return 0;
+}
+
+#else
+
+#include <stdio.h>
+
+int
+main ()
+{
+ fprintf (stderr, "Skipping test: uninorm/u32-normalize module not included.\n");
+ return 77;
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-nfc-big.sh b/tests/uninorm/test-u32-nfc-big.sh
new file mode 100755
index 0000000..93d0003
--- /dev/null
+++ b/tests/uninorm/test-u32-nfc-big.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ./test-u32-nfc-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/uninorm/test-u32-nfc.c b/tests/uninorm/test-u32-nfc.c
new file mode 100644
index 0000000..0d8311c
--- /dev/null
+++ b/tests/uninorm/test-u32-nfc.c
@@ -0,0 +1,345 @@
+/* Test of canonical normalization of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_normalize (UNINORM_NFC, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u32_nfc (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint32_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint32_t input[] = { 0x00C4 };
+ static const uint32_t decomposed[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint32_t input[] = { 0x01DE };
+ static const uint32_t decomposed[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ANGSTROM SIGN */
+ static const uint32_t input[] = { 0x212B };
+ static const uint32_t decomposed[] = { 0x0041, 0x030A };
+ static const uint32_t expected[] = { 0x00C5 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint32_t input[] = { 0x1FC1 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint32_t input[] = { 0x2113 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint32_t input[] = { 0x00A0 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint32_t input[] = { 0xFB6C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint32_t input[] = { 0xFB6D };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint32_t input[] = { 0xFB6B };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint32_t input[] = { 0xFB6A };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint32_t input[] = { 0x246E };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint32_t input[] = { 0x2122 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint32_t input[] = { 0x1D62 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint32_t input[] = { 0xFE35 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint32_t input[] = { 0xFF21 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFF64 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFE51 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint32_t input[] = { 0x3392 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint32_t input[] = { 0x215C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint32_t input[] = { 0x00B5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint32_t input[] = { 0xFDFA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint32_t input[] = { 0xAE00 };
+ static const uint32_t decomposed[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint32_t input[] = { 0xADF8 };
+ static const uint32_t decomposed[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t decomposed[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u32_nfc (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-nfd-big.c b/tests/uninorm/test-u32-nfd-big.c
new file mode 100644
index 0000000..9bfd0d8
--- /dev/null
+++ b/tests/uninorm/test-u32-nfd-big.c
@@ -0,0 +1,125 @@
+/* Test of Unicode compliance of canonical decomposition of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "progname.h"
+#include "test-u32-normalize-big.h"
+
+static int
+check (const uint32_t *c1, size_t c1_length,
+ const uint32_t *c2, size_t c2_length,
+ const uint32_t *c3, size_t c3_length,
+ const uint32_t *c4, size_t c4_length,
+ const uint32_t *c5, size_t c5_length)
+{
+ /* Check
+ c3 == NFD(c1) == NFD(c2) == NFD(c3)
+ c5 == NFD(c4) == NFD(c5)
+ */
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFD, c1, c1_length, NULL, &length);
+ if (!(result != NULL
+ && length == c3_length
+ && u32_cmp (result, c3, c3_length) == 0))
+ return 1;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFD, c2, c2_length, NULL, &length);
+ if (!(result != NULL
+ && length == c3_length
+ && u32_cmp (result, c3, c3_length) == 0))
+ return 2;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFD, c3, c3_length, NULL, &length);
+ if (!(result != NULL
+ && length == c3_length
+ && u32_cmp (result, c3, c3_length) == 0))
+ return 3;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFD, c4, c4_length, NULL, &length);
+ if (!(result != NULL
+ && length == c5_length
+ && u32_cmp (result, c5, c5_length) == 0))
+ return 4;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFD, c5, c5_length, NULL, &length);
+ if (!(result != NULL
+ && length == c5_length
+ && u32_cmp (result, c5, c5_length) == 0))
+ return 5;
+ free (result);
+ }
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ struct normalization_test_file file;
+
+ set_program_name (argv[0]);
+ read_normalization_test_file (argv[1], &file);
+
+ test_specific (&file, check);
+ test_other (&file, UNINORM_NFD);
+
+ return 0;
+}
+
+#else
+
+#include <stdio.h>
+
+int
+main ()
+{
+ fprintf (stderr, "Skipping test: uninorm/u32-normalize module not included.\n");
+ return 77;
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-nfd-big.sh b/tests/uninorm/test-u32-nfd-big.sh
new file mode 100755
index 0000000..3cfe2c5
--- /dev/null
+++ b/tests/uninorm/test-u32-nfd-big.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ./test-u32-nfd-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/uninorm/test-u32-nfd.c b/tests/uninorm/test-u32-nfd.c
new file mode 100644
index 0000000..f7b2d8d
--- /dev/null
+++ b/tests/uninorm/test-u32-nfd.c
@@ -0,0 +1,329 @@
+/* Test of canonical decomposition of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_normalize (UNINORM_NFD, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u32_nfd (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint32_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint32_t input[] = { 0x00C4 };
+ static const uint32_t expected[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint32_t input[] = { 0x01DE };
+ static const uint32_t expected[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint32_t input[] = { 0x1FC1 };
+ static const uint32_t expected[] = { 0x00A8, 0x0342 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint32_t input[] = { 0x2113 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint32_t input[] = { 0x00A0 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint32_t input[] = { 0xFB6C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint32_t input[] = { 0xFB6D };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint32_t input[] = { 0xFB6B };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint32_t input[] = { 0xFB6A };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint32_t input[] = { 0x246E };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint32_t input[] = { 0x2122 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint32_t input[] = { 0x1D62 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint32_t input[] = { 0xFE35 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint32_t input[] = { 0xFF21 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFF64 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFE51 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint32_t input[] = { 0x3392 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint32_t input[] = { 0x215C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint32_t input[] = { 0x00B5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint32_t input[] = { 0xFDFA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint32_t input[] = { 0xAE00 };
+ static const uint32_t expected[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint32_t input[] = { 0xADF8 };
+ static const uint32_t expected[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t expected[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u32_nfd (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-nfkc-big.c b/tests/uninorm/test-u32-nfkc-big.c
new file mode 100644
index 0000000..340fe65
--- /dev/null
+++ b/tests/uninorm/test-u32-nfkc-big.c
@@ -0,0 +1,122 @@
+/* Test of Unicode compliance of compatibility normalization of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "progname.h"
+#include "test-u32-normalize-big.h"
+
+static int
+check (const uint32_t *c1, size_t c1_length,
+ const uint32_t *c2, size_t c2_length,
+ const uint32_t *c3, size_t c3_length,
+ const uint32_t *c4, size_t c4_length,
+ const uint32_t *c5, size_t c5_length)
+{
+ /* Check c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5). */
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKC, c1, c1_length, NULL, &length);
+ if (!(result != NULL
+ && length == c4_length
+ && u32_cmp (result, c4, c4_length) == 0))
+ return 1;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKC, c2, c2_length, NULL, &length);
+ if (!(result != NULL
+ && length == c4_length
+ && u32_cmp (result, c4, c4_length) == 0))
+ return 2;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKC, c3, c3_length, NULL, &length);
+ if (!(result != NULL
+ && length == c4_length
+ && u32_cmp (result, c4, c4_length) == 0))
+ return 3;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKC, c4, c4_length, NULL, &length);
+ if (!(result != NULL
+ && length == c4_length
+ && u32_cmp (result, c4, c4_length) == 0))
+ return 4;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKC, c5, c5_length, NULL, &length);
+ if (!(result != NULL
+ && length == c4_length
+ && u32_cmp (result, c4, c4_length) == 0))
+ return 5;
+ free (result);
+ }
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ struct normalization_test_file file;
+
+ set_program_name (argv[0]);
+ read_normalization_test_file (argv[1], &file);
+
+ test_specific (&file, check);
+ test_other (&file, UNINORM_NFKC);
+
+ return 0;
+}
+
+#else
+
+#include <stdio.h>
+
+int
+main ()
+{
+ fprintf (stderr, "Skipping test: uninorm/u32-normalize module not included.\n");
+ return 77;
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-nfkc-big.sh b/tests/uninorm/test-u32-nfkc-big.sh
new file mode 100755
index 0000000..cd81619
--- /dev/null
+++ b/tests/uninorm/test-u32-nfkc-big.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ./test-u32-nfkc-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/uninorm/test-u32-nfkc.c b/tests/uninorm/test-u32-nfkc.c
new file mode 100644
index 0000000..75f7e82
--- /dev/null
+++ b/tests/uninorm/test-u32-nfkc.c
@@ -0,0 +1,393 @@
+/* Test of compatibility normalization of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_normalize (UNINORM_NFKC, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFKC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFKC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u32_nfkc (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint32_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint32_t input[] = { 0x00C4 };
+ static const uint32_t decomposed[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint32_t input[] = { 0x01DE };
+ static const uint32_t decomposed[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ANGSTROM SIGN */
+ static const uint32_t input[] = { 0x212B };
+ static const uint32_t decomposed[] = { 0x0041, 0x030A };
+ static const uint32_t expected[] = { 0x00C5 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint32_t input[] = { 0x1FC1 };
+ static const uint32_t decomposed[] = { 0x0020, 0x0308, 0x0342 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint32_t input[] = { 0x2113 };
+ static const uint32_t decomposed[] = { 0x006C };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint32_t input[] = { 0x00A0 };
+ static const uint32_t decomposed[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint32_t input[] = { 0xFB6C };
+ static const uint32_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint32_t input[] = { 0xFB6D };
+ static const uint32_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint32_t input[] = { 0xFB6B };
+ static const uint32_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint32_t input[] = { 0xFB6A };
+ static const uint32_t decomposed[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint32_t input[] = { 0x246E };
+ static const uint32_t decomposed[] = { 0x0031, 0x0035 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint32_t input[] = { 0x2122 };
+ static const uint32_t decomposed[] = { 0x0054, 0x004D };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint32_t input[] = { 0x1D62 };
+ static const uint32_t decomposed[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint32_t input[] = { 0xFE35 };
+ static const uint32_t decomposed[] = { 0x0028 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint32_t input[] = { 0xFF21 };
+ static const uint32_t decomposed[] = { 0x0041 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFF64 };
+ static const uint32_t decomposed[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFE51 };
+ static const uint32_t decomposed[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint32_t input[] = { 0x3392 };
+ static const uint32_t decomposed[] = { 0x004D, 0x0048, 0x007A };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint32_t input[] = { 0x215C };
+ static const uint32_t decomposed[] = { 0x0033, 0x2044, 0x0038 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint32_t input[] = { 0x00B5 };
+ static const uint32_t decomposed[] = { 0x03BC };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint32_t input[] = { 0xFDFA };
+ static const uint32_t decomposed[] =
+ { 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020,
+ 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645
+ };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint32_t input[] = { 0xAE00 };
+ static const uint32_t decomposed[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint32_t input[] = { 0xADF8 };
+ static const uint32_t decomposed[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t decomposed[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x0032,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ static const uint32_t expected[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x0032,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x00C0;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2 - 1; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, m, expected, m - 1) == 0);
+ ASSERT (check (expected, m - 1, expected, m - 1) == 0);
+ }
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u32_nfkc (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-nfkd-big.c b/tests/uninorm/test-u32-nfkd-big.c
new file mode 100644
index 0000000..e7c1b4f
--- /dev/null
+++ b/tests/uninorm/test-u32-nfkd-big.c
@@ -0,0 +1,122 @@
+/* Test of Unicode compliance of compatibility decomposition of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <stdlib.h>
+
+#include "unistr.h"
+#include "progname.h"
+#include "test-u32-normalize-big.h"
+
+static int
+check (const uint32_t *c1, size_t c1_length,
+ const uint32_t *c2, size_t c2_length,
+ const uint32_t *c3, size_t c3_length,
+ const uint32_t *c4, size_t c4_length,
+ const uint32_t *c5, size_t c5_length)
+{
+ /* Check c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5). */
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKD, c1, c1_length, NULL, &length);
+ if (!(result != NULL
+ && length == c5_length
+ && u32_cmp (result, c5, c5_length) == 0))
+ return 1;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKD, c2, c2_length, NULL, &length);
+ if (!(result != NULL
+ && length == c5_length
+ && u32_cmp (result, c5, c5_length) == 0))
+ return 2;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKD, c3, c3_length, NULL, &length);
+ if (!(result != NULL
+ && length == c5_length
+ && u32_cmp (result, c5, c5_length) == 0))
+ return 3;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKD, c4, c4_length, NULL, &length);
+ if (!(result != NULL
+ && length == c5_length
+ && u32_cmp (result, c5, c5_length) == 0))
+ return 4;
+ free (result);
+ }
+ {
+ size_t length;
+ uint32_t *result;
+
+ result = u32_normalize (UNINORM_NFKD, c5, c5_length, NULL, &length);
+ if (!(result != NULL
+ && length == c5_length
+ && u32_cmp (result, c5, c5_length) == 0))
+ return 5;
+ free (result);
+ }
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ struct normalization_test_file file;
+
+ set_program_name (argv[0]);
+ read_normalization_test_file (argv[1], &file);
+
+ test_specific (&file, check);
+ test_other (&file, UNINORM_NFKD);
+
+ return 0;
+}
+
+#else
+
+#include <stdio.h>
+
+int
+main ()
+{
+ fprintf (stderr, "Skipping test: uninorm/u32-normalize module not included.\n");
+ return 77;
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-nfkd-big.sh b/tests/uninorm/test-u32-nfkd-big.sh
new file mode 100755
index 0000000..a279c12
--- /dev/null
+++ b/tests/uninorm/test-u32-nfkd-big.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ./test-u32-nfkd-big${EXEEXT} "$srcdir/uninorm/NormalizationTest.txt"
diff --git a/tests/uninorm/test-u32-nfkd.c b/tests/uninorm/test-u32-nfkd.c
new file mode 100644
index 0000000..d3de7f7
--- /dev/null
+++ b/tests/uninorm/test-u32-nfkd.c
@@ -0,0 +1,349 @@
+/* Test of compatibility decomposition of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const uint32_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint32_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u32_normalize (UNINORM_NFKD, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint32_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFKD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint32_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint32_t *) malloc (length * sizeof (uint32_t));
+ result = u32_normalize (UNINORM_NFKD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u32_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u32_nfkd (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint32_t input[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint32_t input[] = { 0x00C4 };
+ static const uint32_t expected[] = { 0x0041, 0x0308 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint32_t input[] = { 0x01DE };
+ static const uint32_t expected[] = { 0x0041, 0x0308, 0x0304 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint32_t input[] = { 0x1FC1 };
+ static const uint32_t expected[] = { 0x0020, 0x0308, 0x0342 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint32_t input[] = { 0x2113 };
+ static const uint32_t expected[] = { 0x006C };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint32_t input[] = { 0x00A0 };
+ static const uint32_t expected[] = { 0x0020 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint32_t input[] = { 0xFB6C };
+ static const uint32_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint32_t input[] = { 0xFB6D };
+ static const uint32_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint32_t input[] = { 0xFB6B };
+ static const uint32_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint32_t input[] = { 0xFB6A };
+ static const uint32_t expected[] = { 0x06A4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint32_t input[] = { 0x246E };
+ static const uint32_t expected[] = { 0x0031, 0x0035 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint32_t input[] = { 0x2122 };
+ static const uint32_t expected[] = { 0x0054, 0x004D };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint32_t input[] = { 0x1D62 };
+ static const uint32_t expected[] = { 0x0069 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint32_t input[] = { 0xFE35 };
+ static const uint32_t expected[] = { 0x0028 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint32_t input[] = { 0xFF21 };
+ static const uint32_t expected[] = { 0x0041 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFF64 };
+ static const uint32_t expected[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint32_t input[] = { 0xFE51 };
+ static const uint32_t expected[] = { 0x3001 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint32_t input[] = { 0x3392 };
+ static const uint32_t expected[] = { 0x004D, 0x0048, 0x007A };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint32_t input[] = { 0x215C };
+ static const uint32_t expected[] = { 0x0033, 0x2044, 0x0038 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint32_t input[] = { 0x00B5 };
+ static const uint32_t expected[] = { 0x03BC };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint32_t input[] = { 0xFDFA };
+ static const uint32_t expected[] =
+ { 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020,
+ 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint32_t input[] = { 0xAE00 };
+ static const uint32_t expected[] = { 0x1100, 0x1173, 0x11AF };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint32_t input[] = { 0xADF8 };
+ static const uint32_t expected[] = { 0x1100, 0x1173 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t expected[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x0032,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint32_t *input = (uint32_t *) malloc (2 * m * sizeof (uint32_t));
+ if (input != NULL)
+ {
+ uint32_t *expected = input + m;
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint32_t *p;
+ size_t i;
+
+ input[0] = 0x0041;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0x0319;
+ *p++ = 0x0300;
+ }
+ for (; i < m1; i++)
+ *p++ = 0x0319;
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x0041;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ *p++ = 0x0319;
+ for (i = 0; i < m2; i++)
+ *p++ = 0x0300;
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, m, expected, m) == 0);
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u32_nfkd (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-normalize-big.c b/tests/uninorm/test-u32-normalize-big.c
new file mode 100644
index 0000000..96781ab
--- /dev/null
+++ b/tests/uninorm/test-u32-normalize-big.c
@@ -0,0 +1,315 @@
+/* Test of Unicode compliance of normalization of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+/* Specification. */
+#include "test-u32-normalize-big.h"
+
+#if GNULIB_UNINORM_U32_NORMALIZE
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "xalloc.h"
+#include "unistr.h"
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#define ASSERT_WITH_LINE(expr, file, line) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed for %s:%u\n", \
+ __FILE__, __LINE__, file, line); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+cmp_ucs4_t (const void *a, const void *b)
+{
+ ucs4_t a_value = *(const ucs4_t *)a;
+ ucs4_t b_value = *(const ucs4_t *)b;
+ return (a_value < b_value ? -1 : a_value > b_value ? 1 : 0);
+}
+
+void
+read_normalization_test_file (const char *filename,
+ struct normalization_test_file *file)
+{
+ FILE *stream;
+ unsigned int lineno;
+ int part_index;
+ struct normalization_test_line *lines;
+ size_t lines_length;
+ size_t lines_allocated;
+
+ stream = fopen (filename, "r");
+ if (stream == NULL)
+ {
+ fprintf (stderr, "error during fopen of '%s'\n", filename);
+ exit (1);
+ }
+
+ for (part_index = 0; part_index < 4; part_index++)
+ {
+ file->parts[part_index].lines = NULL;
+ file->parts[part_index].lines_length = 0;
+ }
+
+ lineno = 0;
+
+ part_index = -1;
+ lines = NULL;
+ lines_length = 0;
+ lines_allocated = 0;
+
+ for (;;)
+ {
+ char buf[1000+1];
+ char *ptr;
+ int c;
+ struct normalization_test_line line;
+ size_t sequence_index;
+
+ lineno++;
+
+ /* Read a line. */
+ ptr = buf;
+ do
+ {
+ c = getc (stream);
+ if (c == EOF || c == '\n')
+ break;
+ *ptr++ = c;
+ }
+ while (ptr < buf + 1000);
+ *ptr = '\0';
+ if (c == EOF)
+ break;
+
+ /* Ignore empty lines and comment lines. */
+ if (buf[0] == '\0' || buf[0] == '#')
+ continue;
+
+ /* Handle lines that introduce a new part. */
+ if (buf[0] == '@')
+ {
+ /* Switch to the next part. */
+ if (part_index >= 0)
+ {
+ lines =
+ (struct normalization_test_line *)
+ xnrealloc (lines, lines_length, sizeof (struct normalization_test_line));
+ file->parts[part_index].lines = lines;
+ file->parts[part_index].lines_length = lines_length;
+ }
+ part_index++;
+ lines = NULL;
+ lines_length = 0;
+ lines_allocated = 0;
+ continue;
+ }
+
+ /* It's a line containing 5 sequences of Unicode characters.
+ Parse it and append it to the current part. */
+ if (!(part_index >= 0 && part_index < 4))
+ {
+ fprintf (stderr, "unexpected structure of '%s'\n", filename);
+ exit (1);
+ }
+ ptr = buf;
+ line.lineno = lineno;
+ for (sequence_index = 0; sequence_index < 5; sequence_index++)
+ line.sequences[sequence_index] = NULL;
+ for (sequence_index = 0; sequence_index < 5; sequence_index++)
+ {
+ uint32_t *sequence = XNMALLOC (1, uint32_t);
+ size_t sequence_length = 0;
+
+ for (;;)
+ {
+ char *endptr;
+ unsigned int uc;
+
+ uc = strtoul (ptr, &endptr, 16);
+ if (endptr == ptr)
+ break;
+ ptr = endptr;
+
+ /* Append uc to the sequence. */
+ sequence =
+ (uint32_t *)
+ xnrealloc (sequence, sequence_length + 2, sizeof (uint32_t));
+ sequence[sequence_length] = uc;
+ sequence_length++;
+
+ if (*ptr == ' ')
+ ptr++;
+ }
+ if (sequence_length == 0)
+ {
+ fprintf (stderr, "empty character sequence in '%s'\n", filename);
+ exit (1);
+ }
+ sequence[sequence_length] = 0; /* terminator */
+
+ line.sequences[sequence_index] = sequence;
+
+ if (*ptr != ';')
+ {
+ fprintf (stderr, "error parsing '%s'\n", filename);
+ exit (1);
+ }
+ ptr++;
+ }
+
+ /* Append the line to the current part. */
+ if (lines_length == lines_allocated)
+ {
+ lines_allocated = 2 * lines_allocated;
+ if (lines_allocated < 7)
+ lines_allocated = 7;
+ lines =
+ (struct normalization_test_line *)
+ xnrealloc (lines, lines_allocated, sizeof (struct normalization_test_line));
+ }
+ lines[lines_length] = line;
+ lines_length++;
+ }
+
+ if (part_index >= 0)
+ {
+ lines =
+ (struct normalization_test_line *)
+ xnrealloc (lines, lines_length, sizeof (struct normalization_test_line));
+ file->parts[part_index].lines = lines;
+ file->parts[part_index].lines_length = lines_length;
+ }
+
+ {
+ /* Collect all c1 values from the part 1 in an array. */
+ const struct normalization_test_part *p = &file->parts[1];
+ ucs4_t *c1_array = XNMALLOC (p->lines_length + 1, ucs4_t);
+ size_t line_index;
+
+ for (line_index = 0; line_index < p->lines_length; line_index++)
+ {
+ const uint32_t *sequence = p->lines[line_index].sequences[0];
+ /* In part 1, every sequences[0] consists of a single character. */
+ if (!(sequence[0] != 0 && sequence[1] == 0))
+ abort ();
+ c1_array[line_index] = sequence[0];
+ }
+
+ /* Sort this array. */
+ qsort (c1_array, p->lines_length, sizeof (ucs4_t), cmp_ucs4_t);
+
+ /* Add the sentinel at the end. */
+ c1_array[p->lines_length] = 0x110000;
+
+ file->part1_c1_sorted = c1_array;
+ }
+
+ file->filename = xstrdup (filename);
+
+ if (ferror (stream) || fclose (stream))
+ {
+ fprintf (stderr, "error reading from '%s'\n", filename);
+ exit (1);
+ }
+}
+
+void
+test_specific (const struct normalization_test_file *file,
+ int (*check) (const uint32_t *c1, size_t c1_length,
+ const uint32_t *c2, size_t c2_length,
+ const uint32_t *c3, size_t c3_length,
+ const uint32_t *c4, size_t c4_length,
+ const uint32_t *c5, size_t c5_length))
+{
+ size_t part_index;
+
+ for (part_index = 0; part_index < 4; part_index++)
+ {
+ const struct normalization_test_part *p = &file->parts[part_index];
+ size_t line_index;
+
+ for (line_index = 0; line_index < p->lines_length; line_index++)
+ {
+ const struct normalization_test_line *l = &p->lines[line_index];
+
+ ASSERT_WITH_LINE (check (l->sequences[0], u32_strlen (l->sequences[0]),
+ l->sequences[1], u32_strlen (l->sequences[1]),
+ l->sequences[2], u32_strlen (l->sequences[2]),
+ l->sequences[3], u32_strlen (l->sequences[3]),
+ l->sequences[4], u32_strlen (l->sequences[4]))
+ == 0,
+ file->filename, l->lineno);
+ }
+ }
+}
+
+void
+test_other (const struct normalization_test_file *file, uninorm_t nf)
+{
+ /* Check that for every character not listed in part 1 of the
+ NormalizationTest.txt file, the character maps to itself in each
+ of the four normalization forms. */
+ const ucs4_t *p = file->part1_c1_sorted;
+ ucs4_t uc;
+
+ for (uc = 0; uc < 0x110000; uc++)
+ {
+ if (uc >= 0xD800 && uc < 0xE000)
+ {
+ /* A surrogate, not a character. Skip uc. */
+ }
+ else if (uc == *p)
+ {
+ /* Skip uc. */
+ p++;
+ }
+ else
+ {
+ uint32_t input[1];
+ size_t length;
+ uint32_t *result;
+
+ input[0] = uc;
+ result = u32_normalize (nf, input, 1, NULL, &length);
+ ASSERT (result != NULL && length == 1 && result[0] == uc);
+ }
+ }
+}
+
+#endif
diff --git a/tests/uninorm/test-u32-normalize-big.h b/tests/uninorm/test-u32-normalize-big.h
new file mode 100644
index 0000000..f154daa
--- /dev/null
+++ b/tests/uninorm/test-u32-normalize-big.h
@@ -0,0 +1,70 @@
+/* Test of Unicode compliance of normalization of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+
+#include "unitypes.h"
+#include "uninorm.h"
+
+/* The NormalizationTest.txt is from www.unicode.org, with stripped comments:
+ sed -e 's| *#.*||' < .../ucd/NormalizationTest.txt \
+ > tests/uninorm/NormalizationTest.txt
+ It is only used to verify the compliance of this implementation of the
+ Unicode normalization forms. It is not used by the library code, only
+ by the unit tests. */
+
+/* Representation of a line in the NormalizationTest.txt file. */
+struct normalization_test_line
+{
+ unsigned int lineno;
+ uint32_t *sequences[5];
+};
+
+/* Representation of a delimited part of the NormalizationTest.txt file. */
+struct normalization_test_part
+{
+ struct normalization_test_line *lines;
+ size_t lines_length;
+};
+
+/* Representation of the entire NormalizationTest.txt file. */
+struct normalization_test_file
+{
+ struct normalization_test_part parts[4];
+ /* The set of c1 values from part 1, sorted in ascending order, with a
+ sentinel value of 0x110000 at the end. */
+ ucs4_t *part1_c1_sorted;
+ /* The filename of the NormalizationTest.txt file. */
+ const char *filename;
+};
+
+/* Read the NormalizationTest.txt file and return its contents. */
+extern void
+ read_normalization_test_file (const char *filename,
+ struct normalization_test_file *file);
+
+/* Perform the first compliance test. */
+extern void
+ test_specific (const struct normalization_test_file *file,
+ int (*check) (const uint32_t *c1, size_t c1_length,
+ const uint32_t *c2, size_t c2_length,
+ const uint32_t *c3, size_t c3_length,
+ const uint32_t *c4, size_t c4_length,
+ const uint32_t *c5, size_t c5_length));
+
+/* Perform the second compliance test. */
+extern void
+ test_other (const struct normalization_test_file *file, uninorm_t nf);
diff --git a/tests/uninorm/test-u32-normcmp.c b/tests/uninorm/test-u32-normcmp.c
new file mode 100644
index 0000000..846300a
--- /dev/null
+++ b/tests/uninorm/test-u32-normcmp.c
@@ -0,0 +1,130 @@
+/* Test of normalization insensitive comparison of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u32-normcmp.h"
+
+static void
+test_nonascii (int (*my_normcmp) (const uint32_t *, size_t, const uint32_t *, size_t, uninorm_t, int *))
+{
+ /* Normalization effects. */
+ {
+ static const uint32_t input1[] = { 'H', 0x00F6, 'h', 'l', 'e' };
+ static const uint32_t input2[] = { 'H', 'o', 0x0308, 'h', 'l', 'e' };
+ static const uint32_t input3[] = { 'H', 0x00F6, 'h', 'l', 'e', 'n' };
+ static const uint32_t input4[] = { 'H', 'o', 0x0308, 'h', 'l', 'e', 'n' };
+ static const uint32_t input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input3, SIZEOF (input3), input4, SIZEOF (input4), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input4, SIZEOF (input4), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input4, SIZEOF (input4), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input5, SIZEOF (input5), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input5, SIZEOF (input5), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint32_t input1[] = { 0x00C4 };
+ static const uint32_t input2[] = { 0x0041, 0x0308 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint32_t input1[] = { 0x01DE };
+ static const uint32_t input2[] = { 0x0041, 0x0308, 0x0304 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint32_t input1[] = { 0x1FC1 };
+ static const uint32_t input2[] = { 0x00A8, 0x0342 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint32_t input1[] = { 0xAE00 };
+ static const uint32_t input2[] = { 0xADF8, 0x11AF };
+ static const uint32_t input3[] = { 0x1100, 0x1173, 0x11AF };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEU */
+ static const uint32_t input1[] = { 0xADF8 };
+ static const uint32_t input2[] = { 0x1100, 0x1173 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u32_normcmp, UNINORM_NFD);
+ test_nonascii (u32_normcmp);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-u32-normcmp.h b/tests/uninorm/test-u32-normcmp.h
new file mode 100644
index 0000000..06d5fad
--- /dev/null
+++ b/tests/uninorm/test-u32-normcmp.h
@@ -0,0 +1,69 @@
+/* Test of normalization insensitive comparison of UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_normcmp) (const uint32_t *, size_t, const uint32_t *, size_t, uninorm_t, int *),
+ uninorm_t nf)
+{
+ /* Empty string. */
+ {
+ int cmp;
+
+ ASSERT (my_normcmp (NULL, 0, NULL, 0, nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ {
+ static const uint32_t input[] = { 'x', 'y' };
+ int cmp;
+
+ ASSERT (my_normcmp (input, SIZEOF (input), NULL, 0, nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_normcmp (NULL, 0, input, SIZEOF (input), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input, SIZEOF (input), input, SIZEOF (input), nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Normal lexicographic order. */
+ {
+ static const uint32_t input1[] = { 'A', 'm', 'e', 'r', 'i', 'c', 'a' };
+ static const uint32_t input2[] = { 'A', 'm', 'i', 'g', 'o' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+
+ /* Shorter and longer strings. */
+ {
+ static const uint32_t input1[] = { 'R', 'e', 'a', 'g', 'a', 'n' };
+ static const uint32_t input2[] = { 'R', 'e', 'a', 'g', 'a', 'n', 'o', 'm', 'i', 'c', 's' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+}
diff --git a/tests/uninorm/test-u32-normcoll.c b/tests/uninorm/test-u32-normcoll.c
new file mode 100644
index 0000000..916d433
--- /dev/null
+++ b/tests/uninorm/test-u32-normcoll.c
@@ -0,0 +1,49 @@
+/* Test of locale dependent, normalization insensitive comparison of
+ UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u32-normcmp.h"
+int
+main ()
+{
+ /* In the "C" locale, strcoll is equivalent to strcmp, therefore u8_normcoll
+ on ASCII strings should behave like strcmp as well. */
+ test_ascii (u32_normcoll, UNINORM_NFC);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-u8-nfc.c b/tests/uninorm/test-u8-nfc.c
new file mode 100644
index 0000000..52baa68
--- /dev/null
+++ b/tests/uninorm/test-u8-nfc.c
@@ -0,0 +1,375 @@
+/* Test of canonical normalization of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U8_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_normalize (UNINORM_NFC, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u8_nfc (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint8_t input[] = { 0x20 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint8_t input[] = { 0xC3, 0x84 };
+ static const uint8_t decomposed[] = { 0x41, 0xCC, 0x88 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint8_t input[] = { 0xC7, 0x9E };
+ static const uint8_t decomposed[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ANGSTROM SIGN */
+ static const uint8_t input[] = { 0xE2, 0x84, 0xAB };
+ static const uint8_t decomposed[] = { 0x41, 0xCC, 0x8A };
+ static const uint8_t expected[] = { 0xC3, 0x85 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint8_t input[] = { 0xE1, 0xBF, 0x81 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint8_t input[] = { 0xE2, 0x84, 0x93 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint8_t input[] = { 0xC2, 0xA0 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAC };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAD };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAB };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint8_t input[] = { 0xE2, 0x91, 0xAE };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint8_t input[] = { 0xE2, 0x84, 0xA2 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint8_t input[] = { 0xE1, 0xB5, 0xA2 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint8_t input[] = { 0xEF, 0xB8, 0xB5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint8_t input[] = { 0xEF, 0xBC, 0xA1 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xBD, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xB9, 0x91 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint8_t input[] = { 0xE3, 0x8E, 0x92 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint8_t input[] = { 0xE2, 0x85, 0x9C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint8_t input[] = { 0xC2, 0xB5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint8_t input[] = { 0xEF, 0xB7, 0xBA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint8_t input[] = { 0xEA, 0xB8, 0x80 };
+ static const uint8_t decomposed[] =
+ { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint8_t input[] = { 0xEA, 0xB7, 0xB8 };
+ static const uint8_t decomposed[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C,
+ 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t decomposed[] =
+ { 'G', 'r', 0x75, 0xCC, 0x88, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB8, 0xCC, 0x86,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xAB,
+ 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+ size_t i;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0xC3;
+ expected[1] = 0x80;
+ p = expected + 2;
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2 - 1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 2) == 0);
+ ASSERT (check (expected, 2 * m - 2, expected, 2 * m - 2) == 0);
+ }
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u8_nfc (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u8-nfd.c b/tests/uninorm/test-u8-nfd.c
new file mode 100644
index 0000000..d1d840a
--- /dev/null
+++ b/tests/uninorm/test-u8-nfd.c
@@ -0,0 +1,358 @@
+/* Test of canonical decomposition of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U8_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_normalize (UNINORM_NFD, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u8_nfd (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint8_t input[] = { 0x20 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint8_t input[] = { 0xC3, 0x84 };
+ static const uint8_t expected[] = { 0x41, 0xCC, 0x88 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint8_t input[] = { 0xC7, 0x9E };
+ static const uint8_t expected[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint8_t input[] = { 0xE1, 0xBF, 0x81 };
+ static const uint8_t expected[] = { 0xC2, 0xA8, 0xCD, 0x82 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint8_t input[] = { 0xE2, 0x84, 0x93 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint8_t input[] = { 0xC2, 0xA0 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAC };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAD };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAB };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint8_t input[] = { 0xE2, 0x91, 0xAE };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint8_t input[] = { 0xE2, 0x84, 0xA2 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint8_t input[] = { 0xE1, 0xB5, 0xA2 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint8_t input[] = { 0xEF, 0xB8, 0xB5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint8_t input[] = { 0xEF, 0xBC, 0xA1 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xBD, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xB9, 0x91 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint8_t input[] = { 0xE3, 0x8E, 0x92 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint8_t input[] = { 0xE2, 0x85, 0x9C };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint8_t input[] = { 0xC2, 0xB5 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint8_t input[] = { 0xEF, 0xB7, 0xBA };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint8_t input[] = { 0xEA, 0xB8, 0x80 };
+ static const uint8_t expected[] =
+ { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint8_t input[] = { 0xEA, 0xB7, 0xB8 };
+ static const uint8_t expected[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C,
+ 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t expected[] =
+ { 'G', 'r', 0x75, 0xCC, 0x88, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB8, 0xCC, 0x86,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xAB,
+ 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+ size_t i;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x41;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 1) == 0);
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u8_nfd (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u8-nfkc.c b/tests/uninorm/test-u8-nfkc.c
new file mode 100644
index 0000000..0ea4636
--- /dev/null
+++ b/tests/uninorm/test-u8-nfkc.c
@@ -0,0 +1,427 @@
+/* Test of compatibility normalization of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U8_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_normalize (UNINORM_NFKC, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFKC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFKC, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u8_nfkc (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint8_t input[] = { 0x20 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint8_t input[] = { 0xC3, 0x84 };
+ static const uint8_t decomposed[] = { 0x41, 0xCC, 0x88 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint8_t input[] = { 0xC7, 0x9E };
+ static const uint8_t decomposed[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* ANGSTROM SIGN */
+ static const uint8_t input[] = { 0xE2, 0x84, 0xAB };
+ static const uint8_t decomposed[] = { 0x41, 0xCC, 0x8A };
+ static const uint8_t expected[] = { 0xC3, 0x85 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint8_t input[] = { 0xE1, 0xBF, 0x81 };
+ static const uint8_t decomposed[] = { 0x20, 0xCC, 0x88, 0xCD, 0x82 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint8_t input[] = { 0xE2, 0x84, 0x93 };
+ static const uint8_t decomposed[] = { 0x6C };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint8_t input[] = { 0xC2, 0xA0 };
+ static const uint8_t decomposed[] = { 0x20 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAC };
+ static const uint8_t decomposed[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAD };
+ static const uint8_t decomposed[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAB };
+ static const uint8_t decomposed[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAA };
+ static const uint8_t decomposed[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint8_t input[] = { 0xE2, 0x91, 0xAE };
+ static const uint8_t decomposed[] = { 0x31, 0x35 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint8_t input[] = { 0xE2, 0x84, 0xA2 };
+ static const uint8_t decomposed[] = { 0x54, 0x4D };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint8_t input[] = { 0xE1, 0xB5, 0xA2 };
+ static const uint8_t decomposed[] = { 0x69 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint8_t input[] = { 0xEF, 0xB8, 0xB5 };
+ static const uint8_t decomposed[] = { 0x28 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint8_t input[] = { 0xEF, 0xBC, 0xA1 };
+ static const uint8_t decomposed[] = { 0x41 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xBD, 0xA4 };
+ static const uint8_t decomposed[] = { 0xE3, 0x80, 0x81 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xB9, 0x91 };
+ static const uint8_t decomposed[] = { 0xE3, 0x80, 0x81 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint8_t input[] = { 0xE3, 0x8E, 0x92 };
+ static const uint8_t decomposed[] = { 0x4D, 0x48, 0x7A };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint8_t input[] = { 0xE2, 0x85, 0x9C };
+ static const uint8_t decomposed[] = { 0x33, 0xE2, 0x81, 0x84, 0x38 };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint8_t input[] = { 0xC2, 0xB5 };
+ static const uint8_t decomposed[] = { 0xCE, 0xBC };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint8_t input[] = { 0xEF, 0xB7, 0xBA };
+ static const uint8_t decomposed[] =
+ { 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
+ 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87,
+ 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85
+ };
+ ASSERT (check (input, SIZEOF (input), decomposed, SIZEOF (decomposed)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), decomposed, SIZEOF (decomposed)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint8_t input[] = { 0xEA, 0xB8, 0x80 };
+ static const uint8_t decomposed[] =
+ { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint8_t input[] = { 0xEA, 0xB7, 0xB8 };
+ static const uint8_t decomposed[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C,
+ 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t decomposed[] =
+ { 'G', 'r', 0x75, 0xCC, 0x88, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB8, 0xCC, 0x86,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0x32, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xAB,
+ 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF, '\n'
+ };
+ static const uint8_t expected[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0x32, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C,
+ 0xEA, 0xB8, 0x80, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), expected, SIZEOF (expected)) == 0);
+ ASSERT (check (expected, SIZEOF (expected), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+ size_t i;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0xC3;
+ expected[1] = 0x80;
+ p = expected + 2;
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2 - 1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ {
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 2) == 0);
+ ASSERT (check (expected, 2 * m - 2, expected, 2 * m - 2) == 0);
+ }
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u8_nfkc (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u8-nfkd.c b/tests/uninorm/test-u8-nfkd.c
new file mode 100644
index 0000000..2d883a0
--- /dev/null
+++ b/tests/uninorm/test-u8-nfkd.c
@@ -0,0 +1,379 @@
+/* Test of compatibility decomposition of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#if GNULIB_UNINORM_U8_NORMALIZE
+
+#include "uninorm.h"
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static int
+check (const uint8_t *input, size_t input_length,
+ const uint8_t *expected, size_t expected_length)
+{
+ size_t length;
+ uint8_t *result;
+
+ /* Test return conventions with resultbuf == NULL. */
+ result = u8_normalize (UNINORM_NFKD, input, input_length, NULL, &length);
+ if (!(result != NULL))
+ return 1;
+ if (!(length == expected_length))
+ return 2;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 3;
+ free (result);
+
+ /* Test return conventions with resultbuf too small. */
+ if (expected_length > 0)
+ {
+ uint8_t *preallocated;
+
+ length = expected_length - 1;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFKD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 4;
+ if (!(result != preallocated))
+ return 5;
+ if (!(length == expected_length))
+ return 6;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 7;
+ free (result);
+ free (preallocated);
+ }
+
+ /* Test return conventions with resultbuf large enough. */
+ {
+ uint8_t *preallocated;
+
+ length = expected_length;
+ preallocated = (uint8_t *) malloc (length * sizeof (uint8_t));
+ result = u8_normalize (UNINORM_NFKD, input, input_length, preallocated, &length);
+ if (!(result != NULL))
+ return 8;
+ if (!(preallocated == NULL || result == preallocated))
+ return 9;
+ if (!(length == expected_length))
+ return 10;
+ if (!(u8_cmp (result, expected, expected_length) == 0))
+ return 11;
+ free (preallocated);
+ }
+
+ return 0;
+}
+
+void
+test_u8_nfkd (void)
+{
+ { /* Empty string. */
+ ASSERT (check (NULL, 0, NULL, 0) == 0);
+ }
+ { /* SPACE */
+ static const uint8_t input[] = { 0x20 };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint8_t input[] = { 0xC3, 0x84 };
+ static const uint8_t expected[] = { 0x41, 0xCC, 0x88 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint8_t input[] = { 0xC7, 0x9E };
+ static const uint8_t expected[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint8_t input[] = { 0xE1, 0xBF, 0x81 };
+ static const uint8_t expected[] = { 0x20, 0xCC, 0x88, 0xCD, 0x82 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SCRIPT SMALL L */
+ static const uint8_t input[] = { 0xE2, 0x84, 0x93 };
+ static const uint8_t expected[] = { 0x6C };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* NO-BREAK SPACE */
+ static const uint8_t input[] = { 0xC2, 0xA0 };
+ static const uint8_t expected[] = { 0x20 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH INITIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAC };
+ static const uint8_t expected[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH MEDIAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAD };
+ static const uint8_t expected[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH FINAL FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAB };
+ static const uint8_t expected[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LETTER VEH ISOLATED FORM */
+ static const uint8_t input[] = { 0xEF, 0xAD, 0xAA };
+ static const uint8_t expected[] = { 0xDA, 0xA4 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* CIRCLED NUMBER FIFTEEN */
+ static const uint8_t input[] = { 0xE2, 0x91, 0xAE };
+ static const uint8_t expected[] = { 0x31, 0x35 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* TRADE MARK SIGN */
+ static const uint8_t input[] = { 0xE2, 0x84, 0xA2 };
+ static const uint8_t expected[] = { 0x54, 0x4D };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* LATIN SUBSCRIPT SMALL LETTER I */
+ static const uint8_t input[] = { 0xE1, 0xB5, 0xA2 };
+ static const uint8_t expected[] = { 0x69 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS */
+ static const uint8_t input[] = { 0xEF, 0xB8, 0xB5 };
+ static const uint8_t expected[] = { 0x28 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* FULLWIDTH LATIN CAPITAL LETTER A */
+ static const uint8_t input[] = { 0xEF, 0xBC, 0xA1 };
+ static const uint8_t expected[] = { 0x41 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HALFWIDTH IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xBD, 0xA4 };
+ static const uint8_t expected[] = { 0xE3, 0x80, 0x81 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SMALL IDEOGRAPHIC COMMA */
+ static const uint8_t input[] = { 0xEF, 0xB9, 0x91 };
+ static const uint8_t expected[] = { 0xE3, 0x80, 0x81 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* SQUARE MHZ */
+ static const uint8_t input[] = { 0xE3, 0x8E, 0x92 };
+ static const uint8_t expected[] = { 0x4D, 0x48, 0x7A };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* VULGAR FRACTION THREE EIGHTHS */
+ static const uint8_t input[] = { 0xE2, 0x85, 0x9C };
+ static const uint8_t expected[] = { 0x33, 0xE2, 0x81, 0x84, 0x38 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* MICRO SIGN */
+ static const uint8_t input[] = { 0xC2, 0xB5 };
+ static const uint8_t expected[] = { 0xCE, 0xBC };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM */
+ static const uint8_t input[] = { 0xEF, 0xB7, 0xBA };
+ static const uint8_t expected[] =
+ { 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
+ 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87,
+ 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint8_t input[] = { 0xEA, 0xB8, 0x80 };
+ static const uint8_t expected[] =
+ { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* HANGUL SYLLABLE GEU */
+ static const uint8_t input[] = { 0xEA, 0xB7, 0xB8 };
+ static const uint8_t expected[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint8_t input[] =
+ { 'G', 'r', 0xC3, 0xBC, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB9,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0xC2, 0xB2, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xED, 0x95, 0x9C,
+ 0xEA, 0xB8, 0x80, '\n'
+ };
+ static const uint8_t expected[] =
+ { 'G', 'r', 0x75, 0xCC, 0x88, 0xC3, 0x9F, ' ', 'G', 'o', 't', 't', '.',
+ ' ', 0xD0, 0x97, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB0, 0xD0, 0xB2, 0xD1,
+ 0x81, 0xD1, 0x82, 0xD0, 0xB2, 0xD1, 0x83, 0xD0, 0xB8, 0xCC, 0x86,
+ 0xD1, 0x82, 0xD0, 0xB5, '!', ' ', 'x', '=', '(', '-', 'b', 0xC2, 0xB1,
+ 's', 'q', 'r', 't', '(', 'b', 0x32, '-', '4', 'a', 'c', ')', ')',
+ '/', '(', '2', 'a', ')', ' ', ' ', 0xE6, 0x97, 0xA5, 0xE6, 0x9C, 0xAC,
+ 0xE8, 0xAA, 0x9E, ',', 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87, ',',
+ 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xAB,
+ 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), expected, SIZEOF (expected)) == 0);
+ }
+
+#if HAVE_DECL_ALARM
+ /* Declare failure if test takes too long, by using default abort
+ caused by SIGALRM. */
+ signal (SIGALRM, SIG_DFL);
+ alarm (50);
+#endif
+
+ /* Check that the sorting is not O(n²) but O(n log n). */
+ {
+ int pass;
+ for (pass = 0; pass < 3; pass++)
+ {
+ size_t repeat = 1;
+ size_t m = 100000;
+ uint8_t *input = (uint8_t *) malloc (2 * (2 * m - 1) * sizeof (uint8_t));
+ if (input != NULL)
+ {
+ uint8_t *expected = input + (2 * m - 1);
+ size_t m1 = m / 2;
+ size_t m2 = (m - 1) / 2;
+ /* NB: m1 + m2 == m - 1. */
+ uint8_t *p;
+ size_t i;
+
+ input[0] = 0x41;
+ p = input + 1;
+ switch (pass)
+ {
+ case 0:
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ break;
+
+ case 1:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ case 2:
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+ for (; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ expected[0] = 0x41;
+ p = expected + 1;
+ for (i = 0; i < m1; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x99;
+ }
+ for (i = 0; i < m2; i++)
+ {
+ *p++ = 0xCC;
+ *p++ = 0x80;
+ }
+
+ for (; repeat > 0; repeat--)
+ ASSERT (check (input, 2 * m - 1, expected, 2 * m - 1) == 0);
+
+ free (input);
+ }
+ }
+ }
+}
+
+#else
+
+void
+test_u8_nfkd (void)
+{
+}
+
+#endif
diff --git a/tests/uninorm/test-u8-normcmp.c b/tests/uninorm/test-u8-normcmp.c
new file mode 100644
index 0000000..ec47947
--- /dev/null
+++ b/tests/uninorm/test-u8-normcmp.c
@@ -0,0 +1,130 @@
+/* Test of normalization insensitive comparison of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u8-normcmp.h"
+
+static void
+test_nonascii (int (*my_normcmp) (const uint8_t *, size_t, const uint8_t *, size_t, uninorm_t, int *))
+{
+ /* Normalization effects. */
+ {
+ static const uint8_t input1[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e' };
+ static const uint8_t input2[] = { 'H', 'o', 0xCC, 0x88, 'h', 'l', 'e' };
+ static const uint8_t input3[] = { 'H', 0xC3, 0xB6, 'h', 'l', 'e', 'n' };
+ static const uint8_t input4[] = { 'H', 'o', 0xCC, 0x88, 'h', 'l', 'e', 'n' };
+ static const uint8_t input5[] = { 'H', 'u', 'r', 'z' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input3, SIZEOF (input3), input4, SIZEOF (input4), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input4, SIZEOF (input4), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input4, SIZEOF (input4), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input5, SIZEOF (input5), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input5, SIZEOF (input5), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == -1);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ static const uint8_t input1[] = { 0xC3, 0x84 };
+ static const uint8_t input2[] = { 0x41, 0xCC, 0x88 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+ static const uint8_t input1[] = { 0xC7, 0x9E };
+ static const uint8_t input2[] = { 0x41, 0xCC, 0x88, 0xCC, 0x84 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* GREEK DIALYTIKA AND PERISPOMENI */
+ static const uint8_t input1[] = { 0xE1, 0xBF, 0x81 };
+ static const uint8_t input2[] = { 0xC2, 0xA8, 0xCD, 0x82 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEUL */
+ static const uint8_t input1[] = { 0xEA, 0xB8, 0x80 };
+ static const uint8_t input2[] = { 0xEA, 0xB7, 0xB8, 0xE1, 0x86, 0xAF };
+ static const uint8_t input3[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3, 0xE1, 0x86, 0xAF };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input3, SIZEOF (input3), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ { /* HANGUL SYLLABLE GEU */
+ static const uint8_t input1[] = { 0xEA, 0xB7, 0xB8 };
+ static const uint8_t input2[] = { 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xB3 };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), UNINORM_NFD, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+}
+
+int
+main ()
+{
+ test_ascii (u8_normcmp, UNINORM_NFD);
+ test_nonascii (u8_normcmp);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-u8-normcmp.h b/tests/uninorm/test-u8-normcmp.h
new file mode 100644
index 0000000..78c887d
--- /dev/null
+++ b/tests/uninorm/test-u8-normcmp.h
@@ -0,0 +1,69 @@
+/* Test of normalization insensitive comparison of UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+static void
+test_ascii (int (*my_normcmp) (const uint8_t *, size_t, const uint8_t *, size_t, uninorm_t, int *),
+ uninorm_t nf)
+{
+ /* Empty string. */
+ {
+ int cmp;
+
+ ASSERT (my_normcmp (NULL, 0, NULL, 0, nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+ {
+ static const uint8_t input[] = { 'x', 'y' };
+ int cmp;
+
+ ASSERT (my_normcmp (input, SIZEOF (input), NULL, 0, nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+
+ ASSERT (my_normcmp (NULL, 0, input, SIZEOF (input), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input, SIZEOF (input), input, SIZEOF (input), nf, &cmp) == 0);
+ ASSERT (cmp == 0);
+ }
+
+ /* Normal lexicographic order. */
+ {
+ static const uint8_t input1[] = { 'A', 'm', 'e', 'r', 'i', 'c', 'a' };
+ static const uint8_t input2[] = { 'A', 'm', 'i', 'g', 'o' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+
+ /* Shorter and longer strings. */
+ {
+ static const uint8_t input1[] = { 'R', 'e', 'a', 'g', 'a', 'n' };
+ static const uint8_t input2[] = { 'R', 'e', 'a', 'g', 'a', 'n', 'o', 'm', 'i', 'c', 's' };
+ int cmp;
+
+ ASSERT (my_normcmp (input1, SIZEOF (input1), input2, SIZEOF (input2), nf, &cmp) == 0);
+ ASSERT (cmp == -1);
+
+ ASSERT (my_normcmp (input2, SIZEOF (input2), input1, SIZEOF (input1), nf, &cmp) == 0);
+ ASSERT (cmp == 1);
+ }
+}
diff --git a/tests/uninorm/test-u8-normcoll.c b/tests/uninorm/test-u8-normcoll.c
new file mode 100644
index 0000000..edf9172
--- /dev/null
+++ b/tests/uninorm/test-u8-normcoll.c
@@ -0,0 +1,49 @@
+/* Test of locale dependent, normalization insensitive comparison of
+ UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u8-normcmp.h"
+int
+main ()
+{
+ /* In the "C" locale, strcoll is equivalent to strcmp, therefore u8_normcoll
+ on ASCII strings should behave like strcmp as well. */
+ test_ascii (u8_normcoll, UNINORM_NFC);
+
+ return 0;
+}
diff --git a/tests/uninorm/test-uninorm-filter-nfc.c b/tests/uninorm/test-uninorm-filter-nfc.c
new file mode 100644
index 0000000..32b77ef
--- /dev/null
+++ b/tests/uninorm/test-uninorm-filter-nfc.c
@@ -0,0 +1,122 @@
+/* Test of canonical normalization of streams.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uninorm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* A stream of Unicode characters that simply accumulates the contents. */
+
+struct accumulator
+{
+ uint32_t *result;
+ size_t length;
+ size_t allocated;
+};
+
+static int
+write_to_accumulator (void *stream_data, ucs4_t uc)
+{
+ struct accumulator *accu = (struct accumulator *) stream_data;
+
+ if (accu->length == accu->allocated)
+ {
+ accu->allocated = 2 * accu->allocated + 1;
+ accu->result = (uint32_t *) realloc (accu->result, accu->allocated * sizeof (uint32_t));
+ }
+ accu->result[accu->length] = uc;
+ accu->length++;
+ return 0;
+}
+
+static int
+check (const uint32_t *input, size_t input_length,
+ const uint32_t *expected, size_t expected_length)
+{
+ struct accumulator accu;
+ struct uninorm_filter *filter;
+ size_t i;
+
+ accu.result = NULL;
+ accu.length = 0;
+ accu.allocated = 0;
+
+ filter = uninorm_filter_create (UNINORM_NFC, write_to_accumulator, &accu);
+ ASSERT (filter != NULL);
+
+ for (i = 0; i < input_length; i++)
+ ASSERT (uninorm_filter_write (filter, input[i]) == 0);
+
+ ASSERT (uninorm_filter_free (filter) == 0);
+
+ if (!(accu.result != NULL))
+ return 1;
+ if (!(accu.length == expected_length))
+ return 2;
+ if (!(u32_cmp (accu.result, expected, expected_length) == 0))
+ return 3;
+ free (accu.result);
+
+ return 0;
+}
+
+int
+main ()
+{
+ { /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ static const uint32_t input[] =
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ static const uint32_t decomposed[] =
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ ASSERT (check (input, SIZEOF (input), input, SIZEOF (input)) == 0);
+ ASSERT (check (decomposed, SIZEOF (decomposed), input, SIZEOF (input)) == 0);
+ }
+
+ return 0;
+}
diff --git a/tests/unistdio/test-u16-asnprintf1.c b/tests/unistdio/test-u16-asnprintf1.c
new file mode 100644
index 0000000..53fedf3
--- /dev/null
+++ b/tests/unistdio/test-u16-asnprintf1.c
@@ -0,0 +1,59 @@
+/* Test of u16_asnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u16-asnprintf1.h"
+
+static void
+test_asnprintf ()
+{
+ test_function (u16_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_asnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u16-asnprintf1.h b/tests/unistdio/test-u16-asnprintf1.h
new file mode 100644
index 0000000..34d4f82
--- /dev/null
+++ b/tests/unistdio/test-u16-asnprintf1.h
@@ -0,0 +1,60 @@
+/* Test of u16_[v]asnprintf() function.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_function (uint16_t * (*my_asnprintf) (uint16_t *, size_t *, const char *, ...))
+{
+ uint16_t buf[8];
+ int size;
+
+ /* Test return value convention. */
+
+ for (size = 0; size <= 8; size++)
+ {
+ size_t length = size;
+ uint16_t *result = my_asnprintf (NULL, &length, "%d", 12345);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', '5', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == 5);
+ free (result);
+ }
+
+ for (size = 0; size <= 8; size++)
+ {
+ static const uint16_t initializer[] =
+ { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F', 0 };
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', '5', 0 };
+ size_t length;
+ uint16_t *result;
+
+ u16_cpy (buf, initializer, 8);
+ length = size;
+ result = my_asnprintf (buf, &length, "%d", 12345);
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == 5);
+ if (size < 6)
+ ASSERT (result != buf);
+ ASSERT (u16_cmp (buf + size, initializer + size, 8 - size) == 0);
+ if (result != buf)
+ free (result);
+ }
+}
diff --git a/tests/unistdio/test-u16-printf1.h b/tests/unistdio/test-u16-printf1.h
new file mode 100644
index 0000000..199ece9
--- /dev/null
+++ b/tests/unistdio/test-u16-printf1.h
@@ -0,0 +1,941 @@
+/* Test of u16_v[a]s[n]printf() function.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_xfunction (uint16_t * (*my_xasprintf) (const char *, ...))
+{
+ /* Test support of size specifiers as in C99. */
+
+ {
+ uint16_t *result =
+ my_xasprintf ("%ju %d", (uintmax_t) 12345671, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', '5', '6', '7', '1', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint16_t *result =
+ my_xasprintf ("%zu %d", (size_t) 12345672, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', '5', '6', '7', '2', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint16_t *result =
+ my_xasprintf ("%tu %d", (ptrdiff_t) 12345673, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', '5', '6', '7', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint16_t *result =
+ my_xasprintf ("%Lg %d", (long double) 1.5, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '.', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Hello";
+ {
+ uint16_t *result =
+ my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint16_t *result =
+ my_xasprintf ("%-10U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', ' ', ' ', ' ', ' ', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint16_t *result =
+ my_xasprintf ("%010U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ uint16_t *result =
+ my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint16_t *result =
+ my_xasprintf ("%-10lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', ' ', ' ', ' ', ' ', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint16_t *result =
+ my_xasprintf ("%010lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ uint16_t *result =
+ my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint16_t *result =
+ my_xasprintf ("%-10llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', ' ', ' ', ' ', ' ', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint16_t *result =
+ my_xasprintf ("%010llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ uint16_t *result =
+ my_xasprintf ("Mr. %s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'M', 'r', '.', ' ', 'R', 'o', 'n', 'a', 'l', 'd',
+ ' ', 'R', 'e', 'a', 'g', 'a', 'n', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("Mr. %20s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'M', 'r', '.', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
+ ' ', 'R', 'o', 'n', 'a', 'l', 'd', ' ', 'R', 'e',
+ 'a', 'g', 'a', 'n', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* FLAG_LEFT. */
+ uint16_t *result =
+ my_xasprintf ("Mr. %-20s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'M', 'r', '.', ' ', 'R', 'o', 'n', 'a', 'l', 'd',
+ ' ', 'R', 'e', 'a', 'g', 'a', 'n', ' ', ' ', ' ',
+ ' ', ' ', ' ', ' ', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* FLAG_ZERO: no effect. */
+ uint16_t *result =
+ my_xasprintf ("Mr. %020s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'M', 'r', '.', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
+ ' ', 'R', 'o', 'n', 'a', 'l', 'd', ' ', 'R', 'e',
+ 'a', 'g', 'a', 'n', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'a' and 'A' conversion specifier for hexadecimal
+ output of floating-point numbers. */
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%a %d", 3.1416015625, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '0', 'x', '1', '.', '9', '2', '2', 'p', '+', '1', ' ', '3', '3', 0 };
+ static const uint16_t expected2[] =
+ { '0', 'x', '3', '.', '2', '4', '4', 'p', '+', '0', ' ', '3', '3', 0 };
+ static const uint16_t expected3[] =
+ { '0', 'x', '6', '.', '4', '8', '8', 'p', '-', '1', ' ', '3', '3', 0 };
+ static const uint16_t expected4[] =
+ { '0', 'x', 'c', '.', '9', '1', 'p', '-', '2', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10a %d", 1.75, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { ' ', ' ', '0', 'x', '1', '.', 'c', 'p', '+', '0', ' ', '3', '3', 0 };
+ static const uint16_t expected2[] =
+ { ' ', ' ', '0', 'x', '3', '.', '8', 'p', '-', '1', ' ', '3', '3', 0 };
+ static const uint16_t expected3[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', '7', 'p', '-', '2', ' ', '3', '3', 0 };
+ static const uint16_t expected4[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', 'e', 'p', '-', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ uint16_t *result =
+ my_xasprintf ("%.10a %d", 1.75, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ uint16_t *result =
+ my_xasprintf ("%.50a %d", 1.75, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%La %d", 3.1416015625L, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '0', 'x', '1', '.', '9', '2', '2', 'p', '+', '1',
+ ' ', '3', '3', 0
+ };
+ static const uint16_t expected2[] =
+ { '0', 'x', '3', '.', '2', '4', '4', 'p', '+', '0',
+ ' ', '3', '3', 0
+ };
+ static const uint16_t expected3[] =
+ { '0', 'x', '6', '.', '4', '8', '8', 'p', '-', '1',
+ ' ', '3', '3', 0
+ };
+ static const uint16_t expected4[] =
+ { '0', 'x', 'c', '.', '9', '1', 'p', '-', '2', ' ',
+ '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10La %d", 1.75L, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { ' ', ' ', '0', 'x', '1', '.', 'c', 'p', '+', '0', ' ', '3', '3', 0 };
+ static const uint16_t expected2[] =
+ { ' ', ' ', '0', 'x', '3', '.', '8', 'p', '-', '1', ' ', '3', '3', 0 };
+ static const uint16_t expected3[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', '7', 'p', '-', '2', ' ', '3', '3', 0 };
+ static const uint16_t expected4[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', 'e', 'p', '-', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ uint16_t *result =
+ my_xasprintf ("%.10La %d", 1.75L, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ uint16_t *result =
+ my_xasprintf ("%.50La %d", 1.75L, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint16_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0
+ || u16_strcmp (result, expected3) == 0
+ || u16_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %f format directive. */
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%f %d", 12.75, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10f %d", 1.75, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', '1', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.f %d", 1234.0, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%Lf %d", 12.75L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10Lf %d", 1.75L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', '1', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.Lf %d", 1234.0L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %F format directive. */
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%F %d", 12.75, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.F %d", 1234.0, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%LF %d", 12.75L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.LF %d", 1234.0L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %e format directive. */
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%e %d", 12.75, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '1', '.', '2', '7', '5', '0', '0', '0', 'e', '+',
+ '0', '1', ' ', '3', '3', 0
+ };
+ static const uint16_t expected2[] =
+ { '1', '.', '2', '7', '5', '0', '0', '0', 'e', '+',
+ '0', '0', '1', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%15e %d", 1.75, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { ' ', ' ', ' ', '1', '.', '7', '5', '0', '0', '0',
+ '0', 'e', '+', '0', '0', ' ', '3', '3', 0
+ };
+ static const uint16_t expected2[] =
+ { ' ', ' ', '1', '.', '7', '5', '0', '0', '0', '0',
+ 'e', '+', '0', '0', '0', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.e %d", 1234.0, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ static const uint16_t expected2[] =
+ { '1', 'e', '+', '0', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%Le %d", 12.75L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '.', '2', '7', '5', '0', '0', '0', 'e', '+',
+ '0', '1', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%15Le %d", 1.75L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', '1', '.', '7', '5', '0', '0', '0',
+ '0', 'e', '+', '0', '0', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.Le %d", 1234.0L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %g format directive. */
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%g %d", 12.75, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10g %d", 1.75, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', ' ', '1', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.g %d", 1234.0, 33, 44, 55);
+ static const uint16_t expected1[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ static const uint16_t expected2[] =
+ { '1', 'e', '+', '0', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected1) == 0
+ || u16_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint16_t *result =
+ my_xasprintf ("%Lg %d", 12.75L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%10Lg %d", 1.75L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', ' ', '1', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint16_t *result =
+ my_xasprintf ("%.Lg %d", 1234.0L, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %n format directive. */
+
+ {
+ int count = -1;
+ uint16_t *result =
+ my_xasprintf ("%d %n", 123, &count, 33, 44, 55);
+ static const uint16_t expected[] =
+ { '1', '2', '3', ' ', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (count == 4);
+ free (result);
+ }
+
+ /* Test the support of the POSIX/XSI format strings with positions. */
+
+ {
+ uint16_t *result =
+ my_xasprintf ("%2$d %1$d", 33, 55);
+ static const uint16_t expected[] =
+ { '5', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the grouping flag. */
+
+ {
+ uint16_t *result =
+ my_xasprintf ("%'d %d", 1234567, 99);
+ ASSERT (result != NULL);
+ ASSERT (result[u16_strlen (result) - 1] == '9');
+ free (result);
+ }
+
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ {
+ uint16_t *result =
+ my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%20U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint16_t *result =
+ my_xasprintf ("%-20U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint16_t *result =
+ my_xasprintf ("%020U %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ uint16_t *result =
+ my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%20lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint16_t *result =
+ my_xasprintf ("%-20lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint16_t *result =
+ my_xasprintf ("%020lU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ uint16_t *result =
+ my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint16_t *result =
+ my_xasprintf ("%20llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint16_t *result =
+ my_xasprintf ("%-20llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint16_t *result =
+ my_xasprintf ("%020llU %d", unicode_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ /* Test non-ASCII characters in the format string. */
+
+ {
+ uint16_t *result =
+ my_xasprintf ("\304rger", 33, 44, 55);
+ ASSERT (result == NULL && errno == EINVAL);
+ }
+}
diff --git a/tests/unistdio/test-u16-vasnprintf1.c b/tests/unistdio/test-u16-vasnprintf1.c
new file mode 100644
index 0000000..b236e3f
--- /dev/null
+++ b/tests/unistdio/test-u16-vasnprintf1.c
@@ -0,0 +1,88 @@
+/* Test of u16_vasnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u16-asnprintf1.h"
+#include "test-u16-printf1.h"
+
+static uint16_t *
+my_asnprintf (uint16_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint16_t *ret;
+
+ va_start (args, format);
+ ret = u16_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static uint16_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ size_t length;
+ uint16_t *ret;
+
+ va_start (args, format);
+ ret = u16_vasnprintf (NULL, &length, format, args);
+ va_end (args);
+ if (ret != NULL)
+ ASSERT (length == u16_strlen (ret));
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u16-vasnprintf2.c b/tests/unistdio/test-u16-vasnprintf2.c
new file mode 100644
index 0000000..6f7b7cf
--- /dev/null
+++ b/tests/unistdio/test-u16-vasnprintf2.c
@@ -0,0 +1,132 @@
+/* Test of u16_vasnprintf() function in an ISO-8859-1 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (uint16_t * (*my_asnprintf) (uint16_t *, size_t *, const char *, ...))
+{
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\304rger"; /* Ärger */
+ {
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ }
+}
+
+static uint16_t *
+my_asnprintf (uint16_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint16_t *ret;
+
+ va_start (args, format);
+ ret = u16_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u16-vasnprintf2.sh b/tests/unistdio/test-u16-vasnprintf2.sh
new file mode 100755
index 0000000..418b8aa
--- /dev/null
+++ b/tests/unistdio/test-u16-vasnprintf2.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a traditional french locale is installed.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR != none; then
+ testlocale=$LOCALE_FR
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-u16-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-u16-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-u16-vasnprintf3.c b/tests/unistdio/test-u16-vasnprintf3.c
new file mode 100644
index 0000000..1402181
--- /dev/null
+++ b/tests/unistdio/test-u16-vasnprintf3.c
@@ -0,0 +1,132 @@
+/* Test of u16_vasnprintf() function in an UTF-8 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (uint16_t * (*my_asnprintf) (uint16_t *, size_t *, const char *, ...))
+{
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\303\204rger"; /* Ärger */
+ {
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ uint16_t *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ static const uint16_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u16_strcmp (result, expected) == 0);
+ ASSERT (length == u16_strlen (result));
+ free (result);
+ }
+ }
+}
+
+static uint16_t *
+my_asnprintf (uint16_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint16_t *ret;
+
+ va_start (args, format);
+ ret = u16_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u16-vasnprintf3.sh b/tests/unistdio/test-u16-vasnprintf3.sh
new file mode 100755
index 0000000..57488c0
--- /dev/null
+++ b/tests/unistdio/test-u16-vasnprintf3.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a french Unicode locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 != none; then
+ testlocale=$LOCALE_FR_UTF8
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-u16-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-u16-vasnprintf3${EXEEXT}
diff --git a/tests/unistdio/test-u16-vasprintf1.c b/tests/unistdio/test-u16-vasprintf1.c
new file mode 100644
index 0000000..8b96126
--- /dev/null
+++ b/tests/unistdio/test-u16-vasprintf1.c
@@ -0,0 +1,75 @@
+/* Test of u16_vasprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u16-printf1.h"
+
+static uint16_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint16_t *result;
+ int retval;
+
+ va_start (args, format);
+ retval = u16_vasprintf (&result, format, args);
+ va_end (args);
+ if (retval < 0)
+ return NULL;
+ ASSERT (result != NULL);
+ return result;
+}
+
+static void
+test_vasprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u16-vsnprintf1.c b/tests/unistdio/test-u16-vsnprintf1.c
new file mode 100644
index 0000000..886e95b
--- /dev/null
+++ b/tests/unistdio/test-u16-vsnprintf1.c
@@ -0,0 +1,84 @@
+/* Test of u16_vsnprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u16-printf1.h"
+
+static uint16_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint16_t buf[1000];
+ int retval;
+ size_t length;
+ uint16_t *result;
+
+ va_start (args, format);
+ retval = u16_vsnprintf (buf, sizeof (buf), format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (buf))
+ return NULL;
+ length = u16_strlen (buf);
+ result = XNMALLOC (length + 1, uint16_t);
+ u16_cpy (result, buf, length + 1);
+ return result;
+}
+
+static void
+test_vsnprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsnprintf ();
+
+ return 0;
+}
diff --git a/tests/unistdio/test-u16-vsprintf1.c b/tests/unistdio/test-u16-vsprintf1.c
new file mode 100644
index 0000000..e6b6eab
--- /dev/null
+++ b/tests/unistdio/test-u16-vsprintf1.c
@@ -0,0 +1,84 @@
+/* Test of u16_vsprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u16-printf1.h"
+
+static uint16_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint16_t buf[1000];
+ int retval;
+ size_t length;
+ uint16_t *result;
+
+ va_start (args, format);
+ retval = u16_vsprintf (buf, format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (buf))
+ return NULL;
+ length = u16_strlen (buf);
+ result = XNMALLOC (length + 1, uint16_t);
+ u16_cpy (result, buf, length + 1);
+ return result;
+}
+
+static void
+test_vsprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsprintf ();
+
+ return 0;
+}
diff --git a/tests/unistdio/test-u32-asnprintf1.c b/tests/unistdio/test-u32-asnprintf1.c
new file mode 100644
index 0000000..252e919
--- /dev/null
+++ b/tests/unistdio/test-u32-asnprintf1.c
@@ -0,0 +1,59 @@
+/* Test of u32_asnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u32-asnprintf1.h"
+
+static void
+test_asnprintf ()
+{
+ test_function (u32_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_asnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u32-asnprintf1.h b/tests/unistdio/test-u32-asnprintf1.h
new file mode 100644
index 0000000..dfaed98
--- /dev/null
+++ b/tests/unistdio/test-u32-asnprintf1.h
@@ -0,0 +1,60 @@
+/* Test of u32_[v]asnprintf() function.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_function (uint32_t * (*my_asnprintf) (uint32_t *, size_t *, const char *, ...))
+{
+ uint32_t buf[8];
+ int size;
+
+ /* Test return value convention. */
+
+ for (size = 0; size <= 8; size++)
+ {
+ size_t length = size;
+ uint32_t *result = my_asnprintf (NULL, &length, "%d", 12345);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', '5', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == 5);
+ free (result);
+ }
+
+ for (size = 0; size <= 8; size++)
+ {
+ static const uint32_t initializer[] =
+ { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F', 0 };
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', '5', 0 };
+ size_t length;
+ uint32_t *result;
+
+ u32_cpy (buf, initializer, 8);
+ length = size;
+ result = my_asnprintf (buf, &length, "%d", 12345);
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == 5);
+ if (size < 6)
+ ASSERT (result != buf);
+ ASSERT (u32_cmp (buf + size, initializer + size, 8 - size) == 0);
+ if (result != buf)
+ free (result);
+ }
+}
diff --git a/tests/unistdio/test-u32-printf1.h b/tests/unistdio/test-u32-printf1.h
new file mode 100644
index 0000000..240232f
--- /dev/null
+++ b/tests/unistdio/test-u32-printf1.h
@@ -0,0 +1,941 @@
+/* Test of u32_v[a]s[n]printf() function.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_xfunction (uint32_t * (*my_xasprintf) (const char *, ...))
+{
+ /* Test support of size specifiers as in C99. */
+
+ {
+ uint32_t *result =
+ my_xasprintf ("%ju %d", (uintmax_t) 12345671, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', '5', '6', '7', '1', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint32_t *result =
+ my_xasprintf ("%zu %d", (size_t) 12345672, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', '5', '6', '7', '2', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint32_t *result =
+ my_xasprintf ("%tu %d", (ptrdiff_t) 12345673, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', '5', '6', '7', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint32_t *result =
+ my_xasprintf ("%Lg %d", (long double) 1.5, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '.', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Hello";
+ {
+ uint32_t *result =
+ my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint32_t *result =
+ my_xasprintf ("%-10U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', ' ', ' ', ' ', ' ', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint32_t *result =
+ my_xasprintf ("%010U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ uint32_t *result =
+ my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint32_t *result =
+ my_xasprintf ("%-10lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', ' ', ' ', ' ', ' ', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint32_t *result =
+ my_xasprintf ("%010lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ uint32_t *result =
+ my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint32_t *result =
+ my_xasprintf ("%-10llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'H', 'e', 'l', 'l', 'o', ' ', ' ', ' ', ' ', ' ', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint32_t *result =
+ my_xasprintf ("%010llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 'H', 'e', 'l', 'l', 'o', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ uint32_t *result =
+ my_xasprintf ("Mr. %s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'M', 'r', '.', ' ', 'R', 'o', 'n', 'a', 'l', 'd',
+ ' ', 'R', 'e', 'a', 'g', 'a', 'n', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("Mr. %20s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'M', 'r', '.', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
+ ' ', 'R', 'o', 'n', 'a', 'l', 'd', ' ', 'R', 'e',
+ 'a', 'g', 'a', 'n', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* FLAG_LEFT. */
+ uint32_t *result =
+ my_xasprintf ("Mr. %-20s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'M', 'r', '.', ' ', 'R', 'o', 'n', 'a', 'l', 'd',
+ ' ', 'R', 'e', 'a', 'g', 'a', 'n', ' ', ' ', ' ',
+ ' ', ' ', ' ', ' ', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* FLAG_ZERO: no effect. */
+ uint32_t *result =
+ my_xasprintf ("Mr. %020s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'M', 'r', '.', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
+ ' ', 'R', 'o', 'n', 'a', 'l', 'd', ' ', 'R', 'e',
+ 'a', 'g', 'a', 'n', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'a' and 'A' conversion specifier for hexadecimal
+ output of floating-point numbers. */
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%a %d", 3.1416015625, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '0', 'x', '1', '.', '9', '2', '2', 'p', '+', '1', ' ', '3', '3', 0 };
+ static const uint32_t expected2[] =
+ { '0', 'x', '3', '.', '2', '4', '4', 'p', '+', '0', ' ', '3', '3', 0 };
+ static const uint32_t expected3[] =
+ { '0', 'x', '6', '.', '4', '8', '8', 'p', '-', '1', ' ', '3', '3', 0 };
+ static const uint32_t expected4[] =
+ { '0', 'x', 'c', '.', '9', '1', 'p', '-', '2', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10a %d", 1.75, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { ' ', ' ', '0', 'x', '1', '.', 'c', 'p', '+', '0', ' ', '3', '3', 0 };
+ static const uint32_t expected2[] =
+ { ' ', ' ', '0', 'x', '3', '.', '8', 'p', '-', '1', ' ', '3', '3', 0 };
+ static const uint32_t expected3[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', '7', 'p', '-', '2', ' ', '3', '3', 0 };
+ static const uint32_t expected4[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', 'e', 'p', '-', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ uint32_t *result =
+ my_xasprintf ("%.10a %d", 1.75, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ uint32_t *result =
+ my_xasprintf ("%.50a %d", 1.75, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%La %d", 3.1416015625L, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '0', 'x', '1', '.', '9', '2', '2', 'p', '+', '1',
+ ' ', '3', '3', 0
+ };
+ static const uint32_t expected2[] =
+ { '0', 'x', '3', '.', '2', '4', '4', 'p', '+', '0',
+ ' ', '3', '3', 0
+ };
+ static const uint32_t expected3[] =
+ { '0', 'x', '6', '.', '4', '8', '8', 'p', '-', '1',
+ ' ', '3', '3', 0
+ };
+ static const uint32_t expected4[] =
+ { '0', 'x', 'c', '.', '9', '1', 'p', '-', '2', ' ',
+ '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10La %d", 1.75L, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { ' ', ' ', '0', 'x', '1', '.', 'c', 'p', '+', '0', ' ', '3', '3', 0 };
+ static const uint32_t expected2[] =
+ { ' ', ' ', '0', 'x', '3', '.', '8', 'p', '-', '1', ' ', '3', '3', 0 };
+ static const uint32_t expected3[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', '7', 'p', '-', '2', ' ', '3', '3', 0 };
+ static const uint32_t expected4[] =
+ { ' ', ' ', ' ', ' ', '0', 'x', 'e', 'p', '-', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ uint32_t *result =
+ my_xasprintf ("%.10La %d", 1.75L, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ uint32_t *result =
+ my_xasprintf ("%.50La %d", 1.75L, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '0', 'x', '1', '.', 'c', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '+', '0', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected2[] =
+ { '0', 'x', '3', '.', '8', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '1', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected3[] =
+ { '0', 'x', '7', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '2', ' ', '3', '3',
+ 0
+ };
+ static const uint32_t expected4[] =
+ { '0', 'x', 'e', '.', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0',
+ '0', '0', '0', '0', 'p', '-', '3', ' ', '3', '3',
+ 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0
+ || u32_strcmp (result, expected3) == 0
+ || u32_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %f format directive. */
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%f %d", 12.75, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10f %d", 1.75, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', '1', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.f %d", 1234.0, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%Lf %d", 12.75L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10Lf %d", 1.75L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', '1', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.Lf %d", 1234.0L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %F format directive. */
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%F %d", 12.75, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.F %d", 1234.0, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%LF %d", 12.75L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '.', '7', '5', '0', '0', '0', '0', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.LF %d", 1234.0L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', '4', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %e format directive. */
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%e %d", 12.75, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '1', '.', '2', '7', '5', '0', '0', '0', 'e', '+',
+ '0', '1', ' ', '3', '3', 0
+ };
+ static const uint32_t expected2[] =
+ { '1', '.', '2', '7', '5', '0', '0', '0', 'e', '+',
+ '0', '0', '1', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%15e %d", 1.75, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { ' ', ' ', ' ', '1', '.', '7', '5', '0', '0', '0',
+ '0', 'e', '+', '0', '0', ' ', '3', '3', 0
+ };
+ static const uint32_t expected2[] =
+ { ' ', ' ', '1', '.', '7', '5', '0', '0', '0', '0',
+ 'e', '+', '0', '0', '0', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.e %d", 1234.0, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ static const uint32_t expected2[] =
+ { '1', 'e', '+', '0', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%Le %d", 12.75L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '.', '2', '7', '5', '0', '0', '0', 'e', '+',
+ '0', '1', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%15Le %d", 1.75L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', '1', '.', '7', '5', '0', '0', '0',
+ '0', 'e', '+', '0', '0', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.Le %d", 1234.0L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %g format directive. */
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%g %d", 12.75, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10g %d", 1.75, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', ' ', '1', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.g %d", 1234.0, 33, 44, 55);
+ static const uint32_t expected1[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ static const uint32_t expected2[] =
+ { '1', 'e', '+', '0', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected1) == 0
+ || u32_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint32_t *result =
+ my_xasprintf ("%Lg %d", 12.75L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%10Lg %d", 1.75L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', ' ', '1', '.', '7', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint32_t *result =
+ my_xasprintf ("%.Lg %d", 1234.0L, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', 'e', '+', '0', '3', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %n format directive. */
+
+ {
+ int count = -1;
+ uint32_t *result =
+ my_xasprintf ("%d %n", 123, &count, 33, 44, 55);
+ static const uint32_t expected[] =
+ { '1', '2', '3', ' ', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (count == 4);
+ free (result);
+ }
+
+ /* Test the support of the POSIX/XSI format strings with positions. */
+
+ {
+ uint32_t *result =
+ my_xasprintf ("%2$d %1$d", 33, 55);
+ static const uint32_t expected[] =
+ { '5', '5', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the grouping flag. */
+
+ {
+ uint32_t *result =
+ my_xasprintf ("%'d %d", 1234567, 99);
+ ASSERT (result != NULL);
+ ASSERT (result[u32_strlen (result) - 1] == '9');
+ free (result);
+ }
+
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ {
+ uint32_t *result =
+ my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%20U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint32_t *result =
+ my_xasprintf ("%-20U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint32_t *result =
+ my_xasprintf ("%020U %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ uint32_t *result =
+ my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%20lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint32_t *result =
+ my_xasprintf ("%-20lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint32_t *result =
+ my_xasprintf ("%020lU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ uint32_t *result =
+ my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint32_t *result =
+ my_xasprintf ("%20llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint32_t *result =
+ my_xasprintf ("%-20llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z',
+ 'k', 'o', 'w', 's', 'k', 'i', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint32_t *result =
+ my_xasprintf ("%020llU %d", unicode_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', 'R', 'a', 'f', 'a', 0x0142, ' ',
+ 'M', 'a', 's', 'z', 'k', 'o', 'w', 's', 'k', 'i',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ /* Test non-ASCII characters in the format string. */
+
+ {
+ uint32_t *result =
+ my_xasprintf ("\304rger", 33, 44, 55);
+ ASSERT (result == NULL && errno == EINVAL);
+ }
+}
diff --git a/tests/unistdio/test-u32-vasnprintf1.c b/tests/unistdio/test-u32-vasnprintf1.c
new file mode 100644
index 0000000..959bdab
--- /dev/null
+++ b/tests/unistdio/test-u32-vasnprintf1.c
@@ -0,0 +1,88 @@
+/* Test of u32_vasnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u32-asnprintf1.h"
+#include "test-u32-printf1.h"
+
+static uint32_t *
+my_asnprintf (uint32_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint32_t *ret;
+
+ va_start (args, format);
+ ret = u32_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static uint32_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ size_t length;
+ uint32_t *ret;
+
+ va_start (args, format);
+ ret = u32_vasnprintf (NULL, &length, format, args);
+ va_end (args);
+ if (ret != NULL)
+ ASSERT (length == u32_strlen (ret));
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u32-vasnprintf2.c b/tests/unistdio/test-u32-vasnprintf2.c
new file mode 100644
index 0000000..9d8ab00
--- /dev/null
+++ b/tests/unistdio/test-u32-vasnprintf2.c
@@ -0,0 +1,132 @@
+/* Test of u32_vasnprintf() function in an ISO-8859-1 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (uint32_t * (*my_asnprintf) (uint32_t *, size_t *, const char *, ...))
+{
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\304rger"; /* Ärger */
+ {
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ }
+}
+
+static uint32_t *
+my_asnprintf (uint32_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint32_t *ret;
+
+ va_start (args, format);
+ ret = u32_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u32-vasnprintf2.sh b/tests/unistdio/test-u32-vasnprintf2.sh
new file mode 100755
index 0000000..ae39dd4
--- /dev/null
+++ b/tests/unistdio/test-u32-vasnprintf2.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a traditional french locale is installed.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR != none; then
+ testlocale=$LOCALE_FR
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-u32-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-u32-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-u32-vasnprintf3.c b/tests/unistdio/test-u32-vasnprintf3.c
new file mode 100644
index 0000000..73f7c6c
--- /dev/null
+++ b/tests/unistdio/test-u32-vasnprintf3.c
@@ -0,0 +1,132 @@
+/* Test of u32_vasnprintf() function in an UTF-8 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (uint32_t * (*my_asnprintf) (uint32_t *, size_t *, const char *, ...))
+{
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\303\204rger"; /* Ärger */
+ {
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', '3', '3', 0 };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { 0x00c4, 'r', 'g', 'e', 'r', ' ', ' ', ' ', ' ', ' ',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ uint32_t *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ static const uint32_t expected[] =
+ { ' ', ' ', ' ', ' ', ' ', 0x00c4, 'r', 'g', 'e', 'r',
+ ' ', '3', '3', 0
+ };
+ ASSERT (result != NULL);
+ ASSERT (u32_strcmp (result, expected) == 0);
+ ASSERT (length == u32_strlen (result));
+ free (result);
+ }
+ }
+}
+
+static uint32_t *
+my_asnprintf (uint32_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint32_t *ret;
+
+ va_start (args, format);
+ ret = u32_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u32-vasnprintf3.sh b/tests/unistdio/test-u32-vasnprintf3.sh
new file mode 100755
index 0000000..d2c3117
--- /dev/null
+++ b/tests/unistdio/test-u32-vasnprintf3.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a french Unicode locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 != none; then
+ testlocale=$LOCALE_FR_UTF8
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-u32-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-u32-vasnprintf3${EXEEXT}
diff --git a/tests/unistdio/test-u32-vasprintf1.c b/tests/unistdio/test-u32-vasprintf1.c
new file mode 100644
index 0000000..39e68d2
--- /dev/null
+++ b/tests/unistdio/test-u32-vasprintf1.c
@@ -0,0 +1,75 @@
+/* Test of u32_vasprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u32-printf1.h"
+
+static uint32_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint32_t *result;
+ int retval;
+
+ va_start (args, format);
+ retval = u32_vasprintf (&result, format, args);
+ va_end (args);
+ if (retval < 0)
+ return NULL;
+ ASSERT (result != NULL);
+ return result;
+}
+
+static void
+test_vasprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u32-vsnprintf1.c b/tests/unistdio/test-u32-vsnprintf1.c
new file mode 100644
index 0000000..d772708
--- /dev/null
+++ b/tests/unistdio/test-u32-vsnprintf1.c
@@ -0,0 +1,84 @@
+/* Test of u32_vsnprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u32-printf1.h"
+
+static uint32_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint32_t buf[1000];
+ int retval;
+ size_t length;
+ uint32_t *result;
+
+ va_start (args, format);
+ retval = u32_vsnprintf (buf, sizeof (buf), format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (buf))
+ return NULL;
+ length = u32_strlen (buf);
+ result = XNMALLOC (length + 1, uint32_t);
+ u32_cpy (result, buf, length + 1);
+ return result;
+}
+
+static void
+test_vsnprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsnprintf ();
+
+ return 0;
+}
diff --git a/tests/unistdio/test-u32-vsprintf1.c b/tests/unistdio/test-u32-vsprintf1.c
new file mode 100644
index 0000000..8398b27
--- /dev/null
+++ b/tests/unistdio/test-u32-vsprintf1.c
@@ -0,0 +1,84 @@
+/* Test of u32_vsprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u32-printf1.h"
+
+static uint32_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint32_t buf[1000];
+ int retval;
+ size_t length;
+ uint32_t *result;
+
+ va_start (args, format);
+ retval = u32_vsprintf (buf, format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (buf))
+ return NULL;
+ length = u32_strlen (buf);
+ result = XNMALLOC (length + 1, uint32_t);
+ u32_cpy (result, buf, length + 1);
+ return result;
+}
+
+static void
+test_vsprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsprintf ();
+
+ return 0;
+}
diff --git a/tests/unistdio/test-u8-asnprintf1.c b/tests/unistdio/test-u8-asnprintf1.c
new file mode 100644
index 0000000..852d76b
--- /dev/null
+++ b/tests/unistdio/test-u8-asnprintf1.c
@@ -0,0 +1,59 @@
+/* Test of u8_asnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u8-asnprintf1.h"
+
+static void
+test_asnprintf ()
+{
+ test_function (u8_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_asnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u8-asnprintf1.h b/tests/unistdio/test-u8-asnprintf1.h
new file mode 100644
index 0000000..063f145
--- /dev/null
+++ b/tests/unistdio/test-u8-asnprintf1.h
@@ -0,0 +1,57 @@
+/* Test of u8_[v]asnprintf() function.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_function (uint8_t * (*my_asnprintf) (uint8_t *, size_t *, const char *, ...))
+{
+ uint8_t buf[8];
+ int size;
+
+ /* Test return value convention. */
+
+ for (size = 0; size <= 8; size++)
+ {
+ size_t length = size;
+ uint8_t *result = my_asnprintf (NULL, &length, "%d", 12345);
+ static const uint8_t expected[] = "12345";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == 5);
+ free (result);
+ }
+
+ for (size = 0; size <= 8; size++)
+ {
+ static const uint8_t initializer[] = "DEADBEEF";
+ static const uint8_t expected[] = "12345";
+ size_t length;
+ uint8_t *result;
+
+ u8_cpy (buf, initializer, 8);
+ length = size;
+ result = my_asnprintf (buf, &length, "%d", 12345);
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == 5);
+ if (size < 6)
+ ASSERT (result != buf);
+ ASSERT (u8_cmp (buf + size, initializer + size, 8 - size) == 0);
+ if (result != buf)
+ free (result);
+ }
+}
diff --git a/tests/unistdio/test-u8-printf1.h b/tests/unistdio/test-u8-printf1.h
new file mode 100644
index 0000000..4ac6573
--- /dev/null
+++ b/tests/unistdio/test-u8-printf1.h
@@ -0,0 +1,704 @@
+/* Test of u8_v[a]s[n]printf() function.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_xfunction (uint8_t * (*my_xasprintf) (const char *, ...))
+{
+ /* Test support of size specifiers as in C99. */
+
+ {
+ uint8_t *result =
+ my_xasprintf ("%ju %d", (uintmax_t) 12345671, 33, 44, 55);
+ static const uint8_t expected[] = "12345671 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint8_t *result =
+ my_xasprintf ("%zu %d", (size_t) 12345672, 33, 44, 55);
+ static const uint8_t expected[] = "12345672 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint8_t *result =
+ my_xasprintf ("%tu %d", (ptrdiff_t) 12345673, 33, 44, 55);
+ static const uint8_t expected[] = "12345673 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ {
+ uint8_t *result =
+ my_xasprintf ("%Lg %d", (long double) 1.5, 33, 44, 55);
+ static const uint8_t expected[] = "1.5 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Hello";
+ {
+ uint8_t *result =
+ my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint8_t *result =
+ my_xasprintf ("%-10U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint8_t *result =
+ my_xasprintf ("%010U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ uint8_t *result =
+ my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint8_t *result =
+ my_xasprintf ("%-10lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint8_t *result =
+ my_xasprintf ("%010lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ uint8_t *result =
+ my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint8_t *result =
+ my_xasprintf ("%-10llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint8_t *result =
+ my_xasprintf ("%010llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Hello 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ uint8_t *result =
+ my_xasprintf ("Mr. %s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint8_t expected[] = "Mr. Ronald Reagan 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("Mr. %20s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint8_t expected[] = "Mr. Ronald Reagan 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* FLAG_LEFT. */
+ uint8_t *result =
+ my_xasprintf ("Mr. %-20s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint8_t expected[] = "Mr. Ronald Reagan 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* FLAG_ZERO: no effect. */
+ uint8_t *result =
+ my_xasprintf ("Mr. %020s %d", "Ronald Reagan", 33, 44, 55);
+ static const uint8_t expected[] = "Mr. Ronald Reagan 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'a' and 'A' conversion specifier for hexadecimal
+ output of floating-point numbers. */
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%a %d", 3.1416015625, 33, 44, 55);
+ static const uint8_t expected1[] = "0x1.922p+1 33";
+ static const uint8_t expected2[] = "0x3.244p+0 33";
+ static const uint8_t expected3[] = "0x6.488p-1 33";
+ static const uint8_t expected4[] = "0xc.91p-2 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10a %d", 1.75, 33, 44, 55);
+ static const uint8_t expected1[] = " 0x1.cp+0 33";
+ static const uint8_t expected2[] = " 0x3.8p-1 33";
+ static const uint8_t expected3[] = " 0x7p-2 33";
+ static const uint8_t expected4[] = " 0xep-3 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ uint8_t *result =
+ my_xasprintf ("%.10a %d", 1.75, 33, 44, 55);
+ static const uint8_t expected1[] = "0x1.c000000000p+0 33";
+ static const uint8_t expected2[] = "0x3.8000000000p-1 33";
+ static const uint8_t expected3[] = "0x7.0000000000p-2 33";
+ static const uint8_t expected4[] = "0xe.0000000000p-3 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ uint8_t *result =
+ my_xasprintf ("%.50a %d", 1.75, 33, 44, 55);
+ static const uint8_t expected1[] = "0x1.c0000000000000000000000000000000000000000000000000p+0 33";
+ static const uint8_t expected2[] = "0x3.80000000000000000000000000000000000000000000000000p-1 33";
+ static const uint8_t expected3[] = "0x7.00000000000000000000000000000000000000000000000000p-2 33";
+ static const uint8_t expected4[] = "0xe.00000000000000000000000000000000000000000000000000p-3 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%La %d", 3.1416015625L, 33, 44, 55);
+ static const uint8_t expected1[] = "0x1.922p+1 33";
+ static const uint8_t expected2[] = "0x3.244p+0 33";
+ static const uint8_t expected3[] = "0x6.488p-1 33";
+ static const uint8_t expected4[] = "0xc.91p-2 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10La %d", 1.75L, 33, 44, 55);
+ static const uint8_t expected1[] = " 0x1.cp+0 33";
+ static const uint8_t expected2[] = " 0x3.8p-1 33";
+ static const uint8_t expected3[] = " 0x7p-2 33";
+ static const uint8_t expected4[] = " 0xep-3 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ uint8_t *result =
+ my_xasprintf ("%.10La %d", 1.75L, 33, 44, 55);
+ static const uint8_t expected1[] = "0x1.c000000000p+0 33";
+ static const uint8_t expected2[] = "0x3.8000000000p-1 33";
+ static const uint8_t expected3[] = "0x7.0000000000p-2 33";
+ static const uint8_t expected4[] = "0xe.0000000000p-3 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ uint8_t *result =
+ my_xasprintf ("%.50La %d", 1.75L, 33, 44, 55);
+ static const uint8_t expected1[] = "0x1.c0000000000000000000000000000000000000000000000000p+0 33";
+ static const uint8_t expected2[] = "0x3.80000000000000000000000000000000000000000000000000p-1 33";
+ static const uint8_t expected3[] = "0x7.00000000000000000000000000000000000000000000000000p-2 33";
+ static const uint8_t expected4[] = "0xe.00000000000000000000000000000000000000000000000000p-3 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0
+ || u8_strcmp (result, expected3) == 0
+ || u8_strcmp (result, expected4) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %f format directive. */
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%f %d", 12.75, 33, 44, 55);
+ static const uint8_t expected[] = "12.750000 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10f %d", 1.75, 33, 44, 55);
+ static const uint8_t expected[] = " 1.750000 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.f %d", 1234.0, 33, 44, 55);
+ static const uint8_t expected[] = "1234 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%Lf %d", 12.75L, 33, 44, 55);
+ static const uint8_t expected[] = "12.750000 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10Lf %d", 1.75L, 33, 44, 55);
+ static const uint8_t expected[] = " 1.750000 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.Lf %d", 1234.0L, 33, 44, 55);
+ static const uint8_t expected[] = "1234 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %F format directive. */
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%F %d", 12.75, 33, 44, 55);
+ static const uint8_t expected[] = "12.750000 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.F %d", 1234.0, 33, 44, 55);
+ static const uint8_t expected[] = "1234 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%LF %d", 12.75L, 33, 44, 55);
+ static const uint8_t expected[] = "12.750000 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.LF %d", 1234.0L, 33, 44, 55);
+ static const uint8_t expected[] = "1234 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %e format directive. */
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%e %d", 12.75, 33, 44, 55);
+ static const uint8_t expected1[] = "1.275000e+01 33";
+ static const uint8_t expected2[] = "1.275000e+001 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%15e %d", 1.75, 33, 44, 55);
+ static const uint8_t expected1[] = " 1.750000e+00 33";
+ static const uint8_t expected2[] = " 1.750000e+000 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.e %d", 1234.0, 33, 44, 55);
+ static const uint8_t expected1[] = "1e+03 33";
+ static const uint8_t expected2[] = "1e+003 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%Le %d", 12.75L, 33, 44, 55);
+ static const uint8_t expected[] = "1.275000e+01 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%15Le %d", 1.75L, 33, 44, 55);
+ static const uint8_t expected[] = " 1.750000e+00 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.Le %d", 1234.0L, 33, 44, 55);
+ static const uint8_t expected[] = "1e+03 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %g format directive. */
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%g %d", 12.75, 33, 44, 55);
+ static const uint8_t expected[] = "12.75 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10g %d", 1.75, 33, 44, 55);
+ static const uint8_t expected[] = " 1.75 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.g %d", 1234.0, 33, 44, 55);
+ static const uint8_t expected1[] = "1e+03 33";
+ static const uint8_t expected2[] = "1e+003 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected1) == 0
+ || u8_strcmp (result, expected2) == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ uint8_t *result =
+ my_xasprintf ("%Lg %d", 12.75L, 33, 44, 55);
+ static const uint8_t expected[] = "12.75 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%10Lg %d", 1.75L, 33, 44, 55);
+ static const uint8_t expected[] = " 1.75 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ uint8_t *result =
+ my_xasprintf ("%.Lg %d", 1234.0L, 33, 44, 55);
+ static const uint8_t expected[] = "1e+03 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the %n format directive. */
+
+ {
+ int count = -1;
+ uint8_t *result =
+ my_xasprintf ("%d %n", 123, &count, 33, 44, 55);
+ static const uint8_t expected[] = "123 ";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (count == 4);
+ free (result);
+ }
+
+ /* Test the support of the POSIX/XSI format strings with positions. */
+
+ {
+ uint8_t *result =
+ my_xasprintf ("%2$d %1$d", 33, 55);
+ static const uint8_t expected[] = "55 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+
+ /* Test the support of the grouping flag. */
+
+ {
+ uint8_t *result =
+ my_xasprintf ("%'d %d", 1234567, 99);
+ ASSERT (result != NULL);
+ ASSERT (result[u8_strlen (result) - 1] == '9');
+ free (result);
+ }
+
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ {
+ uint8_t *result =
+ my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%20U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint8_t *result =
+ my_xasprintf ("%-20U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint8_t *result =
+ my_xasprintf ("%020U %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ uint8_t *result =
+ my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%20lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint8_t *result =
+ my_xasprintf ("%-20lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint8_t *result =
+ my_xasprintf ("%020lU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ uint8_t *result =
+ my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* Width. */
+ uint8_t *result =
+ my_xasprintf ("%20llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ uint8_t *result =
+ my_xasprintf ("%-20llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = "Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ uint8_t *result =
+ my_xasprintf ("%020llU %d", unicode_string, 33, 44, 55);
+ static const uint8_t expected[] = " Rafa\305\202 Maszkowski 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ free (result);
+ }
+ }
+
+ /* Test non-ASCII characters in the format string. */
+
+ {
+ uint8_t *result =
+ my_xasprintf ("\304rger", 33, 44, 55);
+ ASSERT (result == NULL && errno == EINVAL);
+ }
+}
diff --git a/tests/unistdio/test-u8-vasnprintf1.c b/tests/unistdio/test-u8-vasnprintf1.c
new file mode 100644
index 0000000..3329df4
--- /dev/null
+++ b/tests/unistdio/test-u8-vasnprintf1.c
@@ -0,0 +1,88 @@
+/* Test of u8_vasnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u8-asnprintf1.h"
+#include "test-u8-printf1.h"
+
+static uint8_t *
+my_asnprintf (uint8_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint8_t *ret;
+
+ va_start (args, format);
+ ret = u8_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static uint8_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ size_t length;
+ uint8_t *ret;
+
+ va_start (args, format);
+ ret = u8_vasnprintf (NULL, &length, format, args);
+ va_end (args);
+ if (ret != NULL)
+ ASSERT (length == u8_strlen (ret));
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u8-vasnprintf2.c b/tests/unistdio/test-u8-vasnprintf2.c
new file mode 100644
index 0000000..4283be6
--- /dev/null
+++ b/tests/unistdio/test-u8-vasnprintf2.c
@@ -0,0 +1,122 @@
+/* Test of u8_vasnprintf() function in an ISO-8859-1 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (uint8_t * (*my_asnprintf) (uint8_t *, size_t *, const char *, ...))
+{
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\304rger"; /* Ärger */
+ {
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = "\303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = " \303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = "\303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = " \303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ }
+}
+
+static uint8_t *
+my_asnprintf (uint8_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint8_t *ret;
+
+ va_start (args, format);
+ ret = u8_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u8-vasnprintf2.sh b/tests/unistdio/test-u8-vasnprintf2.sh
new file mode 100755
index 0000000..ea5fcb0
--- /dev/null
+++ b/tests/unistdio/test-u8-vasnprintf2.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a traditional french locale is installed.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR != none; then
+ testlocale=$LOCALE_FR
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-u8-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-u8-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-u8-vasnprintf3.c b/tests/unistdio/test-u8-vasnprintf3.c
new file mode 100644
index 0000000..fc645bc
--- /dev/null
+++ b/tests/unistdio/test-u8-vasnprintf3.c
@@ -0,0 +1,122 @@
+/* Test of u8_vasnprintf() function in an UTF-8 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (uint8_t * (*my_asnprintf) (uint8_t *, size_t *, const char *, ...))
+{
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\303\204rger"; /* Ärger */
+ {
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = "\303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = " \303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = "\303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ uint8_t *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ static const uint8_t expected[] = " \303\204rger 33";
+ ASSERT (result != NULL);
+ ASSERT (u8_strcmp (result, expected) == 0);
+ ASSERT (length == u8_strlen (result));
+ free (result);
+ }
+ }
+}
+
+static uint8_t *
+my_asnprintf (uint8_t *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ uint8_t *ret;
+
+ va_start (args, format);
+ ret = u8_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u8-vasnprintf3.sh b/tests/unistdio/test-u8-vasnprintf3.sh
new file mode 100755
index 0000000..9df0044
--- /dev/null
+++ b/tests/unistdio/test-u8-vasnprintf3.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a french Unicode locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 != none; then
+ testlocale=$LOCALE_FR_UTF8
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-u8-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-u8-vasnprintf3${EXEEXT}
diff --git a/tests/unistdio/test-u8-vasprintf1.c b/tests/unistdio/test-u8-vasprintf1.c
new file mode 100644
index 0000000..8a2caae
--- /dev/null
+++ b/tests/unistdio/test-u8-vasprintf1.c
@@ -0,0 +1,75 @@
+/* Test of u8_vasprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u8-printf1.h"
+
+static uint8_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint8_t *result;
+ int retval;
+
+ va_start (args, format);
+ retval = u8_vasprintf (&result, format, args);
+ va_end (args);
+ if (retval < 0)
+ return NULL;
+ ASSERT (result != NULL);
+ return result;
+}
+
+static void
+test_vasprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-u8-vsnprintf1.c b/tests/unistdio/test-u8-vsnprintf1.c
new file mode 100644
index 0000000..6dd7439
--- /dev/null
+++ b/tests/unistdio/test-u8-vsnprintf1.c
@@ -0,0 +1,84 @@
+/* Test of u8_vsnprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u8-printf1.h"
+
+static uint8_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint8_t buf[1000];
+ int retval;
+ size_t length;
+ uint8_t *result;
+
+ va_start (args, format);
+ retval = u8_vsnprintf (buf, sizeof (buf), format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (buf))
+ return NULL;
+ length = u8_strlen (buf);
+ result = XNMALLOC (length + 1, uint8_t);
+ u8_cpy (result, buf, length + 1);
+ return result;
+}
+
+static void
+test_vsnprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsnprintf ();
+
+ return 0;
+}
diff --git a/tests/unistdio/test-u8-vsprintf1.c b/tests/unistdio/test-u8-vsprintf1.c
new file mode 100644
index 0000000..9559df0
--- /dev/null
+++ b/tests/unistdio/test-u8-vsprintf1.c
@@ -0,0 +1,84 @@
+/* Test of u8_vsprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "unistr.h"
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-u8-printf1.h"
+
+static uint8_t *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ uint8_t buf[1000];
+ int retval;
+ size_t length;
+ uint8_t *result;
+
+ va_start (args, format);
+ retval = u8_vsprintf (buf, format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (buf))
+ return NULL;
+ length = u8_strlen (buf);
+ result = XNMALLOC (length + 1, uint8_t);
+ u8_cpy (result, buf, length + 1);
+ return result;
+}
+
+static void
+test_vsprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsprintf ();
+
+ return 0;
+}
diff --git a/tests/unistdio/test-ulc-asnprintf1.c b/tests/unistdio/test-ulc-asnprintf1.c
new file mode 100644
index 0000000..591ae26
--- /dev/null
+++ b/tests/unistdio/test-ulc-asnprintf1.c
@@ -0,0 +1,56 @@
+/* Test of ulc_asnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-ulc-asnprintf1.h"
+
+static void
+test_asnprintf ()
+{
+ test_function (ulc_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_asnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-ulc-asnprintf1.h b/tests/unistdio/test-ulc-asnprintf1.h
new file mode 100644
index 0000000..285a406
--- /dev/null
+++ b/tests/unistdio/test-ulc-asnprintf1.h
@@ -0,0 +1,54 @@
+/* Test of ulc_[v]asnprintf() functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
+{
+ char buf[8];
+ int size;
+
+ /* Test return value convention. */
+
+ for (size = 0; size <= 8; size++)
+ {
+ size_t length = size;
+ char *result = my_asnprintf (NULL, &length, "%d", 12345);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12345") == 0);
+ ASSERT (length == 5);
+ free (result);
+ }
+
+ for (size = 0; size <= 8; size++)
+ {
+ size_t length;
+ char *result;
+
+ memcpy (buf, "DEADBEEF", 8);
+ length = size;
+ result = my_asnprintf (buf, &length, "%d", 12345);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12345") == 0);
+ ASSERT (length == 5);
+ if (size < 6)
+ ASSERT (result != buf);
+ ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
+ if (result != buf)
+ free (result);
+ }
+}
diff --git a/tests/unistdio/test-ulc-printf1.h b/tests/unistdio/test-ulc-printf1.h
new file mode 100644
index 0000000..77516d6
--- /dev/null
+++ b/tests/unistdio/test-ulc-printf1.h
@@ -0,0 +1,498 @@
+/* Test of ulc_v[a]s[n]printf() functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+static void
+test_xfunction (char * (*my_xasprintf) (const char *, ...))
+{
+ /* Test support of size specifiers as in C99. */
+
+ {
+ char *result =
+ my_xasprintf ("%ju %d", (uintmax_t) 12345671, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12345671 33") == 0);
+ free (result);
+ }
+
+ {
+ char *result =
+ my_xasprintf ("%zu %d", (size_t) 12345672, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12345672 33") == 0);
+ free (result);
+ }
+
+ {
+ char *result =
+ my_xasprintf ("%tu %d", (ptrdiff_t) 12345673, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12345673 33") == 0);
+ free (result);
+ }
+
+ {
+ char *result =
+ my_xasprintf ("%Lg %d", (long double) 1.5, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.5 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Hello";
+ {
+ char *result =
+ my_xasprintf ("%U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Hello 33") == 0);
+ free (result);
+ }
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Hello 33") == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ char *result =
+ my_xasprintf ("%-10U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Hello 33") == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ char *result =
+ my_xasprintf ("%010U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Hello 33") == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ char *result =
+ my_xasprintf ("%lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Hello 33") == 0);
+ free (result);
+ }
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Hello 33") == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ char *result =
+ my_xasprintf ("%-10lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Hello 33") == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ char *result =
+ my_xasprintf ("%010lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Hello 33") == 0);
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = { 'H', 'e', 'l', 'l', 'o', 0 };
+ {
+ char *result =
+ my_xasprintf ("%llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Hello 33") == 0);
+ free (result);
+ }
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Hello 33") == 0);
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ char *result =
+ my_xasprintf ("%-10llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Hello 33") == 0);
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ char *result =
+ my_xasprintf ("%010llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Hello 33") == 0);
+ free (result);
+ }
+ }
+
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ char *result =
+ my_xasprintf ("Mr. %s %d", "Ronald Reagan", 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Mr. Ronald Reagan 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("Mr. %20s %d", "Ronald Reagan", 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Mr. Ronald Reagan 33") == 0);
+ free (result);
+ }
+
+ { /* FLAG_LEFT. */
+ char *result =
+ my_xasprintf ("Mr. %-20s %d", "Ronald Reagan", 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Mr. Ronald Reagan 33") == 0);
+ free (result);
+ }
+
+ { /* FLAG_ZERO: no effect. */
+ char *result =
+ my_xasprintf ("Mr. %020s %d", "Ronald Reagan", 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Mr. Ronald Reagan 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the 'a' and 'A' conversion specifier for hexadecimal
+ output of floating-point numbers. */
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%a %d", 3.1416015625, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.922p+1 33") == 0
+ || strcmp (result, "0x3.244p+0 33") == 0
+ || strcmp (result, "0x6.488p-1 33") == 0
+ || strcmp (result, "0xc.91p-2 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10a %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ char *result =
+ my_xasprintf ("%.10a %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.c000000000p+0 33") == 0
+ || strcmp (result, "0x3.8000000000p-1 33") == 0
+ || strcmp (result, "0x7.0000000000p-2 33") == 0
+ || strcmp (result, "0xe.0000000000p-3 33") == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ char *result =
+ my_xasprintf ("%.50a %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.c0000000000000000000000000000000000000000000000000p+0 33") == 0
+ || strcmp (result, "0x3.80000000000000000000000000000000000000000000000000p-1 33") == 0
+ || strcmp (result, "0x7.00000000000000000000000000000000000000000000000000p-2 33") == 0
+ || strcmp (result, "0xe.00000000000000000000000000000000000000000000000000p-3 33") == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%La %d", 3.1416015625L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.922p+1 33") == 0
+ || strcmp (result, "0x3.244p+0 33") == 0
+ || strcmp (result, "0x6.488p-1 33") == 0
+ || strcmp (result, "0xc.91p-2 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10La %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ free (result);
+ }
+
+ { /* Small precision. */
+ char *result =
+ my_xasprintf ("%.10La %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.c000000000p+0 33") == 0
+ || strcmp (result, "0x3.8000000000p-1 33") == 0
+ || strcmp (result, "0x7.0000000000p-2 33") == 0
+ || strcmp (result, "0xe.0000000000p-3 33") == 0);
+ free (result);
+ }
+
+ { /* Large precision. */
+ char *result =
+ my_xasprintf ("%.50La %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.c0000000000000000000000000000000000000000000000000p+0 33") == 0
+ || strcmp (result, "0x3.80000000000000000000000000000000000000000000000000p-1 33") == 0
+ || strcmp (result, "0x7.00000000000000000000000000000000000000000000000000p-2 33") == 0
+ || strcmp (result, "0xe.00000000000000000000000000000000000000000000000000p-3 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the %f format directive. */
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%f %d", 12.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12.750000 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10f %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.f %d", 1234.0, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1234 33") == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%Lf %d", 12.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12.750000 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10Lf %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.Lf %d", 1234.0L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1234 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the %F format directive. */
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%F %d", 12.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12.750000 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.F %d", 1234.0, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1234 33") == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%LF %d", 12.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12.750000 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.LF %d", 1234.0L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1234 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the %e format directive. */
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%e %d", 12.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.275000e+01 33") == 0
+ || strcmp (result, "1.275000e+001 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%15e %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.e %d", 1234.0, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1e+03 33") == 0
+ || strcmp (result, "1e+003 33") == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%Le %d", 12.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.275000e+01 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%15Le %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.Le %d", 1234.0L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1e+03 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the %g format directive. */
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%g %d", 12.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12.75 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10g %d", 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.g %d", 1234.0, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1e+03 33") == 0
+ || strcmp (result, "1e+003 33") == 0);
+ free (result);
+ }
+
+ { /* A positive number. */
+ char *result =
+ my_xasprintf ("%Lg %d", 12.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "12.75 33") == 0);
+ free (result);
+ }
+
+ { /* Width. */
+ char *result =
+ my_xasprintf ("%10Lg %d", 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ free (result);
+ }
+
+ { /* Precision. */
+ char *result =
+ my_xasprintf ("%.Lg %d", 1234.0L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1e+03 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the %n format directive. */
+
+ {
+ int count = -1;
+ char *result =
+ my_xasprintf ("%d %n", 123, &count, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "123 ") == 0);
+ ASSERT (count == 4);
+ free (result);
+ }
+
+ /* Test the support of the POSIX/XSI format strings with positions. */
+
+ {
+ char *result =
+ my_xasprintf ("%2$d %1$d", 33, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "55 33") == 0);
+ free (result);
+ }
+
+ /* Test the support of the grouping flag. */
+
+ {
+ char *result =
+ my_xasprintf ("%'d %d", 1234567, 99);
+ ASSERT (result != NULL);
+ ASSERT (result[strlen (result) - 1] == '9');
+ free (result);
+ }
+}
diff --git a/tests/unistdio/test-ulc-vasnprintf1.c b/tests/unistdio/test-ulc-vasnprintf1.c
new file mode 100644
index 0000000..e2f8be6
--- /dev/null
+++ b/tests/unistdio/test-ulc-vasnprintf1.c
@@ -0,0 +1,85 @@
+/* Test of ulc_vasnprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-ulc-asnprintf1.h"
+#include "test-ulc-printf1.h"
+
+static char *
+my_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ char *ret;
+
+ va_start (args, format);
+ ret = ulc_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static char *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ size_t length;
+ char *ret;
+
+ va_start (args, format);
+ ret = ulc_vasnprintf (NULL, &length, format, args);
+ va_end (args);
+ if (ret != NULL)
+ ASSERT (length == strlen (ret));
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-ulc-vasnprintf2.c b/tests/unistdio/test-ulc-vasnprintf2.c
new file mode 100644
index 0000000..9022975
--- /dev/null
+++ b/tests/unistdio/test-ulc-vasnprintf2.c
@@ -0,0 +1,258 @@
+/* Test of ulc_vasnprintf() function in an ISO-8859-1 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
+{
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
+ || strcmp (result, "Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%20U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa? Maszkowski 33") == 0
+ || strcmp (result, " Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-20U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
+ || strcmp (result, "Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%020U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa? Maszkowski 33") == 0
+ || strcmp (result, " Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
+ || strcmp (result, "Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%20lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa? Maszkowski 33") == 0
+ || strcmp (result, " Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-20lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
+ || strcmp (result, "Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%020lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa? Maszkowski 33") == 0
+ || strcmp (result, " Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
+ || strcmp (result, "Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%20llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa? Maszkowski 33") == 0
+ || strcmp (result, " Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-20llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
+ || strcmp (result, "Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%020llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa? Maszkowski 33") == 0
+ || strcmp (result, " Rafal Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\304rger"; /* Ärger */
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "\304rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " \304rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "\304rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " \304rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+}
+
+static char *
+my_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ char *ret;
+
+ va_start (args, format);
+ ret = ulc_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-ulc-vasnprintf2.sh b/tests/unistdio/test-ulc-vasnprintf2.sh
new file mode 100755
index 0000000..39056a6
--- /dev/null
+++ b/tests/unistdio/test-ulc-vasnprintf2.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a traditional french locale is installed.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR != none; then
+ testlocale=$LOCALE_FR
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-ulc-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-ulc-vasnprintf2${EXEEXT}
diff --git a/tests/unistdio/test-ulc-vasnprintf3.c b/tests/unistdio/test-ulc-vasnprintf3.c
new file mode 100644
index 0000000..1fbd925
--- /dev/null
+++ b/tests/unistdio/test-ulc-vasnprintf3.c
@@ -0,0 +1,246 @@
+/* Test of ulc_vasnprintf() function in an UTF-8 locale.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <locale.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+static void
+test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
+{
+ /* Test the support of the 'U' conversion specifier for Unicode strings. */
+
+ {
+ static const uint8_t unicode_string[] = "Rafa\305\202 Maszkowski"; /* Rafał Maszkowski */
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%20U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-20U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%020U %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+
+ {
+ static const uint16_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%20lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-20lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%020lU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+
+ {
+ static const uint32_t unicode_string[] = /* Rafał Maszkowski */
+ {
+ 'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+ 's', 'k', 'i', 0
+ };
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%20llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-20llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%020llU %d", unicode_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " Rafa\305\202 Maszkowski 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+
+ /* Test the support of the 's' conversion specifier for strings. */
+
+ {
+ const char *locale_string = "\303\204rger"; /* Ärger */
+ {
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "\303\204rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* Width. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " \303\204rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_LEFT. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "\303\204rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ { /* FLAG_ZERO: no effect. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " \303\204rger 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+ }
+}
+
+static char *
+my_asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ char *ret;
+
+ va_start (args, format);
+ ret = ulc_vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return ret;
+}
+
+static void
+test_vasnprintf ()
+{
+ test_function (my_asnprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ test_vasnprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-ulc-vasnprintf3.sh b/tests/unistdio/test-ulc-vasnprintf3.sh
new file mode 100755
index 0000000..caa528a
--- /dev/null
+++ b/tests/unistdio/test-ulc-vasnprintf3.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Test whether a french Unicode locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 != none; then
+ testlocale=$LOCALE_FR_UTF8
+else
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no french Unicode locale is installed"
+ else
+ echo "Skipping test: no french Unicode locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$testlocale \
+./test-ulc-vasnprintf1${EXEEXT} \
+ || exit 1
+
+LC_ALL=$testlocale \
+./test-ulc-vasnprintf3${EXEEXT}
diff --git a/tests/unistdio/test-ulc-vasprintf1.c b/tests/unistdio/test-ulc-vasprintf1.c
new file mode 100644
index 0000000..d8ed67c
--- /dev/null
+++ b/tests/unistdio/test-ulc-vasprintf1.c
@@ -0,0 +1,72 @@
+/* Test of ulc_vasprintf() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-ulc-printf1.h"
+
+static char *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ char *result;
+ int retval;
+
+ va_start (args, format);
+ retval = ulc_vasprintf (&result, format, args);
+ va_end (args);
+ if (retval < 0)
+ return NULL;
+ ASSERT (result != NULL);
+ return result;
+}
+
+static void
+test_vasprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ test_vasprintf ();
+ return 0;
+}
diff --git a/tests/unistdio/test-ulc-vsnprintf1.c b/tests/unistdio/test-ulc-vsnprintf1.c
new file mode 100644
index 0000000..7701c21
--- /dev/null
+++ b/tests/unistdio/test-ulc-vsnprintf1.c
@@ -0,0 +1,77 @@
+/* Test of ulc_vsnprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-ulc-printf1.h"
+
+static char *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ char result[1000];
+ int retval;
+
+ va_start (args, format);
+ retval = ulc_vsnprintf (result, sizeof (result), format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (result))
+ return NULL;
+ return xstrdup (result);
+}
+
+static void
+test_vsnprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsnprintf ();
+
+ return 0;
+}
diff --git a/tests/unistdio/test-ulc-vsprintf1.c b/tests/unistdio/test-ulc-vsprintf1.c
new file mode 100644
index 0000000..76b85b2
--- /dev/null
+++ b/tests/unistdio/test-ulc-vsprintf1.c
@@ -0,0 +1,77 @@
+/* Test of ulc_vsprintf() function.
+ Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "unistdio.h"
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xalloc.h"
+#include "progname.h"
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+#include "test-ulc-printf1.h"
+
+static char *
+my_xasprintf (const char *format, ...)
+{
+ va_list args;
+ char result[1000];
+ int retval;
+
+ va_start (args, format);
+ retval = ulc_vsprintf (result, format, args);
+ va_end (args);
+ if (retval < 0 || retval >= (int) sizeof (result))
+ return NULL;
+ return xstrdup (result);
+}
+
+static void
+test_vsprintf ()
+{
+ test_xfunction (my_xasprintf);
+}
+
+int
+main (int argc, char *argv[])
+{
+ set_program_name (argv[0]);
+
+ test_vsprintf ();
+
+ return 0;
+}
diff --git a/tests/uniwbrk/test-u16-wordbreaks.c b/tests/uniwbrk/test-u16-wordbreaks.c
new file mode 100644
index 0000000..b5eb26c
--- /dev/null
+++ b/tests/uniwbrk/test-u16-wordbreaks.c
@@ -0,0 +1,106 @@
+/* Test of word breaks in UTF-16 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uniwbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u16_wordbreaks (NULL, 0, NULL);
+
+ {
+ static const uint16_t input[61] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u16_wordbreaks (input, SIZEOF (input), p);
+
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == ((i >= 4 && i <= 5)
+ || (i >= 9 && i <= 11)
+ || (i >= 23 && i <= 31)
+ || (i >= 35 && i <= 39)
+ || (i >= 42 && i <= 46)
+ || (i >= 48 && i <= 58)
+ || i == 60
+ ? 1 : 0));
+ }
+ free (p);
+ }
+
+ {
+ /* Same input string, decomposed. */
+ static const uint16_t input[67] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u16_wordbreaks (input, SIZEOF (input), p);
+
+ for (i = 0; i < 67; i++)
+ {
+ ASSERT (p[i] == ((i >= 5 && i <= 6)
+ || (i >= 10 && i <= 12)
+ || (i >= 25 && i <= 33)
+ || (i >= 37 && i <= 41)
+ || (i >= 44 && i <= 48)
+ || (i >= 50 && i <= 60)
+ || i == 66
+ ? 1 : 0));
+ }
+ free (p);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwbrk/test-u32-wordbreaks.c b/tests/uniwbrk/test-u32-wordbreaks.c
new file mode 100644
index 0000000..c6feb84
--- /dev/null
+++ b/tests/uniwbrk/test-u32-wordbreaks.c
@@ -0,0 +1,106 @@
+/* Test of word breaks in UTF-32 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uniwbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u32_wordbreaks (NULL, 0, NULL);
+
+ {
+ static const uint32_t input[61] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x00FC, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0439, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',', 0xD55C, 0xAE00, '\n'
+ };
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u32_wordbreaks (input, SIZEOF (input), p);
+
+ for (i = 0; i < 61; i++)
+ {
+ ASSERT (p[i] == ((i >= 4 && i <= 5)
+ || (i >= 9 && i <= 11)
+ || (i >= 23 && i <= 31)
+ || (i >= 35 && i <= 39)
+ || (i >= 42 && i <= 46)
+ || (i >= 48 && i <= 58)
+ || i == 60
+ ? 1 : 0));
+ }
+ free (p);
+ }
+
+ {
+ /* Same input string, decomposed. */
+ static const uint32_t input[67] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ { 'G', 'r', 0x0075, 0x0308, 0x00DF, ' ', 'G', 'o', 't', 't', '.', ' ',
+ 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443,
+ 0x0438, 0x0306, 0x0442, 0x0435, '!', ' ',
+ 'x', '=', '(', '-', 'b', 0x00B1, 's', 'q', 'r', 't', '(', 'b', 0x00B2,
+ '-', '4', 'a', 'c', ')', ')', '/', '(', '2', 'a', ')', ' ', ' ',
+ 0x65E5, 0x672C, 0x8A9E, ',', 0x4E2D, 0x6587, ',',
+ 0x1112, 0x1161, 0x11AB, 0x1100, 0x1173, 0x11AF, '\n'
+ };
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u32_wordbreaks (input, SIZEOF (input), p);
+
+ for (i = 0; i < 67; i++)
+ {
+ ASSERT (p[i] == ((i >= 5 && i <= 6)
+ || (i >= 10 && i <= 12)
+ || (i >= 25 && i <= 33)
+ || (i >= 37 && i <= 41)
+ || (i >= 44 && i <= 48)
+ || (i >= 50 && i <= 60)
+ || i == 66
+ ? 1 : 0));
+ }
+ free (p);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwbrk/test-u8-wordbreaks.c b/tests/uniwbrk/test-u8-wordbreaks.c
new file mode 100644
index 0000000..c263302
--- /dev/null
+++ b/tests/uniwbrk/test-u8-wordbreaks.c
@@ -0,0 +1,97 @@
+/* Test of word breaks in UTF-8 strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uniwbrk.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* Test case n = 0. */
+ u8_wordbreaks (NULL, 0, NULL);
+
+ {
+ static const uint8_t input[91] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ "Gr\303\274\303\237 Gott. \320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\271\321\202\320\265! x=(-b\302\261sqrt(b\302\262-4ac))/(2a) \346\227\245\346\234\254\350\252\236,\344\270\255\346\226\207,\355\225\234\352\270\200\n";
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u8_wordbreaks (input, SIZEOF (input), p);
+
+ for (i = 0; i < 91; i++)
+ {
+ ASSERT (p[i] == ((i >= 6 && i <= 7)
+ || (i >= 11 && i <= 13)
+ || (i >= 37 && i <= 44)
+ || i == 46 || (i >= 50 && i <= 52)
+ || (i >= 54 && i <= 55)
+ || (i >= 58 && i <= 62) || (i >= 64 && i <= 67)
+ || i == 70 || i == 73 || i == 76
+ || i == 77 || i == 80 || i == 83
+ || i == 84 || i == 90
+ ? 1 : 0));
+ }
+ free (p);
+ }
+
+ {
+ /* Same input string, decomposed. */
+ static const uint8_t input[106] =
+ /* "Grüß Gott. Здравствуйте! x=(-b±sqrt(b²-4ac))/(2a) 日本語,中文,한글" */
+ "Gru\314\210\303\237 Gott. \320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\270\314\206\321\202\320\265! x=(-b\302\261sqrt(b\302\262-4ac))/(2a) \346\227\245\346\234\254\350\252\236,\344\270\255\346\226\207,\341\204\222\341\205\241\341\206\253\341\204\200\341\205\263\341\206\257\n";
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ u8_wordbreaks (input, SIZEOF (input), p);
+
+ for (i = 0; i < 106; i++)
+ {
+ ASSERT (p[i] == ((i >= 7 && i <= 8)
+ || (i >= 12 && i <= 14)
+ || (i >= 40 && i <= 47)
+ || i == 49 || (i >= 53 && i <= 55)
+ || (i >= 57 && i <= 58)
+ || (i >= 61 && i <= 65) || (i >= 67 && i <= 70)
+ || i == 73 || i == 76 || i == 79
+ || i == 80 || i == 83 || i == 86
+ || i == 87 || i == 105
+ ? 1 : 0));
+ }
+ free (p);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwbrk/test-ulc-wordbreaks.c b/tests/uniwbrk/test-ulc-wordbreaks.c
new file mode 100644
index 0000000..80284ab
--- /dev/null
+++ b/tests/uniwbrk/test-ulc-wordbreaks.c
@@ -0,0 +1,74 @@
+/* Test of word breaks in strings.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009. */
+
+#include <config.h>
+
+#include "uniwbrk.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ /* configure should already have checked that the locale is supported. */
+ if (setlocale (LC_ALL, "") == NULL)
+ return 1;
+
+ /* Test case n = 0. */
+ ulc_wordbreaks (NULL, 0, NULL);
+
+#if HAVE_ICONV
+ {
+ static const char input[36] =
+ /* "Grüß Gott. x=(-b±sqrt(b²-4ac))/(2a)" */
+ "Gr\374\337 Gott. x=(-b\261sqrt(b\262-4ac))/(2a)\n";
+ char *p = (char *) malloc (SIZEOF (input));
+ size_t i;
+
+ ulc_wordbreaks (input, SIZEOF (input), p);
+
+ for (i = 0; i < 36; i++)
+ {
+ ASSERT (p[i] == ((i >= 4 && i <= 5)
+ || (i >= 9 && i <= 17)
+ || (i >= 21 && i <= 25)
+ || (i >= 28 && i <= 32)
+ || (i >= 34 && i <= 35)
+ ? 1 : 0));
+ }
+ free (p);
+ }
+#endif
+
+ return 0;
+}
diff --git a/tests/uniwbrk/test-ulc-wordbreaks.sh b/tests/uniwbrk/test-ulc-wordbreaks.sh
new file mode 100755
index 0000000..96bae50
--- /dev/null
+++ b/tests/uniwbrk/test-ulc-wordbreaks.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR = none; then
+ if test -f /usr/bin/localedef; then
+ echo "Skipping test: no traditional french locale is installed"
+ else
+ echo "Skipping test: no traditional french locale is supported"
+ fi
+ exit 77
+fi
+
+LC_ALL=$LOCALE_FR \
+./test-ulc-wordbreaks${EXEEXT}
diff --git a/tests/uniwidth/test-u16-strwidth.c b/tests/uniwidth/test-u16-strwidth.c
new file mode 100644
index 0000000..7365426
--- /dev/null
+++ b/tests/uniwidth/test-u16-strwidth.c
@@ -0,0 +1,71 @@
+/* Test of u16_strwidth() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ {
+ static const uint16_t input[] = /* "Danilo Šegan" */
+ { 'D', 'a', 'n', 'i', 'l', 'o', ' ', 0x0160, 'e', 'g', 'a', 'n', 0 };
+ ASSERT (u16_strwidth (input, "UTF-8") == 12);
+ }
+
+ {
+ static const uint16_t input[] = /* "Danilo Šegan" decomposed */
+ { 'D', 'a', 'n', 'i', 'l', 'o', ' ', 'S', 0x030C, 'e', 'g', 'a', 'n', 0 };
+ ASSERT (u16_strwidth (input, "UTF-8") == 12);
+ }
+
+ {
+ static const uint16_t input[] = /* "Данило Шеган" */
+ {
+ 0x0414, 0x0430, 0x043D, 0x0438, 0x043B, 0x043E, ' ',
+ 0x0428, 0x0435, 0x0433, 0x0430, 0x043D, 0
+ };
+ ASSERT (u16_strwidth (input, "UTF-8") == 12);
+ ASSERT (u16_strwidth (input, "EUC-JP") == 23);
+ }
+
+ {
+ static const uint16_t input[] = /* 刘军民 */
+ { 0x5218, 0x519B, 0x6C11, 0 };
+ ASSERT (u16_strwidth (input, "UTF-8") == 6);
+ ASSERT (u16_strwidth (input, "GB2312") == 6);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-u16-width.c b/tests/uniwidth/test-u16-width.c
new file mode 100644
index 0000000..b3e2b59
--- /dev/null
+++ b/tests/uniwidth/test-u16-width.c
@@ -0,0 +1,77 @@
+/* Test of u16_width() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static const uint16_t input[] =
+ {
+ #define INPUT1_OFFSET 0
+ #define INPUT1_LENGTH 12
+ 'D', 'a', 'n', 'i', 'l', 'o', ' ', 0x0160, 'e', 'g', 'a', 'n',
+ #define INPUT2_OFFSET 12
+ #define INPUT2_LENGTH 13
+ 'D', 'a', 'n', 'i', 'l', 'o', ' ', 'S', 0x030C, 'e', 'g', 'a', 'n',
+ #define INPUT3_OFFSET 25
+ #define INPUT3_LENGTH 12
+ 0x0414, 0x0430, 0x043D, 0x0438, 0x043B, 0x043E, ' ',
+ 0x0428, 0x0435, 0x0433, 0x0430, 0x043D,
+ #define INPUT4_OFFSET 37
+ #define INPUT4_LENGTH 3
+ 0x5218, 0x519B, 0x6C11
+ };
+
+ { /* "Danilo Šegan" */
+ ASSERT (u16_width (input + INPUT1_OFFSET, INPUT1_LENGTH, "UTF-8") == 12);
+ }
+
+ { /* "Danilo Šegan" decomposed */
+ ASSERT (u16_width (input + INPUT2_OFFSET, INPUT2_LENGTH, "UTF-8") == 12);
+ }
+
+ { /* "Данило Шеган" */
+ ASSERT (u16_width (input + INPUT3_OFFSET, INPUT3_LENGTH, "UTF-8") == 12);
+ ASSERT (u16_width (input + INPUT3_OFFSET, INPUT3_LENGTH, "EUC-JP") == 23);
+ }
+
+ { /* 刘军民 */
+ ASSERT (u16_width (input + INPUT4_OFFSET, INPUT4_LENGTH, "UTF-8") == 6);
+ ASSERT (u16_width (input + INPUT4_OFFSET, INPUT4_LENGTH, "GB2312") == 6);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-u32-strwidth.c b/tests/uniwidth/test-u32-strwidth.c
new file mode 100644
index 0000000..3976daa
--- /dev/null
+++ b/tests/uniwidth/test-u32-strwidth.c
@@ -0,0 +1,71 @@
+/* Test of u32_strwidth() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ {
+ static const uint32_t input[] = /* "Danilo Šegan" */
+ { 'D', 'a', 'n', 'i', 'l', 'o', ' ', 0x0160, 'e', 'g', 'a', 'n', 0 };
+ ASSERT (u32_strwidth (input, "UTF-8") == 12);
+ }
+
+ {
+ static const uint32_t input[] = /* "Danilo Šegan" decomposed */
+ { 'D', 'a', 'n', 'i', 'l', 'o', ' ', 'S', 0x030C, 'e', 'g', 'a', 'n', 0 };
+ ASSERT (u32_strwidth (input, "UTF-8") == 12);
+ }
+
+ {
+ static const uint32_t input[] = /* "Данило Шеган" */
+ {
+ 0x0414, 0x0430, 0x043D, 0x0438, 0x043B, 0x043E, ' ',
+ 0x0428, 0x0435, 0x0433, 0x0430, 0x043D, 0
+ };
+ ASSERT (u32_strwidth (input, "UTF-8") == 12);
+ ASSERT (u32_strwidth (input, "EUC-JP") == 23);
+ }
+
+ {
+ static const uint32_t input[] = /* 刘军民 */
+ { 0x5218, 0x519B, 0x6C11, 0 };
+ ASSERT (u32_strwidth (input, "UTF-8") == 6);
+ ASSERT (u32_strwidth (input, "GB2312") == 6);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-u32-width.c b/tests/uniwidth/test-u32-width.c
new file mode 100644
index 0000000..05fd856
--- /dev/null
+++ b/tests/uniwidth/test-u32-width.c
@@ -0,0 +1,77 @@
+/* Test of u32_width() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static const uint32_t input[] =
+ {
+ #define INPUT1_OFFSET 0
+ #define INPUT1_LENGTH 12
+ 'D', 'a', 'n', 'i', 'l', 'o', ' ', 0x0160, 'e', 'g', 'a', 'n',
+ #define INPUT2_OFFSET 12
+ #define INPUT2_LENGTH 13
+ 'D', 'a', 'n', 'i', 'l', 'o', ' ', 'S', 0x030C, 'e', 'g', 'a', 'n',
+ #define INPUT3_OFFSET 25
+ #define INPUT3_LENGTH 12
+ 0x0414, 0x0430, 0x043D, 0x0438, 0x043B, 0x043E, ' ',
+ 0x0428, 0x0435, 0x0433, 0x0430, 0x043D,
+ #define INPUT4_OFFSET 37
+ #define INPUT4_LENGTH 3
+ 0x5218, 0x519B, 0x6C11
+ };
+
+ { /* "Danilo Šegan" */
+ ASSERT (u32_width (input + INPUT1_OFFSET, INPUT1_LENGTH, "UTF-8") == 12);
+ }
+
+ { /* "Danilo Šegan" decomposed */
+ ASSERT (u32_width (input + INPUT2_OFFSET, INPUT2_LENGTH, "UTF-8") == 12);
+ }
+
+ { /* "Данило Шеган" */
+ ASSERT (u32_width (input + INPUT3_OFFSET, INPUT3_LENGTH, "UTF-8") == 12);
+ ASSERT (u32_width (input + INPUT3_OFFSET, INPUT3_LENGTH, "EUC-JP") == 23);
+ }
+
+ { /* 刘军民 */
+ ASSERT (u32_width (input + INPUT4_OFFSET, INPUT4_LENGTH, "UTF-8") == 6);
+ ASSERT (u32_width (input + INPUT4_OFFSET, INPUT4_LENGTH, "GB2312") == 6);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-u8-strwidth.c b/tests/uniwidth/test-u8-strwidth.c
new file mode 100644
index 0000000..3fbb39e
--- /dev/null
+++ b/tests/uniwidth/test-u8-strwidth.c
@@ -0,0 +1,66 @@
+/* Test of u8_strwidth() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ {
+ static const uint8_t input[] = "Danilo \305\240egan"; /* "Danilo Šegan" */
+ ASSERT (u8_strwidth (input, "UTF-8") == 12);
+ }
+
+ {
+ static const uint8_t input[] = "Danilo S\314\214egan"; /* "Danilo Šegan" decomposed */
+ ASSERT (u8_strwidth (input, "UTF-8") == 12);
+ }
+
+ {
+ static const uint8_t input[] = /* "Данило Шеган" */
+ "\320\224\320\260\320\275\320\270\320\273\320\276 \320\250\320\265\320\263\320\260\320\275";
+ ASSERT (u8_strwidth (input, "UTF-8") == 12);
+ ASSERT (u8_strwidth (input, "EUC-JP") == 23);
+ }
+
+ {
+ static const uint8_t input[] = /* 刘军民 */
+ "\345\210\230\345\206\233\346\260\221";
+ ASSERT (u8_strwidth (input, "UTF-8") == 6);
+ ASSERT (u8_strwidth (input, "GB2312") == 6);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-u8-width.c b/tests/uniwidth/test-u8-width.c
new file mode 100644
index 0000000..b253289
--- /dev/null
+++ b/tests/uniwidth/test-u8-width.c
@@ -0,0 +1,75 @@
+/* Test of u8_width() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ static const uint8_t input[] =
+ #define INPUT1_OFFSET 0
+ #define INPUT1_LENGTH 13
+ "Danilo \305\240egan"
+ #define INPUT2_OFFSET 13
+ #define INPUT2_LENGTH 14
+ "Danilo S\314\214egan"
+ #define INPUT3_OFFSET 27
+ #define INPUT3_LENGTH 23
+ "\320\224\320\260\320\275\320\270\320\273\320\276 \320\250\320\265\320\263\320\260\320\275"
+ #define INPUT4_OFFSET 50
+ #define INPUT4_LENGTH 9
+ "\345\210\230\345\206\233\346\260\221"
+ ;
+
+ { /* "Danilo Šegan" */
+ ASSERT (u8_width (input + INPUT1_OFFSET, INPUT1_LENGTH, "UTF-8") == 12);
+ }
+
+ { /* "Danilo Šegan" decomposed */
+ ASSERT (u8_width (input + INPUT2_OFFSET, INPUT2_LENGTH, "UTF-8") == 12);
+ }
+
+ { /* "Данило Шеган" */
+ ASSERT (u8_width (input + INPUT3_OFFSET, INPUT3_LENGTH, "UTF-8") == 12);
+ ASSERT (u8_width (input + INPUT3_OFFSET, INPUT3_LENGTH, "EUC-JP") == 23);
+ }
+
+ { /* 刘军民 */
+ ASSERT (u8_width (input + INPUT4_OFFSET, INPUT4_LENGTH, "UTF-8") == 6);
+ ASSERT (u8_width (input + INPUT4_OFFSET, INPUT4_LENGTH, "GB2312") == 6);
+ }
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-uc_width.c b/tests/uniwidth/test-uc_width.c
new file mode 100644
index 0000000..d7335cf
--- /dev/null
+++ b/tests/uniwidth/test-uc_width.c
@@ -0,0 +1,69 @@
+/* Test of uc_width() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+int
+main ()
+{
+ ucs4_t uc;
+
+ /* Test width of ASCII characters. */
+ for (uc = 0x0020; uc < 0x007F; uc++)
+ ASSERT (uc_width (uc, "ISO-8859-2") == 1);
+
+ /* Test width of some non-spacing characters. */
+ ASSERT (uc_width (0x0301, "UTF-8") == 0);
+ ASSERT (uc_width (0x05B0, "UTF-8") == 0);
+
+ /* Test width of some format control characters. */
+ ASSERT (uc_width (0x200E, "UTF-8") == 0);
+ ASSERT (uc_width (0x2060, "UTF-8") == 0);
+ ASSERT (uc_width (0xE0001, "UTF-8") == 0);
+ ASSERT (uc_width (0xE0044, "UTF-8") == 0);
+
+ /* Test width of some zero width characters. */
+ ASSERT (uc_width (0x200B, "UTF-8") == 0);
+ ASSERT (uc_width (0xFEFF, "UTF-8") == 0);
+
+ /* Test width of some CJK characters. */
+ ASSERT (uc_width (0x3000, "UTF-8") == 2);
+ ASSERT (uc_width (0xB250, "UTF-8") == 2);
+ ASSERT (uc_width (0xFF1A, "UTF-8") == 2);
+ ASSERT (uc_width (0x20369, "UTF-8") == 2);
+ ASSERT (uc_width (0x2F876, "UTF-8") == 2);
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-uc_width2.c b/tests/uniwidth/test-uc_width2.c
new file mode 100644
index 0000000..2bf143c
--- /dev/null
+++ b/tests/uniwidth/test-uc_width2.c
@@ -0,0 +1,97 @@
+/* Test of uc_width() function.
+ Copyright (C) 2007-2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008. */
+
+#include <config.h>
+
+#include "uniwidth.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ASSERT(expr) \
+ do \
+ { \
+ if (!(expr)) \
+ { \
+ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
+ fflush (stderr); \
+ abort (); \
+ } \
+ } \
+ while (0)
+
+/* One of 0, '0', '1', 'A', '2'. */
+static char current_width;
+/* The interval for which the current_width holds. */
+static ucs4_t current_start;
+static ucs4_t current_end;
+
+static void
+finish_interval (void)
+{
+ if (current_width != 0)
+ {
+ if (current_start == current_end)
+ printf ("%04X\t\t%c\n", (unsigned) current_start, current_width);
+ else
+ printf ("%04X..%04X\t%c\n", (unsigned) current_start,
+ (unsigned) current_end, current_width);
+ current_width = 0;
+ }
+}
+
+static void
+add_to_interval (ucs4_t uc, char width)
+{
+ if (current_width == width && uc == current_end + 1)
+ current_end = uc;
+ else
+ {
+ finish_interval ();
+ current_width = width;
+ current_start = current_end = uc;
+ }
+}
+
+int
+main ()
+{
+ ucs4_t uc;
+
+ for (uc = 0; uc < 0x110000; uc++)
+ {
+ int w1 = uc_width (uc, "UTF-8");
+ int w2 = uc_width (uc, "GBK");
+ char width =
+ (w1 == 0 && w2 == 0 ? '0' :
+ w1 == 1 && w2 == 1 ? '1' :
+ w1 == 1 && w2 == 2 ? 'A' :
+ w1 == 2 && w2 == 2 ? '2' :
+ 0);
+ if (width == 0)
+ {
+ /* uc must be a control character. */
+ ASSERT (w1 < 0 && w2 < 0);
+ }
+ else
+ add_to_interval (uc, width);
+ }
+ finish_interval ();
+
+ return 0;
+}
diff --git a/tests/uniwidth/test-uc_width2.sh b/tests/uniwidth/test-uc_width2.sh
new file mode 100755
index 0000000..484288c
--- /dev/null
+++ b/tests/uniwidth/test-uc_width2.sh
@@ -0,0 +1,382 @@
+#!/bin/sh
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles uc_width.out"
+./test-uc_width2${EXEEXT} | LC_ALL=C tr -d '\r' > uc_width.out
+
+tmpfiles="$tmpfiles uc_width.ok"
+cat > uc_width.ok <<\EOF
+0000 0
+0020..007E 1
+00A0 1
+00A1..00AC A
+00AD 0
+00AE..02FF A
+0300..036F 0
+0370..0482 A
+0483..0489 0
+048A..0590 A
+0591..05BD 0
+05BE A
+05BF 0
+05C0 A
+05C1..05C2 0
+05C3 A
+05C4..05C5 0
+05C6 A
+05C7 0
+05C8..05FF A
+0600..0603 0
+0604..060F A
+0610..061A 0
+061B..064A A
+064B..065E 0
+065F..066F A
+0670 0
+0671..06D5 A
+06D6..06E4 0
+06E5..06E6 A
+06E7..06E8 0
+06E9 A
+06EA..06ED 0
+06EE..070E A
+070F 0
+0710 A
+0711 0
+0712..072F A
+0730..074A 0
+074B..07A5 A
+07A6..07B0 0
+07B1..07EA A
+07EB..07F3 0
+07F4..0900 A
+0901..0902 0
+0903..093B A
+093C 0
+093D..0940 A
+0941..0948 0
+0949..094C A
+094D 0
+094E..0950 A
+0951..0954 0
+0955..0961 A
+0962..0963 0
+0964..0980 A
+0981 0
+0982..09BB A
+09BC 0
+09BD..09C0 A
+09C1..09C4 0
+09C5..09CC A
+09CD 0
+09CE..09E1 A
+09E2..09E3 0
+09E4..0A00 A
+0A01..0A02 0
+0A03..0A3B A
+0A3C 0
+0A3D..0A40 A
+0A41..0A42 0
+0A43..0A46 A
+0A47..0A48 0
+0A49..0A4A A
+0A4B..0A4D 0
+0A4E..0A50 A
+0A51 0
+0A52..0A6F A
+0A70..0A71 0
+0A72..0A74 A
+0A75 0
+0A76..0A80 A
+0A81..0A82 0
+0A83..0ABB A
+0ABC 0
+0ABD..0AC0 A
+0AC1..0AC5 0
+0AC6 A
+0AC7..0AC8 0
+0AC9..0ACC A
+0ACD 0
+0ACE..0AE1 A
+0AE2..0AE3 0
+0AE4..0B00 A
+0B01 0
+0B02..0B3B A
+0B3C 0
+0B3D..0B3E A
+0B3F 0
+0B40 A
+0B41..0B44 0
+0B45..0B4C A
+0B4D 0
+0B4E..0B55 A
+0B56 0
+0B57..0B61 A
+0B62..0B63 0
+0B64..0B81 A
+0B82 0
+0B83..0BBF A
+0BC0 0
+0BC1..0BCC A
+0BCD 0
+0BCE..0C3D A
+0C3E..0C40 0
+0C41..0C45 A
+0C46..0C48 0
+0C49 A
+0C4A..0C4D 0
+0C4E..0C54 A
+0C55..0C56 0
+0C57..0C61 A
+0C62..0C63 0
+0C64..0CBB A
+0CBC 0
+0CBD..0CCB A
+0CCC..0CCD 0
+0CCE..0CE1 A
+0CE2..0CE3 0
+0CE4..0D40 A
+0D41..0D44 0
+0D45..0D4C A
+0D4D 0
+0D4E..0D61 A
+0D62..0D63 0
+0D64..0DC9 A
+0DCA 0
+0DCB..0DD1 A
+0DD2..0DD4 0
+0DD5 A
+0DD6 0
+0DD7..0E30 A
+0E31 0
+0E32..0E33 A
+0E34..0E3A 0
+0E3B..0E46 A
+0E47..0E4E 0
+0E4F..0EB0 A
+0EB1 0
+0EB2..0EB3 A
+0EB4..0EB9 0
+0EBA A
+0EBB..0EBC 0
+0EBD..0EC7 A
+0EC8..0ECD 0
+0ECE..0F17 A
+0F18..0F19 0
+0F1A..0F34 A
+0F35 0
+0F36 A
+0F37 0
+0F38 A
+0F39 0
+0F3A..0F70 A
+0F71..0F7E 0
+0F7F A
+0F80..0F84 0
+0F85 A
+0F86..0F87 0
+0F88..0F8F A
+0F90..0F97 0
+0F98 A
+0F99..0FBC 0
+0FBD..0FC5 A
+0FC6 0
+0FC7..102C A
+102D..1030 0
+1031 A
+1032..1037 0
+1038 A
+1039..103A 0
+103B..103C A
+103D..103E 0
+103F..1057 A
+1058..1059 0
+105A..105D A
+105E..1060 0
+1061..1070 A
+1071..1074 0
+1075..1081 A
+1082 0
+1083..1084 A
+1085..1086 0
+1087..108C A
+108D 0
+108E..10FF A
+1100..115F 2
+1160..135E A
+135F 0
+1360..1711 A
+1712..1714 0
+1715..1731 A
+1732..1734 0
+1735..1751 A
+1752..1753 0
+1754..1771 A
+1772..1773 0
+1774..17B3 A
+17B4..17B5 0
+17B6 A
+17B7..17BD 0
+17BE..17C5 A
+17C6 0
+17C7..17C8 A
+17C9..17D3 0
+17D4..17DC A
+17DD 0
+17DE..180A A
+180B..180D 0
+180E..18A8 A
+18A9 0
+18AA..191F A
+1920..1922 0
+1923..1926 A
+1927..1928 0
+1929..1931 A
+1932 0
+1933..1938 A
+1939..193B 0
+193C..1A16 A
+1A17..1A18 0
+1A19..1AFF A
+1B00..1B03 0
+1B04..1B33 A
+1B34 0
+1B35 A
+1B36..1B3A 0
+1B3B A
+1B3C 0
+1B3D..1B41 A
+1B42 0
+1B43..1B6A A
+1B6B..1B73 0
+1B74..1B7F A
+1B80..1B81 0
+1B82..1BA1 A
+1BA2..1BA5 0
+1BA6..1BA7 A
+1BA8..1BA9 0
+1BAA..1C2B A
+1C2C..1C33 0
+1C34..1C35 A
+1C36..1C37 0
+1C38..1DBF A
+1DC0..1DE6 0
+1DE7..1DFD A
+1DFE..1DFF 0
+1E00..200A A
+200B..200F 0
+2010..2029 A
+202A..202E 0
+202F..205F A
+2060..2064 0
+2065..2069 A
+206A..206F 0
+2070..20A8 A
+20A9 1
+20AA..20CF A
+20D0..20F0 0
+20F1..2328 A
+2329..232A 2
+232B..2DDF A
+2DE0..2DFF 0
+2E00..2E7F A
+2E80..3029 2
+302A..302F 0
+3030..303E 2
+303F A
+3040..3098 2
+3099..309A 0
+309B..4DBF 2
+4DC0..4DFF A
+4E00..A4CF 2
+A4D0..A66E A
+A66F..A672 0
+A673..A67B A
+A67C..A67D 0
+A67E..A801 A
+A802 0
+A803..A805 A
+A806 0
+A807..A80A A
+A80B 0
+A80C..A824 A
+A825..A826 0
+A827..A8C3 A
+A8C4 0
+A8C5..A925 A
+A926..A92D 0
+A92E..A946 A
+A947..A951 0
+A952..AA28 A
+AA29..AA2E 0
+AA2F..AA30 A
+AA31..AA32 0
+AA33..AA34 A
+AA35..AA36 0
+AA37..AA42 A
+AA43 0
+AA44..AA4B A
+AA4C 0
+AA4D..ABFF A
+AC00..D7A3 2
+D7A4..F8FF A
+F900..FAFF 2
+FB00..FB1D A
+FB1E 0
+FB1F..FDFF A
+FE00..FE0F 0
+FE10..FE1F 2
+FE20..FE26 0
+FE27..FE2F A
+FE30..FE6F 2
+FE70..FEFE A
+FEFF 0
+FF00..FF60 2
+FF61..FFDF 1
+FFE0..FFE6 2
+FFE7..FFF8 1
+FFF9..FFFB 0
+FFFC..101FC 1
+101FD 0
+101FE..10A00 1
+10A01..10A03 0
+10A04 1
+10A05..10A06 0
+10A07..10A0B 1
+10A0C..10A0F 0
+10A10..10A37 1
+10A38..10A3A 0
+10A3B..10A3E 1
+10A3F 0
+10A40..1D166 1
+1D167..1D169 0
+1D16A..1D17A 1
+1D17B..1D182 0
+1D183..1D184 1
+1D185..1D18B 0
+1D18C..1D1A9 1
+1D1AA..1D1AD 0
+1D1AE..1D241 1
+1D242..1D244 0
+1D245..1FFFF 1
+20000..2A6D6 2
+2A6D7..2F7FF 1
+2F800..2FA1D 2
+2FA1E..E0000 1
+E0001 0
+E0002..E001F 1
+E0020..E007F 0
+E0080..E00FF 1
+E0100..E01EF 0
+E01F0..10FFFF 1
+EOF
+
+: ${DIFF=diff}
+${DIFF} uc_width.ok uc_width.out
+result=$?
+
+rm -fr $tmpfiles
+
+exit $result
diff --git a/tests/unsetenv.c b/tests/unsetenv.c
new file mode 100644
index 0000000..73ea878
--- /dev/null
+++ b/tests/unsetenv.c
@@ -0,0 +1,90 @@
+/* Copyright (C) 1992,1995-1999,2000-2002,2005-2008 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include <stdlib.h>
+
+#include <errno.h>
+#if !_LIBC
+# define __set_errno(ev) ((errno) = (ev))
+#endif
+
+#include <string.h>
+#include <unistd.h>
+
+#if !_LIBC
+# define __environ environ
+#endif
+
+#if _LIBC
+/* This lock protects against simultaneous modifications of `environ'. */
+# include <bits/libc-lock.h>
+__libc_lock_define_initialized (static, envlock)
+# define LOCK __libc_lock_lock (envlock)
+# define UNLOCK __libc_lock_unlock (envlock)
+#else
+# define LOCK
+# define UNLOCK
+#endif
+
+/* In the GNU C library we must keep the namespace clean. */
+#ifdef _LIBC
+# define unsetenv __unsetenv
+#endif
+
+
+int
+unsetenv (const char *name)
+{
+ size_t len;
+ char **ep;
+
+ if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ len = strlen (name);
+
+ LOCK;
+
+ ep = __environ;
+ while (*ep != NULL)
+ if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
+ {
+ /* Found it. Remove this pointer by moving later ones back. */
+ char **dp = ep;
+
+ do
+ dp[0] = dp[1];
+ while (*dp++);
+ /* Continue the loop in case NAME appears again. */
+ }
+ else
+ ++ep;
+
+ UNLOCK;
+
+ return 0;
+}
+
+#ifdef _LIBC
+# undef unsetenv
+weak_alias (__unsetenv, unsetenv)
+#endif
diff --git a/tests/wctob.c b/tests/wctob.c
new file mode 100644
index 0000000..4fa71b0
--- /dev/null
+++ b/tests/wctob.c
@@ -0,0 +1,37 @@
+/* Convert wide character to unibyte character.
+ Copyright (C) 2008 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2008.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include <wchar.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+wctob (wint_t wc)
+{
+ char buf[64];
+
+ if (!(MB_CUR_MAX <= sizeof (buf)))
+ abort ();
+ if (wctomb (buf, wc) == 1)
+ return (unsigned char) buf[0];
+ else
+ return EOF;
+}
diff --git a/tests/xalloc-die.c b/tests/xalloc-die.c
new file mode 100644
index 0000000..0a0694f
--- /dev/null
+++ b/tests/xalloc-die.c
@@ -0,0 +1,41 @@
+/* Report a memory allocation failure and exit.
+
+ Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006 Free
+ Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "xalloc.h"
+
+#include <stdlib.h>
+
+#include "error.h"
+#include "exitfail.h"
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+void
+xalloc_die (void)
+{
+ error (exit_failure, 0, "%s", _("memory exhausted"));
+
+ /* The `noreturn' cannot be given to error, since it may return if
+ its first argument is 0. To help compilers understand the
+ xalloc_die does not return, call abort. Also, the abort is a
+ safety feature if exit_failure is 0 (which shouldn't happen). */
+ abort ();
+}
diff --git a/tests/xalloc.h b/tests/xalloc.h
new file mode 100644
index 0000000..57a13e0
--- /dev/null
+++ b/tests/xalloc.h
@@ -0,0 +1,280 @@
+/* xalloc.h -- malloc with out-of-memory checking
+
+ Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef XALLOC_H_
+# define XALLOC_H_
+
+# include <stddef.h>
+
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+
+# ifndef __attribute__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
+# define __attribute__(x)
+# endif
+# endif
+
+# ifndef ATTRIBUTE_NORETURN
+# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
+# endif
+
+# ifndef ATTRIBUTE_MALLOC
+# if __GNUC__ >= 3
+# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+# define ATTRIBUTE_MALLOC
+# endif
+# endif
+
+/* This function is always triggered when memory is exhausted.
+ It must be defined by the application, either explicitly
+ or by using gnulib's xalloc-die module. This is the
+ function to call when one wants the program to die because of a
+ memory allocation failure. */
+extern void xalloc_die (void) ATTRIBUTE_NORETURN;
+
+void *xmalloc (size_t s) ATTRIBUTE_MALLOC;
+void *xzalloc (size_t s) ATTRIBUTE_MALLOC;
+void *xcalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
+void *xrealloc (void *p, size_t s);
+void *x2realloc (void *p, size_t *pn);
+void *xmemdup (void const *p, size_t s) ATTRIBUTE_MALLOC;
+char *xstrdup (char const *str) ATTRIBUTE_MALLOC;
+
+/* Return 1 if an array of N objects, each of size S, cannot exist due
+ to size arithmetic overflow. S must be positive and N must be
+ nonnegative. This is a macro, not an inline function, so that it
+ works correctly even when SIZE_MAX < N.
+
+ By gnulib convention, SIZE_MAX represents overflow in size
+ calculations, so the conservative dividend to use here is
+ SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
+ However, malloc (SIZE_MAX) fails on all known hosts where
+ sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
+ exactly-SIZE_MAX allocations on such hosts; this avoids a test and
+ branch when S is known to be 1. */
+# define xalloc_oversized(n, s) \
+ ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
+
+
+/* In the following macros, T must be an elementary or structure/union or
+ typedef'ed type, or a pointer to such a type. To apply one of the
+ following macros to a function pointer or array type, you need to typedef
+ it first and use the typedef name. */
+
+/* Allocate an object of type T dynamically, with error checking. */
+/* extern t *XMALLOC (typename t); */
+# define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
+
+/* Allocate memory for N elements of type T, with error checking. */
+/* extern t *XNMALLOC (size_t n, typename t); */
+# define XNMALLOC(n, t) \
+ ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
+
+/* Allocate an object of type T dynamically, with error checking,
+ and zero it. */
+/* extern t *XZALLOC (typename t); */
+# define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
+
+/* Allocate memory for N elements of type T, with error checking,
+ and zero it. */
+/* extern t *XCALLOC (size_t n, typename t); */
+# define XCALLOC(n, t) \
+ ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
+
+
+# if HAVE_INLINE
+# define static_inline static inline
+# else
+ void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
+ void *xnrealloc (void *p, size_t n, size_t s);
+ void *x2nrealloc (void *p, size_t *pn, size_t s);
+ char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
+# endif
+
+# ifdef static_inline
+
+/* Allocate an array of N objects, each with S bytes of memory,
+ dynamically, with error checking. S must be nonzero. */
+
+static_inline void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
+static_inline void *
+xnmalloc (size_t n, size_t s)
+{
+ if (xalloc_oversized (n, s))
+ xalloc_die ();
+ return xmalloc (n * s);
+}
+
+/* Change the size of an allocated block of memory P to an array of N
+ objects each of S bytes, with error checking. S must be nonzero. */
+
+static_inline void *
+xnrealloc (void *p, size_t n, size_t s)
+{
+ if (xalloc_oversized (n, s))
+ xalloc_die ();
+ return xrealloc (p, n * s);
+}
+
+/* If P is null, allocate a block of at least *PN such objects;
+ otherwise, reallocate P so that it contains more than *PN objects
+ each of S bytes. *PN must be nonzero unless P is null, and S must
+ be nonzero. Set *PN to the new number of objects, and return the
+ pointer to the new block. *PN is never set to zero, and the
+ returned pointer is never null.
+
+ Repeated reallocations are guaranteed to make progress, either by
+ allocating an initial block with a nonzero size, or by allocating a
+ larger block.
+
+ In the following implementation, nonzero sizes are increased by a
+ factor of approximately 1.5 so that repeated reallocations have
+ O(N) overall cost rather than O(N**2) cost, but the
+ specification for this function does not guarantee that rate.
+
+ Here is an example of use:
+
+ int *p = NULL;
+ size_t used = 0;
+ size_t allocated = 0;
+
+ void
+ append_int (int value)
+ {
+ if (used == allocated)
+ p = x2nrealloc (p, &allocated, sizeof *p);
+ p[used++] = value;
+ }
+
+ This causes x2nrealloc to allocate a block of some nonzero size the
+ first time it is called.
+
+ To have finer-grained control over the initial size, set *PN to a
+ nonzero value before calling this function with P == NULL. For
+ example:
+
+ int *p = NULL;
+ size_t used = 0;
+ size_t allocated = 0;
+ size_t allocated1 = 1000;
+
+ void
+ append_int (int value)
+ {
+ if (used == allocated)
+ {
+ p = x2nrealloc (p, &allocated1, sizeof *p);
+ allocated = allocated1;
+ }
+ p[used++] = value;
+ }
+
+ */
+
+static_inline void *
+x2nrealloc (void *p, size_t *pn, size_t s)
+{
+ size_t n = *pn;
+
+ if (! p)
+ {
+ if (! n)
+ {
+ /* The approximate size to use for initial small allocation
+ requests, when the invoking code specifies an old size of
+ zero. 64 bytes is the largest "small" request for the
+ GNU C library malloc. */
+ enum { DEFAULT_MXFAST = 64 };
+
+ n = DEFAULT_MXFAST / s;
+ n += !n;
+ }
+ }
+ else
+ {
+ /* Set N = ceil (1.5 * N) so that progress is made if N == 1.
+ Check for overflow, so that N * S stays in size_t range.
+ The check is slightly conservative, but an exact check isn't
+ worth the trouble. */
+ if ((size_t) -1 / 3 * 2 / s <= n)
+ xalloc_die ();
+ n += (n + 1) / 2;
+ }
+
+ *pn = n;
+ return xrealloc (p, n * s);
+}
+
+/* Return a pointer to a new buffer of N bytes. This is like xmalloc,
+ except it returns char *. */
+
+static_inline char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
+static_inline char *
+xcharalloc (size_t n)
+{
+ return XNMALLOC (n, char);
+}
+
+# endif
+
+# ifdef __cplusplus
+}
+
+/* C++ does not allow conversions from void * to other pointer types
+ without a cast. Use templates to work around the problem when
+ possible. */
+
+template <typename T> inline T *
+xrealloc (T *p, size_t s)
+{
+ return (T *) xrealloc ((void *) p, s);
+}
+
+template <typename T> inline T *
+xnrealloc (T *p, size_t n, size_t s)
+{
+ return (T *) xnrealloc ((void *) p, n, s);
+}
+
+template <typename T> inline T *
+x2realloc (T *p, size_t *pn)
+{
+ return (T *) x2realloc ((void *) p, pn);
+}
+
+template <typename T> inline T *
+x2nrealloc (T *p, size_t *pn, size_t s)
+{
+ return (T *) x2nrealloc ((void *) p, pn, s);
+}
+
+template <typename T> inline T *
+xmemdup (T const *p, size_t s)
+{
+ return (T *) xmemdup ((void const *) p, s);
+}
+
+# endif
+
+
+#endif /* !XALLOC_H_ */
diff --git a/tests/xmalloc.c b/tests/xmalloc.c
new file mode 100644
index 0000000..585fb4b
--- /dev/null
+++ b/tests/xmalloc.c
@@ -0,0 +1,118 @@
+/* xmalloc.c -- malloc with out of memory checking
+
+ Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2008-2009 Free Software Foundation,
+ Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#if ! HAVE_INLINE
+# define static_inline
+#endif
+#include "xalloc.h"
+#undef static_inline
+
+#include <stdlib.h>
+#include <string.h>
+
+/* 1 if calloc is known to be compatible with GNU calloc. This
+ matters if we are not also using the calloc module, which defines
+ HAVE_CALLOC and supports the GNU API even on non-GNU platforms. */
+#if defined HAVE_CALLOC || defined __GLIBC__
+enum { HAVE_GNU_CALLOC = 1 };
+#else
+enum { HAVE_GNU_CALLOC = 0 };
+#endif
+
+/* Allocate N bytes of memory dynamically, with error checking. */
+
+void *
+xmalloc (size_t n)
+{
+ void *p = malloc (n);
+ if (!p && n != 0)
+ xalloc_die ();
+ return p;
+}
+
+/* Change the size of an allocated block of memory P to N bytes,
+ with error checking. */
+
+void *
+xrealloc (void *p, size_t n)
+{
+ p = realloc (p, n);
+ if (!p && n != 0)
+ xalloc_die ();
+ return p;
+}
+
+/* If P is null, allocate a block of at least *PN bytes; otherwise,
+ reallocate P so that it contains more than *PN bytes. *PN must be
+ nonzero unless P is null. Set *PN to the new block's size, and
+ return the pointer to the new block. *PN is never set to zero, and
+ the returned pointer is never null. */
+
+void *
+x2realloc (void *p, size_t *pn)
+{
+ return x2nrealloc (p, pn, 1);
+}
+
+/* Allocate S bytes of zeroed memory dynamically, with error checking.
+ There's no need for xnzalloc (N, S), since it would be equivalent
+ to xcalloc (N, S). */
+
+void *
+xzalloc (size_t s)
+{
+ return memset (xmalloc (s), 0, s);
+}
+
+/* Allocate zeroed memory for N elements of S bytes, with error
+ checking. S must be nonzero. */
+
+void *
+xcalloc (size_t n, size_t s)
+{
+ void *p;
+ /* Test for overflow, since some calloc implementations don't have
+ proper overflow checks. But omit overflow and size-zero tests if
+ HAVE_GNU_CALLOC, since GNU calloc catches overflow and never
+ returns NULL if successful. */
+ if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s))
+ || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
+ xalloc_die ();
+ return p;
+}
+
+/* Clone an object P of size S, with error checking. There's no need
+ for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any
+ need for an arithmetic overflow check. */
+
+void *
+xmemdup (void const *p, size_t s)
+{
+ return memcpy (xmalloc (s), p, s);
+}
+
+/* Clone STRING. */
+
+char *
+xstrdup (char const *string)
+{
+ return xmemdup (string, strlen (string) + 1);
+}
diff --git a/tests/zerosize-ptr.h b/tests/zerosize-ptr.h
new file mode 100644
index 0000000..a38a2cf
--- /dev/null
+++ b/tests/zerosize-ptr.h
@@ -0,0 +1,68 @@
+/* Return a pointer to a zero-size object in memory.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* ISO C 99 does not allow memcmp(), memchr() etc. to be invoked with a NULL
+ argument. Therefore this file produces a non-NULL pointer which cannot
+ be dereferenced, if possible. */
+
+#include <stdlib.h>
+
+/* Test whether mmap() and mprotect() are available.
+ We don't use HAVE_MMAP, because AC_FUNC_MMAP would not define it on HP-UX.
+ HAVE_MPROTECT is not enough, because mingw does not have mmap() but has an
+ mprotect() function in libgcc.a. */
+#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
+# include <fcntl.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/mman.h>
+/* Define MAP_FILE when it isn't otherwise. */
+# ifndef MAP_FILE
+# define MAP_FILE 0
+# endif
+#endif
+
+/* Return a pointer to a zero-size object in memory (that is, actually, a
+ pointer to a page boundary where the previous page is readable and writable
+ and the next page is neither readable not writable), if possible.
+ Return NULL otherwise. */
+
+static void *
+zerosize_ptr (void)
+{
+/* Use mmap and mprotect when they exist. Don't test HAVE_MMAP, because it is
+ not defined on HP-UX 11 (since it does not support MAP_FIXED). */
+#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
+# if HAVE_MAP_ANONYMOUS
+ const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+ const int fd = -1;
+# else /* !HAVE_MAP_ANONYMOUS */
+ const int flags = MAP_FILE | MAP_PRIVATE;
+ int fd = open ("/dev/zero", O_RDONLY, 0666);
+ if (fd >= 0)
+# endif
+ {
+ int pagesize = getpagesize ();
+ char *two_pages =
+ (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+ flags, fd, 0);
+ if (two_pages != (char *)(-1)
+ && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+ return two_pages + pagesize;
+ }
+#endif
+ return NULL;
+}